Browse Source

0705

master
DESKTOP-00SUCB6\Administrator 4 years ago
parent
commit
506592771f
  1. 4
      .env.development
  2. 30
      src/api/company/campanyVerify.js
  3. 59
      src/api/login.js
  4. 30
      src/api/system/certification.js
  5. 23
      src/api/system/enterpriseManager.js
  6. BIN
      src/assets/logo/logo.png
  7. 64
      src/router/index.js
  8. 57
      src/views/company/authentication.vue
  9. 217
      src/views/company/campanyVerify.vue
  10. 194
      src/views/company/companyInfo copy.vue
  11. 717
      src/views/company/companyInfo.vue
  12. 7
      src/views/company/manager.vue
  13. 3
      src/views/company/search.vue
  14. 10
      src/views/home/index.vue
  15. 55
      src/views/home/index2.vue
  16. 10
      src/views/login/login.vue
  17. 199
      src/views/login/register.vue
  18. 35
      src/views/login/retrievePassword.vue
  19. 4
      src/views/system/enterprise/index.vue
  20. 27
      src/views/system/qualification/index.vue

4
.env.development

@ -2,8 +2,8 @@
ENV = 'development'
# 若依管理系统/开发环境
# VUE_APP_BASE_API = 'http://121.36.65.171:9527'
VUE_APP_BASE_API = 'http://172.119.51.195:8080'
VUE_APP_BASE_API = 'http://121.36.65.171:9527'
#VUE_APP_BASE_API = 'http://172.119.51.195:8080'
# 路由懒加载

30
src/api/company/campanyVerify.js

@ -0,0 +1,30 @@
import request from '@/utils/request'
// 获取需要审核企业列表
export function getAuditEnterpriseList(query) {
return request({
url: '/system/enterpriseManager/getAuditEnterpriseList',
method: 'post',
data: query
})
}
// 企业通过审核
export function passAuditEnterprise(query) {
return request({
url: '/system/enterpriseManager/auditEnterprise',
method: 'post',
data:query
})
}
// 驳回企业审核
export function turnDownEnterprise(query) {
return request({
url: '/system/enterpriseManager/turnDownEnterprise',
method: 'post',
data:query
})
}

59
src/api/login.js

@ -38,3 +38,62 @@ export function getCodeImg() {
method: 'get'
})
}
// 发送注册用短信验证码
export function sendRegeditCode(params) {
return request({
url: '/system/user/sendRegeditCode',
method: 'post',
data:params
})
}
// 发送忘记密码用短信验证码
export function sendModifyPasswordCode(param) {
return request({
url: '/system/user/sendModifyPasswordCode',
method: 'post',
data:param
})
}
// 注册用户
export function registerUser(param) {
return request({
url: '/system/user/regeditUser',
method: 'post',
data:param
})
}
// 通过账号获取用户信息
export function getUserByUserName(param) {
return request({
url: '/system/user/getUserByUserName',
method: 'post',
data:param
})
}
// 校验忘记密码验证码
export function validModifyPasswordCode(param) {
return request({
url: '/system/user/validModifyPasswordCode',
method: 'post',
data:param
})
}
// 忘记密码-修改密码
export function forgetPassword(param) {
return request({
url: '/system/user/forgetPassword',
method: 'post',
data:param
})
}

30
src/api/system/certification.js

@ -51,3 +51,33 @@ export function exportCertification(query) {
params: query
})
}
// 查询自己的认证信息
export function getEnterpriseCertificationInfoByLogin() {
return request({
url: '/system/certification/getEnterpriseCertificationInfoByLogin',
method: 'get'
})
}
// 企业工商认证
export function certificationEnterprise(data) {
return request({
url: '/system/enterpriseManager/certificationEnterprise',
method: 'post',
// data: data
})
}
// 企业工业互联网认证
export function industrialInternetCertification(data) {
return request({
url: '/system/enterpriseManager/industrialInternetCertification',
method: 'post',
// data: data
})
}

23
src/api/system/enterpriseManager.js

@ -51,3 +51,26 @@ export function exportEnterpriseManager(query) {
params: query
})
}
// 根据登陆账户获取企业详细信息
export function getEnterPriseInfoByLogin() {
return request({
url: '/system/enterpriseManager/getEnterPriseInfoByLogin',
method: 'get',
// params: query
})
}
// 根据父节点id获取子节点
export function getAreaByParentId(params) {
return request({
url: '/system/area/getAreaByParentId',
method: 'post',
data: params
})
}

BIN
src/assets/logo/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

64
src/router/index.js

@ -111,6 +111,14 @@ export const constantRoutes = [
name: 'manager',
meta: { title: '企业信息', icon: 'list', noCache: true }
},
//系统级-企业审核
{
path: 'campanyVerify',
component: (resolve) => require(['@/views/company/campanyVerify'], resolve),
name: 'campanyVerify',
meta: { title: '企业审核', icon: 'list', noCache: true }
},
//企业级-企业信息
{
path: 'companyInfo',
@ -128,35 +136,35 @@ export const constantRoutes = [
]
},
{
path: '/product',
component: Layout,
meta: { title: '产品服务', icon: 'dashboard', noCache: true, affix: true },
children: [
// 企业级-企业查询
{
path: 'Packag',
component: (resolve) => require(['@/views/product/productPackag'], resolve),
name: 'Packag',
meta: { title: '产品包装', icon: 'search', noCache: true }
},
//系统级-预包装管理
{
path: 'prepackaging',
component: (resolve) => require(['@/views/product/prepackaging'], resolve),
name: 'prepackaging',
meta: { title: '预包装管理', icon: 'search', noCache: true }
},
//系统级-标准文件管理
{
path: 'fileManger',
component: (resolve) => require(['@/views/product/flieManager'], resolve),
name: 'fileManger',
meta: { title: '标准文件管理', icon: 'search', noCache: true }
},
// {
// path: '/product',
// component: Layout,
// meta: { title: '产品服务', icon: 'dashboard', noCache: true, affix: true },
// children: [
// // 企业级-企业查询
// {
// path: 'Packag',
// component: (resolve) => require(['@/views/product/productPackag'], resolve),
// name: 'Packag',
// meta: { title: '产品包装', icon: 'search', noCache: true }
// },
// //系统级-预包装管理
// {
// path: 'prepackaging',
// component: (resolve) => require(['@/views/product/prepackaging'], resolve),
// name: 'prepackaging',
// meta: { title: '预包装管理', icon: 'search', noCache: true }
// },
// //系统级-标准文件管理
// {
// path: 'fileManger',
// component: (resolve) => require(['@/views/product/flieManager'], resolve),
// name: 'fileManger',
// meta: { title: '标准文件管理', icon: 'search', noCache: true }
// },
]
},
// ]
// },
{
path: '/user',
component: Layout,

57
src/views/company/authentication.vue

@ -1,24 +1,42 @@
<template>
<div class="app-container">
<el-table :data="authenticationList">
<el-table-column label="企业名称" align="center" prop="name" />
<el-table-column label="企业前缀" align="center" prop="corporateUnifiedSocialCreditCode" />
<el-table-column label="认证等级" align="center" prop="nameLegalRepresentative" />
<el-table-column label="认证日期" align="center" prop="certificateNumberLegalRepresentative" />
<el-table-column label="认证状态" align="center" prop="contactInformation" />
<el-table-column label="认证结果" align="center" class-name="small-padding fixed-width">
<el-table-column label="企业名称" align="center" prop="enterpriseName" />
<el-table-column label="企业前缀" align="center" prop="certificationPrefix">
<template slot-scope="scope">
{{scope.row.certificationType == 0 ? '—':scope.row.certificationPrefix}}
</template>
</el-table-column>
<el-table-column label="认证类型" align="center" prop="certificationType" >
<template slot-scope="scope">
{{scope.row.certificationType == 0 ? '工商认证':'工业互联网认证'}}
</template>
</el-table-column>
<el-table-column label="认证日期" align="center" prop="certificationDate" />
<el-table-column label="认证状态" align="center" prop="certificationStatus">
<template slot-scope="scope">
<span v-if="scope.row.certificationStatus == 0" class="text-warning">未认证</span>
<span v-else-if="scope.row.certificationStatus == 1" class="text-navy">认证成功</span>
<span v-else-if="scope.row.certificationStatus == 2" class="text-danger">认证失败</span>
<span v-else-if="scope.row.certificationStatus == 3" class="text-success">认证中</span>
</template>
</el-table-column>
<el-table-column label="认证结果" align="center" class-name="small-padding fixed-width" prop="faildReason" >
</el-table-column>
<el-table-column label="认证操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
>详情</el-button>
@click="applyAuthen(scope.row)"
>认证</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { listCertification} from "@/api/system/certification";
import { getEnterpriseCertificationInfoByLogin,certificationEnterprise,industrialInternetCertification} from "@/api/system/certification";
export default {
name:'authentication',
data(){
@ -31,12 +49,27 @@ export default {
}
},
mounted() {
listCertification(this.queryParams).then(response => {
this.authenticationList = response.rows;
});
this.initData()
},
methods: {
initData(){
getEnterpriseCertificationInfoByLogin().then(response => {
this.authenticationList = response.data;
});
},
applyAuthen(row) {
if(row.certificationType == 0){
certificationEnterprise().then(res => {
this.msgInfo(res.msg);
this.initData()
})
} else if (row.certificationType == 1) {
industrialInternetCertification().then(res => {
this.msgSuccess("工业互联网认证申请成功");
this.initData()
})
}
}
},
}
</script>

217
src/views/company/campanyVerify.vue

@ -0,0 +1,217 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="企业名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入企业名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="审核状态">
<el-select v-model="queryParams.verifyStatus" clearable placeholder="请选择">
<el-option label="待审核" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="驳回" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="enterpriseManagerList">
<el-table-column label="企业名称" align="center" prop="name" />
<el-table-column label="申请类型" align="center" prop="applicationType">
<template slot-scope="scope">
{{scope.row.applicationType == 0 ? '新增申请' : '变更申请'}}
</template>
</el-table-column>
<!-- <el-table-column label="申请时间" align="center" prop="applicationTime" /> -->
<!-- <el-table-column label="审核人" align="center" prop="verifyUser" /> -->
<el-table-column label="工商认证" align="center" prop="businessCertificationTime" />
<el-table-column label="工业互联网认证" align="center" prop="industrialInternetCertificationTime" />
<el-table-column label="审核时间" align="center" prop="verifyTime" />
<el-table-column label="审核状态" align="center" prop="verifyStatus">
<template slot-scope="scope">
<span v-if="scope.row.verifyStatus == 0" class="text-warning">待审核</span>
<span v-else-if="scope.row.verifyStatus == 1" class="text-success">审核通过</span>
<span v-else-if="scope.row.verifyStatus == 2" class="text-danger">审核驳回</span>
</template>
</el-table-column>
<el-table-column label="审核意见" align="center" prop="verifyAuditOpinion" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.verifyStatus == 0"
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>审核</el-button>
<el-button
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改企业管理对话框 -->
<el-dialog title="认证审核" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-form-item label="工商认证:">
<span v-if="form.businessCertificationTime" class="text-navy"><i class="el-icon-circle-check"></i>通过</span>
<span v-else class="text-danger"><i class="el-icon-circle-close"></i>未通过</span>
</el-form-item>
<el-form-item label="工业互联网认证:">
<span v-if="form.industrialInternetCertificationTime" class="text-navy"><i class="el-icon-circle-check"></i>通过</span>
<span v-else class="text-danger"><i class="el-icon-circle-close"></i>未通过</span>
</el-form-item>
<el-form-item label="审核:" prop="status">
<el-radio-group v-model="form.status">
<el-radio :label="1">通过</el-radio>
<el-radio :label="2">驳回</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审核意见:" prop="auditOpinion">
<el-input v-model="form.auditOpinion" type="textarea" placeholder="请输入意见" />
</el-form-item>
</el-form>
<div class="dialog-footer text-center">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getAuditEnterpriseList,passAuditEnterprise,turnDownEnterprise} from "@/api/company/campanyVerify";
import ImageUpload from '@/components/ImageUpload';
export default {
name: "campanyVerify",
components: {
ImageUpload,
},
data() {
return {
//
loading: true,
//
showSearch: true,
//
total: 0,
//
enterpriseManagerList: [],
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
verifyStatus: null
},
//
form: {},
//
rules: {
auditOpinion: [
{ required: true, message: "意见不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "审核状态不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询企业管理列表 */
getList() {
this.loading = true;
getAuditEnterpriseList(this.queryParams).then(response => {
this.enterpriseManagerList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
const params = {
enterpriseId:this.form.enterpriseId,
verifyAuditOpinion:this.form.auditOpinion,
}
if(this.form.status == 1) {
passAuditEnterprise(params).then(res => {
this.msgSuccess("审核通过");
this.cancel()
this.getList()
})
} else {
turnDownEnterprise(params).then(res => {
this.msgSuccess("驳回审核");
this.cancel()
this.getList()
})
}
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.form = row;
this.open = true;
// this.reset();
// const enterpriseid = row.enterpriseid
// getEnterpriseManager(enterpriseid).then(response => {
// this.form = response.data;
// this.open = true;
// });
},
}
};
</script>
<style lang="scss" scoped>
.el-form {
position: relative;
}
</style>

194
src/views/company/companyInfo copy.vue

@ -0,0 +1,194 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<h3 class="mb30 text-danger text-center">企业信息审核通过/企业信息变更申请中</h3>
<el-row>
<el-col :span="8">
<el-form-item label="企业logo">
<imageUpload v-if="isEdit" v-model="form.logo"/>
<img v-else :src="form.logo">
</el-form-item>
</el-col>
<el-col :span="8" v-if="isEdit">
<p class="text-muted" >支持JPGJPEGPNG格式图片大小不超过5MB请保证图片质量分辨率至少为150*150</p>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="企业名称" prop="name">
<el-input v-if="isEdit" v-model="form.name" placeholder="请输入企业名称" />
<span v-else>{{form.name}}</span>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="corporateUnifiedSocialCreditCode">
<el-input v-if="isEdit" v-model="form.corporateUnifiedSocialCreditCode" placeholder="请输入统一社会信用代码" />
<span v-else>{{form.corporateUnifiedSocialCreditCode}}</span>
</el-form-item>
<el-form-item label="法定代表人名称" prop="nameLegalRepresentative">
<el-input v-if="isEdit" v-model="form.nameLegalRepresentative" placeholder="请输入法定代表人名称" />
<span v-else>{{form.nameLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="法定代表人证件号码" prop="certificateNumberLegalRepresentative">
<el-input v-if="isEdit" v-model="form.nameLegalRepresentative" placeholder="请输入法定代表人名称" />
<span v-else>{{form.certificateNumberLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="营业执照照片" prop="companyImg">
<imageUpload v-if="isEdit" v-model="form.companyImg"/>
<img v-else :src="form.companyImg">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="contactInformation">
<el-input v-if="isEdit" v-model="form.contactInformation" placeholder="请输入联系方式" />
<span v-else>{{form.contactInformation}}</span>
</el-form-item>
<el-form-item label="官网地址" prop="web">
<el-input v-if="isEdit" v-model="form.web" placeholder="请输入官网地址" />
<span v-else>{{form.web}}</span>
</el-form-item>
<el-form-item label="企业注册地详细地址" prop="placeRegistrationAddress">
<el-input v-if="isEdit" v-model="form.placeRegistrationAddress" placeholder="请输入企业注册地详细地址" />
<span v-else>{{form.placeRegistrationAddress}}</span>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-if="isEdit" v-model="form.email" placeholder="请输入邮箱" />
<span v-else>{{form.email}}</span>
</el-form-item>
<el-form-item label="法人证件正面照片" prop="faceIdImg">
<imageUpload v-if="isEdit" v-model="form.faceIdImg"/>
<img v-else :src="form.faceIdImg">
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="企业简介" prop="enterpriseDescribe">
<el-input v-if="isEdit" v-model="form.enterpriseDescribe" type="textarea" placeholder="请输入内容" />
<span v-else>{{form.enterpriseDescribe}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="搜索词" prop="enterpriseDescribe">
<el-input v-if="isEdit" v-model="form.enterpriseDescribe" placeholder="请输入邮箱" />
<span v-else>{{form.enterpriseDescribe}}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="isEdit">
<p class="text-muted" style="margin:0 40px">北京福通互联科技集团有限公司的搜索词为福通互联用户可根据搜索词搜索到您的企业搜索词必须是来自于企业名称中的字</p>
</el-col>
</el-row>
<div class="text-center mt20" v-if="isEdit">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="isEdit = false">取消</el-button>
</div>
<div class="text-center mt20" v-else>
<el-button @click="isEdit = true">编辑</el-button>
</div>
</el-form>
</div>
</template>
<script>
import ImageUpload from '@/components/ImageUpload';
export default {
name: "EnterpriseManager",
components: {
ImageUpload,
},
data() {
return {
isEdit:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
nameLegalRepresentative: null
},
//
form: {},
rules: {
address: [
{ required: true, message: "详细地址不能为空", trigger: "blur" }
],
certificateNumberLegalRepresentative: [
{ required: true, message: "法定代表人证件号码不能为空", trigger: "blur" }
],
contactInformation: [
{ required: true, message: "联系方式不能为空", trigger: "blur" }
],
corporateUnifiedSocialCreditCode: [
{ required: true, message: "统一社会信用代码不能为空", trigger: "blur" }
],
email: [
{ required: true, message: "邮箱不能为空", trigger: "blur" }
],
enterpriseDescribe: [
{ required: true, message: "企业简介不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "企业名称不能为空", trigger: "blur" }
],
nameLegalRepresentative: [
{ required: true, message: "法定代表人名称不能为空", trigger: "blur" }
],
companyImg: [
{ required: true, message: "营业执照照片不能为空", trigger: "blur" }
],
faceIdImg: [
{ required: true, message: "法人证件正面照片不能为空", trigger: "blur" }
],
}
};
},
created() {
},
methods: {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.isEdit == true) {
}
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
enterpriseid: null,
address: null,
certificateNumberLegalRepresentative: null,
contactInformation: null,
corporateUnifiedSocialCreditCode: null,
email: null,
enterpriseDescribe: null,
logo: null,
name: null,
nameLegalRepresentative: null,
placeRegistrationAddress: null,
companyImg: null,
faceIdImg: null,
};
this.resetForm("form");
},
}
};
</script>
<style lang="scss" scoped>
.el-form {
position: relative;
width: 1000px;
margin: 0 auto;
}
</style>

717
src/views/company/companyInfo.vue

@ -1,194 +1,567 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<h3 class="mb30 text-danger text-center">企业信息审核通过/企业信息变更申请中</h3>
<el-row>
<el-col :span="8">
<el-form-item label="企业logo">
<imageUpload v-if="isEdit" v-model="form.logo"/>
<img v-else :src="form.logo">
</el-form-item>
</el-col>
<el-col :span="8" v-if="isEdit">
<p class="text-muted" >支持JPGJPEGPNG格式图片大小不超过5MB请保证图片质量分辨率至少为150*150</p>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="企业名称" prop="name">
<el-input v-if="isEdit" v-model="form.name" placeholder="请输入企业名称" />
<span v-else>{{form.name}}</span>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="corporateUnifiedSocialCreditCode">
<el-input v-if="isEdit" v-model="form.corporateUnifiedSocialCreditCode" placeholder="请输入统一社会信用代码" />
<span v-else>{{form.corporateUnifiedSocialCreditCode}}</span>
</el-form-item>
<el-form-item label="法定代表人名称" prop="nameLegalRepresentative">
<el-input v-if="isEdit" v-model="form.nameLegalRepresentative" placeholder="请输入法定代表人名称" />
<span v-else>{{form.nameLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="法定代表人证件号码" prop="certificateNumberLegalRepresentative">
<el-input v-if="isEdit" v-model="form.nameLegalRepresentative" placeholder="请输入法定代表人名称" />
<span v-else>{{form.certificateNumberLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="营业执照照片" prop="companyImg">
<imageUpload v-if="isEdit" v-model="form.companyImg"/>
<img v-else :src="form.companyImg">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="contactInformation">
<el-input v-if="isEdit" v-model="form.contactInformation" placeholder="请输入联系方式" />
<span v-else>{{form.contactInformation}}</span>
</el-form-item>
<el-form-item label="官网地址" prop="web">
<el-input v-if="isEdit" v-model="form.web" placeholder="请输入官网地址" />
<span v-else>{{form.web}}</span>
</el-form-item>
<el-form-item label="企业注册地详细地址" prop="placeRegistrationAddress">
<el-input v-if="isEdit" v-model="form.placeRegistrationAddress" placeholder="请输入企业注册地详细地址" />
<span v-else>{{form.placeRegistrationAddress}}</span>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-if="isEdit" v-model="form.email" placeholder="请输入邮箱" />
<span v-else>{{form.email}}</span>
</el-form-item>
<el-form-item label="法人证件正面照片" prop="faceIdImg">
<imageUpload v-if="isEdit" v-model="form.faceIdImg"/>
<img v-else :src="form.faceIdImg">
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="企业简介" prop="enterpriseDescribe">
<el-input v-if="isEdit" v-model="form.enterpriseDescribe" type="textarea" placeholder="请输入内容" />
<span v-else>{{form.enterpriseDescribe}}</span>
</el-form-item>
</el-col>
</el-row>
<div class="app-container">
<div class="apply-wait" v-if="isAdd">
<p><i class="el-icon-loading" style="font-weight: bold"></i>尊敬的企业用户,您正在添加您的企业信息</p>
</div>
<div class="apply-reject" v-if="!isAdd && isEdit">
<p><i class="el-icon-warning-outline" style="font-weight: bold;color:#f9a80d;margin-right: 4px;"></i>尊敬的企业用户,您正在修改您的企业信息</p>
</div>
<el-form ref="form" :model="form" :rules="rules" label-width="170px">
<el-row>
<el-col :span="12">
<el-form-item label="企业名称" prop="name">
<el-input v-if="isEdit" v-model="form.name" placeholder="请输入企业名称" />
<span v-else>{{form.name}}</span>
</el-form-item>
<el-form-item label="法人责任主体名称" prop="nameLegalPersonLiabilitySubject">
<el-input v-if="isEdit" v-model="form.nameLegalPersonLiabilitySubject" placeholder="请输入法人责任主体名称" />
<span v-else>{{form.nameLegalPersonLiabilitySubject}}</span>
</el-form-item>
<el-form-item label="法定代表人名称" prop="nameLegalRepresentative">
<el-input v-if="isEdit" v-model="form.nameLegalRepresentative" placeholder="请输入法定代表人名称" />
<span v-else>{{form.nameLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="法定代表人证件类型" prop="typeLegalRepresentative">
<el-select v-if="isEdit" v-model="form.typeLegalRepresentative" placeholder="请选择法定代表人类型">
<el-option
v-for="dict in typeLegalRepresentativeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.typeLegalRepresentative | filterTypeLegalRepresentative(that)}}</span>
</el-form-item>
<el-form-item label="法定代表人证件号码" prop="certificateNumberLegalRepresentative">
<el-input v-if="isEdit" v-model="form.certificateNumberLegalRepresentative" placeholder="请输入法定代表人证件号码" />
<span v-else>{{form.certificateNumberLegalRepresentative}}</span>
</el-form-item>
<el-form-item label="统一社会信用代码类型" prop="corporateUnifiedSocialCreditType">
<el-select v-if="isEdit" v-model="form.corporateUnifiedSocialCreditType" placeholder="请选择统一社会信用代码类型">
<el-option
v-for="dict in corporateUnifiedSocialCreditTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.corporateUnifiedSocialCreditType | filterCorporateUnifiedSocialCreditTypeOptions(that)}}</span>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="corporateUnifiedSocialCreditCode">
<el-input v-if="isEdit" v-model="form.corporateUnifiedSocialCreditCode" placeholder="请输入统一社会信用代码" />
<span v-else>{{form.corporateUnifiedSocialCreditCode}}</span>
</el-form-item>
<el-form-item label="企业行业大类型" prop="enterpriseIndustryBigType">
<el-select v-if="isEdit" v-model="form.enterpriseIndustryBigType" placeholder="请选择企业行业大类型">
<el-option
v-for="dict in enterpriseIndustryBigTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.enterpriseIndustryBigType | filterEnterpriseIndustryBigTypeOptions(that)}}</span>
</el-form-item>
<el-form-item label="企业行业小类型" prop="enterpriseIndustrySmallType">
<el-select v-if="isEdit" v-model="form.enterpriseIndustrySmallType" placeholder="请选择企业行业小类型">
<el-option
v-for="dict in enterpriseIndustrySmallTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.enterpriseIndustrySmallType | filterEnterpriseIndustrySmallTypeOptions(that)}}</span>
</el-form-item>
<el-form-item label="企业类型" prop="enterpriseType">
<el-select v-if="isEdit" v-model="form.enterpriseType" placeholder="请选择企业类型">
<el-option
v-for="dict in enterpriseTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.enterpriseType | filterEnterpriseTypeOptions(that)}}</span>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-if="isEdit" v-model="form.email" placeholder="请输入邮箱" />
<span v-else>{{form.email}}</span>
</el-form-item>
<el-form-item label="企业简介" prop="enterpriseDescribe">
<el-input v-if="isEdit" v-model="form.enterpriseDescribe" type="textarea" placeholder="请输入内容" />
<span v-else>{{form.enterpriseDescribe}}</span>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="搜索词" prop="enterpriseDescribe">
<el-input v-if="isEdit" v-model="form.enterpriseDescribe" placeholder="请输入邮箱" />
<span v-else>{{form.enterpriseDescribe}}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="isEdit">
<p class="text-muted" style="margin:0 40px">北京福通互联科技集团有限公司的搜索词为福通互联用户可根据搜索词搜索到您的企业搜索词必须是来自于企业名称中的字</p>
</el-col>
</el-row>
<el-form-item label="官网地址" prop="websiteAddress">
<el-input v-if="isEdit" v-model="form.websiteAddress" placeholder="请输入官网地址" />
<span v-else>{{form.websiteAddress}}</span>
</el-form-item>
<el-form-item label="电话" prop="mobile">
<el-input v-if="isEdit" v-model="form.mobile" placeholder="请输入电话" />
<span v-else>{{form.mobile}}</span>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-if="isEdit" v-model="form.address" placeholder="请输入详细地址" />
<span v-else>{{form.address}}</span>
</el-form-item>
<el-form-item label="企业注册地详细地址" prop="placeRegistrationAddress">
<el-input v-if="isEdit" v-model="form.placeRegistrationAddress" placeholder="请输入企业注册地详细地址" />
<span v-else>{{form.placeRegistrationAddress}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="认证资料类型" prop="certificatedInformationType">
<el-select v-if="isEdit" v-model="form.certificatedInformationType" placeholder="请选择认证资料类型">
<el-option
v-for="dict in certificatedInformationTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.certificatedInformationType | filterCertificatedInformationTypeOptions(that)}}</span>
</el-form-item>
<el-form-item label="联系人姓名" prop="duty">
<el-input v-if="isEdit" v-model="form.duty" placeholder="请输入联系人姓名" />
<span v-else>{{form.duty}}</span>
</el-form-item>
<el-form-item label="联系方式" prop="contactInformation">
<el-input v-if="isEdit" v-model="form.contactInformation" placeholder="请输入联系方式" />
<span v-else>{{form.contactInformation}}</span>
</el-form-item>
<el-form-item label="省代码" prop="provinceCode">
<el-select v-if="isEdit" v-model="form.provinceCode" placeholder="请选择省代码" @change="changeProvince">
<el-option
v-for="dict in provinceCodeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<span v-else>{{form.provinceCode | filterProvinceCodeOptions(that)}}</span>
</el-form-item>
<el-form-item label="市代码" prop="cityCode">
<el-select v-if="isEdit" v-model="form.cityCode" placeholder="请选择市代码" @change="changeCity">
<el-option
v-for="(item,index) in cityCodeOptions"
:key="index"
:label="item.name"
:value="item.areaCode+''"
></el-option>
</el-select>
<span v-else>{{form.cityCode | filterCityCodeOptions(that)}}</span>
</el-form-item>
<el-form-item label="区代码" prop="areaCode">
<el-select v-if="isEdit" v-model="form.areaCode" placeholder="请选择县代码" @change="changeArea">
<el-option
v-for="(item,index) in areaCodeOptions"
:key="index"
:label="item.name"
:value="item.areaCode+''"
></el-option>
</el-select>
<span v-else>{{form.areaCode | filterAreaCodeOptions(that)}}</span>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-if="isEdit" v-model="form.remarks" placeholder="请输入备注" />
<span v-else>{{form.remarks}}</span>
</el-form-item>
<el-form-item label="企业logo" prop="logo">
<imageUpload v-if="isEdit" v-model="form.logo"/>
<img v-else :src="form.logo" class="pic-item">
</el-form-item>
<el-form-item label="营业执照照片" prop="companyImg">
<imageUpload v-if="isEdit" v-model="form.companyImg"/>
<img v-else :src="form.companyImg" class="pic-item">
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="法人证件正面照片" prop="faceIdImg">
<imageUpload v-if="isEdit" v-model="form.faceIdImg"/>
<img v-else :src="form.faceIdImg" class="pic-item">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人证件反面照片" prop="rearIdImg">
<imageUpload v-if="isEdit" v-model="form.rearIdImg"/>
<img v-else :src="form.rearIdImg" class="pic-item">
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<div class="text-center mt20" v-if="isEdit">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="isEdit = false">取消</el-button>
</el-form>
<div v-if="isEdit" class="dialog-footer text-center">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
<div class="text-center mt20" v-else>
<el-button @click="isEdit = true">编辑</el-button>
<div v-else class="text-center">
<el-button type="primary" @click="onClickEdit"> </el-button>
</div>
</el-form>
</div>
</div>
</template>
<script>
import ImageUpload from '@/components/ImageUpload';
import { getEnterPriseInfoByLogin,addEnterpriseManager, updateEnterpriseManager,getAreaByParentId} from "@/api/system/enterpriseManager";
import {validatAlphabetAndNum,validAlphabets,validatePhone,validEmail,validatePasswordStrong,validateIDCard} from "@/utils/validate"
export default {
name: "EnterpriseManager",
components: {
ImageUpload,
},
data() {
return {
isEdit:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
nameLegalRepresentative: null
},
//
form: {},
rules: {
address: [
{ required: true, message: "详细地址不能为空", trigger: "blur" }
],
certificateNumberLegalRepresentative: [
{ required: true, message: "法定代表人证件号码不能为空", trigger: "blur" }
],
contactInformation: [
{ required: true, message: "联系方式不能为空", trigger: "blur" }
],
corporateUnifiedSocialCreditCode: [
{ required: true, message: "统一社会信用代码不能为空", trigger: "blur" }
],
email: [
{ required: true, message: "邮箱不能为空", trigger: "blur" }
],
enterpriseDescribe: [
{ required: true, message: "企业简介不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "企业名称不能为空", trigger: "blur" }
],
nameLegalRepresentative: [
{ required: true, message: "法定代表人名称不能为空", trigger: "blur" }
],
companyImg: [
{ required: true, message: "营业执照照片不能为空", trigger: "blur" }
],
faceIdImg: [
{ required: true, message: "法人证件正面照片不能为空", trigger: "blur" }
],
}
};
},
created() {
},
methods: {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.isEdit == true) {
name: "EnterpriseManager",
components: {
ImageUpload,
},
data() {
const checkPhoneNum = (rule, value, callback) => {
if (!validatePhone(value)) {
return callback(new Error('请输入正确的手机号码'));
} else {
callback()
}
}
});
};
const checkEmailAddr = (rule, value, callback) => {
if (!validEmail(value)) {
return callback(new Error('请输入正确的邮箱地址'));
} else {
callback()
}
};
return {
that:this,
isEdit:false,
isAdd:true,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
nameLegalRepresentative: null
},
//
certificatedInformationTypeOptions: [],
//
corporateUnifiedSocialCreditTypeOptions: [],
//
enterpriseIndustryBigTypeOptions: [],
//
enterpriseIndustrySmallTypeOptions: [],
//
enterpriseTypeOptions: [],
//
provinceCodeOptions: [],
//
cityCodeOptions: [],
//
areaCodeOptions: [],
//
typeLegalRepresentativeOptions: [],
//
form: {},
params:{},
//
rules: {
address: [
{ required: true, message: "详细地址不能为空", trigger: "blur" }
],
certificateNumberLegalRepresentative: [
{ required: true, message: "法定代表人证件号码不能为空", trigger: "blur" }
],
certificatedInformationType: [
{ required: true, message: "认证资料类型不能为空", trigger: "change" }
],
contactInformation: [
{ required: true, message: "联系方式不能为空", trigger: "blur" }
],
corporateUnifiedSocialCreditCode: [
{ required: true, message: "统一社会信用代码不能为空", trigger: "blur" }
],
corporateUnifiedSocialCreditType: [
{ required: true, message: "统一社会信用代码类型不能为空", trigger: "change" }
],
duty: [
{ required: true, message: "联系人姓名不能为空", trigger: "blur" }
],
email: [
{ required: true, message: "邮箱不能为空", trigger: "blur" },
{ validator: checkEmailAddr, trigger: 'blur' }
],
enterpriseDescribe: [
{ required: true, message: "企业简介不能为空", trigger: "blur" }
],
enterpriseIndustryBigType: [
{ required: true, message: "企业行业大类型不能为空", trigger: "change" }
],
enterpriseIndustrySmallType: [
{ required: true, message: "企业行业小类型不能为空", trigger: "change" }
],
enterpriseType: [
{ required: true, message: "企业类型不能为空", trigger: "change" }
],
mobile: [
{ required: true, message: "电话不能为空", trigger: "blur" },
{validator:checkPhoneNum,trigger:"blur"}
],
name: [
{ required: true, message: "企业名称不能为空", trigger: "blur" }
],
nameLegalPersonLiabilitySubject: [
{ required: true, message: "法人责任主体名称不能为空", trigger: "blur" }
],
nameLegalRepresentative: [
{ required: true, message: "法定代表人名称不能为空", trigger: "blur" }
],
provinceCode: [
{ required: true, message: "省代码不能为空", trigger: "change" }
],
cityCode: [
{ required: true, message: "市代码不能为空", trigger: "change" }
],
areaCode: [
{ required: true, message: "区代码不能为空", trigger: "change" }
],
typeLegalRepresentative: [
{ required: true, message: "法定代表人类型不能为空", trigger: "change" }
],
companyImg: [
{ required: true, message: "营业执照照片不能为空", trigger: "blur" }
],
faceIdImg: [
{ required: true, message: "法人证件正面照片不能为空", trigger: "blur" }
],
rearIdImg: [
{ required: true, message: "法人证件反面照片不能为空", trigger: "blur" }
],
}
};
},
//
cancel() {
this.open = false;
this.reset();
filters: {
//
filterTypeLegalRepresentative(value,that){
if (!value) return ''
let aFilters = that.typeLegalRepresentativeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterCorporateUnifiedSocialCreditTypeOptions(value,that){
if (!value) return ''
let aFilters = that.corporateUnifiedSocialCreditTypeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterEnterpriseIndustryBigTypeOptions(value,that){
if (!value) return ''
let aFilters = that.enterpriseIndustryBigTypeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterEnterpriseIndustrySmallTypeOptions(value,that){
if (!value) return ''
let aFilters = that.enterpriseIndustrySmallTypeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterEnterpriseTypeOptions(value,that){
if (!value) return ''
let aFilters = that.enterpriseTypeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterCertificatedInformationTypeOptions(value,that){
if (!value) return ''
let aFilters = that.certificatedInformationTypeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterProvinceCodeOptions(value,that){
if (!value) return ''
let aFilters = that.provinceCodeOptions.filter(item => {
return item.dictValue == value
})
return aFilters.length > 0 ? aFilters[0].dictLabel : ''
},
//
filterCityCodeOptions(value,that){
if (!value) return ''
let aFilters = that.cityCodeOptions.filter(item => {
return item.areaCode == value
})
return aFilters.length > 0 ? aFilters[0].name : ''
},
//
filterAreaCodeOptions(value,that){
if (!value) return ''
// value = value.toString()
let aFilters = that.areaCodeOptions.filter(item => {
return item.areaCode == value
})
return aFilters.length > 0 ? aFilters[0].name : ''
},
},
//
reset() {
this.form = {
enterpriseid: null,
address: null,
certificateNumberLegalRepresentative: null,
contactInformation: null,
corporateUnifiedSocialCreditCode: null,
email: null,
enterpriseDescribe: null,
logo: null,
name: null,
nameLegalRepresentative: null,
placeRegistrationAddress: null,
companyImg: null,
faceIdImg: null,
};
this.resetForm("form");
created() {
getEnterPriseInfoByLogin().then(res => {
if(res.data)
{
this.form = res.data
this.isAdd = false
if(res.data.provinceCode)
{
this.getCityOrAreaList(res.data.provinceCode,1)
}
if(res.data.cityCode)
{
this.getCityOrAreaList(res.data.cityCode,2)
}
} else {
this.isAdd = true
this.isEdit = true
}
})
this.getDicts("business_license_category").then(response => {
this.certificatedInformationTypeOptions = response.data;
});
this.getDicts("credit_code").then(response => {
this.corporateUnifiedSocialCreditTypeOptions = response.data;
});
this.getDicts("industry_main_category").then(response => {
this.enterpriseIndustryBigTypeOptions = response.data;
});
this.getDicts("industry_sub_category").then(response => {
this.enterpriseIndustrySmallTypeOptions = response.data;
});
this.getDicts("enterprise_category").then(response => {
this.enterpriseTypeOptions = response.data;
});
this.getDicts("province_code").then(response => {
this.provinceCodeOptions = response.data;
});
// this.getDicts("province_code").then(response => {
// this.cityCodeOptions = response.data;
// });
// this.getDicts("province_code").then(response => {
// this.areaCodeOptions = response.data;
// });
this.getDicts("credential_type_code").then(response => {
this.typeLegalRepresentativeOptions = response.data;
});
},
}
methods: {
//ID,type:12
getCityOrAreaList(parentId,type){
getAreaByParentId({parentId:parseInt(parentId)}).then(res => {
if(type == 1) {
this.cityCodeOptions = res.data;
} else if (type == 2) {
this.areaCodeOptions = res.data;
}
// this.$forceUpdate()
})
},
//
onClickEdit(){
//
this.params = JSON.parse(JSON.stringify(this.form))
this.isEdit = true
},
changeProvince(newVal){
this.form.cityCode = null
this.form.areaCode = null
this.getCityOrAreaList(newVal,1)
},
changeCity(newVal){
this.form.areaCode = null
this.getCityOrAreaList(newVal,2)
},
changeArea(newVal){
this.$forceUpdate()
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.isEdit == true) {
if(this.isAdd) {
addEnterpriseManager(this.form).then(res => {
console.log(res);
this.msgSuccess("添加成功");
this.isAdd = false
})
} else {
updateEnterpriseManager(this.form).then(res => {
console.log(res);
this.msgSuccess("修改成功");
})
}
this.isEdit = false
}
}
});
},
//
cancel() {
this.isEdit = false;
this.form = {}
this.form = this.params
this.resetForm("form");
// this.reset();
},
//
reset() {
this.form = {
enterpriseid: null,
address: null,
certificateNumberLegalRepresentative: null,
contactInformation: null,
corporateUnifiedSocialCreditCode: null,
email: null,
enterpriseDescribe: null,
logo: null,
websiteAddress:null,
name: null,
nameLegalRepresentative: null,
placeRegistrationAddress: null,
companyImg: null,
faceIdImg: null,
};
this.resetForm("form");
},
}
};
</script>
<style lang="scss" scoped>
.el-form {
position: relative;
width: 1000px;
width: 1200px;
margin: 0 auto;
}
.pic-item {
position: relative;
width: 146px;
height: 146px;
}
.apply-wait,.apply-reject,.apply-adopt{
p{
text-align: center;
font-size: 18px;
color: #666;
margin-bottom: 15px;
}
}
</style>

7
src/views/company/manager.vue

@ -27,9 +27,8 @@
<el-table v-loading="loading" :data="enterpriseManagerList">
<el-table-column label="企业名称" align="center" prop="name" />
<el-table-column label="统一社会信用代码" align="center" prop="corporateUnifiedSocialCreditCode" />
<el-table-column label="法定代表人名称" align="center" prop="nameLegalRepresentative" />
<el-table-column label="法定代表人证件号码" align="center" prop="certificateNumberLegalRepresentative" />
<el-table-column label="联系人姓名" align="center" prop="duty" />
<el-table-column label="联系方式" align="center" prop="contactInformation" />
<el-table-column label="联系方式" align="center" prop="contactInformation" />
<el-table-column label="详细地址" align="center" prop="address" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -193,7 +192,7 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const enterpriseid = row.enterpriseid
const enterpriseid = row.enterpriseId
getEnterpriseManager(enterpriseid).then(response => {
this.form = response.data;
this.open = true;

3
src/views/company/search.vue

@ -21,7 +21,6 @@
<el-button size="mini" @click="resetAdvanced">重置</el-button>
<el-button size="mini" @click="advancedSearch = false">确定</el-button>
</div>
</div>
<div class="search-item">
<span class="search-lable">企业类型</span>
@ -396,6 +395,8 @@ export default {
}
.advanced-search {
position: absolute;
z-index: 999;
background: #fff;
left: 50%;
transform: translateX(-50%);
margin-top: 20px;

10
src/views/home/index.vue

@ -84,12 +84,12 @@ export default {
this.echartsData = {
"enterpriseRegeditCount": res.data.enterpriseRegeditCount,
"userRegeditCount": res.data.userRegeditCount,
"onlineUserCount": res.data.onlineUserCount
"unreviewedEnterpriseCount": res.data.unreviewedEnterpriseCount,
"auditedEnterpriseCount": res.data.auditedEnterpriseCount
}
this.setEcharts(this.echarts_1,this.echartsData.enterpriseRegeditCount,'注册企业')
this.setEcharts(this.echarts_2,this.echartsData.userRegeditCount,'注册用户')
this.setEcharts(this.echarts_3,this.echartsData.onlineUserCount,'在线用户')
this.setEcharts(this.echarts_2,this.echartsData.unreviewedEnterpriseCount,'待审核企业数')
this.setEcharts(this.echarts_3,this.echartsData.auditedEnterpriseCount,'已审核企业数')
})
},
jumpRouter(name){
@ -105,7 +105,7 @@ export default {
var option = {
title: {
text: title,
left:'38%',
left:'center',
top:'40px',
textStyle: {
fontWeight: 'normal',

55
src/views/home/index2.vue

@ -14,14 +14,31 @@
<div class="company-info-block">
<el-row>
<el-col :span="4">
<img src="@/assets/images/profile.jpg" alt="">
<img :src="enterpriseUrl" style="width:200px;height:200px">
<br>
<button class="auth-btn pointer">已认证</button>
</el-col>
<el-col :span="20">
<el-col :span="8">
<div><label class="company-info-lable text-muted">企业名称</label><span class="company-info-span">{{companyInfo.enterpriseName}}</span></div>
<div><label class="company-info-lable text-muted">用户名</label><span class="company-info-span">{{companyInfo.userName}}</span></div>
<div><label class="company-info-lable text-muted">手机号</label><span class="company-info-span">{{companyInfo.phonenumber}}</span></div>
<div><label class="company-info-lable text-muted">上次登录时间</label><span class="company-info-span">{{companyInfo.loginDate.split('T')[0]}}</span></div>
<div><label class="company-info-lable text-muted">上次登录时间</label><span class="company-info-span">{{companyInfo.loginDate}}</span></div>
</el-col>
<el-col :span="12">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="是否公开:">
<el-radio-group v-model="form.isItPublic" @change="changeIsPublic">
<el-radio label="0" ></el-radio>
<el-radio label="1" ></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="企业名片:" prop="enterpriseId">
<vue-qr ref="Qrcode" :logoSrc="imageUrl" :text="qrTest" :size="200" :margin="0"></vue-qr>
</el-form-item>
<el-form-item >
<el-button type="primary" size="mini" @click="downloadImg">下载企业名片</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</div>
@ -57,8 +74,12 @@ import {getDay} from "@/utils/index"
// import echarts from "echarts";
import { list} from "@/api/monitor/operlog";
import {getIndexInfo} from "@/api/home/index"
import vueQr from 'vue-qr'
export default {
name:'home',
components: {
vueQr
},
data() {
return {
day:getDay(),
@ -70,7 +91,15 @@ export default {
pageNum: 1,
pageSize: 8
},
companyInfo:{}
companyInfo:{},
enterpriseUrl:'',
//
form: {
isItPublic:'0'
},
imageUrl:"",
companyID:'',
qrTest:"",
}
},
mounted() {
@ -89,14 +118,30 @@ export default {
this.tableData = response.rows;
});
getIndexInfo().then(res =>{
console.log(res);
this.companyInfo = res.data
if(this.companyInfo.loginDate) {
let times = this.companyInfo.loginDate.split("T")[0] + ' ' + this.companyInfo.loginDate.split("T")[1].split(".")[0]
this.companyInfo.loginDate = times
}
this.enterpriseUrl = this.companyInfo.enterpriseUrl || require("@/assets/images/profile.jpg")
this.companyID = this.companyInfo.enterpriseId
if(this.companyInfo.enterpriseUrl) {
this.imageUrl = require(this.companyInfo.enterpriseUrl)
}
this.changeIsPublic()
})
},
downloadImg () {
const iconUrl = this.$refs.Qrcode.$el.src
let a = document.createElement('a')
let event = new MouseEvent('click')
a.download = '二维码'
a.href = iconUrl
a.dispatchEvent(event)
},
changeIsPublic(val){
this.qrTest = this.companyID+'&' + this.form.isItPublic
},
jumpRouter(name){
this.$router.push({name:name})
},

10
src/views/login/login.vue

@ -1,7 +1,8 @@
<template>
<div class="login">
<img src="../../assets/images/logo.png" class="logo-pic">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">食品原材料</h3>
<h3 class="title">用户登录</h3>
<el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
@ -55,7 +56,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2021 ruoyi.vip All Rights Reserved.</span>
<span>Copyright © 2018-2021 北京福通互联科技集团有限公司 All Rights Reserved.</span>
</div>
</div>
</template>
@ -157,6 +158,11 @@ export default {
height: 100%;
background-image: url("../../assets/images/login-background.jpg");
background-size: cover;
.logo-pic {
top: 50px;
left: 20%;
position: absolute;
}
}
.title {
margin: 0px auto 30px auto;

199
src/views/login/register.vue

@ -3,22 +3,9 @@
<div class="header-container">
供应商·企业注册
</div>
<el-steps
:space="250"
:active="stepActive"
finish-status="process"
process-status="wait"
align-center
>
<el-step title="注册须知" description="确认注册须知内容"></el-step>
<el-step title="用户注册" description="完善用户基本信息"></el-step>
<el-step title="企业认证" description="认证企业资质"></el-step>
</el-steps>
<div class="flex-box">
<div class="step-block">
<p class="notify" v-show="stepActive == 1">注册企业请使用真实有效的企业信息与用户信息
系统平台会对注册企业进行信息认证只有认证通过的企业才可以使用本平台</p>
<el-form :model="form" :rules="rules" ref="userInfo" class="el-form-new" v-show="stepActive == 2">
<el-form :model="form" :rules="rules" ref="userInfo" class="el-form-new" >
<el-form-item label="姓名:" :label-width="formLabelWidth" prop="name">
<el-input v-model="form.name" autocomplete="off" size="small" maxlength="50"></el-input>
</el-form-item>
@ -46,61 +33,12 @@
</el-form-item>
</el-form>
<el-form :model="companyForm" :rules="companyRules" ref="companyInfo" v-show="stepActive == 3">
<el-row>
<el-col :span="12">
<el-form-item label="法人姓名:" :label-width="formLabelWidth" prop="enLegalName">
<el-input maxlength="50" v-model="companyForm.enLegalName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="法人证件号码:" :label-width="formLabelWidth" prop="enCeNumber">
<el-input maxlength="40" v-model="companyForm.enCeNumber" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="企业名称:" :label-width="formLabelWidth" prop="name">
<el-input maxlength="50" v-model="companyForm.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="统一社会信用代码:" :label-width="formLabelWidth" prop="code">
<el-input maxlength="18" v-model="companyForm.code" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="注册详细地址:" :label-width="formLabelWidth" prop="enDetAddress">
<el-input maxlength="100" v-model="companyForm.enDetAddress" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人证件:" :label-width="formLabelWidth" prop="enCeAddressZ">
<el-upload
class="avatar-uploader flex-1"
:action="upload_file"
:show-file-list="false"
:on-success="handlePhotoSuccess"
:before-upload="beforeAvatarUpload"
accept="image/png,image/jpeg,image/gif,image/bmp"
>
<img v-if="photoUrl" :src="photoUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="企业营业执照:" :label-width="formLabelWidth" prop="enOpeAddress">
<el-upload
class="avatar-uploader"
:action="upload_file"
:show-file-list="false"
:on-success="handleLicenceSuccess"
:before-upload="beforeAvatarUpload"
accept="image/png,image/jpeg,image/gif,image/bmp"
>
<img v-if="businessLicenceUrl" :src="businessLicenceUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<div class="flex-box">
<el-button type="danger" @click="goBack">{{backBtn[stepActive-1]}}</el-button>
<el-button type="primary" @click="nextStep">{{nextBtn[stepActive-1]}}</el-button>
<el-button type="danger" @click="resetForm('userInfo')">返回</el-button>
<el-button type="primary" @click="submitForm('userInfo')">注册</el-button>
</div>
</div>
@ -108,7 +46,7 @@
<script>
import CheckPasswordStrong from '@/components/CheckPasswordStrong';
import {sendMessage,registerUser} from "@/api/login"
import {sendRegeditCode,registerUser} from "@/api/login"
import {validatAlphabetAndNum,validAlphabets,validatePhone,validEmail,validatePasswordStrong,validateIDCard} from "@/utils/validate"
export default {
@ -156,55 +94,11 @@ export default {
callback()
}
};
//
const checkIDNum = (rule, value, callback) => {
if (!value) {
return callback(new Error("请输入法人证件号码"));
} else {
if (!validateIDCard(value)) {
return callback(new Error("请输入正确格式的身份证件号码"));
} else {
callback();
}
}
};
//
const checkCode = (rule, value, callback) => {
if (!value) {
return callback(new Error("请输入统一社会信用代码"));
} else {
if (validatAlphabetAndNum(value)) {
callback();
} else {
return callback(new Error("请输入正确的统一社会信用代码"));
}
}
};
//
const checkPhotoZ = (rule, value, callback) => {
if ("" == value || !value) {
return callback(new Error("请上传正面法人证件照"));
} else {
callback();
}
};
//
const checkPhotoOpe = (rule, value, callback) => {
if ("" == value || !value) {
return callback(new Error("请上传营业执照"));
} else {
callback();
}
};
return {
nextBtn: ['我已阅读并同意','下一步','认证'],
backBtn: ['拒绝并返回','上一步','上一步'],
upload_file:process.env.VUE_APP_BASE_API + '',
stepActive: 1, //
sendStatus:false,
timer:60,
photoUrl: "", //
businessLicenceUrl: "", ///
formLabelWidth:'150px',
form:{
name:'',
@ -248,38 +142,6 @@ export default {
{ required: true, message: '请输入短信验证码', trigger: 'blur' }
]
},
companyForm:{
enLegalName:'',
enCeNumber:'',
name:'',
code:'',
enDetAddress:'',
enCeAddressZ: "", //
enOpeAddress: "", //
},
companyRules: {
//form
name: [{ required: true, message: "请输入企业名称", trigger: "blur" }],
code: [
// { required: true, message: "", trigger: "blur" }
{ required: true, validator: checkCode, trigger: "blur" }
],
enLegalName: [
{ required: true, message: "请输入法人姓名", trigger: "blur" }
],
enCeNumber: [
{ required: true, message: "请输入法人证件号码", trigger: "blur" }
],
enDetAddress: [
{ required: true, message: "请输入注册地详细地址", trigger: "blur" }
],
enCeAddressZ: [
{ required: true, validator: checkPhotoZ, trigger: "blur" }
],
enOpeAddress: [
{ required: true, validator: checkPhotoOpe, trigger: "blur" }
]
},
}
},
mounted(){
@ -291,27 +153,13 @@ export default {
// refreshCode:function(){
// document.getElementById("codePic").setAttribute("src",config.API_URL+"/api-login/common/verifycode?" + Math.random())
// },
goBack(){
if(this.stepActive > 1){
this.stepActive--
} else {
window.history.go(-1)
}
},
nextStep(){
if(this.stepActive < 3){
this.stepActive++
} else {
}
},
getSendMessage(){
this.$refs['userInfo'].validateField('telPhone',(valid) => {
if (valid) {
console.log('telPhone error');
return false;
} else {
sendMessage({telPhone:this.form.telPhone,code:'regist'}).then(res => {
sendRegeditCode({phone:this.form.telPhone}).then(res => {
this.$message({
message: res.msg,
type: 'success'
@ -336,12 +184,12 @@ export default {
this.$refs[formName].validate((valid) => {
if (valid) {
const param ={
name:this.form.name,
nickName:this.form.name,
userName:this.form.userName,
password:this.$md5(this.form.password),
password:this.form.password,
email:this.form.email,
telPhone:this.form.telPhone,
vCode:this.form.vCode
phonenumber:this.form.telPhone,
code:this.form.vCode
}
registerUser(param).then(res => {
this.$message({
@ -360,29 +208,6 @@ export default {
this.$refs[formName].resetFields();
this.$router.go(-1)
},
///
handleLicenceSuccess(res, file) {
this.businessLicenceUrl = URL.createObjectURL(file.raw);
this.formData.enOpeAddress = res;
},
//
handlePhotoSuccess(res, file) {
this.photoUrl = URL.createObjectURL(file.raw);
this.formData.enCeAddressZ = res;
},
//
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 2;
const fileType = ['image/jpeg','image/png','image/jpg','image/gif','image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!isJPG) {
this.$message.error('上传图片只能是 JPG、PNG、GIF、BMP 格式!');
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 2MB!");
}
return isLt2M && isJPG;
}
}
}
</script>
@ -432,7 +257,7 @@ export default {
position: relative;
margin: 50px 0;
width: 800px;
height: 500px;
height: 530px;
border-radius: 20px;
box-shadow: 0 0 10px 1px #a5a5a5;
padding: 30px;

35
src/views/login/retrievePassword.vue

@ -98,10 +98,10 @@
<script>
import {
userToTelphone,
sendMessage,
smsVerification,
setUpPassword
getUserByUserName,
sendModifyPasswordCode,
validModifyPasswordCode,
forgetPassword
} from "@/api/login";
import { validatePasswordStrong } from "@/utils/validate";
export default {
@ -126,7 +126,7 @@ export default {
return {
timer: 10, //
tagTimer: null, //
stepActive: 4, //
stepActive: 1, //
formLabelWidth: "120px", //formlable
codeSrc: "", //
step0: {
@ -181,28 +181,27 @@ export default {
this.$refs[formName].validate(valid => {
if (valid) {
if (formName == "step0") {
userToTelphone({ userName: this.step0.username }).then(res => {
this.step1.telPhone = res.data;
this.step2.telPhone = res.data;
getUserByUserName({ userName: this.step0.username }).then(res => {
this.step1.telPhone = res.data.phonenumber;
this.step2.telPhone = res.data.phonenumber;
this.stepActive++;
});
} else if (formName == "step1") {
let param = {
telPhone:this.step1.telPhone,
vCode:this.step1.code,
code:'reset'
phonenumber:this.step1.telPhone,
code:this.step1.code,
}
smsVerification(param).then(res => {
validModifyPasswordCode(param).then(res => {
this.stepActive++;
});
} else if (formName == "step2") {
const param = {
userName: this.step0.username,
password: this.$md5(this.step2.newPass),
telPhone: this.step2.telPhone,
vCode: this.step1.code
// userName: this.step0.username,
password: this.step2.newPass,
phonenumber: this.step2.telPhone,
code: this.step1.code
};
setUpPassword(param).then(res => {
forgetPassword(param).then(res => {
this.stepActive++;
this.startTimer();
});
@ -214,7 +213,7 @@ export default {
});
},
getSendMessage() {
sendMessage({ telPhone: this.step1.telPhone,code:'reset' }).then(res => {
sendModifyPasswordCode({ phone: this.step1.telPhone}).then(res => {
this.$message({
message: res.msg,
type: "success"

4
src/views/system/enterprise/index.vue

@ -35,7 +35,7 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
@ -44,7 +44,7 @@
@click="handleAdd"
v-hasPermi="['system:enterprise:add']"
>邀请</el-button>
</el-col>
</el-col> -->
<!-- <el-col :span="1.5">
<el-button
type="success"

27
src/views/system/qualification/index.vue

@ -24,7 +24,7 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:qualification:add']"
>新增</el-button>
>添加资质</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
@ -74,7 +74,11 @@
</template>
</el-table-column>
<el-table-column label="证书有效期" align="center" prop="certificateValidityPeriod" />
<el-table-column label="是否公开" align="center" prop="isItPublic" :formatter="isItPublicFormat" />
<el-table-column label="是否公开" align="center" prop="isItPublic">
<template slot-scope="scope">
{{scope.row.isItPublic == 0 ? '是':'否'}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -131,11 +135,8 @@
</el-form-item>
<el-form-item label="是否公开">
<el-radio-group v-model="form.isItPublic">
<el-radio
v-for="dict in isItPublicOptions"
:key="dict.dictValue"
:label="parseInt(dict.dictValue)"
>{{dict.dictLabel}}</el-radio>
<el-radio :label="0" ></el-radio>
<el-radio :label="1" ></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@ -210,9 +211,9 @@ export default {
},
created() {
this.getList();
this.getDicts("sys_normal_disable").then(response => {
this.isItPublicOptions = response.data;
});
// this.getDicts("sys_normal_disable").then(response => {
// this.isItPublicOptions = response.data;
// });
},
methods: {
/** 查询企业资质列表 */
@ -225,9 +226,9 @@ export default {
});
},
//
isItPublicFormat(row, column) {
return this.selectDictLabel(this.isItPublicOptions, row.isItPublic);
},
// isItPublicFormat(row, column) {
// return this.selectDictLabel(this.isItPublicOptions, row.isItPublic);
// },
//
cancel() {
this.open = false;

Loading…
Cancel
Save