Browse Source

二级节点接口变更,页面更改

master
DESKTOP-00SUCB6\Administrator 3 years ago
parent
commit
410c97f070
  1. 4
      .env.development
  2. 15
      src/api/api.js
  3. 96
      src/api/enterpriseManagement.js
  4. 9
      src/api/productManagement.js
  5. 10
      src/api/register.js
  6. 2
      src/components/Header/Header.vue
  7. 58
      src/components/Header/onlyHeader.vue
  8. 39
      src/router/index.js
  9. 7
      src/styles/index.scss
  10. 213
      src/views/agreement/privacyStatement.vue
  11. 223
      src/views/agreement/userAgreement.vue
  12. 688
      src/views/fids/enterpriseManagement/enterpriseCertification/Index copy.vue
  13. 681
      src/views/fids/enterpriseManagement/enterpriseCertification/Index.vue
  14. 323
      src/views/fids/enterpriseManagement/enterpriseCertification/components/show.vue
  15. 780
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step1.vue
  16. 561
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step2.vue
  17. 410
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step3.vue
  18. 31
      src/views/fids/productManagement/productCategoryManagement/Index.vue
  19. 204
      src/views/fids/productManagement/sendCodeListByProduct/Index.vue
  20. 2
      src/views/login/login.vue
  21. 37
      src/views/register/register.vue

4
.env.development

@ -4,9 +4,9 @@ ENV = 'development'
VUE_APP_PROJECT_NAME = 'fids-ui'
# SpringCloud项目使用这个 开发环境请求域名前缀, 该变量仅仅开发环境需要设置
VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://172.119.50.111:8900'
VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://124.70.30.20:8900'
# SpringBoot 项目使用这个
#VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://124.70.30.20:8900'
#VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://172.119.50.111:8900'
# 请求域名前缀, 该变量仅仅生产环境需要设置
VUE_APP_PROD_REQUEST_DOMAIN_PREFIX = ''

15
src/api/api.js

@ -7,6 +7,7 @@ export const ROUTER = `/oauth/menu/router`; //获取路由
export const RESOURCE = `/oauth/resource/visible`; //查询用户可用的所有资源
//注册模块 register.js
export const REGISTER = `/tenant/tenant/register`; //注册
export const REGISTERNEW = `/tenant/tenantNew/register`; //注册--新
export const GETEMAILCAPTCHA = `/msgs/mailverification/sendRegisterEmail`; //获取验证码
export const VERIFYAUTHCODEREGISTEREMAIL = `/msgs/mailverification/verifyAuthCodeRegisterEmail`; //校验电子邮件验证码
export const VERIFY_EMAIL_EXIST = `/tenant/tenant/verifyEmail/`; //校验邮箱是否已被注册
@ -15,9 +16,22 @@ export const VERIFY_EMAIL_EXIST = `/tenant/tenant/verifyEmail/`; //校验邮箱
export const LINKAGE = `/tenant/commonArea/linkage`; //省市区
export const ENTERPRISEAUTH = `/tenant/tenant/examine`; //企业认证
export const TENANTGETCODE = '/tenant/tenant/getcode' //通过code获取企业信息
export const TENANTGETCODENEW = '/tenant/tenant/view1' //通过code获取企业信息--新step1
export const TENANTGETCODENEWSTEP2 = '/tenant/tenant/view2' //通过code获取企业信息--新step2
export const TENANTGETCODENEWSTEP3 = '/tenant/tenant/view3' //通过code获取企业信息--新step3
export const TENANTGETCODEALL = '/tenant/tenant/viewAll' //通过code获取企业信息--新 all
export const INFORMATIONMODIFY = `/tenant/tenant/updateTenant`; //信息维护修改
export const SELECTTYPE = `/tenant/commonIndustry/allTree`; //行业类型
export const SELECTTYPENEW = `/tenant/commonIndustry/linkage`; //行业类型--新
export const SELECTOTHERTYPENEW = `/tenant/commonIndustry/dic`; //除行业类型外其他类型--新
export const INDUSTRYTYPE = `/tenant/commonIndustry/linkageEnumeration`; //行业小类
export const ENTERPRISEAUTHSTEP1 = `/tenant/tenant/save1`; //企业认证--新step1
export const ENTERPRISEAUTHSTEP2 = `/tenant/tenant/save2`; //企业认证--新step2
export const ENTERPRISEAUTHSTEP3 = `/tenant/tenant/save3`; //企业认证-保存-新step3
export const ENTERPRISEAUTHSUBMITSTEP3 = `/tenant/tenant/commit`; //企业认证-提交-新step3
export const INDUSTRYTYPESTEP3 = `/tenant/commonIndustry/treeQuery`; //服务行业四级联动--新step3
export const TENANTGET_TENANT_NAME = '/tenant/tenant/getTenantName' //登录获取企业名称
//产品管理模块 productManagement.js
@ -29,6 +43,7 @@ export const DELETECOMMODITY = `/product/commodityInfo/deleteCommodity`; //动
export const SENDINGCODEPREVIEW = `/sending/codeSendingInfo/previewCodeSending`; //发码预览
export const SENDINGCODESUBMIT = `/sending/codeSendingInfo/saveCodeSending`; //发码提交
export const PRODUCTSENDCODELIST = `/sending/codeSendingInfo/pageCodeSending`; //发码历史
export const SENDCODELISTBYPRODUCT = `/sending/codeSendingInfo/pageCodeSendingByCommodityId`; //发码历史by产品
export const MARKMANAGEMENTLIST = `/tagManagement/encoding/queryCommoditySending`; //产品标识管理列表
export const UNIFORMSTYLE = `/tag/tagType/queryTagTypeUNIFY`; //统一标签样式查询

96
src/api/enterpriseManagement.js

@ -1,12 +1,22 @@
import axiosApi from "./AxiosApi";
import myAxios from "@/api/myAxios";
import { ENTERPRISEAUTH, INFORMATIONMODIFY, LINKAGE, SELECTTYPE, INDUSTRYTYPE, TENANTGETCODE, TENANTGET_TENANT_NAME } from "./api";
import { ENTERPRISEAUTH, INFORMATIONMODIFY, LINKAGE, SELECTTYPE,SELECTTYPENEW,ENTERPRISEAUTHSTEP1,
ENTERPRISEAUTHSTEP2,ENTERPRISEAUTHSTEP3,ENTERPRISEAUTHSUBMITSTEP3,
INDUSTRYTYPE,INDUSTRYTYPESTEP3,SELECTOTHERTYPENEW, TENANTGETCODE,TENANTGETCODEALL,
TENANTGETCODENEW,TENANTGETCODENEWSTEP2,TENANTGETCODENEWSTEP3, TENANTGET_TENANT_NAME } from "./api";
//获取所有企业信息--新
export function enterpriseInfoAll(code) {
return myAxios({
method: 'GET',
url: `${TENANTGETCODEALL}/${code}`
})
}
//省市区
export function registerArea(parentId) {
return axiosApi({
method: 'GET',
url: LINKAGE,
data: { parentId }
// data: { parentId }
})
}
//行业类型
@ -17,6 +27,29 @@ export function selectType(parentId) {
data: { parentId }
})
}
//行业类型--新
export function selectTypeNew(parentId) {
return axiosApi({
method: 'GET',
url: SELECTTYPENEW,
data: { parentId }
})
}
//服务行业四级联动--新step3
export function industryTypeStep3() {
return axiosApi({
method: 'GET',
url: INDUSTRYTYPESTEP3
})
}
//除行业类型外其他类型--新
export function selectOtherTypeNew() {
return axiosApi({
method: 'GET',
url: SELECTOTHERTYPENEW
})
}
export function industryType(enumeration) {
return axiosApi({
method: 'GET',
@ -32,7 +65,42 @@ export function enterpriseAuth(data) {
data
})
}
//企业认证--新step1
export function enterpriseAuthNew(data) {
return myAxios({
method: 'POST',
url: ENTERPRISEAUTHSTEP1,
data,
fromData: true
})
}
//企业认证--新step2
export function enterpriseAuthNew2(data) {
return myAxios({
method: 'POST',
url: ENTERPRISEAUTHSTEP2,
data,
fromData: true
})
}
//企业认证-保存-新step3
export function enterpriseAuthNew3(data) {
return myAxios({
method: 'POST',
url: ENTERPRISEAUTHSTEP3,
data,
fromData: true
})
}
//企业认证-提交-新step3
export function enterpriseAuthNewSubmit3(data) {
return myAxios({
method: 'POST',
url: ENTERPRISEAUTHSUBMITSTEP3,
data,
fromData: true
})
}
//信息维护根据code获取企业信息
export function enterpriseInfo(code) {
return myAxios({
@ -40,7 +108,27 @@ export function enterpriseInfo(code) {
url: `${TENANTGETCODE}/${code}`
})
}
//信息维护根据code获取企业信息 -- 新step1
export function enterpriseInfoNew(code) {
return myAxios({
method: 'GET',
url: `${TENANTGETCODENEW}/${code}`
})
}
//信息维护根据code获取企业信息 -- 新step2
export function enterpriseInfoNewStep2(code) {
return myAxios({
method: 'GET',
url: `${TENANTGETCODENEWSTEP2}/${code}`
})
}
//信息维护根据code获取企业信息 -- 新step3
export function enterpriseInfoNewStep3(code) {
return myAxios({
method: 'GET',
url: `${TENANTGETCODENEWSTEP3}/${code}`
})
}
//信息维护提交修改
export function informationModify(data) {
return myAxios({

9
src/api/productManagement.js

@ -7,6 +7,7 @@ import {
SENDINGCODEPREVIEW,
SENDINGCODESUBMIT,
PRODUCTSENDCODELIST,
SENDCODELISTBYPRODUCT,
MARKMANAGEMENTLIST,
BINDLABEL,
BINDLABELHISTORY,
@ -85,6 +86,14 @@ export function productSendCodeList(data) {
data,
})
}
//发码历史by产品
export function sendCodeListByProduct(data) {
return axiosApi({
method: 'POST',
url: SENDCODELISTBYPRODUCT,
data,
})
}
//产品标识管理列表
export function markManagementList(data) {
return axiosApi({

10
src/api/register.js

@ -1,5 +1,5 @@
import axiosApi from "@/api/AxiosApi";
import { GETEMAILCAPTCHA, REGISTER, VERIFYAUTHCODEREGISTEREMAIL, VERIFY_EMAIL_EXIST } from "@/api/api";
import { GETEMAILCAPTCHA, REGISTER,REGISTERNEW, VERIFYAUTHCODEREGISTEREMAIL, VERIFY_EMAIL_EXIST } from "@/api/api";
//注册
export function register(data) {
return axiosApi({
@ -8,6 +8,14 @@ export function register(data) {
data
})
}
//注册--新
export function registerNew(data) {
return axiosApi({
method: 'POST',
url: REGISTERNEW,
data
})
}
//检测企业名称是否存在
export function checkEnterpriseName(name) {
return axiosApi({

2
src/components/Header/Header.vue

@ -56,7 +56,7 @@ export default {
<style lang="scss" scoped>
.header_wrap {
width: 100%;
min-width: 1200px;
min-width: 800px;
height: 80px;
background-color: $ft_bg_header;
display: flex;

58
src/components/Header/onlyHeader.vue

@ -0,0 +1,58 @@
<template>
<div class="header_wrap">
<div class="logo_wrap">
<img :src="logo" alt="福通互联">
</div>
</div>
</template>
<script>
export default {
name: "onlyHeader",
components: {},
props:{},
data() {
return {
logo: require('@/assets/logo_header01.png')
};
},
beforeCreate() {
},
create() {
},
beforeMount() {
},
mounted() {
},
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
},
computed: {},
watch: {},
methods: {}
}
</script>
<style lang="scss" scoped>
.header_wrap {
width: 100%;
min-width: 800px;
height: 80px;
background-color: $ft_bg_header;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 30px;
.logo_wrap{
img{
width: 60px;
height: 60px;
}
}
}
</style>

39
src/router/index.js

@ -14,15 +14,16 @@ Router.prototype.push = function push(location, onResolve, onReject) {
return originalPush.call(this, location).catch(err => err)
}
//基础路由
const baseRouter = [{
path: '/redirect',
component: Layout,
hidden: true,
children: [{
path: '/redirect/:path*',
component: resolve => require(['@/views/redirect/index'], resolve)
}]
},
const baseRouter = [
{
path: '/redirect',
component: Layout,
hidden: true,
children: [{
path: '/redirect/:path*',
component: resolve => require(['@/views/redirect/index'], resolve)
}]
},
{
path: '/',
redirect: '/home',
@ -149,6 +150,22 @@ const baseRouter = [{
meta: {title: 'page404', noCache: true}
}]
},
{
path: "/userAgreement",
name: "userAgreement",
component: () =>
import ('@/views/agreement/userAgreement'),
hidden: false,
alwaysShow: false
},
{
path: "/privacyStatement",
name: "privacyStatement",
component: () =>
import ('@/views/agreement/privacyStatement'),
hidden: false,
alwaysShow: false
},
{
path: "*",
name: "404",
@ -156,7 +173,7 @@ const baseRouter = [{
import ('@/views/error-page/404'),
hidden: false,
alwaysShow: false
}
},
]
const router = new Router({
@ -216,7 +233,7 @@ function go(to, next, routerSource) {
asyncRouter = filterAsyncRouter(routerSource)
store.commit('account/setRoutes', asyncRouter)
router.addRoutes(asyncRouter)
next(to.path)
next(to.fullPath)
}
//生成标准格式的路由对象

7
src/styles/index.scss

@ -152,7 +152,9 @@ aside {
.text-center {
text-align: center
}
.text-right {
text-align: right
}
.sub-navbar {
height: 50px;
line-height: 50px;
@ -280,3 +282,6 @@ aside {
}
}
}
.text-bold {
font-weight: 700;
}

213
src/views/agreement/privacyStatement.vue

@ -0,0 +1,213 @@
<template>
<div class="wrapper">
<only-header></only-header>
<el-row>
<el-col :span="20" :offset="2" class="userAgreement">
<h1>
<span>二级节点业务系统 隐私声明</span>
</h1>
<div class="module">
<div class="module-head">隐私声明</div>
<div class="module-body">
<div class="module-body-section">
<p>"二级节点业务系统"是由二级节点以下简称"我们"为您提供标识注册标识查询数据统计分析系统管理等多种功能的应用</p>
<p>我们非常重视您的个人信息和隐私保护我们尽力保护您的个人信息安全我们将会按照法律要求和业界成熟的安全标准为您的个人信息提供相应的安全保护措施本协议阐述了二级节点业务系统处理的数据以及二级节点业务系统处理数据的方式和目的有助于您了解我们如何收集整理保存加工和提供信息在使用我们的服务前请您仔细阅读</p>
<h3>本协议主要内容如下面所述</h3>
<p>我们不会收集法律法规所禁止采集的信息我们将遵循合法正当必要原则依照本协议及我们与您的其他约定处理您的信息</p>
<p>我们建立了严格的信息安全保障机制</p>
<p>我们将严格依法向您提供服务除法律法规及本协议另有规定外未经您授权我们不会向任何第三方输出您的信息</p>
</div>
<div class="module-body-section">
<h3>我们收集的信息及用途</h3>
<p>在任何情况下我们均将遵循合法正当必要的原则依法收集您的信息除依照国家法律法规公开的信息或本协议另有约定外未经您授权不会收集您的个人信息我们仅收集为您提供服务所必需的信息我们不会收集您的宗教信仰基因指纹血型疾病和病史信息也不会收集您的聊天通话内容及您在社交媒体上的言论</p>
<p>在遵守前述原则的前提下以下情形我们需要收集您的信息用以为您提供服务提升我们的服务质量保障您的帐户安全以及符合国家法律法规及监管规定</p>
<p class="text-bold">1注册和使用信息</p>
<p>为了确认您的身份维护您的权益在您使用二级节点业务系统服务时您可能需提供您的企业相关信息联系方式等具体取决于您所选择的服务在您使用二级节点业务系统服务过程中我们可能需要您提供其他个人资料</p>
<p class="text-bold">2安全管理</p>
<p>为了向您提供安全稳定的服务我们需要记录您使用的服务类别方式及相关操作信息例如所处网络环境设备环境信息以及其他与二级节点业务系统服务相关的信息</p>
<p class="text-bold">3为了提供个性化服务及改进服务质量</p>
<p>为提升您的服务体验及改进服务质量或者为您推荐更优质或更适合的服务我们会收集您反馈的信息</p>
<p class="text-bold">4根据法律法规的要求或为了维护公共安全公共卫生重大公共利益或出于维护您或其他个人的生命财产等重大权益的 我们可能需要收集您的个人信息</p>
<p class="text-bold">5其他</p>
<p>除本协议约定外在向您提供其他业务功能时我们会另行向您说明信息收集的范围与目的并征得您的同意后方收集提供相应服务所必要的您的信息</p>
</div>
<div class="module-body-section">
<h3>我们如何存储和保护信息</h3>
<p>1我们在中国境内收集和产生的信息将存储在中国境内仅为本协议目的本协议中所称中国境内不包含香港特别行政区澳门特别行政区及台湾地区同时我们采取了符合法律要求的技术措施及手段来保障您的信息在整理保存加工等各环节的安全如涉及跨境业务我们需要向境外机构传输境内收集的相关个人信息的我们会按照法律法规和相关监管部门的规定执行并通过签订保密协议等措施要求境外机构对所获得的您的个人信息保密我们仅在本协议所述目的所必需期间和法律法规及监管规定的时限内保存您的个人信息</p>
<p>2我们承诺我们将使信息安全保护达到业界领先的安全水平为保障您的信息安全我们致力于使用各种安全技术及配套的管理体系来尽量降低您的信息被泄露毁损误用非授权访问非授权披露和更改的风险同时我们设立了个人信息保护责任部门建立了相关内控制度对可能接触到您的信息的工作人员采取最小够用授权原则对工作人员处理您的信息的行为进行系统监控不断对工作人员培训相关法律法规及隐私安全准则和安全意识强化宣导并每年组织全体工作人员参加安全考试</p>
<p>3我们已制定信息安全事件应急预案定期组织内部相关人员进行应急响应培训和应急演练使其掌握岗位职责应急处置策略和规程若不幸发生信息安全事件我们将按照法律法规的要求及时向您告知安全事件的基本情况和可能的影响我们已采取或将要采取的处置措施您可自主防范和降低风险的建议对您的补救措施等我们会及时将事件相关情况告知您难以逐一告知用户时我们会采取公告的方式进行告知同时我们还将按照监管部门要求主动上报信息安全事件的处置情况若您的合法权益受损我们将依法承担相应的责任</p>
<p>4请您务必妥善保管好您的二级节点业务系统登录名及其他身份要素您在使用二级节点业务系统服务时我们会通过您的登录名及其他身份要素来识别您的身份一旦泄露了前述信息您可能会蒙受损失并可能对您产生不利如您发现二级节点业务系统登录名及/或其他身份要素可能或已经泄露时请您立即和我们取得联系以便我们及时采取相应措施以避免或降低损失</p>
<p>5在您终止使用二级节点业务系统服务后我们会停止对您的信息的收集和使用法律法规另有规定或我们与您另有约定的除外</p>
</div>
<div class="module-body-section">
<h3>我们如何使用信息</h3>
<p class="text-bold">1我们将严格根据法律法规及监管规定以及您的授权在如下情形下使用您的信息</p>
<p>1实现本协议中我们如何收集的信息及用途所述目的</p>
<p>2为了更好地为您提供服务知晓您使用二级节点业务系统服务的状态便于您及时了解信用评估结果的变化您同意我们可以通过二级节点业务系统客户端相关页面及信息渠道向您展示服务信息</p>
<p>3为了保障服务的稳定性与安全性我们会将您的信息用于身份验证安全防范诈骗监测预防或禁止非法活动降低风险存档和备份用途/或其他身份要素可能或已经泄露时请您立即和我们取得联系以便我们及时采取相应措施以避免或降低损失</p>
<p>4邀请您参与我们产品或服务有关的客户调研</p>
<p>5我们会对您的信息进行综合统计分析加工以便为您提供更加准确个性流畅及便捷的服务或帮助我们评估改善或设计产品服务及运营活动等我们可能根据前述信息向您提供营销活动通知商业性电子信息或您可能感兴趣的广告如您不希望接收此类信息您可按照我们提示的方法选择退订</p>
<p>6根据法律法规的要求或为了维护公共安全公共卫生重大公共利益或出于维护您或其他个人的生命财产等重大权益的我们可能需要使用你的个人信息</p>
<p class="text-bold">2除法律法规另有规定外当您的信息被用于本协议未载明的其他用途时我们会再次征求您的同意</p>
</div>
<div class="module-body-section">
<h3>我们如何对外提供信息</h3>
<p class="text-bold">共享</p>
<p>我们承诺对您的信息进行保密除本协议另有约定外仅在下列情形下与信息使用者分享您必要的信息同时我们将尽商业上的合理努力督促信息使用者在使用您的个人信息时遵守法律法规履行保密义务及采取必要的安全措施</p>
<p>1在法律法规允许且不违背公序良俗的范围内严格按照您的授权范围将您的信息提供给信息使用者</p>
<p>2如果您参与我们举办的投票抽奖竞赛或类似的市场活动我们会将您提供的信息用于管理此类活动若该活动是和第三方联合推广的为了第三方能及时向您发放奖品或为您提供产品和服务我们可能与其分享活动过程中产生的为完成活动所必要的个人信息如参加活动的用户数中奖名单中奖人联系方式等</p>
<p class="text-bold">公开披露</p>
<p>除在市场运营活动中需公布中奖活动名单的情况下会脱敏展示中奖者手机号或其他联系方式外原则上我们不会公开披露您的信息如确需公开披露时我们会向您告知公开披露的目的披露信息的类型及可能涉及的敏感信息并征得您的明确同意</p>
<p class="text-bold">委托处理</p>
<p>为了提升信息处理效率降低信息处理成本或提高信息处理准确性我们可能会委托有能力的关联公司代表我们来处理用户信息但我们会通过书面协议现场审计等方式要求受托公司遵守严格的保密义务及采取有效的保密措施禁止其将这些信息用于未经您授权的用途在委托关系解除时受托公司不再保存您的个人信息</p>
<p class="text-bold">为了保护您的信息安全我们可能会选择具备身份验证能力的第三方验证您的身份但我们会通过书面协议现场审计等方式要求该等第三方遵守严格的保密义务及采取有效的保密措施禁止其将这些信息用于未经您授权的用途</p>
<p class="text-bold">根据法律法规的要求或为了维护公共安全公共卫生重大公共利益或出于维护您或其他个人的生命财产等重大权益的 我们可能需要披露你的个人信息</p>
</div>
<div class="module-body-section">
<h3>您如何访问和管理自己的个人信息</h3>
<p>在您使用二级节点业务系统服务期间为了您可以更加便捷地管理您的个人信息同时保障您关闭帐户的权利我们在产品设计中为您提供了相应的操作设置您可以参考下面的指引进行操作</p>
<p class="text-bold">1更新您的个人及企业资料</p>
<p>您可通过二级节点业务系统来更新或完善您的个人及企业资料</p>
<p class="text-bold">2更正信息</p>
<p>您可以通过二级节点业务系统的注册了解您的履约情况以及是否有需要及时履约的情形以便维护您的信用除本协议另有约定外未经您的授权我们不会向任何第三方披露您的违约记录违约记录来源于合作机构我们仅按照该机构提供的信息如实展示在您本人的二级节点业务系统里并据此提供服务如您认为我们展示的违约记录有误您可反馈给我们我们将协助您向该机构进行核实同时您也可自行联系该机构进行核实</p>
<p class="text-bold">3如您发现我们采集使用信息的行为违反了法律行政法规规定或违反了与您的约定您可联系在线客服或客服电话联系我们要求删除该违反行为下采集的您的信息</p>
</div>
<div class="module-body-section">
<h3>对第三方责任的声明</h3>
<p>请您注意您访问的第三方网站经营者等第三方可能有自己的隐私权保护政策当您查看第三方创建的网页或使用第三方应用程序时这些第三方可能会放置他们自己的Cookie或像素标签这些Cookie或像素标签不受我们的控制且它们的使用不受本协议的约束我们会尽商业上的合理努力去要求这些主体对您的个人信息采取保护措施但我们无法保证这些主体一定会按照我们的要求采取保护措施请您与他们直接联系以获得关于他们的隐私权政策的详细情况如您发现这些第三方创建的网页或第三方应用程序存在风险时建议您终止相关操作以保护您的合法权益</p>
</div>
<div class="module-body-section">
<h3>信息保护提醒</h3>
<p>信息保护需要您和我们的共同努力为保障信息安全我们会根据信息类型及范围结合我们对相应环境的风险识别及认知视情况利用设备环境分析手机短信校验码等方式进行验证</p>
<p>同时建议您在向他人提供信息时采取合理措施来避免信息泄露或不当使用风险不要将密码提供给其他人注意个人信息安全</p>
</div>
<div class="module-body-section">
<h3>本协议的适用和更新</h3>
<p class="text-bold">1二级节点业务系统的所有服务均适用本协议您可以在二级节点业务系统部分页面查看本协议我们鼓励您在使用二级节点业务系统服务时多查阅本协议</p>
<p class="text-bold">2发生下列重大变化情形时我们会适时对本协议进行更新</p>
<p>1收集存储使用信息的范围目的规则发生变化</p>
<p>2对外提供信息的对象范围目的发生变化</p>
<p>3您访问和管理信息的方式发生重大变化</p>
<p>4数据安全能力信息安全风险发生重大变化</p>
<p>5用户询问投诉的渠道和机制以及外部纠纷解决机构及联络方式发生重大变化</p>
<p>6其他可能对您的信息权益产生重大影响的变化</p>
<p class="text-bold">3为满足您专业化多样化的需求我们的服务可能会升级同时因法律法规变化或我们收集信息的渠道范围或用途等发生变化我们需要对本协议进行修订欢迎您了解本协议如您在本协议更新生效后继续使用我们的服务即表示您已充分阅读理解并接受更新后的政策并愿意受更新后的政策约束</p>
</div>
</div>
</div>
</el-col>
</el-row>
<Footer></Footer>
</div>
</template>
<script>
import onlyHeader from "@/components/Header/onlyHeader";
import Footer from "@/components/Footer/Footer";
export default {
components: { onlyHeader, Footer },
name: "privacyStatement",
data() {
return {
};
},
created() {},
mounted() {
},
destroyed() {},
methods: {
},
};
</script>
<style lang="scss" scoped>
.wrapper {
.userAgreement {
// width: 100%;
// min-width: 1200px;
// display: block;
// justify-content: center;
// margin: 30px auto;
// font-family: Microsoft YaHei;
h1 {
margin: 30px 0;
color: #333;
font-size: 16px;
font-weight: 700;
text-align: center;
span {
display: inline-block;
border-bottom: 3px solid #2a8eea;
}
}
.module {
padding:0;
font-size: 12px;
.module-head {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding: 0 20px;
margin: 0;
line-height: 40px;
background-color: #f2f2f2;
height: 40px;
background-image: -webkit-gradient(linear,left top,right top,from(#2a8eea),to(#7bb7f9)),-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#fafafa));
background-image: linear-gradient(90deg,#2a8eea,#7bb7f9),linear-gradient(#fafafa,#fafafa);
background-blend-mode: normal,normal;
font-weight: 700;
}
.module-body {
padding: 0 30px 25px;
border: 1px solid #f5f5f5;
p {
margin: 8px 0;
line-height: 24px;
}
.module-body-section {
}
}
}
.viewDetails_info {
width: 1200px;
//height: calc(100vh - 190px);
overflow-y: scroll;
color: $ft_friText;
padding: 20px 50px;
.product_image {
width: 300px;
}
.el-button {
background: $ft_input_bg;
margin: 0 0 20px 0;
}
.btn_tab{
width:200px;
height:50px;
font-size:16px;
}
.active {
background: $ft_bg_header;
color: $ft_white;
}
.btn_bottom {
display: flex;
justify-content: center;
align-items: center;
.submit_btn {
background: $ft_grey;
border-color: $ft_grey;
color: $ft_thirdText;
width: 300px;
margin-top: 20px;
}
}
}
}
}
</style>

223
src/views/agreement/userAgreement.vue

@ -0,0 +1,223 @@
<template>
<div class="wrapper">
<only-header></only-header>
<el-row>
<el-col :span="20" :offset="2" class="userAgreement">
<h1>
<span>二级节点业务系统 用户协议</span>
</h1>
<div class="module">
<div class="module-head">用户协议</div>
<div class="module-body">
<p> 感谢您选择二级节点业务系统服务以下简称本服务二级节点业务系统用户服务协议以下简称本协议由二级节点以下简称我们和您签订为您提供标识注册标识查询数据统计分析系统管理等多种功能的应用您有权选择不使用本服务如果您选择使用本服务将视为您同意接受本协议条款及规则的约束 </p>
<div class="module-body-section">
<h3>二级节点业务系统用户服务协议的确认</h3>
<p> 1本协议有助于您了解二级节点业务系统为您提供的服务内容及您使用服务的权力和义务请您先仔细阅读本协议内容尤其是字体加粗部分如您对本协议内容或页面提示信息有疑问请勿进行下一步操作您可联系我们以便我们为您解释和说明您通过页面点击或其他方式确认即表示您已同意本协议 </p>
<p> 2如我们对本协议进行修改若您无法同意变更修改后的协议内容您有权停止使用相关服务双方协商一致的也可另行变更相关服务和对应协议内容 </p>
<p> 3如您为无民事行为能力人或为限制民事行为能力人请告知您的监护人并在您监护人的指导下阅读本协议和使用我们的服务若您非中华人民共和国境内为本协议之目的不包括香港澳门特别行政区及台湾地区用户您还需同时遵守您所属国家或地区的法律且您确认订立并履行本协议不违反您所属所居住或开展经营活动或其他业务的国家或地区的法律法规 </p>
</div>
<div class="module-body-section">
<h3>二级节点业务系统为您提供的服务内容</h3>
<p>二级节点业务系统为您提供工业互联网标识注册解析的相关服务并对数据进行统计分析提供多维度的数据展示</p>
</div>
<div class="module-body-section">
<h3>账户的注册和使用</h3>
<p class="text-bold">注册</p>
<p>1您可通过密码注册取得账户后使用二级节点业务系统服务具体验证方式以二级节点业务系统页面提示为准</p>
<p>2您在账户中设置的昵称留言等请务必遵守法律法规公序良俗社会公德且不会侵害其他第三方的合法权益否则我们可能会取消您的昵称留言</p>
<p class="text-bold">使用</p>
<p>身份要素是我们识别您身份的依据请您务必妥善保管使用身份要素进行的操作发出的指令视为您本人做出因您的原因造成的账户密码等信息被冒用盗用或非法使用由此引起的风险和损失需要由您自行承担 您同意</p>
<p>1为了保障您的资金安全请把手机及其他设备的密码设置成与用户标识及账户的密码不一致如您发现有他人冒用或盗用您的用户标识账户或者二级节点业务系统登录名及密码或您的手机或其他有关设备丢失时请您立即以有效方式通知我们您还可以向我们申请暂停或停止二级节点业务系统服务您在持续登录二级节点业务系统平台时段结束时请以正确步骤退出应用由于我们对您的请求采取行动需要合理时间如我们未在合理时间内采取有效措施导致您损失扩大的我们将就扩大的损失部分承担责任但我们对采取行动之前已执行的指令免于承担责任</p>
<p>2用户标识和账户仅限您本人使用请勿转让借用赠与继承但二级节点业务系统账户内的相关财产权益可被依法继承</p>
<p>3基于运行和交易安全的需要我们可能会暂停或者限制二级节点业务系统服务部分功能或增加新的功能</p>
<p>4为了维护良好的网络环境我们有时需要了解您使用二级节点业务系统服务的真实背景及目的如我们要求您提供相关信息或资料的请您配合提供</p>
</div>
<div class="module-body-section">
<h3>使用二级节点业务系统服务的注意事项</h3>
<p>为有效保障您使用我们服务时的合法权益我们提醒您注意以下事项</p>
<p class="text-bold">身份验证</p>
<p>1您在注册使用我们服务的过程中请您提供合法真实有效准确并完整的资料根据具体验证需要可能包括单位名称企业类型机构证件类型证件号营业执照企业/机构行业注册地联系人等 为了能将账户资金变动及时通知到您以及更好保障您的账户安全如该等资料发生变更请您及时通知我们 为了及时有效地验证您的信息包括但不限于身份信息账户信息等根据法律法规及监管规定或我们认为有需要时您同意我们可以把您的信息提供给第三方也同意第三方可以把您的信息提供给我们以便我们进行验证您应确保二级节点业务系统登录名账户绑定的手机号均为您本人持有如您占用了他人的手机号为避免给手机号持有人带来不便或不利影响也为了您的资金安全我们可能将该手机号从您的账户中删除并解除关联</p>
<p>2为了满足相关监管规定的要求请您按照我们要求的时间提供您的身份信息以完成身份验证否则您可能无法进行收款提现余额支付购买理财产品等操作且我们可能对您的账户余额进行止付或注销您的账户</p>
<p class="text-bold">存在如下情形时我们可能会对您名下二级节点业务系统账户暂停或终止提供二级节点业务系统服务且可能限制您所使用的产品或服务功能比如对这些账户名下的资产和在途交易采取止付取消交易等限制措施或对交易的方式规模频率等进行限制</p>
<p>1您违反了法律法规的规定或本协议的约定</p>
<p>2根据相关法律法规或有权机关的要求</p>
<p>3您的账户可能产生风险的</p>
<p>4您遭到他人投诉且对方已经提供了一定证据的</p>
<p>5您可能错误地操作他人账户或者将他人账户进行了身份验证的</p>
<p>123规定的情形外如您申请恢复服务解除上述止付或限制请您向我们提供相关资料及身份证明等文件以便我们进行核实</p>
<p class="text-bold">二级节点业务系统服务规则</p>
<p>1您认可账户的使用记录交易数据等均以我们的系统记录为准如您对该等数据存有异议的可及时向我们提出我们会根据您提供的相关证据积极予以核实</p>
<p>2对于您提供及发布的文字等非个人隐私信息的知识产权归您或相关权利人所有为向所有用户提供更优质的服务我们及关联公司可能需要使用您的非个人隐私信息或授权给其他第三方使用在此您理解并同意我们及关联公司可以存储使用复制修订编辑发布展示翻译分发您的非个人隐私信息或制作其派生作品并以已知或日后开发的形式媒体或技术将上述信息纳入其他作品内或授权给其他第三方使用</p>
<p>3为了更好地向您提供服务请您在使用二级节点业务系统服务过程中遵守本协议内容二级节点业务系统平台上出现的关于操作的提示及我们发送到您手机的提示</p>
<p>4我们会以发送短信电话或客户端通知等方式向您发送通知例如提示您进行相关操作请您及时予以关注</p>
<p>5服务咨询与投诉</p>
<p>在使用我们服务的过程中如遇到问题您可以通过在线客服等方式联系我们为了保护您及他人的合法权益维护绿色网络环境如您被他人投诉或投诉他人我们可能会将您的姓名联系方式投诉相关内容提供给消费者权益保护部门及监管机关以便及时解决投诉纠纷同时出于维护您或他人的生命财产等重大合法权益但又很难得到您本人同意的情况下我们可能会将您的姓名及身份证号码联系方式投诉相关内容提供给争议相对方但法律法规明确禁止提供的除外</p>
<p class="text-bold">我们的承诺和声明</p>
<p>1基于相关法律法规的规定对本协议项下的服务我们均无法提供担保垫资</p>
</div>
<div class="module-body-section">
<h3>用户合法使用二级节点业务系统服务的承诺</h3>
<p>1您需要遵守中华人民共和国相关法律法规及您所属所居住或开展经营活动或其他业务的国家或地区的法律法规不得将我们的服务用于非法目的包括用于禁止或限制交易物品的交易也不得以非法方式使用我们的服务</p>
<p>2您不得利用我们的服务从事侵害他人合法权益之行为或违反国家法律法规否则我们有权进行调查延迟或拒绝结算或停止提供服务且您需要自行承担相关法律责任如因此导致我们或其他方受损的您需要承担赔偿责任</p>
<p>3上述1和2适用的情况包括但不限于</p>
<p>1侵害他人名誉权隐私权商业秘密商标权著作权专利权等合法权益</p>
<p>2违反保密义务</p>
<p>3冒用他人名义使用我们的服务</p>
<p>4从事不法交易行为如洗钱恐怖融资赌博贩卖枪支毒品禁药盗版软件黄色淫秽物品其他我们认为不得使用我们的服务进行交易的物品等</p>
<p>5提供赌博资讯或以任何方式引诱他人参与赌博</p>
<p>6未经授权使用他人银行卡或利用信用卡花呗套取现金</p>
<p>7进行与您或交易对方宣称的交易内容不符的交易或不真实的交易</p>
<p>8从事可能侵害我们的服务系统数据的行为</p>
<p>4账户仅限本人/本企业使用您需充分了解并清楚知晓出租出借出售购买账户的相关法律责任和惩戒措施承诺依法依规开立和使用本人账户</p>
<p>5您理解我们的服务有赖于系统的准确运行及操作若出现系统差错故障您或我们不当获利等情形您同意我们可以采取更正差错扣划款项等适当纠正措施</p>
<p>6您不得对我们的系统和程序采取反向工程手段进行破解不得对上述系统和程序包括但不限于源程序目标程序技术文档客户端至服务器端的数据服务器数据进行复制修改编译整合或篡改不得修改或增减我们系统的功能</p>
</div>
<div class="module-body-section">
<h3>用户权益保障及信息保护</h3>
<p class="text-bold">1客户权益保障承诺</p>
<p>我们一直秉承客户第一的原则努力为您带来微小而美好的改变保障您在使用服务时的合法权益</p>
<p class="text-bold">2隐私权保护</p>
<p>我们重视对您信息的保护关于您的信息依二级节点业务系统 隐私声明受到保护与规范详情请参阅二级节点业务系统 隐私声明</p>
</div>
<div class="module-body-section">
<h3>不可抗力免责及责任限制</h3>
<p class="text-bold">免责条款</p>
<p>因下列原因导致我们无法正常提供服务我们免于承担责任</p>
<p >1我们的系统停机维护或升级</p>
<p>2因台风地震洪水雷电或恐怖袭击等不可抗力原因</p>
<p>3您的电脑软硬件和通信线路供电线路出现故障的</p>
<p>4因您操作不当或通过非经我们授权或认可的方式使用我们服务的</p>
<p>5因病毒木马恶意程序攻击网络拥堵系统不稳定系统或设备故障通讯故障电力故障银行原因第三方服务瑕疵或政府行为等原因</p>
<p>尽管有前款约定我们将采取合理行动积极促使服务恢复正常</p>
<p class="text-bold">责任限制</p>
<p>我们可能同时为您及您的交易对手方提供服务您同意对我们可能存在的该等行为予以明确豁免任何实际或潜在的利益冲突并不得以此来主张我们在提供服务时存在法律上的瑕疵</p>
</div>
<div class="module-body-section">
<h3>知识产权的保护</h3>
<p>1我们及关联公司的系统及二级节点业务系统平台上的内容包括但不限于著作图片档案资讯资料网站架构网站画面的安排网页设计均由我们或关联公司依法拥有知识产权包括但不限于商标权专利权著作权商业秘密等</p>
<p>2非经我们或关联公司书面同意请勿擅自使用修改反向编译复制公开传播改变散布发行或公开发表二级节点业务系统网站程序或内容</p>
<p>3尊重知识产权是您应尽的义务如有违反您需要承担损害赔偿责任</p>
</div>
<div class="module-body-section">
<h3>法律适用与管辖</h3>
<p>本协议之效力解释变更执行与争议解决均适用中华人民共和国法律因本协议产生的争议均应依照中华人民共和国法律予以处理并由被告住所地人民法院管辖</p>
</div>
</div>
</div>
</el-col>
</el-row>
<Footer></Footer>
</div>
</template>
<script>
import onlyHeader from "@/components/Header/onlyHeader";
import Footer from "@/components/Footer/Footer";
export default {
components: { onlyHeader, Footer },
name: "userAgreement",
data() {
return {
};
},
created() {},
mounted() {
},
destroyed() {},
methods: {
},
};
</script>
<style lang="scss" scoped>
.wrapper {
.userAgreement {
// width: 100%;
// min-width: 1200px;
// display: block;
// justify-content: center;
// margin: 30px auto;
// font-family: Microsoft YaHei;
h1 {
margin: 30px 0;
color: #333;
font-size: 16px;
font-weight: 700;
text-align: center;
span {
display: inline-block;
border-bottom: 3px solid #2a8eea;
}
}
.module {
padding:0;
font-size: 12px;
.module-head {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding: 0 20px;
margin: 0;
line-height: 40px;
background-color: #f2f2f2;
height: 40px;
background-image: -webkit-gradient(linear,left top,right top,from(#2a8eea),to(#7bb7f9)),-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#fafafa));
background-image: linear-gradient(90deg,#2a8eea,#7bb7f9),linear-gradient(#fafafa,#fafafa);
background-blend-mode: normal,normal;
font-weight: 700;
}
.module-body {
padding: 0 30px 25px;
border: 1px solid #f5f5f5;
p {
margin: 8px 0;
line-height: 24px;
}
.module-body-section {
}
}
}
.viewDetails_info {
width: 1200px;
//height: calc(100vh - 190px);
overflow-y: scroll;
color: $ft_friText;
padding: 20px 50px;
.product_image {
width: 300px;
}
.el-button {
background: $ft_input_bg;
margin: 0 0 20px 0;
}
.btn_tab{
width:200px;
height:50px;
font-size:16px;
}
.active {
background: $ft_bg_header;
color: $ft_white;
}
.btn_bottom {
display: flex;
justify-content: center;
align-items: center;
.submit_btn {
background: $ft_grey;
border-color: $ft_grey;
color: $ft_thirdText;
width: 300px;
margin-top: 20px;
}
}
}
}
}
</style>

688
src/views/fids/enterpriseManagement/enterpriseCertification/Index copy.vue

@ -0,0 +1,688 @@
<template>
<div class="enterpriseCertification_wrap">
<div class="enterpriseCertification_info">
<el-row>
<el-col>
<h1>{{ companyName }}企业节点管理平台</h1>
</el-col>
<el-col>
<div class="text_div">
<span>{{enterpriseStatusInfo}}</span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="14" :offset="5">
<el-form :model="enterpriseCertificationForm" :rules="rules" ref="enterpriseCertificationForm" label-width="180px">
<div class="linkage">
<el-form-item label="企业注册地:" class="is-required"></el-form-item>
<el-form-item prop="provinceCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.provinceCode" placeholder="请选择省"
@change="changeArea(enterpriseCertificationForm.provinceCode,'city')">
<el-option
v-for="item in provinceOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="cityCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.cityCode" placeholder="请选择市"
@change="changeArea(enterpriseCertificationForm.cityCode,'area')">
<el-option
v-for="item in cityOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="areaCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.areaCode" placeholder="请选择地区">
<el-option
v-for="item in areaOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="linkage">
<el-form-item label="行业类型:" class="is-required"></el-form-item>
<el-form-item prop="enterpriseIndustryBigType" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.enterpriseIndustryBigType" placeholder="请选择大类"
@change="getIndustryType(enterpriseCertificationForm.enterpriseIndustryBigType)">
<el-option
v-for="item in bigTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="enterpriseIndustrySmallType" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.enterpriseIndustrySmallType" placeholder="请选择小类">
<el-option
v-for="item in smallTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-form-item label="信用代码类型:" prop="corporateUnifiedSocialCreditType">
<el-select v-model="enterpriseCertificationForm.corporateUnifiedSocialCreditType" placeholder="请选择信用代码类型">
<el-option
v-for="item in creditCodeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="信用代码:" prop="corporateUnifiedSocialCreditCode" >
<el-input v-model="enterpriseCertificationForm.corporateUnifiedSocialCreditCode"></el-input>
</el-form-item>
<el-form-item label="责任主体名称:" prop="nameLegalPersonLiabilitySubject">
<el-input v-model="enterpriseCertificationForm.nameLegalPersonLiabilitySubject"></el-input>
</el-form-item>
<el-form-item label="法人或代表人姓名:" prop="nameLegalRepresentative">
<el-input v-model="enterpriseCertificationForm.nameLegalRepresentative"></el-input>
</el-form-item>
<el-form-item label="法人或代表人证件类型:" prop="typeLegalRepresentative">
<el-select v-model="enterpriseCertificationForm.typeLegalRepresentative" placeholder="请选择">
<el-option
v-for="item in legalPersonOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="法人或代表人证件号码:" prop="certificateNumberLegalRepresentative">
<el-input v-model="enterpriseCertificationForm.certificateNumberLegalRepresentative"></el-input>
</el-form-item>
<el-form-item label="证件照正面:" prop="faceId">
<el-row>
<el-col :span="8">
<el-upload
ref="faceIDFileRef"
:class="{hide:hideUploadF}"
:action=action
:data="faceId"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.faceId"
:headers="headers"
:on-change="handleChangeId"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessId"
:before-upload="beforePictureUploadId"
:on-remove="handleRemoveId">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlFace" alt="">
</el-dialog>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="证件照反面:" prop="rearId">
<el-row>
<el-col :span="8">
<el-upload
ref="rearIDRef"
:class="{hide:hideUploadR}"
:action=action
:data="rearId"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.rearId"
:headers="headers"
:on-change="handleChangeRearID"
:on-exceed="handleExceedRearID"
:on-preview="handlePictureCardPreviewRearID"
:on-success="handSuccessRearID"
:before-upload="beforePictureUploadRearID"
:on-remove="handleRemoveRearID">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlRear" alt="">
</el-dialog>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="联系人姓名:" prop="duty">
<el-input v-model="enterpriseCertificationForm.duty"></el-input>
</el-form-item>
<el-form-item label="联系电话:" prop="mobile">
<el-input v-model="enterpriseCertificationForm.mobile"></el-input>
</el-form-item>
<el-form-item label="详细地址:" prop="address">
<el-input v-model="enterpriseCertificationForm.address"></el-input>
</el-form-item>
<el-form-item label="企业类型:" prop="enterpriseType">
<el-select v-model="enterpriseCertificationForm.enterpriseType" placeholder="请选择">
<el-option
v-for="item in enterpriseTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="认证资料类型:" prop="certificatedInformationType">
<el-select v-model="enterpriseCertificationForm.certificatedInformationType" placeholder="请选择">
<el-option
v-for="item in certificationInformationOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="认证资料:" prop="company">
<el-upload
ref="companyFileRef"
:class="{hide:hideUpCompany}"
:action=action
:data="company"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.company"
:headers="headers"
:on-change="handleChangeCompany"
:on-exceed="handleExceedCompany"
:on-preview="handlePictureCardPreviewCompany"
:on-success="handSuccessCompany"
:before-upload="beforePictureUploadCompany"
:on-remove="handleRemoveCompany">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-form-item>
<div class="btn_group">
<el-button size="medium" type="primary" @click="submitForm">提交</el-button>
<el-button size="medium" @click="goBack()">返回</el-button>
</div>
</el-form-item>
</el-form>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import {enterpriseAuth, registerArea, selectType, industryType,enterpriseInfo, informationModify} from "@/api/enterpriseManagement";
import {validatePhone, validateIDCard} from "@/utils/validate";
import {UPLOAD} from "@/api/api"
export default {
name: "EnterpriseCertification",
components: {},
props: {},
data() {
const checkIDCard = (rule, value, callback) => {
if (!validateIDCard(value)) {
return callback(new Error("请输入正确的身份证"));
} else {
callback();
}
};
const checkPhone = (rule, value, callback) => {
// if (!validatePhone(value)) {
// return callback(new Error(""));
// } else {
// callback();
// }
callback();
};
return {
enterpriseStatusInfo: '',
provinceOptions: [],//
cityOptions: [],//
areaOptions: [],//
bigTypeOptions: [],//
smallTypeOptions: [],//
creditCodeOptions: [],//
legalPersonOptions: [],//
enterpriseTypeOptions: [],//
certificationInformationOptions: [],//
hideUploadF: false,
hideUploadR: false,
hideUpCompany: false,
limitCount: 1,
dialogVisible: false,
dialogImageUrlFace: '',
dialogImageUrlRear: '',
dialogImageUrl: '',
faceId: {
bizType: 'FACE_ID',
fileName: '',
sequence: 0,
url: ''
},
rearId: {
bizType: 'REAR_ID',
fileName: '',
sequence: 0,
url: ''
},
company: {
bizType: 'COMPANY',
fileName: '',
sequence: 0,
url: ''
},
action: UPLOAD,
companyName: '',
enterpriseCertificationForm: {
code: "",//
provinceCode: "",//
cityCode: "",//
areaCode: "",//
enterpriseIndustryBigType: '', //
enterpriseIndustrySmallType: '', //
corporateUnifiedSocialCreditType: "",//
corporateUnifiedSocialCreditCode: '',//
nameLegalPersonLiabilitySubject: '',//
nameLegalRepresentative: '',//
typeLegalRepresentative: '',//
certificateNumberLegalRepresentative:"",//
faceId: [], //
rearId: [], //
duty: '',//
mobile: '',//
address: '', //
enterpriseType: '', //
certificatedInformationType: '', //
company: [], //
},
rules: {
provinceCode: [
{required: true, message: '请选择省', trigger: "change"},
],
cityCode: [
{required: true, message: '请选择市', trigger: "change"},
],
areaCode: [
{required: true, message: '请选择区县', trigger: "change"},
],
enterpriseIndustryBigType: [
{required: true, message: '请选择行业大类', trigger: 'change'}
],
enterpriseIndustrySmallType: [
{required: true, message: '请选择行业小类', trigger: 'change'}
],
corporateUnifiedSocialCreditType: [
{required: true, message: '请选择信用代码类型', trigger: 'change'}
],
corporateUnifiedSocialCreditCode: [
{required: true, message: '请输入信用代码', trigger: 'blur'},
],
nameLegalPersonLiabilitySubject: [
{required: true, message: '请输入责任主体名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur'}
],
nameLegalRepresentative: [
{required: true, message: '请输入法人或代表人姓名', trigger: 'blur'},
],
typeLegalRepresentative: [
{required: true, message: '请选择法人或代表人证件类型', trigger: 'change'}
],
certificateNumberLegalRepresentative: [
{required: true, message: "请输入法人或代表人证件号码", trigger: "blur"},
{validator: checkIDCard, trigger: "blur"},
],
faceId: [
{required: true, message: '请上传证件照正面', trigger: 'blur'},
],
rearId: [
{required: true, message: '请上传证件照反面', trigger: 'blur'},
],
duty: [
{required: true, message: '请输入联系人姓名', trigger: 'blur'},
],
mobile: [
{required: true, message: '请输入联系电话'},
{validator: checkPhone, trigger: "blur"}
],
address: [
{required: true, message: '请输入详细地址', trigger: 'blur'},
],
enterpriseType: [
{required: true, message: '请选择企业类型', trigger: 'change'}
],
certificatedInformationType: [
{required: true, message: '请选择认证资料类型', trigger: 'change'}
],
company: [
{required: true, message: '请上传认证资料', trigger: 'blur'},
],
}
};
},
beforeCreate() {
},
create() {
},
beforeMount() {
this.enterpriseCertificationForm.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
this.$axios.all([enterpriseInfo(this.enterpriseCertificationForm.code), registerArea(0), selectType(0)])
.then(this.$axios.spread((informationFormData, provinceOptionsData, selectData) => {
this.provinceOptions = provinceOptionsData.data.data
this.bigTypeOptions = selectData.data.data.INDUSTRY_TYPE
this.creditCodeOptions = selectData.data.data.CREDIT_TYPE
this.legalPersonOptions = selectData.data.data.REPRESENTATIVE_TYPE
this.enterpriseTypeOptions = selectData.data.data.ENTERPRISE_TYPE
this.certificationInformationOptions = selectData.data.data.CERTIFICATED_TYPE
let informationForm = informationFormData.data.data
if(informationForm){
this.enterpriseStatusInfo = '企业前缀: ' + (this.$store.state.account.tenantPrefix ? this.$store.state.account.tenantPrefix : "暂未获得");
this.enterpriseCertificationForm.provinceCode = informationForm.provinceCode;
this.enterpriseCertificationForm.enterpriseIndustryBigType = informationForm.enterpriseIndustryBigType.code;
this.$axios.all([registerArea(informationForm.provinceCode), registerArea(informationForm.cityCode), industryType(informationForm.enterpriseIndustryBigType.code)])
.then(this.$axios.spread((cityOptionsData, areaOptionsData, smallTypeOptionsData) => {
this.cityOptions = cityOptionsData.data.data;
this.areaOptions = areaOptionsData.data.data;
this.smallTypeOptions = smallTypeOptionsData.data.data;
this.enterpriseCertificationForm.cityCode = informationForm.cityCode;
this.enterpriseCertificationForm.areaCode = informationForm.areaCode;
this.enterpriseCertificationForm.enterpriseIndustrySmallType = informationForm.enterpriseIndustrySmallType.code;
// this.enterpriseCertificationForm.corporateUnifiedSocialCreditType = informationForm.corporateUnifiedSocialCreditType.code;
this.enterpriseCertificationForm.typeLegalRepresentative = informationForm.typeLegalRepresentative.code;
this.enterpriseCertificationForm.enterpriseType = informationForm.enterpriseType.code;
this.enterpriseCertificationForm.certificatedInformationType = informationForm.certificatedInformationType.code;
this.enterpriseCertificationForm.corporateUnifiedSocialCreditCode = informationForm.corporateUnifiedSocialCreditCode;
this.enterpriseCertificationForm.nameLegalPersonLiabilitySubject = informationForm.nameLegalPersonLiabilitySubject;
this.enterpriseCertificationForm.nameLegalRepresentative = informationForm.nameLegalRepresentative;
this.enterpriseCertificationForm.certificateNumberLegalRepresentative = informationForm.certificateNumberLegalRepresentative;
this.enterpriseCertificationForm.faceId = informationForm.faceId;
this.enterpriseCertificationForm.rearId = informationForm.rearId;
this.enterpriseCertificationForm.duty = informationForm.duty;
this.enterpriseCertificationForm.mobile = informationForm.mobile;
this.enterpriseCertificationForm.address = informationForm.address;
this.enterpriseCertificationForm.company = informationForm.company;
this.hideUploadF = true;
this.hideUploadR = true;
this.hideUpCompany = true;
}))
}else{
this.enterpriseStatusInfo = '贵公司还没有填写认证信息或通过审核,请填写或修改以下信息并点击提交,工作人员会在<em>1-3</em>个工作日内完成审核,感谢您的理解。';
}
}))
},
mounted() {
//this.getArea(0, "province")
//this.getType(0);
},
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
},
computed: {
headers() {
return {
token: 'Bearer ' + this.$db.get("TOKEN", ""),
tenant: this.$db.get("TENANT", "") || "",
Authorization: `Basic ${this.$Base64.encode(`${process.env.VUE_APP_CLIENT_ID}:${process.env.VUE_APP_CLIENT_SECRET}`)}`
};
},
},
watch: {},
methods: {
//
getArea(parentId, grad) {
return registerArea(parentId).then((res) => {
if (grad === "province") {
this.provinceOptions = res.data.data
} else if (grad === "city") {
this.cityOptions = res.data.data
} else if (grad === "area") {
this.areaOptions = res.data.data
}
})
},
//
changeArea(parentId, grad) {
if (grad === "city") {
this.cityOptions = []
this.areaOptions = [];
this.enterpriseCertificationForm.cityCode = ""
this.enterpriseCertificationForm.areaCode = ""
} else if (grad === "area") {
this.areaOptions = [];
this.enterpriseCertificationForm.areaCode = ""
}
this.getArea(parentId, grad)
},
//
getType(parentId) {
selectType(parentId).then((res) => {
this.bigTypeOptions = res.data.data.INDUSTRY_TYPE;
this.creditCodeOptions = res.data.data.CREDIT_TYPE;
this.legalPersonOptions = res.data.data.REPRESENTATIVE_TYPE;
this.enterpriseTypeOptions = res.data.data.ENTERPRISE_TYPE;
this.certificationInformationOptions = res.data.data.CERTIFICATED_TYPE;
})
},
//
getIndustryType(enumeration) {
this.enterpriseCertificationForm.enterpriseIndustrySmallType = ""
industryType(enumeration).then((res) => {
this.smallTypeOptions = res.data.data
})
},
//rearID
handleExceedRearID(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleChangeRearID(files, fileList) {
this.hideUploadR = fileList.length >= this.limitCount;
},
handleRemoveRearID(file, fileList) {
this.enterpriseCertificationForm.rearId = fileList
this.$refs.enterpriseCertificationForm.validateField('rearId')
this.hideUploadR = fileList.length >= this.limitCount;
},
handlePictureCardPreviewRearID(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessRearID(file) {
this.enterpriseCertificationForm.rearId.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('rearId')
},
beforePictureUploadRearID(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
//
handleExceedId(files, fileList) {
this.$message.warning(`当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleChangeId(files, fileList) {
this.hideUploadF = fileList.length >= this.limitCount;
},
handleRemoveId(file, fileList) {
this.enterpriseCertificationForm.faceId = fileList
this.$refs.enterpriseCertificationForm.validateField('faceId')
this.hideUploadF = fileList.length >= this.limitCount;
},
handlePictureCardPreviewId(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessId(file) {
this.enterpriseCertificationForm.faceId.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('faceId')
},
beforePictureUploadId(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
//
handleChangeCompany(files, fileList) {
this.hideUpCompany = fileList.length >= this.limitCount;
},
handleExceedCompany(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleRemoveCompany(file, fileList) {
this.enterpriseCertificationForm.company = fileList
this.$refs.enterpriseCertificationForm.validateField('company')
this.hideUpCompany = fileList.length >= this.limitCount;
},
handlePictureCardPreviewCompany(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessCompany(file) {
this.enterpriseCertificationForm.company.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('company')
},
beforePictureUploadCompany(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
submitForm() {
this.$refs.enterpriseCertificationForm.validate((valid) => {
if (valid) {
this.saveSubmit();
} else {
return false;
}
});
},
//
saveSubmit() {
this.enterpriseCertificationForm.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
enterpriseAuth(this.enterpriseCertificationForm).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "企业认证成功",
type: "success"
});
this.goBack()
}
})
},
//
goBack() {
this.$refs.enterpriseCertificationForm.resetFields();
this.area = [];
this.$router.push("/");
}
},
directives: {}
}
</script>
<style lang="scss" scoped>
.enterpriseCertification_wrap {
margin: 10px;
.enterpriseCertification_info {
padding: 20px;
background: #fff;
h1 {
text-align: center;
}
.text_div {
text-align: center;
span {
text-align: center;
margin-bottom: 40px;
background: #f9f0b3;
line-height: 40px;
padding: 0 100px;
display: inline-block;
em {
color: #ff0000;
display: inline-block;
padding: 0 5px;
font-size: 18px;
font-style: normal;
}
}
}
.btn_group {
text-align: center;
button {
margin-right: 20px;
}
}
}
}
</style>
<style lang="scss">
.hide .el-upload--picture-card {
display: none;
}
.linkage {
display: flex;
.el-form-item.linkageItem {
min-width: 130px;
.el-form-item__content {
margin-left: 10px !important;
}
}
.el-form-item.linkageItem:nth-child(2) {
.el-form-item__content {
margin-left: 0px !important;
}
}
}
</style>

681
src/views/fids/enterpriseManagement/enterpriseCertification/Index.vue

@ -1,637 +1,83 @@
<template>
<div class="enterpriseCertification_wrap">
<div class="enterpriseCertification_info">
<el-row>
<el-col>
<h1>{{ companyName }}企业节点管理平台</h1>
</el-col>
<el-col>
<div class="text_div">
<span>{{enterpriseStatusInfo}}</span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="14" :offset="5">
<el-form :model="enterpriseCertificationForm" :rules="rules" ref="enterpriseCertificationForm" label-width="180px">
<div class="linkage">
<el-form-item label="企业注册地:" class="is-required"></el-form-item>
<el-form-item prop="provinceCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.provinceCode" placeholder="请选择省"
@change="changeArea(enterpriseCertificationForm.provinceCode,'city')">
<el-option
v-for="item in provinceOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="cityCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.cityCode" placeholder="请选择市"
@change="changeArea(enterpriseCertificationForm.cityCode,'area')">
<el-option
v-for="item in cityOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="areaCode" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.areaCode" placeholder="请选择地区">
<el-option
v-for="item in areaOptions"
:key="item.id"
:label="item.label"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="linkage">
<el-form-item label="行业类型:" class="is-required"></el-form-item>
<el-form-item prop="enterpriseIndustryBigType" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.enterpriseIndustryBigType" placeholder="请选择大类"
@change="getIndustryType(enterpriseCertificationForm.enterpriseIndustryBigType)">
<el-option
v-for="item in bigTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="enterpriseIndustrySmallType" class="linkageItem">
<el-select v-model="enterpriseCertificationForm.enterpriseIndustrySmallType" placeholder="请选择小类">
<el-option
v-for="item in smallTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-form-item label="信用代码类型:" prop="corporateUnifiedSocialCreditType">
<el-select v-model="enterpriseCertificationForm.corporateUnifiedSocialCreditType" placeholder="请选择信用代码类型">
<el-option
v-for="item in creditCodeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="信用代码:" prop="corporateUnifiedSocialCreditCode" >
<el-input v-model="enterpriseCertificationForm.corporateUnifiedSocialCreditCode"></el-input>
</el-form-item>
<el-form-item label="责任主体名称:" prop="nameLegalPersonLiabilitySubject">
<el-input v-model="enterpriseCertificationForm.nameLegalPersonLiabilitySubject"></el-input>
</el-form-item>
<el-form-item label="法人或代表人姓名:" prop="nameLegalRepresentative">
<el-input v-model="enterpriseCertificationForm.nameLegalRepresentative"></el-input>
</el-form-item>
<el-form-item label="法人或代表人证件类型:" prop="typeLegalRepresentative">
<el-select v-model="enterpriseCertificationForm.typeLegalRepresentative" placeholder="请选择">
<el-option
v-for="item in legalPersonOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="法人或代表人证件号码:" prop="certificateNumberLegalRepresentative">
<el-input v-model="enterpriseCertificationForm.certificateNumberLegalRepresentative"></el-input>
</el-form-item>
<el-form-item label="证件照正面:" prop="faceId">
<el-row>
<el-col :span="8">
<el-upload
ref="faceIDFileRef"
:class="{hide:hideUploadF}"
:action=action
:data="faceId"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.faceId"
:headers="headers"
:on-change="handleChangeId"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessId"
:before-upload="beforePictureUploadId"
:on-remove="handleRemoveId">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlFace" alt="">
</el-dialog>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="证件照反面:" prop="rearId">
<el-row>
<el-col :span="8">
<el-upload
ref="rearIDRef"
:class="{hide:hideUploadR}"
:action=action
:data="rearId"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.rearId"
:headers="headers"
:on-change="handleChangeRearID"
:on-exceed="handleExceedRearID"
:on-preview="handlePictureCardPreviewRearID"
:on-success="handSuccessRearID"
:before-upload="beforePictureUploadRearID"
:on-remove="handleRemoveRearID">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlRear" alt="">
</el-dialog>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="联系人姓名:" prop="duty">
<el-input v-model="enterpriseCertificationForm.duty"></el-input>
</el-form-item>
<el-form-item label="联系电话:" prop="mobile">
<el-input v-model="enterpriseCertificationForm.mobile"></el-input>
</el-form-item>
<el-form-item label="详细地址:" prop="address">
<el-input v-model="enterpriseCertificationForm.address"></el-input>
</el-form-item>
<el-form-item label="企业类型:" prop="enterpriseType">
<el-select v-model="enterpriseCertificationForm.enterpriseType" placeholder="请选择">
<el-option
v-for="item in enterpriseTypeOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="认证资料类型:" prop="certificatedInformationType">
<el-select v-model="enterpriseCertificationForm.certificatedInformationType" placeholder="请选择">
<el-option
v-for="item in certificationInformationOptions"
:key="item.id"
:label="item.label"
:value="item.enumeration">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="认证资料:" prop="company">
<el-upload
ref="companyFileRef"
:class="{hide:hideUpCompany}"
:action=action
:data="company"
list-type="picture-card"
:limit=limitCount
:file-list="enterpriseCertificationForm.company"
:headers="headers"
:on-change="handleChangeCompany"
:on-exceed="handleExceedCompany"
:on-preview="handlePictureCardPreviewCompany"
:on-success="handSuccessCompany"
:before-upload="beforePictureUploadCompany"
:on-remove="handleRemoveCompany">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-form-item>
<div class="btn_group">
<el-button size="medium" type="primary" @click="submitForm">提交</el-button>
<el-button size="medium" @click="goBack()">返回</el-button>
</div>
</el-form-item>
</el-form>
</el-col>
</el-row>
<div class="enterpriseCertification_wrap">
<div class="enterpriseCertification_info">
<!-- <step3 @child-event="parentEvent"/> -->
<component v-bind:is="stepComponent" @child-event="parentEvent"></component>
</div>
</div>
</div>
</template>
<script>
import {enterpriseAuth, registerArea, selectType, industryType,enterpriseInfo, informationModify} from "@/api/enterpriseManagement";
import {validatePhone, validateIDCard} from "@/utils/validate";
import {UPLOAD} from "@/api/api"
import show from "./components/show"
import step1 from "./components/step1"
import step2 from "./components/step2"
import step3 from "./components/step3"
export default {
name: "EnterpriseCertification",
components: {},
components: {
show,
step1,
step2,
step3
},
props: {},
data() {
const checkIDCard = (rule, value, callback) => {
if (!validateIDCard(value)) {
return callback(new Error("请输入正确的身份证"));
} else {
callback();
}
};
const checkPhone = (rule, value, callback) => {
// if (!validatePhone(value)) {
// return callback(new Error(""));
// } else {
// callback();
// }
callback();
};
data(){
return {
enterpriseStatusInfo: '',
provinceOptions: [],//
cityOptions: [],//
areaOptions: [],//
bigTypeOptions: [],//
smallTypeOptions: [],//
creditCodeOptions: [],//
legalPersonOptions: [],//
enterpriseTypeOptions: [],//
certificationInformationOptions: [],//
hideUploadF: false,
hideUploadR: false,
hideUpCompany: false,
limitCount: 1,
dialogVisible: false,
dialogImageUrlFace: '',
dialogImageUrlRear: '',
dialogImageUrl: '',
faceId: {
bizType: 'FACE_ID',
fileName: '',
sequence: 0,
url: ''
},
rearId: {
bizType: 'REAR_ID',
fileName: '',
sequence: 0,
url: ''
},
company: {
bizType: 'COMPANY',
fileName: '',
sequence: 0,
url: ''
},
action: UPLOAD,
companyName: '',
enterpriseCertificationForm: {
code: "",//
provinceCode: "",//
cityCode: "",//
areaCode: "",//
enterpriseIndustryBigType: '', //
enterpriseIndustrySmallType: '', //
corporateUnifiedSocialCreditType: "",//
corporateUnifiedSocialCreditCode: '',//
nameLegalPersonLiabilitySubject: '',//
nameLegalRepresentative: '',//
typeLegalRepresentative: '',//
certificateNumberLegalRepresentative:"",//
faceId: [], //
rearId: [], //
duty: '',//
mobile: '',//
address: '', //
enterpriseType: '', //
certificatedInformationType: '', //
company: [], //
},
rules: {
provinceCode: [
{required: true, message: '请选择省', trigger: "change"},
],
cityCode: [
{required: true, message: '请选择市', trigger: "change"},
],
areaCode: [
{required: true, message: '请选择区县', trigger: "change"},
],
enterpriseIndustryBigType: [
{required: true, message: '请选择行业大类', trigger: 'change'}
],
enterpriseIndustrySmallType: [
{required: true, message: '请选择行业小类', trigger: 'change'}
],
corporateUnifiedSocialCreditType: [
{required: true, message: '请选择信用代码类型', trigger: 'change'}
],
corporateUnifiedSocialCreditCode: [
{required: true, message: '请输入信用代码', trigger: 'blur'},
],
nameLegalPersonLiabilitySubject: [
{required: true, message: '请输入责任主体名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur'}
],
nameLegalRepresentative: [
{required: true, message: '请输入法人或代表人姓名', trigger: 'blur'},
],
typeLegalRepresentative: [
{required: true, message: '请选择法人或代表人证件类型', trigger: 'change'}
],
certificateNumberLegalRepresentative: [
{required: true, message: "请输入法人或代表人证件号码", trigger: "blur"},
{validator: checkIDCard, trigger: "blur"},
],
faceId: [
{required: true, message: '请上传证件照正面', trigger: 'blur'},
],
rearId: [
{required: true, message: '请上传证件照反面', trigger: 'blur'},
],
duty: [
{required: true, message: '请输入联系人姓名', trigger: 'blur'},
],
mobile: [
{required: true, message: '请输入联系电话'},
{validator: checkPhone, trigger: "blur"}
],
address: [
{required: true, message: '请输入详细地址', trigger: 'blur'},
],
enterpriseType: [
{required: true, message: '请选择企业类型', trigger: 'change'}
],
certificatedInformationType: [
{required: true, message: '请选择认证资料类型', trigger: 'change'}
],
company: [
{required: true, message: '请上传认证资料', trigger: 'blur'},
],
}
};
},
beforeCreate() {
},
create() {
},
beforeMount() {
this.enterpriseCertificationForm.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
this.$axios.all([enterpriseInfo(this.enterpriseCertificationForm.code), registerArea(0), selectType(0)])
.then(this.$axios.spread((informationFormData, provinceOptionsData, selectData) => {
this.provinceOptions = provinceOptionsData.data.data
this.bigTypeOptions = selectData.data.data.INDUSTRY_TYPE
this.creditCodeOptions = selectData.data.data.CREDIT_TYPE
this.legalPersonOptions = selectData.data.data.REPRESENTATIVE_TYPE
this.enterpriseTypeOptions = selectData.data.data.ENTERPRISE_TYPE
this.certificationInformationOptions = selectData.data.data.CERTIFICATED_TYPE
let informationForm = informationFormData.data.data
if(informationForm){
this.enterpriseStatusInfo = '企业前缀: ' + (this.$store.state.account.tenantPrefix ? this.$store.state.account.tenantPrefix : "暂未获得");
this.enterpriseCertificationForm.provinceCode = informationForm.provinceCode;
this.enterpriseCertificationForm.enterpriseIndustryBigType = informationForm.enterpriseIndustryBigType.code;
this.$axios.all([registerArea(informationForm.provinceCode), registerArea(informationForm.cityCode), industryType(informationForm.enterpriseIndustryBigType.code)])
.then(this.$axios.spread((cityOptionsData, areaOptionsData, smallTypeOptionsData) => {
this.cityOptions = cityOptionsData.data.data;
this.areaOptions = areaOptionsData.data.data;
this.smallTypeOptions = smallTypeOptionsData.data.data;
this.enterpriseCertificationForm.cityCode = informationForm.cityCode;
this.enterpriseCertificationForm.areaCode = informationForm.areaCode;
this.enterpriseCertificationForm.enterpriseIndustrySmallType = informationForm.enterpriseIndustrySmallType.code;
// this.enterpriseCertificationForm.corporateUnifiedSocialCreditType = informationForm.corporateUnifiedSocialCreditType.code;
this.enterpriseCertificationForm.typeLegalRepresentative = informationForm.typeLegalRepresentative.code;
this.enterpriseCertificationForm.enterpriseType = informationForm.enterpriseType.code;
this.enterpriseCertificationForm.certificatedInformationType = informationForm.certificatedInformationType.code;
this.enterpriseCertificationForm.corporateUnifiedSocialCreditCode = informationForm.corporateUnifiedSocialCreditCode;
this.enterpriseCertificationForm.nameLegalPersonLiabilitySubject = informationForm.nameLegalPersonLiabilitySubject;
this.enterpriseCertificationForm.nameLegalRepresentative = informationForm.nameLegalRepresentative;
this.enterpriseCertificationForm.certificateNumberLegalRepresentative = informationForm.certificateNumberLegalRepresentative;
this.enterpriseCertificationForm.faceId = informationForm.faceId;
this.enterpriseCertificationForm.rearId = informationForm.rearId;
this.enterpriseCertificationForm.duty = informationForm.duty;
this.enterpriseCertificationForm.mobile = informationForm.mobile;
this.enterpriseCertificationForm.address = informationForm.address;
this.enterpriseCertificationForm.company = informationForm.company;
this.hideUploadF = true;
this.hideUploadR = true;
this.hideUpCompany = true;
}))
}else{
this.enterpriseStatusInfo = '贵公司还没有填写认证信息或通过审核,请填写或修改以下信息并点击提交,工作人员会在<em>1-3</em>个工作日内完成审核,感谢您的理解。';
}
}))
},
mounted() {
//this.getArea(0, "province")
//this.getType(0);
},
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
},
computed: {
headers() {
return {
token: 'Bearer ' + this.$db.get("TOKEN", ""),
tenant: this.$db.get("TENANT", "") || "",
Authorization: `Basic ${this.$Base64.encode(`${process.env.VUE_APP_CLIENT_ID}:${process.env.VUE_APP_CLIENT_SECRET}`)}`
};
},
stepComponent:"show"
}
},
watch: {},
methods: {
//
getArea(parentId, grad) {
return registerArea(parentId).then((res) => {
if (grad === "province") {
this.provinceOptions = res.data.data
} else if (grad === "city") {
this.cityOptions = res.data.data
} else if (grad === "area") {
this.areaOptions = res.data.data
}
})
},
//
changeArea(parentId, grad) {
if (grad === "city") {
this.cityOptions = []
this.areaOptions = [];
this.enterpriseCertificationForm.cityCode = ""
this.enterpriseCertificationForm.areaCode = ""
} else if (grad === "area") {
this.areaOptions = [];
this.enterpriseCertificationForm.areaCode = ""
}
this.getArea(parentId, grad)
},
//
getType(parentId) {
selectType(parentId).then((res) => {
this.bigTypeOptions = res.data.data.INDUSTRY_TYPE;
this.creditCodeOptions = res.data.data.CREDIT_TYPE;
this.legalPersonOptions = res.data.data.REPRESENTATIVE_TYPE;
this.enterpriseTypeOptions = res.data.data.ENTERPRISE_TYPE;
this.certificationInformationOptions = res.data.data.CERTIFICATED_TYPE;
})
},
//
getIndustryType(enumeration) {
this.enterpriseCertificationForm.enterpriseIndustrySmallType = ""
industryType(enumeration).then((res) => {
this.smallTypeOptions = res.data.data
})
},
//rearID
handleExceedRearID(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleChangeRearID(files, fileList) {
this.hideUploadR = fileList.length >= this.limitCount;
},
handleRemoveRearID(file, fileList) {
this.enterpriseCertificationForm.rearId = fileList
this.$refs.enterpriseCertificationForm.validateField('rearId')
this.hideUploadR = fileList.length >= this.limitCount;
},
handlePictureCardPreviewRearID(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessRearID(file) {
this.enterpriseCertificationForm.rearId.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('rearId')
},
beforePictureUploadRearID(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
//
handleExceedId(files, fileList) {
this.$message.warning(`当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleChangeId(files, fileList) {
this.hideUploadF = fileList.length >= this.limitCount;
},
handleRemoveId(file, fileList) {
this.enterpriseCertificationForm.faceId = fileList
this.$refs.enterpriseCertificationForm.validateField('faceId')
this.hideUploadF = fileList.length >= this.limitCount;
},
handlePictureCardPreviewId(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessId(file) {
this.enterpriseCertificationForm.faceId.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('faceId')
},
beforePictureUploadId(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
//
handleChangeCompany(files, fileList) {
this.hideUpCompany = fileList.length >= this.limitCount;
},
handleExceedCompany(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleRemoveCompany(file, fileList) {
this.enterpriseCertificationForm.company = fileList
this.$refs.enterpriseCertificationForm.validateField('company')
this.hideUpCompany = fileList.length >= this.limitCount;
},
handlePictureCardPreviewCompany(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessCompany(file) {
this.enterpriseCertificationForm.company.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.enterpriseCertificationForm.validateField('company')
},
beforePictureUploadCompany(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!fileType) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isJPG && isLt1M;
},
submitForm() {
this.$refs.enterpriseCertificationForm.validate((valid) => {
if (valid) {
this.saveSubmit();
} else {
return false;
}
});
},
//
saveSubmit() {
this.enterpriseCertificationForm.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
enterpriseAuth(this.enterpriseCertificationForm).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "企业认证成功",
type: "success"
});
this.goBack()
}
})
},
//
goBack() {
this.$refs.enterpriseCertificationForm.resetFields();
this.area = [];
this.$router.push("/");
methods:{
parentEvent(data){
console.log(data);
this.stepComponent = data
}
},
directives: {}
}
</script>
<style lang="scss" scoped>
<style lang="scss">
.enterpriseCertification_wrap {
margin: 10px;
.enterpriseCertification_info {
display: inline-block;
padding: 20px;
width: 100%;
background: #fff;
h1 {
text-align: center;
.title {
border-bottom: 1px solid #e2e2e2;
line-height: 30px;
margin-bottom: 24px;
color: #444;
&::before {
content: " ";
position: relative;
display: inline-block;
margin-right: 15px;
width: 2px;
top: 2px;
height: 15px;
background-color: rgb(74, 125, 190);
}
}
.step-title {
height: 40px;
margin-bottom: 23px;
padding: 0 13px;
line-height: 40px;
background-color: #f2f2f2;
font-weight: 500;
}
.upload-tip {
display: inline-block;
width: 150px;
line-height: 20px;
font-size: 12px;
color: #999;
margin-top: 10px;
margin-left: 20px;
}
.text_div {
text-align: center;
@ -657,20 +103,27 @@ export default {
text-align: center;
button {
width: 120px;
margin-right: 20px;
}
}
}
}
</style>
<style lang="scss">
.hide .el-upload--picture-card {
display: none;
}
.enterpriseCertification_info .el-upload-list--picture-card .el-upload-list__item ,.enterpriseCertification_info .el-upload--picture-card{
width: 130px;
height: 110px;
line-height: 110px;
}
.linkage {
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
.el-form-item.linkageItem {
min-width: 130px;

323
src/views/fids/enterpriseManagement/enterpriseCertification/components/show.vue

@ -0,0 +1,323 @@
<template>
<div>
<div>
<span>
前缀申请
<i class="el-icon-question pointer" style="color:gray;" @click="showInnerHelp = !showInnerHelp"></i>
</span>
<el-link type="primary" class="fr" @click="editEnperprise">
<i class="el-icon-edit"></i>
修改
</el-link>
<div class="content-inner" v-show="showInnerHelp">
<div class="transition-box">
<div class="title-bar-text">
<strong>标识申请</strong>
</div>
<div class="title-bar-text">
1. 基础用户通过填写资质信息<br>
2. 成功提交资质信息后请耐心等待审核员进行审核<br>
3. 审核通过后如若资质信息有变更请及时进行修改<br>
4. 被驳回后请详细核查驳回原因更正后可继续提交审核
</div>
</div>
</div>
</div>
<div class="content-box">
<el-tabs type="border-card">
<el-tab-pane label="企业资质信息">
<el-form :model="stepData" ref="step1" label-width="180px" label-position="right">
<div class="step-title">
<span>资质信息</span>
</div>
<div class="title">
<span>单位信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="单位名称:"><span>{{stepData.orgName}}</span></el-form-item>
<el-form-item label="单位证件类型:"><span>{{stepData.orgCrtTypeValue}}</span></el-form-item>
<el-form-item label="行业类型:"><span>{{stepData.industryCategoryValue}}-{{stepData.industrySpecificValue}}</span></el-form-item>
<el-form-item label="注册机关:"><span>{{stepData.regAuthority}}</span></el-form-item>
<el-form-item label="成立日期:"><span>{{stepData.establishDate}}</span></el-form-item>
<el-form-item label="企业前缀:"><span>{{stepData.entPrefix}}</span></el-form-item>
<el-form-item label="单位证件照片:">
<img :src="stepData.orgCrtImgUrl">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位性质:"><span>{{stepData.orgNatureValue}}</span></el-form-item>
<el-form-item label="单位证件号:"><span>{{stepData.orgCrtCode}}</span></el-form-item>
<el-form-item label="单位地址:"><span>{{stepData.orgAddr}}</span></el-form-item>
<el-form-item label="注册资本:"><span>{{stepData.regCapital}} (万元)</span></el-form-item>
<el-form-item label="有效期:"><span>{{stepData.periodValidity}}</span></el-form-item>
<el-form-item label="官方网站:"><span>{{stepData.website}}</span></el-form-item>
<el-form-item label="单位简介:"><span>{{stepData.orgDesc}}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<span>法人信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="法定代表人姓名:"><span>{{stepData.legalName}}</span></el-form-item>
<el-form-item label="法定代表人手机号:"><span>{{stepData.legalPhone}}</span></el-form-item>
<el-form-item label="法定代表人传真:"><span>{{stepData.legalFax}}</span></el-form-item>
<el-form-item label="法定代表人证件照片:">
<img :src="stepData.legalCrtBackImgUrl">
<img :src="stepData.legalCrtFrontImgUrl">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法定代表人证件类型:"><span>{{stepData.legalCrtTypeValue}}</span></el-form-item>
<el-form-item label="法定代表人证件号:"><span>{{stepData.legalCrtNo}}</span></el-form-item>
<el-form-item label="法定代表人邮箱:"><span>{{stepData.legalEmail}}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<span>联系人信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="联系人证件类型:"><span>{{stepData.contactCrtTypeValue}}</span></el-form-item>
<el-form-item label="联系人证件照片:">
<img :src="stepData.contactCrtBackImgUrl">
<img :src="stepData.contactCrtFrontImgUrl">
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:"><span>{{stepData.contactPhone}}</span></el-form-item>
<el-form-item label="联系人证件号:"><span>{{stepData.contactCrtNo}}</span></el-form-item>
<el-form-item label="联系人邮箱:"><span>{{stepData.contactEmail}}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="企业标识注册解析系统信息">
<el-form :model="stepData" ref="step2" label-width="180px" label-position="right">
<div class="step-title">
<span>系统建设</span>
</div>
<div class="title">
<span>企业注册系统信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="注册系统部署方式:"><span>{{stepData.entInfoSyses[0].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
<el-form-item label="注册系统IP地址及端口号:"><span>{{stepData.entInfoSyses[0].ipPort}}</span></el-form-item>
</el-col>
<el-col :span="12">
<template v-if="stepData.entInfoSyses[0].deployMode == 1">
<el-form-item label="注册系统所在地:">
<span>{{stepData.entInfoSyses[0].deployAddrProvince}}-{{stepData.entInfoSyses[0].deployAddrCity}}-{{stepData.entInfoSyses[0].deployAddrCounty}}</span>
</el-form-item>
<el-form-item label="部署地址:"><span>{{stepData.entInfoSyses[0].deployAddr}}</span></el-form-item>
</template>
<template v-else-if="stepData.entInfoSyses[0].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[0].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="注册数据部署方式:"><span>{{stepData.entInfoSyses[1].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col>
<el-col :span="12">
<template v-if="stepData.entInfoSyses[1].deployMode == 1">
<el-form-item label="注册数据所在地:">
<span>{{stepData.entInfoSyses[1].deployAddrProvince}}-{{stepData.entInfoSyses[1].deployAddrCity}}-{{stepData.entInfoSyses[1].deployAddrCounty}}</span>
</el-form-item>
<el-form-item label="部署地址:"><span>{{stepData.entInfoSyses[1].deployAddr}}</span></el-form-item>
</template>
<template v-else-if="stepData.entInfoSyses[1].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[1].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="注册备份数据部署方式:"><span>{{stepData.entInfoSyses[2].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col>
<el-col :span="12">
<template v-if="stepData.entInfoSyses[2].deployMode == 1">
<el-form-item label="注册备份数据所在地:">
<span>{{stepData.entInfoSyses[2].deployAddrProvince}}-{{stepData.entInfoSyses[2].deployAddrCity}}-{{stepData.entInfoSyses[2].deployAddrCounty}}</span>
</el-form-item>
<el-form-item label="部署地址:"><span>{{stepData.entInfoSyses[1].deployAddr}}</span></el-form-item>
</template>
<template v-else-if="stepData.entInfoSyses[2].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[2].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
<div class="title">
<span>企业解析系统信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="解析系统部署方式:"><span>{{stepData.entInfoSyses[3].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col>
<el-col :span="12">
<template v-if="stepData.entInfoSyses[3].deployMode == 1">
<el-form-item label="解析系统所在地:">
<span>{{stepData.entInfoSyses[3].deployAddrProvince}}-{{stepData.entInfoSyses[3].deployAddrCity}}-{{stepData.entInfoSyses[3].deployAddrCounty}}</span>
</el-form-item>
</template>
<template v-else-if="stepData.entInfoSyses[3].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[3].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
<div class="title">
<span>企业服务系统信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="服务系统建设类型:"><span>{{stepData.servSysBuildTypeValue}}</span></el-form-item>
<el-form-item label="服务系统建设合同:" v-if="stepData.servSysBuildType == 2">
<el-link type="primary" :href="stepData.servSysBuildContractFileUrl">{{stepData.servSysBuildContractFileUrl}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item label="服务系统建设委托机构名称:" v-if="stepData.servSysBuildType == 2"><span>{{stepData.servSysBuildName}}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="服务系统运营类型:"><span>{{stepData.servSysOperTypeValue}}</span></el-form-item>
<el-form-item label="服务系统运营合同:" v-if="stepData.servSysOperType == 2">
<el-link type="primary" :href="stepData.servSysOperContractFileUrl">{{stepData.servSysOperContractFileUrl}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="服务系统运营委托机构名称:" v-if="stepData.servSysOperType == 2"><span>{{stepData.servSysOperName}}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备份服务系统部署方式:"><span>{{stepData.entInfoSyses[4].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col>
<el-col :span="12">
<template v-if="stepData.entInfoSyses[4].deployMode == 1">
<el-form-item label="备份服务系统所在地:">
<span>{{stepData.entInfoSyses[4].deployAddrProvince}}-{{stepData.entInfoSyses[4].deployAddrCity}}-{{stepData.entInfoSyses[4].deployAddrCounty}}</span>
</el-form-item>
</template>
<template v-else-if="stepData.entInfoSyses[4].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[4].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="企业灾备与标识服务信息">
<el-form :model="stepData" ref="step3" label-width="180px" label-position="right">
<div class="step-title">
<span>灾备与服务</span>
</div>
<div class="title">
<span>托管信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="数据托管单位名称:"><span>{{stepData.dataHostingOrg}}</span></el-form-item>
<el-form-item label="数据托管合同:">
<el-link type="primary" :href="stepData.dataHostingContractFileUrl">{{stepData.dataHostingContractFileRid}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="服务托管单位名称:"><span>{{stepData.servHostingOrg}}</span></el-form-item>
<el-form-item label="服务托管合同:">
<a :href="stepData.servHostingContractFileUrl">{{stepData.servHostingContractFileRid}}</a>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<span>标识服务信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="服务行业:"><span>{{stepData.entInfoSerIndustries}}</span></el-form-item>
<el-form-item label="标识服务网站域名:"><span>{{stepData.extDomain}}</span></el-form-item>
<el-form-item label="是否取得过互联网域名或增值电信业务经营相关许可:"><span>{{stepData.orgName}}</span></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="标识服务网站名称:"><span>{{stepData.extWebName}}</span></el-form-item>
<el-form-item label="标识服务网站IP:"><span>{{stepData.extIpAddr}}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script>
import {enterpriseInfoAll} from "@/api/enterpriseManagement";
export default {
name:"showEnterpriseInfo",
data(){
return {
showInnerHelp:false,
stepData:{}
}
},
mounted(){
this.getEnterpriseAll()
},
methods:{
getEnterpriseAll(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code)
{
enterpriseInfoAll(code).then(res => {
console.log(res.data);
this.stepData = res.data.data
if(this.stepData.entInfoSyses.length == 0) {
this.stepData.entInfoSyses = [
{'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''},
{'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
]
}
})
}
},
editEnperprise(){
this.$emit('child-event','step'+parseInt(this.stepData.currentPage+1))
}
}
}
</script>
<style lang="scss" scoped>
.content-inner {
position: relative;
width: 100%;
// height: 120px;
margin: 10px 0;
padding: 10px;
font-size: 12px;
background-color: #fffce1;
border: 1px solid #f5e49c;
color: #2c3e50;
.title-bar-text {
line-height: 1.5;
}
}
.content-box {
position: relative;
margin: 20px 0;
}
</style>
<style lang="scss">
.content-box .el-form-item__label {
font-weight: 400 !important;
}
</style>

780
src/views/fids/enterpriseManagement/enterpriseCertification/components/step1.vue

@ -0,0 +1,780 @@
<template>
<el-form :model="stepData1" :rules="rules" ref="step1" label-width="180px">
<p class="text-right">
<el-link type="primary" @click="$emit('child-event','show')"><i class="el-icon-back"></i>返回</el-link>
</p>
<div class="step-title">
<span>企业资质信息</span>
</div>
<div class="title">
<span>单位信息</span>
</div>
<el-row>
<el-col :span="10">
<el-form-item label="单位名称:" prop="orgName">
<el-input v-model="stepData1.orgName"></el-input>
</el-form-item>
<el-form-item label="单位证件类型:" prop="orgCrtType">
<el-select v-model="stepData1.orgCrtType" placeholder="请选择单位证件类型">
<el-option
v-for="item in creditCodeOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<div class="linkage">
<el-form-item label="行业类型:" class="is-required"></el-form-item>
<el-form-item prop="industryCategory" class="linkageItem">
<el-select v-model="stepData1.industryCategory" placeholder="请选择门类"
@change="getIndustryType(stepData1.industryCategory)">
<el-option
v-for="item in bigTypeOptions"
:key="item.id"
:label="item.dictValue"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="industrySpecific" class="linkageItem">
<el-select v-model="stepData1.industrySpecific" placeholder="请选择大类">
<el-option
v-for="item in smallTypeOptions"
:key="item.id"
:label="item.dictValue"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
<el-form-item label="注册机关:">
<el-input v-model="stepData1.regAuthority"></el-input>
</el-form-item>
<el-form-item label="成立日期:">
<el-date-picker
v-model="stepData1.establishDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="官网地址:">
<el-input v-model="stepData1.website" placeholder="请输入官网地址" />
</el-form-item>
<el-form-item label="认证资料:" prop="orgCrtImgRid">
<el-upload
ref="companyFileRef"
:class="{hide:hideUpCompany}"
:action=action
:data="faceId"
list-type="picture-card"
:limit=limitCount
:file-list="orgCrtImgFile"
:headers="headers"
:on-change="handleChangeCompany"
:on-preview="handlePictureCardPreviewCompany"
:on-success="handSuccessCompany"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveCompany">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="单位性质" prop="orgNature">
<el-select v-model="stepData1.orgNature" placeholder="请选择单位性质">
<el-option
v-for="item in enterpriseTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="信用代码:" prop="orgCrtCode" >
<el-input v-model="stepData1.orgCrtCode"></el-input>
</el-form-item>
<el-form-item label="单位地址:" class="is-required">
<el-cascader
v-model="value"
:options="optionsArea"
@change="handleChangeArea"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="orgAddr">
<el-input v-model="stepData1.orgAddr"></el-input>
</el-form-item>
<el-form-item label="注册资本:">
<el-input v-model="stepData1.regCapital">
<template slot="append">万元</template>
</el-input>
</el-form-item>
<el-form-item label="有效期:">
<el-date-picker
v-model="stepData1.periodValidity"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="单位简介:">
<el-input v-model="stepData1.orgDesc" type="textarea" rows=6 placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title">
<span>法人信息</span>
</div>
<el-col :span="10">
<el-form-item label="法人或代表人姓名:" prop="legalName">
<el-input v-model="stepData1.legalName"></el-input>
</el-form-item>
<el-form-item label="法人或代表人电话:">
<el-input v-model="stepData1.legalPhone"></el-input>
</el-form-item>
<el-form-item label="法人或代表人传真:">
<el-input v-model="stepData1.legalFax"></el-input>
</el-form-item>
<div class="linkage">
<el-form-item label="法人或代表人证件照:" class="is-required"></el-form-item>
<el-form-item prop="legalCrtFrontImgRid" class="linkageItem">
<el-upload
ref="faceIDFileRef"
:class="{hide:hideUploadF}"
:action=action
:data="faceId"
list-type="picture-card"
:limit=limitCount
:file-list="legalCrtFrontImgFile"
:headers="headers"
:on-change="handleChangeLegalId"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessLegalId"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveLegalId">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlFace" alt="">
</el-dialog>
</el-form-item>
<el-form-item prop="legalCrtBackImgRid" class="linkageItem">
<el-upload
ref="rearIDRef"
:class="{hide:hideUploadR}"
:action=action
:data="rearId"
list-type="picture-card"
:limit=limitCount
:file-list="legalCrtBackImgFile"
:headers="headers"
:on-change="handleChangeRearLegalID"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessRearLegalID"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveRearLegalID">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlRear" alt="">
</el-dialog>
</el-form-item>
<div class="upload-tip linkageItem">
注意事项<br>
支持.jpg .jpeg .png .bmp<br>
身份证的人像面请传入左框<br>
身份证的国徽面请传入右框
</div>
</div>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="法人或代表人证件类型:" prop="legalCrtType">
<el-select v-model="stepData1.legalCrtType" placeholder="请选择">
<el-option
v-for="item in legalPersonOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="法人或代表人证件号码:" prop="legalCrtNo">
<el-input v-model="stepData1.legalCrtNo"></el-input>
</el-form-item>
<el-form-item label="法人或代表人邮箱:">
<el-input v-model="stepData1.legalEmail" placeholder="请输入邮箱" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title">
<span>联系人信息</span>
</div>
<el-col :span="10">
<el-form-item label="联系人姓名:" prop="contactName">
<el-input v-model="stepData1.contactName"></el-input>
</el-form-item>
<el-form-item label="联系人证件类型:" prop="contactCrtType">
<el-select v-model="stepData1.contactCrtType" placeholder="请选择">
<el-option
v-for="item in legalPersonOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<div class="linkage">
<el-form-item label="联系人证件照:"></el-form-item>
<el-form-item class="linkageItem">
<el-upload
ref="faceIDFileRef"
:class="{hide:hideContactsF}"
:action=action
:data="faceId"
list-type="picture-card"
:limit=limitCount
:file-list="contactCrtFrontImgFile"
:headers="headers"
:on-change="handleChangeContactsId"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessContactsId"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveContactsId">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlContactsFace" alt="">
</el-dialog>
</el-form-item>
<el-form-item class="linkageItem">
<el-upload
ref="rearIDRef"
:class="{hide:hideContactsR}"
:action=action
:data="rearId"
list-type="picture-card"
:limit=limitCount
:file-list="contactCrtBackImgFile"
:headers="headers"
:on-change="handleChangeRearContactsId"
:on-exceed="handleExceedId"
:on-preview="handlePictureCardPreviewId"
:on-success="handSuccessRearContactsId"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveRearContactsId">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrlContactsRear" alt="">
</el-dialog>
</el-form-item>
<div class="upload-tip linkageItem">
注意事项<br>
支持.jpg .jpeg .png .bmp<br>
身份证的人像面请传入左框<br>
身份证的国徽面请传入右框
</div>
</div>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="联系人电话:" prop="contactPhone">
<el-input v-model="stepData1.contactPhone"></el-input>
</el-form-item>
<el-form-item label="联系人证件号码:" prop="contactCrtNo">
<el-input v-model="stepData1.contactCrtNo"></el-input>
</el-form-item>
<el-form-item label="联系人邮箱:" prop="contactEmail">
<el-input v-model="stepData1.contactEmail" placeholder="请输入邮箱" />
</el-form-item>
</el-col>
</el-row>
<div class="btn_group">
<el-button size="medium" type="primary" @click="submitForm(0)">保存</el-button>
<el-button size="medium" type="primary" @click="submitForm(1)">下一页</el-button>
</div>
</el-form>
</template>
<script>
import {UPLOAD} from "@/api/api"
import {validatePhone, validateIDCard,validateEmail} from "@/utils/validate";
import {enterpriseAuthNew, registerArea,selectTypeNew, industryType,selectOtherTypeNew,enterpriseInfoNew, informationModify} from "@/api/enterpriseManagement";
export default {
name:"step1",
data(){
const checkIDCard = (rule, value, callback) => {
if (!validateIDCard(value)) {
return callback(new Error("请输入正确的身份证"));
} else {
callback();
}
};
const checkPhone = (rule, value, callback) => {
if (!validatePhone(value)) {
return callback(new Error("请输入正确的手机号码"));
} else {
callback();
}
};
const checkEmail = (rule, value, callback) => {
if (!validateEmail(value)) {
return callback(new Error("请输入正确的邮箱"));
} else {
callback();
}
};
return {
provinceOptions: [],//
cityOptions: [],//
areaOptions: [],//
bigTypeOptions: [],//
smallTypeOptions: [],//
creditCodeOptions: [],//
legalPersonOptions: [],//
enterpriseTypeOptions: [],//
hideUploadF: false,
hideUploadR: false,
hideContactsF: false,
hideContactsR: false,
hideUpCompany: false,
limitCount: 1,
dialogVisible: false,
dialogImageUrlFace: '',
dialogImageUrlRear: '',
dialogImageUrlContactsFace:"",
dialogImageUrlContactsRear:"",
dialogImageUrl: '',
faceId: {
bizType: 'FACE_ID',
fileName: '',
sequence: 0,
url: ''
},
rearId: {
bizType: 'REAR_ID',
fileName: '',
sequence: 0,
url: ''
},
company: {
bizType: 'COMPANY',
fileName: '',
sequence: 0,
url: ''
},
action: UPLOAD,
stepData1: {
orgName:"", //
orgNature:"", //[:1 2 3 4 5]
orgAddr:"", //-
orgAddrProvince:"", //-
orgAddrCity:"", //-
orgAddrCounty:"", //-
orgCrtType:"", //[:1 2]
orgCrtCode:"", //
orgCrtImgRid:"", //
orgCrtImgUrl:"", //
orgDesc:"", //
industryCategory:"", //
industrySpecific:"", //
website:"", //
regAuthority:"", //
regCapital:"", //
establishDate:"", //
periodValidity:"", //
contactName:"", //
contactCrtType:"", //[:1 2 3]
contactCrtNo:"", //
contactCrtBackImgRid:"", //
contactCrtBackImgUrl:"", //
contactCrtFrontImgRid:"", //
contactCrtFrontImgUrl:"", //
contactEmail:"", //
contactPhone:"", //
legalName:"", //
legalCrtType:"", //
legalCrtNo:"", //
legalCrtBackImgRid:"", //
legalCrtBackImgUrl:"", //
legalCrtFrontImgRid:"", //
legalCrtFrontImgUrl:"", //
legalEmail:"", //
legalFax:"", //
legalPhone:"" //
},
orgCrtImgFile:[],
legalCrtFrontImgFile:[],
legalCrtBackImgFile:[],
contactCrtFrontImgFile:[],
contactCrtBackImgFile:[],
rules: {
//
orgName: [
{required: true, message: '请输入单位名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
orgNature: [
{required: true, message: '请选择单位性质', trigger: "change"},
],
orgAddr: [
{required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
orgAddrProvince: [
{required: true, message: '请选择省', trigger: "change"},
],
orgAddrCity: [
{required: true, message: '请选择市', trigger: "change"},
],
// orgAddrCounty: [
// {required: true, message: '', trigger: "change"},
// ],
orgCrtType: [
{required: true, message: '请选择单位证件类型', trigger: 'change'}
],
orgCrtCode: [
{required: true, message: '请输入信用代码', trigger: 'blur'},
],
orgCrtImgRid: [
{required: true, message: '请上传认证资料', trigger: 'blur'},
],
industrySpecific: [
{required: true, message: '请选择行业大类', trigger: 'change'}
],
industryCategory: [
{required: true, message: '请选择行业门类', trigger: 'change'}
],
//
contactName: [
{required: true, message: '请输入联系人姓名', trigger: 'blur'},
],
contactCrtType: [
{required: true, message: '请选择联系人证件类型', trigger: 'change'}
],
contactCrtNo: [
{required: true, message: "请输入联系人证件号", trigger: "blur"},
{validator: checkIDCard, trigger: "blur"},
],
contactPhone: [
{required: true, message: '请输入联系电话'},
{validator: checkPhone, trigger: "blur"}
],
contactEmail: [
{required: true, message: '请输入联系人邮箱'},
{validator: checkEmail, trigger: "blur"}
],
//
legalName: [
{required: true, message: '请输入法人或代表人姓名', trigger: 'blur'},
],
legalCrtType: [
{required: true, message: '请选择法人或代表人证件类型', trigger: 'change'}
],
legalCrtNo: [
{required: true, message: "请输入法人或代表人证件号码", trigger: "blur"},
{validator: checkIDCard, trigger: "blur"},
],
legalCrtFrontImgRid: [
{required: true, message: '请上传证件照正面', trigger: 'blur'},
],
legalCrtBackImgRid: [
{required: true, message: '请上传证件照反面', trigger: 'blur'},
]
},
value:[],
optionsArea:[],
aAreaList:{}
}
},
computed: {
headers() {
return {
token: 'Bearer ' + this.$db.get("TOKEN", ""),
tenant: this.$db.get("TENANT", "") || "",
Authorization: `Basic ${this.$Base64.encode(`${process.env.VUE_APP_CLIENT_ID}:${process.env.VUE_APP_CLIENT_SECRET}`)}`
};
},
},
mounted(){
this.getAreaAll()
this.getType(0);
this.getEnterpriseInfo()
},
methods: {
getEnterpriseInfo(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code)
{
enterpriseInfoNew(code).then(res => {
this.stepData1 = res.data.data
this.value = [this.stepData1.orgAddrProvince,this.stepData1.orgAddrCity,this.stepData1.orgAddrCounty||null]
if(this.stepData1.industryCategory)
{
this.getIndustryType(this.stepData1.industryCategory,true)
}
if(this.stepData1.orgCrtImgUrl)
{
this.orgCrtImgFile = [{name: this.stepData1.orgCrtImgUrl, url: this.stepData1.orgCrtImgUrl}]
this.hideUpCompany = true
}
if(this.stepData1.legalCrtFrontImgUrl){
this.legalCrtFrontImgFile = [{name: this.stepData1.legalCrtFrontImgUrl, url: this.stepData1.legalCrtFrontImgUrl}]
this.hideUploadF = true
}
if(this.stepData1.legalCrtBackImgUrl){
this.legalCrtBackImgFile = [{name: this.stepData1.legalCrtBackImgUrl, url: this.stepData1.legalCrtBackImgUrl}]
this.hideUploadR = true
}
if(this.stepData1.contactCrtFrontImgUrl) {
this.contactCrtFrontImgFile = [{name: this.stepData1.contactCrtFrontImgUrl, url: this.stepData1.contactCrtFrontImgUrl}]
this.hideContactsF = true
}
if(this.stepData1.contactCrtBackImgUrl) {
this.contactCrtBackImgFile = [{name: this.stepData1.contactCrtBackImgUrl, url: this.stepData1.contactCrtBackImgUrl}]
this.hideContactsR = true
}
})
}
},
handleChangeArea(value){
this.stepData1.orgAddrProvince = value[0]
this.stepData1.orgAddrCity = value[1]
if(value[2])
{
this.stepData1.orgAddrCounty = value[2]
}
},
//--
getAreaAll() {
return registerArea().then((res) => {
this.aAreaList = res?.data?.data ? res.data.data:{}
for (const key in this.aAreaList[86]) {
if (Object.hasOwnProperty.call(this.aAreaList[86], key)) {
const element = this.aAreaList[86][key];
this.optionsArea.push({value:key,label:element})
}
}
for (let i = 0; i < this.optionsArea.length; i++) {
const node = this.optionsArea[i];
node.children = this.formatArea(this.aAreaList[node.value])
}
})
},
//children
formatArea(option){
let children = []
for (const key in option) {
if (Object.hasOwnProperty.call(option, key)) {
const element2 = option[key];
if(this.aAreaList[key]){
children.push({
value:key,
label:element2,
children : this.formatArea(this.aAreaList[key])
})
} else {
children.push({value:key,label:element2})
}
}
}
return children
},
//
getType(parentId) {
selectTypeNew(parentId).then((res) => {
this.bigTypeOptions = res.data.data;
})
selectOtherTypeNew().then((res) => {
for(let i in res.data.data.orgCrtType){
this.creditCodeOptions.push({label:i,value:res.data.data.orgCrtType[i]})
}
for(let i in res.data.data.contactCrtType){
this.legalPersonOptions.push({label:i,value:res.data.data.contactCrtType[i]})
}
for(let i in res.data.data.orgNature){
this.enterpriseTypeOptions.push({label:i,value:res.data.data.orgNature[i]})
}
})
},
//
getIndustryType(parentId,isShow = false) {
if(!isShow)
{
this.stepData1.industrySpecific = ""
}
selectTypeNew(parentId).then((res) => {
this.smallTypeOptions = res.data.data;
})
},
//
handSuccessContactsId(file) {
this.stepData1.contactCrtFrontImgRid = file.data.idisResult
this.stepData1.contactCrtFrontImgUrl = file.data.url
this.contactCrtFrontImgFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step1.validateField('contactCrtFrontImgRid')
},
//
handleRemoveContactsId(file, fileList) {
this.stepData1.contactCrtFrontImgRid = fileList
this.$refs.step1.validateField('contactCrtFrontImgRid')
this.hideContactsF = fileList.length >= this.limitCount;
},
//
handleChangeContactsId(files, fileList) {
this.hideContactsF = fileList.length >= this.limitCount;
},
//
handSuccessRearContactsId(file) {
this.stepData1.contactCrtBackImgRid = file.data.idisResult
this.stepData1.contactCrtBackImgUrl = file.data.url
this.contactCrtBackImgFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step1.validateField('contactCrtBackImgRid')
},
//
handleRemoveRearContactsId(file, fileList) {
this.stepData1.contactCrtBackImgRid = fileList
this.$refs.step1.validateField('contactCrtBackImgRid')
this.hideContactsR = fileList.length >= this.limitCount;
},
//
handleChangeRearContactsId(files, fileList) {
this.hideContactsR = fileList.length >= this.limitCount;
},
//
//
handSuccessLegalId(file) {
this.stepData1.legalCrtFrontImgRid = file.data.idisResult
this.stepData1.legalCrtFrontImgUrl = file.data.url
this.legalCrtFrontImgFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step1.validateField('legalCrtFrontImgRid')
},
//
handleRemoveLegalId(file, fileList) {
this.stepData1.legalCrtFrontImgRid = fileList
this.$refs.step1.validateField('legalCrtFrontImgRid')
this.hideUploadF = fileList.length >= this.limitCount;
},
//
handleChangeLegalId(files, fileList){
this.hideUploadF = fileList.length >= this.limitCount;
},
//
handSuccessRearLegalID(file) {
this.stepData1.legalCrtBackImgRid = file.data.idisResult
this.stepData1.legalCrtBackImgUrl = file.data.url
this.legalCrtBackImgFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step1.validateField('legalCrtBackImgRid')
},
//
handleRemoveRearLegalID(file, fileList) {
this.stepData1.legalCrtBackImgRid = fileList
this.$refs.step1.validateField('legalCrtBackImgRid')
this.hideUploadR = fileList.length >= this.limitCount;
},
//
handleChangeRearLegalID(files, fileList) {
this.hideUploadR = fileList.length >= this.limitCount;
},
//
//
handleChangeCompany(files, fileList) {
this.hideUpCompany = fileList.length >= this.limitCount;
// this.dialogImageUrl = URL.createObjectURL(files.raw);
},
//
handleRemoveCompany(file, fileList) {
this.stepData1.orgCrtImgRid = ''
this.orgCrtImgFile = fileList
this.$refs.step1.validateField('orgCrtImgRid')
this.hideUpCompany = fileList.length >= this.limitCount;
},
//
handlePictureCardPreviewCompany(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
handSuccessCompany(file) {
this.stepData1.orgCrtImgRid = file.data.idisResult
this.stepData1.orgCrtImgUrl = file.data.url
this.orgCrtImgFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step1.validateField('orgCrtImgRid')
},
//
//
handleBeforePictureUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 5;
const fileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/bmp']
const isJPG = fileType.indexOf(file.type) != -1
if (!isJPG) {
this.$message.error('上传图片只能是 JPEG、JPG、PNG、GIF、BMP 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 5MB!");
}
return isJPG && isLt1M;
},
//
handlePictureCardPreviewId(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
handleExceedId(files, fileList) {
this.$message.warning(`当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
//
submitForm(type) {
this.$refs.step1.validate((valid) => {
if (valid) {
this.saveSubmit(type);
} else {
return false;
}
});
},
//
saveSubmit(type) {
this.stepData1.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
this.stepData1.currentPage = type
enterpriseAuthNew(this.stepData1).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "操作成功",
type: "success"
});
// this.$refs.step1.resetFields();
this.$emit('child-event','step'+parseInt(type+1))
}
})
},
}
}
</script>
<style lang="scss" scoped>
.el-select,.el-cascader {
width: 100%;
}
</style>

561
src/views/fids/enterpriseManagement/enterpriseCertification/components/step2.vue

@ -0,0 +1,561 @@
<template>
<el-form :model="stepData2" :rules="rules" ref="step2" label-width="200px">
<p class="text-right">
<el-link type="primary" @click="$emit('child-event','show')"><i class="el-icon-back"></i>返回</el-link>
</p>
<div class="step-title">
<span>企业标识注册解析系统信息</span>
</div>
<div class="title">
<span>企业注册系统信息</span>
</div>
<el-row>
<el-col :span="10">
<el-form-item label="注册系统部署方式:" prop="entInfoSyses[0].deployMode">
<el-select v-model="stepData2.entInfoSyses[0].deployMode" placeholder="请选择部署方式">
<el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item >
<span slot="label">
<span>注册系统IP地址及端口号</span>
<span>
<el-tooltip class="item" effect="dark" content="请按[x.x.x.x]:xxx或[xxxx:xxxx:xxxx::: …]:xxx格式填写,多个IP之间用英文分号分隔" placement="bottom">
<i class="el-icon-s-opportunity" style="color:gold;font-size:18px"></i>
</el-tooltip>
</span>
</span>
<el-input v-model="stepData2.entInfoSyses[0].ipPort"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.entInfoSyses[0].deployMode == 1">
<el-form-item label="注册系统所在地:" prop="entInfoSyses[0].deployAddrCounty">
<el-cascader v-model="regSysArea" :options="optionsArea" @change="handleChangeArea($event,0)"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="entInfoSyses[0].deployAddr">
<el-input v-model="stepData2.entInfoSyses[0].deployAddr"></el-input>
</el-form-item>
</template>
<template v-else-if="stepData2.entInfoSyses[0].deployMode == 2">
<el-form-item label="云服务商名称:" prop="entInfoSyses[0].name">
<el-input v-model="stepData2.entInfoSyses[0].name"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="注册数据部署方式:" prop="entInfoSyses[1].deployMode">
<el-select v-model="stepData2.entInfoSyses[1].deployMode" placeholder="请选择部署方式">
<el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.entInfoSyses[1].deployMode == 1">
<el-form-item label="注册数据所在地:" prop="entInfoSyses[1].deployAddrCounty">
<el-cascader v-model="regDataArea" :options="optionsArea" @change="handleChangeArea($event,1)"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="entInfoSyses[1].deployAddr">
<el-input v-model="stepData2.entInfoSyses[1].deployAddr"></el-input>
</el-form-item>
</template>
<template v-else-if="stepData2.entInfoSyses[1].deployMode == 2">
<el-form-item label="云服务商名称:" prop="entInfoSyses[1].name" >
<el-input v-model="stepData2.entInfoSyses[1].name"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="注册备份数据部署方式:" prop="entInfoSyses[2].deployMode">
<el-select v-model="stepData2.entInfoSyses[2].deployMode" placeholder="请选择部署方式">
<el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.entInfoSyses[2].deployMode == 1">
<el-form-item label="注册备份数据所在地:" prop="entInfoSyses[2].deployAddrCounty">
<el-cascader v-model="regDataBackArea" :options="optionsArea" @change="handleChangeArea($event,2)"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="entInfoSyses[2].deployAddr">
<el-input v-model="stepData2.entInfoSyses[2].deployAddr"></el-input>
</el-form-item>
</template>
<template v-else-if="stepData2.entInfoSyses[2].deployMode == 2">
<el-form-item label="云服务商名称:" prop="entInfoSyses[2].name" >
<el-input v-model="stepData2.entInfoSyses[2].name"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<div class="title">
<span>企业解析系统信息</span>
</div>
<el-col :span="10">
<el-form-item label="解析系统部署方式:" prop="entInfoSyses[3].deployMode">
<el-select v-model="stepData2.entInfoSyses[3].deployMode" placeholder="请选择部署方式">
<el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.entInfoSyses[3].deployMode == 1">
<el-form-item label="解析系统所在地:" prop="entInfoSyses[3].deployAddrCounty">
<el-cascader v-model="analysisSysArea" :options="optionsArea" @change="handleChangeArea($event,3)"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="entInfoSyses[3].deployAddr">
<el-input v-model="stepData2.entInfoSyses[3].deployAddr"></el-input>
</el-form-item>
</template>
<template v-else-if="stepData2.entInfoSyses[3].deployMode == 2">
<el-form-item label="云服务商名称:" prop="entInfoSyses[3].name" >
<el-input v-model="stepData2.entInfoSyses[3].name"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<div class="title">
<span>企业服务系统信息</span>
</div>
<el-col :span="10">
<el-form-item label="服务系统建设类型:" prop="servSysBuildType">
<el-select v-model="stepData2.servSysBuildType" placeholder="请选择">
<el-option label="自营" :value="1"></el-option>
<el-option label="托管" :value="2"></el-option>
</el-select>
</el-form-item>
<template v-if="stepData2.servSysBuildType == 2">
<el-form-item label="委托合同:" prop="servSysBuildContractFileRid">
<el-col :span="8">
<el-upload
ref="servSysBuildRef"
:class="{hide:hideServSysBuild}"
:action=action
:data="servSysBuild"
list-type="picture-card"
:limit=limitCount
:file-list="servSysBuildFile"
:headers="headers"
:on-change="handleChangeServSysBuild"
:on-preview="handlePictureCardPreviewServSysBuild"
:on-success="handSuccessServSysBuild"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServSysBuild">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="8">
<div class="upload-tip">
注意事项<br>
合同附件支持.pdf格式
</div>
</el-col>
</el-form-item>
</template>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.servSysBuildType == 2">
<el-form-item label="委托机构名称:" prop="servSysBuildName" >
<el-input v-model="stepData2.servSysBuildName"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="服务系统运营类型:" prop="servSysOperType">
<el-select v-model="stepData2.servSysOperType" placeholder="请选择">
<el-option label="自营" :value="1"></el-option>
<el-option label="托管" :value="2"></el-option>
</el-select>
</el-form-item>
<template v-if="stepData2.servSysOperType == 2">
<el-form-item label="委托合同:" prop="orgCrtImgRid">
<el-col :span="8">
<el-upload
ref="servSysBuildRef"
:class="{hide:hideServSysOper}"
:action=action
:data="servSysBuild"
list-type="picture-card"
:limit=limitCount
:file-list="servSysOperFile"
:headers="headers"
:on-change="handleChangeServSysOper"
:on-preview="handlePictureCardPreviewServSysOper"
:on-success="handSuccessServSysOper"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServSysOper">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="8">
<div class="upload-tip">
注意事项<br>
合同附件支持.pdf格式
</div>
</el-col>
</el-form-item>
</template>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.servSysOperType == 2">
<el-form-item label="委托机构名称:" prop="servSysOperName" >
<el-input v-model="stepData2.servSysOperName"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="备份系统服务部署方式:" prop="entInfoSyses[4].deployMode">
<el-select v-model="stepData2.entInfoSyses[4].deployMode" placeholder="请选择">
<el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<template v-if="stepData2.entInfoSyses[4].deployMode == 1">
<el-form-item label="备份系统所在地:" prop="entInfoSyses[4].deployAddrCounty">
<el-cascader v-model="sysBackArea" :options="optionsArea" @change="handleChangeArea($event,4)"></el-cascader>
</el-form-item>
<el-form-item label="详细地址:" prop="entInfoSyses[4].deployAddr">
<el-input v-model="stepData2.entInfoSyses[4].deployAddr"></el-input>
</el-form-item>
</template>
<template v-else-if="stepData2.entInfoSyses[4].deployMode == 2">
<el-form-item label="云服务商名称:" prop="entInfoSyses[4].name" >
<el-input v-model="stepData2.entInfoSyses[4].name"></el-input>
</el-form-item>
</template>
</el-col>
</el-row>
<div class="btn_group">
<el-button size="medium" type="primary" @click="submitForm(1)">保存</el-button>
<el-button size="medium" type="primary" @click="submitForm(0)">上一页</el-button>
<el-button size="medium" type="primary" @click="submitForm(2)">下一页</el-button>
</div>
</el-form>
</template>
<script>
import {enterpriseAuthNew2,registerArea,enterpriseInfoNewStep2} from "@/api/enterpriseManagement";
import {UPLOAD} from "@/api/api"
export default {
name:"step2",
data(){
return {
stepData2: {
entInfoSyses:[
{'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''},
{'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
],
servSysBuildType:'', //[: 1 2]
servSysBuildName:'', //
servSysBuildContractFileRid:"", //
servSysBuildContractFileUrl:"", //--url
servSysOperType:'', //[: 1 2]
servSysOperName:'', //
servSysOperContractFileRid:"", //
servSysOperContractFileUrl:'', //--url
},
regSysArea:[], //
regDataArea:[], //
regDataBackArea:[], //
analysisSysArea:[], //
sysBackArea:[], //
rules: {
"entInfoSyses[0].deployMode": [
{required: true, message: '请选择注册系统部署方式', trigger: "change"},
],
"entInfoSyses[0].deployAddr": [
{required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[0].name": [
{required: true, message: '请输入云服务商名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[0].deployAddrCounty":[
{required: true, message: '请选择所在地', trigger: "change"},
],
"entInfoSyses[1].deployMode": [
{required: true, message: '请选择注册数据部署方式', trigger: "change"},
],
"entInfoSyses[1].deployAddr": [
{required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[1].name": [
{required: true, message: '请输入云服务商名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[1].deployAddrCounty":[
{required: true, message: '请选择所在地', trigger: "change"},
],
"entInfoSyses[2].deployMode": [
{required: true, message: '请选择注册备份数据部署方式', trigger: "change"},
],
"entInfoSyses[2].deployAddr": [
{required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[2].name": [
{required: true, message: '请输入云服务商名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[2].deployAddrCounty":[
{required: true, message: '请选择所在地', trigger: "change"},
],
"entInfoSyses[3].deployMode": [
{required: true, message: '请选择解析系统部署方式', trigger: "change"},
],
"entInfoSyses[3].deployAddr": [
{required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[3].name": [
{required: true, message: '请输入云服务商名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'}
],
"entInfoSyses[3].deployAddrCounty":[
{required: true, message: '请选择所在地', trigger: "change"},
],
servSysBuildType:[
{required: true, message: '服务系统建设类型', trigger: "change"},
],
servSysOperType:[
{required: true, message: '服务系统运营类型', trigger: "change"},
]
},
limitCount: 1,
dialogVisible: false,
dialogImageUrl: '',
hideServSysBuild:false,
hideServSysOper:false,
servSysOperFile:[],
servSysBuildFile:[],
action: UPLOAD,
servSysBuild: {
bizType: 'BUILD_ID',
fileName: '',
sequence: 0,
url: ''
},
optionsArea:[], //--tree
aAreaList:{} //-
}
},
computed: {
headers() {
return {
token: 'Bearer ' + this.$db.get("TOKEN", ""),
tenant: this.$db.get("TENANT", "") || "",
Authorization: `Basic ${this.$Base64.encode(`${process.env.VUE_APP_CLIENT_ID}:${process.env.VUE_APP_CLIENT_SECRET}`)}`
};
},
},
mounted() {
this.getAreaAll()
this.getEnterpriseInfo()
},
methods: {
getEnterpriseInfo(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code)
{
enterpriseInfoNewStep2(code).then(res => {
if(res.data.data.entInfoSyses.length == 0)
{
return
}
this.stepData2 = res.data.data
if(this.stepData2.servSysBuildContractFileUrl)
{
this.servSysBuildFile = [{name: this.stepData2.servSysBuildContractFileUrl, url: this.stepData2.servSysBuildContractFileUrl}]
this.hideServSysBuild = true
}
if(this.stepData2.servSysOperContractFileUrl)
{
this.servSysOperFile = [{name: this.stepData2.servSysOperContractFileUrl, url: this.stepData2.servSysOperContractFileUrl}]
this.hideServSysOper = true
}
if(this.stepData2.entInfoSyses[0].deployMode == 1) {
this.regSysArea = [this.stepData2.entInfoSyses[0].deployAddrProvince,this.stepData2.entInfoSyses[0].deployAddrCity,this.stepData2.entInfoSyses[0].deployAddrCounty||null]
}
if(this.stepData2.entInfoSyses[1].deployMode == 1) {
this.regDataArea = [this.stepData2.entInfoSyses[1].deployAddrProvince,this.stepData2.entInfoSyses[1].deployAddrCity,this.stepData2.entInfoSyses[1].deployAddrCounty||null]
}
if(this.stepData2.entInfoSyses[2].deployMode == 1) {
this.regDataBackArea = [this.stepData2.entInfoSyses[2].deployAddrProvince,this.stepData2.entInfoSyses[2].deployAddrCity,this.stepData2.entInfoSyses[2].deployAddrCounty||null]
}
if(this.stepData2.entInfoSyses[3].deployMode == 1) {
this.analysisSysArea = [this.stepData2.entInfoSyses[3].deployAddrProvince,this.stepData2.entInfoSyses[3].deployAddrCity,this.stepData2.entInfoSyses[3].deployAddrCounty||null]
}
if(this.stepData2.entInfoSyses[4].deployMode == 1 && this.stepData2.entInfoSyses[4].deployAddrProvince) {
this.sysBackArea = [this.stepData2.entInfoSyses[4].deployAddrProvince,this.stepData2.entInfoSyses[4].deployAddrCity,this.stepData2.entInfoSyses[4].deployAddrCounty||null]
}
})
}
},
//--
getAreaAll() {
return registerArea().then((res) => {
this.aAreaList = res?.data?.data ? res.data.data:{}
for (const key in this.aAreaList[86]) {
if (Object.hasOwnProperty.call(this.aAreaList[86], key)) {
const element = this.aAreaList[86][key];
this.optionsArea.push({value:key,label:element})
}
}
for (let i = 0; i < this.optionsArea.length; i++) {
const node = this.optionsArea[i];
node.children = this.formatArea(this.aAreaList[node.value])
}
})
},
//children
formatArea(option){
let children = []
for (const key in option) {
if (Object.hasOwnProperty.call(option, key)) {
const element2 = option[key];
if(this.aAreaList[key]){
children.push({
value:key,
label:element2,
children : this.formatArea(this.aAreaList[key])
})
} else {
children.push({value:key,label:element2})
}
}
}
return children
},
handleChangeArea(area,num){
console.log(area,num);
this.stepData2.entInfoSyses[num].deployAddrProvince = area[0]
this.stepData2.entInfoSyses[num].deployAddrCity = area[1]
if(area[2])
this.stepData2.entInfoSyses[num].deployAddrCounty = area[2]
},
//
submitForm(type) {
this.$refs.step2.validate((valid) => {
if (valid) {
this.saveSubmit(type);
} else {
return false;
}
});
},
//
saveSubmit(type) {
this.stepData2.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
this.stepData2.currentPage = type
enterpriseAuthNew2(this.stepData2).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "操作成功",
type: "success"
});
// this.$refs.step1.resetFields();
this.$emit('child-event','step'+parseInt(type+1))
}
})
},
handleBeforePictureUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 5;
const fileType = ['application/pdf']
const isJPG = fileType.indexOf(file.type) != -1
if (!isJPG) {
this.$message.error('上传图片只能是 PDF 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 5MB!");
}
return isJPG && isLt1M;
},
//
handleChangeServSysBuild(files, fileList) {
this.hideServSysBuild = fileList.length >= this.limitCount;
},
handleRemoveServSysBuild(file, fileList) {
this.stepData2.servSysBuildContractFileRid = ''
this.servSysBuildFile = fileList
this.$refs.step2.validateField('servSysBuildContractFileRid')
this.hideServSysBuild = fileList.length >= this.limitCount;
},
handlePictureCardPreviewServSysBuild(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessServSysBuild(file) {
this.stepData2.servSysBuildContractFileRid = file.data.idisResult
this.stepData2.servSysBuildContractFileUrl = file.data.url
this.servSysBuildFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step2.validateField('servSysBuildContractFileRid')
},
//
handleChangeServSysOper(files, fileList) {
this.hideServSysOper = fileList.length >= this.limitCount;
},
handleRemoveServSysOper(file, fileList) {
this.stepData2.servSysOperContractFileRid = ''
this.servSysOperFile = fileList
this.$refs.step2.validateField('servSysOperContractFileRid')
this.hideServSysOper = fileList.length >= this.limitCount;
},
handlePictureCardPreviewServSysOper(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handSuccessServSysOper(file) {
this.stepData2.servSysOperContractFileRid = file.data.idisResult
this.stepData2.servSysOperContractFileUrl = file.data.url
this.servSysOperFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step2.validateField('servSysOperContractFileRid')
},
}
}
</script>
<style lang="scss" scoped>
.el-select {
// display: inline-block;
// position: relative;
width: 100%;
}
.el-cascader {
width: 100%;
}
</style>

410
src/views/fids/enterpriseManagement/enterpriseCertification/components/step3.vue

@ -0,0 +1,410 @@
<template>
<el-form :model="stepData3" :rules="rules" ref="step3" label-width="210px">
<p class="text-right">
<el-link type="primary" @click="$emit('child-event','show')"><i class="el-icon-back"></i>返回</el-link>
</p>
<div class="step-title">
<span>企业灾备与标识服务信息</span>
</div>
<div class="title">
<span>托管信息</span>
</div>
<el-row>
<el-col :span="10">
<el-form-item label="数据托管单位名称:" >
<el-input v-model="stepData3.dataHostingOrg"></el-input>
</el-form-item>
<el-form-item label="数据托管合同:">
<el-col :span="8">
<el-upload
ref="dataTrusteeRef"
:class="{hide:hideDataTrustee}"
:action=action
:data="servSysBuild"
list-type="picture-card"
:limit=limitCount
:file-list="dataTrusteeFile"
:headers="headers"
:on-change="handleChangeDataTrustee"
:on-preview="handlePictureCardPreview"
:on-success="handSuccessDataTrustee"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveDataTrustee">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="16">
<div class="upload-tip">
注意事项<br>
请上传加盖公章的数据托管合同支持.pdf格式
</div>
</el-col>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="服务托管单位名称:" >
<el-input v-model="stepData3.servHostingOrg"></el-input>
</el-form-item>
<el-form-item label="服务托管合同:">
<el-col :span="8">
<el-upload
ref="serviceTrusteeRef"
:class="{hide:hideServiceTrustee}"
:action=action
:data="servSysBuild"
list-type="picture-card"
:limit=limitCount
:file-list="serviceTrusteeFile"
:headers="headers"
:on-change="handleChangeServiceTrustee"
:on-preview="handlePictureCardPreview"
:on-success="handSuccessServiceTrustee"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServiceTrustee">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="16">
<div class="upload-tip">
注意事项<br>
请上传加盖公章的服务托管合同支持.pdf格式
</div>
</el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title">
<span>标识服务信息</span>
</div>
<el-col :span="10">
<el-form-item label="服务行业:">
<el-cascader
style="width:100%;"
v-model="entInfoSerIndustries"
:options="options"
:props="props"
clearable></el-cascader>
</el-form-item>
<el-form-item label="标识服务网站域名:">
<el-input v-model="stepData3.extDomain"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="标识服务网站名称:">
<el-input v-model="stepData3.extWebName"></el-input>
</el-form-item>
<el-form-item label="标识服务网站IP:">
<el-input v-model="stepData3.extIpAddr" placeholder="多个IP间以英文分号;间隔, 最后一个ip后面不要添加英文分号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="是否取得过互联网域名或增值电信业务经营相关许可:" label-width="400px" >
<el-switch
v-model="isLicenses"
active-color="rgb(51, 112, 255)"
inactive-color="grey">
</el-switch>
</el-form-item>
</el-row>
<el-row v-if="isLicenses">
<el-col :span="10">
<el-form-item label="域名根服务器运行机构许可证:">
<el-input v-model="entInfoLicenses[0]"></el-input>
</el-form-item>
<el-form-item label="域名注册服务机构许可证:">
<el-input v-model="entInfoLicenses[1]"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="域名注册管理机构许可证:">
<el-input v-model="entInfoLicenses[2]"></el-input>
</el-form-item>
<el-form-item label="增值电信业务经营许可证:">
<el-input v-model="entInfoLicenses[3]"></el-input>
</el-form-item>
</el-col>
</el-row>
<p class="text-center agreement">
<el-checkbox v-model="checked">
我已阅读并接受
<el-link type="primary" target="_blank" href="#/userAgreement"> SNMS用户协议 </el-link>
<el-link type="primary" target="_blank" href="#/privacyStatement"> SNMS隐私声明 </el-link>
</el-checkbox>
</p>
<div class="btn_group">
<el-button size="medium" type="primary" @click="saveSubmit(2)">保存</el-button>
<el-button size="medium" type="primary" @click="saveSubmit(1)">上一页</el-button>
<el-button size="medium" type="primary" @click="submitForm(2)">提交</el-button>
</div>
</el-form>
</template>
<script>
import {enterpriseAuthNew3,enterpriseAuthNewSubmit3,industryTypeStep3,enterpriseInfoNewStep3} from "@/api/enterpriseManagement";
import {UPLOAD} from "@/api/api"
export default {
name:"step3",
data(){
return {
stepData3: {
dataHostingOrg:"", //
dataHostingContractFileRid:"", //
dataHostingContractFileUrl:"", //--url
servHostingOrg:"", //
servHostingContractFileRid:"", //
servHostingContractFileUrl:"", //--url
entInfoSerIndustries:[], //
// entInfoSerIndustries.industryCategory:"", //
// entInfoSerIndustries.industrySpecific:"", //
// entInfoSerIndustries.industryTrade:"", //
// entInfoSerIndustries.industrySubclass:"", //
extWebName:"", //
extDomain:"", //
extIpAddr:"", //IP
entInfoLicenses:[], //
// entInfoLicenses.licenceNo:"", //
// entInfoLicenses.licenceType:"" //[: 1. 2. 3. 4.]
},
rules: {
},
props: { multiple: true },
options:[],
entInfoSerIndustries:[],
limitCount: 1,
isLicenses:false,
dialogVisible: false,
dialogImageUrl: '',
hideDataTrustee:false,
hideServiceTrustee:false,
action: UPLOAD,
servSysBuild: {
bizType: 'BUILD_ID',
fileName: '',
sequence: 0,
url: ''
},
checked:false,
dataTrusteeFile:[],
serviceTrusteeFile:[],
entInfoLicenses:[]
}
},
computed: {
headers() {
return {
token: 'Bearer ' + this.$db.get("TOKEN", ""),
tenant: this.$db.get("TENANT", "") || "",
Authorization: `Basic ${this.$Base64.encode(`${process.env.VUE_APP_CLIENT_ID}:${process.env.VUE_APP_CLIENT_SECRET}`)}`
};
},
},
mounted() {
this.getIndustryType()
this.getEnterpriseInfo()
},
methods: {
getIndustryType(){
industryTypeStep3().then(res=>{
this.options = res.data.data
})
},
getEnterpriseInfo(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code)
{
enterpriseInfoNewStep3(code).then(res=>{
console.log(res);
this.stepData3 = res.data.data
if(this.stepData3.dataHostingContractFileUrl)
{
this.dataTrusteeFile = [{name: this.stepData3.dataHostingContractFileUrl, url: this.stepData3.dataHostingContractFileUrl}]
this.hideDataTrustee = true
}
if(this.stepData3.servHostingContractFileUrl)
{
this.serviceTrusteeFile = [{name: this.stepData3.servHostingContractFileUrl, url: this.stepData3.servHostingContractFileUrl}]
this.hideServiceTrustee = true
}
if(this.stepData3.entInfoSerIndustries.length > 0) {
this.entInfoSerIndustries = []
for (let i = 0; i < this.stepData3.entInfoSerIndustries.length; i++) {
const element = this.stepData3.entInfoSerIndustries[i];
this.entInfoSerIndustries.push([
element.industryCategory, //
element.industrySpecific, //
element.industryTrade, //
element.industrySubclass //
])
}
}
if(this.stepData3.entInfoLicenses.length > 0 ) {
this.isLicenses = true
for (let j = 0; j < this.stepData3.entInfoLicenses.length; j++) {
const element = this.stepData3.entInfoLicenses[j];
this.entInfoLicenses[element.licenceType-1] = element.licenceNo
}
}
})
}
},
//
submitForm(type) {
this.$refs.step3.validate((valid) => {
if (valid) {
if(this.isLicenses && this.entInfoLicenses.length == 0)
{
this.$message({
message: "您已经打开许可证开关,请至少输入一项许可证号,或者关闭开关!",
type: "warning"
});
}
if(this.checked){
this.saveSubmit(type,true);
} else {
this.$message({
message: "请同意《SNMS用户协议》与《SNMS隐私保护声明》",
type: "warning"
});
}
} else {
return false;
}
});
},
//
saveSubmit(type,isSubmit = false) {
this.stepData3.code = `${this.$Base64.decode(this.$db.get('TENANT'))}`;
this.stepData3.currentPage = type
if(this.entInfoSerIndustries.length > 0) {
this.stepData3.entInfoSerIndustries = []
for(let i = 0; i < this.entInfoSerIndustries.length; i++) {
const element = this.entInfoSerIndustries[i];
this.stepData3.entInfoSerIndustries.push({
industryCategory:element[0], //
industrySpecific:element[1], //
industryTrade:element[2], //
industrySubclass:element[3], //
})
}
}
if(this.entInfoLicenses.length > 0) {
this.stepData3.entInfoLicenses = []
for (let j = 0; j < this.entInfoLicenses.length; j++) {
const element = this.entInfoLicenses[j];
if(element)
{
this.stepData3.entInfoLicenses.push({
licenceNo:element,
licenceType:j+1
})
}
}
}
if(isSubmit) {
enterpriseAuthNewSubmit3(this.stepData3).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "操作成功",
type: "success"
});
}
})
} else {
enterpriseAuthNew3(this.stepData3).then(response => {
const res = response.data;
if (res.data) {
this.$message({
message: "操作成功",
type: "success"
});
this.$emit('child-event','step'+parseInt(type+1))
}
})
}
},
//-
handleChangeDataTrustee(files, fileList) {
this.hideDataTrustee = fileList.length >= this.limitCount;
},
//-
handleRemoveDataTrustee(file, fileList) {
this.stepData3.dataHostingContractFileRid = ''
this.stepData3.dataHostingContractFileUrl = ''
this.dataTrusteeFile = fileList
// this.$refs.step3.validateField('dataHostingContractFileRid')
this.hideDataTrustee = fileList.length >= this.limitCount;
},
//-
handSuccessDataTrustee(file) {
this.stepData3.dataHostingContractFileRid = file.data.idisResult
this.stepData3.dataHostingContractFileUrl = file.data.url
this.dataTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
// this.$refs.step3.validateField('dataHostingContractFileRid')
},
//-
handleChangeServiceTrustee(files, fileList) {
this.hideServiceTrustee = fileList.length >= this.limitCount;
},
//-
handleRemoveServiceTrustee(file, fileList) {
this.stepData3.servHostingContractFileRid = ''
this.stepData3.servHostingContractFileUrl = ''
this.serviceTrusteeFile = fileList
this.$refs.step3.validateField('servHostingContractFileRid')
this.hideServiceTrustee = fileList.length >= this.limitCount;
},
//-
handSuccessServiceTrustee(file) {
this.stepData3.servHostingContractFileRid = file.data.idisResult
this.stepData3.servHostingContractFileUrl = file.data.url
this.serviceTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.$refs.step3.validateField('servHostingContractFileRid')
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleBeforePictureUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 5;
const fileType = ['application/pdf']
const isJPG = fileType.indexOf(file.type) != -1
if (!isJPG) {
this.$message.error('上传图片只能是 PDF 格式!');
}
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 5MB!");
}
return isJPG && isLt1M;
},
}
}
</script>
<style lang="scss" scoped>
.el-select {
// display: inline-block;
// position: relative;
width: 100%;
}
.agreement {
margin: 15px 0 30px;
}
</style>

31
src/views/fids/productManagement/productCategoryManagement/Index.vue

@ -39,13 +39,15 @@
<el-table-column prop="commodityName" label="产品名称" align="center"></el-table-column>
<!--<el-table-column prop="barcode" label="二维码" align="center"></el-table-column>
<el-table-column prop="" label="编码方式" align="center"></el-table-column>-->
<el-table-column label="操作" width="380" align="center" fixed="right">
<el-table-column label="操作" width="460" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="info" size="small" @click="showDetail(scope.row.id)">详情</el-button>
<el-button size="small" @click="showDetail(scope.row.id)">详情</el-button>
<el-button type="warning" size="small" @click="modifyRow(scope.row.id)">修改</el-button>
<el-button type="danger" size="small" @click="deleteRow('radio',scope.row)">删除</el-button>
<el-button type="success" size="small" @click="sendCode(scope.row)">发码</el-button>
<el-button type="info" size="small" @click="showSendCodeDetail(scope.row.id)">发码详情</el-button>
<el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button>
</template>
</el-table-column>
</el-table>
@ -89,25 +91,9 @@ export default {
})
};
},
beforeCreate() {
},
create() {
},
beforeMount() {
},
mounted() {
this.search()
},
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
},
computed: {},
watch: {},
methods: {
//
turnAddProduct() {
@ -150,6 +136,15 @@ export default {
path: `/productManagement/productDetails`
})
},
//
showSendCodeDetail(id) {
window.sessionStorage.setItem('id', id);
window.sessionStorage.setItem('from', this.$route.path);
this.$router.push({
path: `/productManagement/sendCodeListByProduct`,query:{companyId:id}
})
},
//
modifyRow(id) {
window.sessionStorage.setItem('id', id);

204
src/views/fids/productManagement/sendCodeListByProduct/Index.vue

@ -0,0 +1,204 @@
<template>
<div class="productSendCodeList_wrap">
<div class="productSendCodeList_info">
<el-table ref="multipleTable"
:data="tableData"
:row-key="getRowKey"
@selection-change="selectionsChange"
border style="width: 100%"
v-loading="dataListLoading">
<el-table-column type="selection" width="50" align="center" :reserve-selection="true"></el-table-column>
<el-table-column prop="createTime" label="发码时间" align="center"></el-table-column>
<el-table-column prop="files" label="产品图片" align="center">
<template slot-scope="scope">
<el-image class="prod_pic" style="width: 40px; height: 40px"
v-for="(item,index) in scope.row.files"
:key="index"
:src="item.url"
:preview-src-list="[item.url]">
</el-image>
</template>
</el-table-column>
<el-table-column prop="qrcodeBase64" label="溯源码" align="center">
<template slot-scope="scope">
<el-image class="prod_pic" style="width: 40px; height: auto"
:src="scope.row.qrcodeBase64"
:preview-src-list="[scope.row.qrcodeBase64]"
>
<div slot="error" class="image-slot">
<i>暂无</i>
</div>
</el-image>
</template>
</el-table-column>
<el-table-column prop="commodityName" label="产品名称" align="center"></el-table-column>
<el-table-column prop="intactCode" label="产品编码" align="center"></el-table-column>
<el-table-column label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="info" size="small" @click="showDetail(scope.row.commodityId,scope.row.id)">详情</el-button>
<!-- <el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
:limit.sync="queryParams.size"
:page.sync="queryParams.current"
:total="total"
@pagination="search"
v-show="total >= 0"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination";//
import {initQueryParams} from '@/utils/commons'//
import {deleteCommodity, sendCodeListByProduct} from "@/api/productManagement";
export default {
name: "sendCodeListByProduct",
components: {Pagination},
props: {},
data() {
return {
dataListLoading:false,
selectValue: "1",
searchValue: "",
tableData: [],
total: 0,
idsArray: [],
ids: "",
queryParams: initQueryParams({
map:{
commodity_id:this.$route.query.companyId || window.sessionStorage.getItem('id'),
},
model: {
current: 1,
size: 10,
dsType: {
code: null
}
}
})
};
},
beforeCreate() {
},
create() {
},
beforeMount() {
this.search()
},
mounted() {
},
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
},
computed: {},
watch: {},
methods: {
//idsArray
selectionsChange(idsArray) {
this.idsArray = idsArray
},
//id
getRowKey(row) {
return row.id;
},
//
search() {
this.dataListLoading = true;
let params = {
selectValue: this.selectValue,
searchValue: this.searchValue,
...this.queryParams
}
sendCodeListByProduct(params).then(res => {
if (res.data.isSuccess) {
res = res.data.data;
this.tableData = res.records;
this.total = res.total
}
}).finally(()=> this.dataListLoading = false);
},
//
showDetail(id,codeSendingId) {
window.sessionStorage.setItem('id', id);
window.sessionStorage.setItem('codeSendingId', codeSendingId);
window.sessionStorage.setItem('from', this.$route.path);
this.$router.push({
path: `/productManagement/productDetails`
})
},
//
bindLabel(row) {
window.sessionStorage.setItem('row', JSON.stringify(row));
window.sessionStorage.setItem('from', this.$route.path);
this.$router.push({
path: `/productManagement/bindLabel`
})
},
},
directives: {},
filters: {},
}
</script>
<style lang="scss" scoped>
.productSendCodeList_wrap {
margin: 10px;
.productSendCodeList_info {
padding: 20px;
background: #fff;
.search_row {
flex-basis: 100%;
display: flex;
.input {
width: 60%;
margin: 0 20px;
}
.el-button {
width: 120px;
}
}
.btn_group {
text-align: left;
margin-top: 30px;
.el-button {
margin-right: 20px;
}
}
.el-table {
margin-top: 10px;
.el-button {
margin-right: 5px;
}
.prod_pic {
border: 1px solid #eee;
margin-right: 5px;
}
}
.el-pagination {
margin-top: 50px;
text-align: right;
}
}
}
</style>

2
src/views/login/login.vue

@ -127,7 +127,7 @@ export default {
saveLogin: true,
isCaptcha: process.env.VUE_APP_IS_CAPTCHA === "true" ? true : false,
loginForm: {
tenantView: "", //ID
tenantView: "j2ufjynd", //ID
tenant: "", //Base64
account: "",//
password: "",//

37
src/views/register/register.vue

@ -55,7 +55,7 @@
v-model="registerForm.again"
/>
</el-form-item>-->
<el-form-item label="企业名称" prop="name">
<el-form-item label="企业名称" prop="orgName">
<el-input placeholder="请输入企业名称"
@keyup.enter.native="handleRegister"
autocomplete="off"
@ -63,9 +63,19 @@
prefix-icon="el-icon-office-building"
ref="name"
type="text"
v-model="registerForm.name"
v-model="registerForm.orgName"
/>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input placeholder="请输入手机号"
name="mobile"
prefix-icon="el-icon-mobile"
ref="mobile"
type="text"
v-model="registerForm.mobile"
/>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-row>
<el-col :span="19">
@ -130,12 +140,13 @@
import Header from "@/components/Header/Header";
import Footer from "@/components/Footer/Footer";
import db from "@/utils/localstorage";
import {register, getEmailCaptcha, verifyAuthCodeRegisterEmail, checkEnterpriseName,checkEmailExits} from "@/api/register";
import {register,getEmailCaptcha, verifyAuthCodeRegisterEmail, checkEnterpriseName,checkEmailExits} from "@/api/register";
import {
/*validatAlphabetAndNum,
validatAlphabets,
validatePasswordStrong,*/
validateEmail,
validMobile
} from "@/utils/my-validate";
export default {
@ -168,6 +179,7 @@ export default {
callback();
}
};*/
const checkName = (rule, value, callback) => {
if (value) {
checkEnterpriseName(value).then(response => {
@ -187,6 +199,13 @@ export default {
callback();
}
};
const checkPhone = (rule, value, callback) => {
if (!validMobile(value)) {
return callback(new Error("请输入正确的电话号码"));
} else {
callback();
}
};
const checked = (rule, value, callback) => {
if (!value) {
return callback(new Error("请勾选阅读并同意!"));
@ -201,8 +220,9 @@ export default {
labelPosition: "top",
disabled: false,
registerForm: {
name: "",
orgName: "",
email: "",
mobile:"",
code: "",
check: false,
},
@ -221,7 +241,7 @@ export default {
{required: true, message: "请再次输入新密码", trigger: "blur"},
{validator: checkAgainPassword, trigger: "blur"},
],*/
name: [
orgName: [
{required: true, message: "不能为空", trigger: "blur"},
{validator: checkName, trigger: "blur"},
],
@ -232,6 +252,11 @@ export default {
code: [
{required: true, message: "请输入验证码", trigger: "blur"}
],
mobile: [
{required: true, message: "请输入电话号码", trigger: "blur"},
{validator: checkPhone, trigger: "blur"},
],
check: [
{validator: checked, trigger: "change"},
],
@ -301,7 +326,7 @@ export default {
//
getEmailCode() {
let index = 0;
this.$refs.registerForm.validateField(['name', 'email'], (valid) => {
this.$refs.registerForm.validateField(['orgName', 'email'], (valid) => {
if (!valid) {
index++;
}

Loading…
Cancel
Save