Browse Source

更换 logo 图标 标题等

master
DESKTOP-00SUCB6\Administrator 3 years ago
parent
commit
abfd7c53c1
  1. 2
      .env.production
  2. BIN
      public/favicon.ico
  3. BIN
      public/favicon04.ico
  4. 2
      public/index.html
  5. 2
      src/api/AxiosApi.js
  6. 3
      src/api/api.js
  7. 8
      src/api/codeSearch.js
  8. 10
      src/api/productManagement.js
  9. BIN
      src/assets/login_left_img.png
  10. BIN
      src/assets/logo_header01.png
  11. 2
      src/components/Header/Header.vue
  12. 6
      src/layout/components/Navbar.vue
  13. 2
      src/settings.js
  14. 3
      src/styles/variables.scss
  15. 2
      src/utils/localstorage.js
  16. 32
      src/utils/validate.js
  17. 14
      src/views/fids/enterpriseManagement/enterpriseCertification/Index.vue
  18. 157
      src/views/fids/enterpriseManagement/enterpriseCertification/components/show.vue
  19. 145
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step1.vue
  20. 99
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step2.vue
  21. 156
      src/views/fids/enterpriseManagement/enterpriseCertification/components/step3.vue
  22. 76
      src/views/fids/productManagement/addProduct/Index.vue
  23. 62
      src/views/fids/productManagement/modifyProduct/Index.vue
  24. 18
      src/views/fids/productManagement/productCategoryManagement/Index.vue
  25. 6
      src/views/fids/productManagement/productDetails/Index.vue
  26. 4
      src/views/fids/productManagement/productDetails/ProductInfo.vue
  27. 10
      src/views/fids/productManagement/sendCode/Index.vue
  28. 14
      src/views/fids/productManagement/sendCodeListByProduct/Index.vue
  29. 4
      src/views/home/home.vue
  30. 2
      src/views/login/login.vue
  31. 58
      src/views/searchList/searchList.vue

2
.env.production

@ -5,7 +5,7 @@ VUE_APP_PROJECT_NAME = 'fids-ui'
# 开发环境请求域名前缀, 该变量仅仅开发环境需要设置 # 开发环境请求域名前缀, 该变量仅仅开发环境需要设置
# VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://120.46.128.104:8900' # VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://120.46.128.104:8900'
# 请求域名前缀, 该变量仅仅生产环境需要设置 # 请求域名前缀, 该变量仅仅生产环境需要设置
VUE_APP_PROD_REQUEST_DOMAIN_PREFIX = 'http://120.46.128.104:8900' VUE_APP_PROD_REQUEST_DOMAIN_PREFIX = 'http://124.70.30.20:8900'
# base api # base api
VUE_APP_BASE_API = '/api' VUE_APP_BASE_API = '/api'

BIN
public/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
public/favicon04.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

2
public/index.html

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %>|顺鑫控股二级节点</title>
</head> </head>
<body> <body>
<noscript> <noscript>

2
src/api/AxiosApi.js

@ -103,7 +103,7 @@ const httpServer = (opts) => {
// 生产环境: http://IP:PORT/api // 生产环境中 代理失效, 故需要配置绝对路径 // 生产环境: http://IP:PORT/api // 生产环境中 代理失效, 故需要配置绝对路径
const httpDefaultOpts = { const httpDefaultOpts = {
method, method,
baseURL: process.env.VUE_APP_PROD_REQUEST_DOMAIN_PREFIX + process.env.VUE_APP_BASE_API, baseURL: opts.baseURL?opts.baseURL: process.env.VUE_APP_PROD_REQUEST_DOMAIN_PREFIX + process.env.VUE_APP_BASE_API,
url: opts.url, url: opts.url,
responseType: opts.responseType || '', responseType: opts.responseType || '',
timeout: 20000 timeout: 20000

3
src/api/api.js

@ -36,6 +36,8 @@ export const INDUSTRYTYPESTEP3 = `/tenant/commonIndustry/treeQuery`; //服务行
export const TENANTGET_TENANT_NAME = '/tenant/tenant/getTenantName' //登录获取企业名称 export const TENANTGET_TENANT_NAME = '/tenant/tenant/getTenantName' //登录获取企业名称
//产品管理模块 productManagement.js //产品管理模块 productManagement.js
export const QUERYCOMMODITY = `/product/commodityInfo/queryCommodity`; //查询动态商品列表数据 export const QUERYCOMMODITY = `/product/commodityInfo/queryCommodity`; //查询动态商品列表数据
export const QUERYCOMMODITYNEW = `/product/commodityInfo/queryCommodityAndTenantCode`; //查询动态商品列表数据
export const SAVECOMMODITY = `/product/commodityInfo/saveCommodity`; //动态商品新增 export const SAVECOMMODITY = `/product/commodityInfo/saveCommodity`; //动态商品新增
export const UPDATECOMMODITY = `/product/commodityInfo/updateCommodity`; //动态商品修改 export const UPDATECOMMODITY = `/product/commodityInfo/updateCommodity`; //动态商品修改
export const DELETECOMMODITY = `/product/commodityInfo/deleteCommodity`; //动态商品删除 export const DELETECOMMODITY = `/product/commodityInfo/deleteCommodity`; //动态商品删除
@ -179,3 +181,4 @@ export const AUTHORITYPARAMETERIMPORT = `/authority/parameter/import`;
//未登录 //未登录
export const IDIS_CODE_SEARCH = `/idis/middlePlatform/analysDetail`; //标识搜索 export const IDIS_CODE_SEARCH = `/idis/middlePlatform/analysDetail`; //标识搜索
export const IDIS_CODE_SEARCH_NEW = `/idis/middlePlatform/analysDetail`; //标识搜索 -- 新

8
src/api/codeSearch.js

@ -1,6 +1,7 @@
import axiosApi from "@/api/AxiosApi"; import axiosApi from "@/api/AxiosApi";
import { import {
IDIS_CODE_SEARCH, IDIS_CODE_SEARCH,
IDIS_CODE_SEARCH_NEW
} from "@/api/api"; } from "@/api/api";
export function analysDetail(idCode) { export function analysDetail(idCode) {
@ -9,3 +10,10 @@ export function analysDetail(idCode) {
url: IDIS_CODE_SEARCH + '?identification=' + idCode, url: IDIS_CODE_SEARCH + '?identification=' + idCode,
}) })
} }
//新的 标识码查询
export function analysDetailNew(idCode) {
return axiosApi({
method: 'GET',
url: IDIS_CODE_SEARCH_NEW + '?handle=' + idCode,
})
}

10
src/api/productManagement.js

@ -1,6 +1,7 @@
import axiosApi from "./AxiosApi"; import axiosApi from "./AxiosApi";
import { import {
QUERYCOMMODITY, QUERYCOMMODITY,
QUERYCOMMODITYNEW,
SAVECOMMODITY, SAVECOMMODITY,
UPDATECOMMODITY, UPDATECOMMODITY,
DELETECOMMODITY, DELETECOMMODITY,
@ -24,7 +25,13 @@ export function queryCommodity(data) {
data data
}) })
} }
//批量查询动态商品列表数据--新
export function queryCommodityNew(code) {
return axiosApi({
method: 'get',
url: QUERYCOMMODITYNEW+'/'+code
})
}
//动态商品新增 //动态商品新增
export function saveCommodity(data) { export function saveCommodity(data) {
return axiosApi({ return axiosApi({
@ -33,7 +40,6 @@ export function saveCommodity(data) {
data data
}) })
} }
//动态商品修改 //动态商品修改
export function updateCommodity(data) { export function updateCommodity(data) {
return axiosApi({ return axiosApi({

BIN
src/assets/login_left_img.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 KiB

After

Width:  |  Height:  |  Size: 90 KiB

BIN
src/assets/logo_header01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

2
src/components/Header/Header.vue

@ -7,7 +7,7 @@
<router-link class="item_link" to="/home">首页</router-link> <router-link class="item_link" to="/home">首页</router-link>
<router-link class="item_link" to="/platformIntroduction">平台介绍</router-link> <router-link class="item_link" to="/platformIntroduction">平台介绍</router-link>
<router-link class="item_link" to="/markSystem">标识体系</router-link> <router-link class="item_link" to="/markSystem">标识体系</router-link>
<router-link class="item_link" to="/prefixApply">前缀申请</router-link> <!-- <router-link class="item_link" to="/prefixApply">前缀申请</router-link> -->
<!-- <router-link class="item_link" to="https://easydoc.xyz/s/95339992">API说明</router-link>--> <!-- <router-link class="item_link" to="https://easydoc.xyz/s/95339992">API说明</router-link>-->
<a href="https://easydoc.xyz/s/95339992" target="_blank" style="margin-right:30px ">API说明</a> <a href="https://easydoc.xyz/s/95339992" target="_blank" style="margin-right:30px ">API说明</a>
<router-link class="item_link" to="/dataDownload">资料下载</router-link> <router-link class="item_link" to="/dataDownload">资料下载</router-link>

6
src/layout/components/Navbar.vue

@ -9,11 +9,11 @@
<breadcrumb id="breadcrumb-container" class="breadcrumb-container"/> <breadcrumb id="breadcrumb-container" class="breadcrumb-container"/>
<div class="right-menu"> <div class="right-menu">
<template v-if="device !== 'mobile'"> <template v-if="device !== 'mobile'">
<div class="right-menu-item" style="color:red"></div> <!-- <div class="right-menu-item" style="color:red;"></div> -->
<search id="header-search" class="right-menu-item" placeholder="搜索菜单"/> <search id="header-search" class="right-menu-item" placeholder="搜索菜单"/>
<screenfull id="screenfull" class="right-menu-item hover-effect"/> <screenfull id="screenfull" class="right-menu-item hover-effect"/>
<!-- <lang-select class="right-menu-item hover-effect"/> --> <!-- <lang-select class="right-menu-item hover-effect"/> -->
<el-popover <!-- <el-popover
placement="bottom" placement="bottom"
width="400" width="400"
class="right-menu-item hover-effect" class="right-menu-item hover-effect"
@ -47,7 +47,7 @@
<el-badge :value="tableData.total" :max="99" :hidden="tableData.total <= 0" class="badge-item" slot="reference"> <el-badge :value="tableData.total" :max="99" :hidden="tableData.total <= 0" class="badge-item" slot="reference">
<i class="el-icon-bell"/> <i class="el-icon-bell"/>
</el-badge> </el-badge>
</el-popover> </el-popover> -->
</template> </template>
<el-dropdown <el-dropdown
class="avatar-container right-menu-item hover-effect" class="avatar-container right-menu-item hover-effect"

2
src/settings.js

@ -1,5 +1,5 @@
module.exports = { module.exports = {
title: '食品行业工业互联网标识服务平台', title: '食品工业互联网企业托管平台',
onlinePreview: 'http://tangyh.top:8012/onlinePreview?url=', onlinePreview: 'http://tangyh.top:8012/onlinePreview?url=',
druid: { druid: {
authority: { authority: {

3
src/styles/variables.scss

@ -43,4 +43,7 @@ $ft_grey:#DCDFE6;
subMenuHover: $subMenuHover; subMenuHover: $subMenuHover;
sideBarWidth: $sideBarWidth; sideBarWidth: $sideBarWidth;
menuTextHover: $menuTextHover; menuTextHover: $menuTextHover;
myRed:$red;
myGreen:$green;
myYellow:$yellow
} }

2
src/utils/localstorage.js

@ -7,7 +7,7 @@ const db = {
//获取localStorage //获取localStorage
get (key, defaultValue = {}) { get (key, defaultValue = {}) {
try { try {
return JSON.parse(localStorage.getItem(`${projectName}_${key}`)) || defaultValue return JSON.parse(localStorage.getItem(`${projectName}_${key}`))
} catch (err) { } catch (err) {
return defaultValue return defaultValue
} }

32
src/utils/validate.js

@ -37,6 +37,11 @@ export function validateIDCard(idCard){
return false return false
} }
} }
/* 护照正则表达式*/
export function validatePassPortCard(str) {
const reg = /^([a-zA-z]|[0-9]){5,17}$/;
return reg.test(str)
}
/* 校验邮箱*/ /* 校验邮箱*/
export function validateEmail(str) { export function validateEmail(str) {
let checkEmail = /^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*\.[a-z]{2,}$/ let checkEmail = /^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*\.[a-z]{2,}$/
@ -47,6 +52,12 @@ export function validatePhone(textval) {
const reg = /^1(3|4|5|6|7|8|9)\d{9}$/ const reg = /^1(3|4|5|6|7|8|9)\d{9}$/
return reg.test(textval) return reg.test(textval)
} }
/* 检验传真*/
export function validateFax(textval) {
const reg = /^(\d{3,4}-)?\d{7,8}$/
return reg.test(textval)
}
/* 合法uri*/ /* 合法uri*/
export function validateURL(textval) { export function validateURL(textval) {
const urlregex = /^(http:\/\/|https:\/\/)*([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ const urlregex = /^(http:\/\/|https:\/\/)*([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
@ -93,3 +104,24 @@ export function validatePasswordStrong(str) {
if(/\W/.test(str)) modes++; //特殊字符 if(/\W/.test(str)) modes++; //特殊字符
return modes >= 2 ? true:false return modes >= 2 ? true:false
} }
/*校验IP地址*/
export function validateIPAddr(str) {
const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
return reg.test(str)
}
/*校验IP地址--多个IP地址中间英文;分割,最后一个不要加;*/
export function validateMoreIPAddr(str) {
const reg = /^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){1}(\;(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]))*$/
return reg.test(str)
}
/*校验IP地址--请按[x.x.x.x]:xxx或[xxxx:xxxx:xxxx::: …]:xxx格式填写,多个IP之间用英文分号分隔,最后一个不要加;*/
export function validateMoreIPAndPort(str) {
const reg = /^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(:([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]))?(;(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(:([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]))?)*$/
return reg.test(str)
}
//企业信用代码校验
export function validateTyshyxdm(str) {
const reg = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g
return reg.test(str)
}

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

@ -107,6 +107,20 @@ export default {
margin-right: 20px; margin-right: 20px;
} }
} }
.el-form-item__content {
.el-upload-list__item img {
width: 100%;
// max-width: 100%;
// height: auto;
// border-radius: 0;
// border: 0;
// padding: 0;
// margin: 0;
}
}
.upload-demo {
line-height: 25px;
}
} }
} }

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

@ -5,10 +5,7 @@
前缀申请 前缀申请
<i class="el-icon-question pointer" style="color:gray;" @click="showInnerHelp = !showInnerHelp"></i> <i class="el-icon-question pointer" style="color:gray;" @click="showInnerHelp = !showInnerHelp"></i>
</span> </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="content-inner" v-show="showInnerHelp">
<div class="transition-box"> <div class="transition-box">
<div class="title-bar-text"> <div class="title-bar-text">
@ -23,10 +20,24 @@
</div> </div>
</div> </div>
</div> </div>
<div class="content-box">
<label>当前状态</label>
<span v-if="stepData.status.code == 'NORMAL'" :style="{color:variables.myGreen}">{{stepData.status.desc}}</span>
<span v-else-if="stepData.status.code == 'REFUSE'" :style="{color:variables.myRed}">{{stepData.status.desc}}</span>
<span v-else :style="{color:variables.myYellow}">{{stepData.status.desc}}</span>
<el-link type="primary" class="fr" v-if="stepData.status.code == 'NOT_REVIEWED' || stepData.status.code == 'REFUSE'" @click="editEnperprise">
<i class="el-icon-edit"></i>
修改
</el-link>
</div>
<div class="content-box" v-if="stepData.status.code == 'REFUSE'">
<label>审核意见:</label>
<span>{{stepData.refuseReason}}</span>
</div>
<div class="content-box"> <div class="content-box">
<el-tabs type="border-card"> <el-tabs type="border-card">
<el-tab-pane label="企业资质信息"> <el-tab-pane label="企业资质信息">
<el-form :model="stepData" ref="step1" label-width="180px" label-position="right"> <el-form :model="stepData" ref="step1" label-width="210px" label-position="right">
<div class="step-title"> <div class="step-title">
<span>资质信息</span> <span>资质信息</span>
</div> </div>
@ -79,10 +90,11 @@
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="联系人姓名:"><span>{{stepData.contactName}}</span></el-form-item>
<el-form-item label="联系人证件类型:"><span>{{stepData.contactCrtTypeValue}}</span></el-form-item> <el-form-item label="联系人证件类型:"><span>{{stepData.contactCrtTypeValue}}</span></el-form-item>
<el-form-item label="联系人证件照片:"> <el-form-item label="联系人证件照片:">
<img :src="stepData.contactCrtBackImgUrl"> <img v-if="stepData.contactCrtBackImgUrl" :src="stepData.contactCrtBackImgUrl">
<img :src="stepData.contactCrtFrontImgUrl"> <img v-if="stepData.contactCrtFrontImgUrl" :src="stepData.contactCrtFrontImgUrl">
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -94,7 +106,7 @@
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="企业标识注册解析系统信息"> <el-tab-pane label="企业标识注册解析系统信息">
<el-form :model="stepData" ref="step2" label-width="180px" label-position="right"> <el-form :model="stepData" ref="step2" label-width="210px" label-position="right">
<div class="step-title"> <div class="step-title">
<span>系统建设</span> <span>系统建设</span>
</div> </div>
@ -103,12 +115,10 @@
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="注册系统部署方式:"><span>{{stepData.entInfoSyses[0].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item> <el-form-item label="注册系统部署方式:"><span v-if="stepData.entInfoSyses[0]">{{stepData.entInfoSyses[0].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
<el-form-item label="注册系统IP地址及端口号:"><span>{{stepData.entInfoSyses[0].ipPort}}</span></el-form-item> <el-form-item label="注册系统IP地址及端口号:"><span v-if="stepData.entInfoSyses[0]">{{stepData.entInfoSyses[0].ipPort}}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="stepData.entInfoSyses[0]">
<template v-if="stepData.entInfoSyses[0].deployMode == 1"> <template v-if="stepData.entInfoSyses[0].deployMode == 1">
<el-form-item label="注册系统所在地:"> <el-form-item label="注册系统所在地:">
<span>{{stepData.entInfoSyses[0].deployAddrProvince}}-{{stepData.entInfoSyses[0].deployAddrCity}}-{{stepData.entInfoSyses[0].deployAddrCounty}}</span> <span>{{stepData.entInfoSyses[0].deployAddrProvince}}-{{stepData.entInfoSyses[0].deployAddrCity}}-{{stepData.entInfoSyses[0].deployAddrCounty}}</span>
@ -118,14 +128,13 @@
<template v-else-if="stepData.entInfoSyses[0].deployMode == 2"> <template v-else-if="stepData.entInfoSyses[0].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[0].name}}</span></el-form-item> <el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[0].name}}</span></el-form-item>
</template> </template>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="注册数据部署方式:"><span>{{stepData.entInfoSyses[1].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item> <el-form-item label="注册数据部署方式:"><span v-if="stepData.entInfoSyses[1]">{{stepData.entInfoSyses[1].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="stepData.entInfoSyses[1]">
<template v-if="stepData.entInfoSyses[1].deployMode == 1"> <template v-if="stepData.entInfoSyses[1].deployMode == 1">
<el-form-item label="注册数据所在地:"> <el-form-item label="注册数据所在地:">
<span>{{stepData.entInfoSyses[1].deployAddrProvince}}-{{stepData.entInfoSyses[1].deployAddrCity}}-{{stepData.entInfoSyses[1].deployAddrCounty}}</span> <span>{{stepData.entInfoSyses[1].deployAddrProvince}}-{{stepData.entInfoSyses[1].deployAddrCity}}-{{stepData.entInfoSyses[1].deployAddrCounty}}</span>
@ -139,9 +148,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="注册备份数据部署方式:"><span>{{stepData.entInfoSyses[2].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item> <el-form-item label="注册备份数据部署方式:"><span v-if="stepData.entInfoSyses[2]">{{stepData.entInfoSyses[2].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="stepData.entInfoSyses[2]">
<template v-if="stepData.entInfoSyses[2].deployMode == 1"> <template v-if="stepData.entInfoSyses[2].deployMode == 1">
<el-form-item label="注册备份数据所在地:"> <el-form-item label="注册备份数据所在地:">
<span>{{stepData.entInfoSyses[2].deployAddrProvince}}-{{stepData.entInfoSyses[2].deployAddrCity}}-{{stepData.entInfoSyses[2].deployAddrCounty}}</span> <span>{{stepData.entInfoSyses[2].deployAddrProvince}}-{{stepData.entInfoSyses[2].deployAddrCity}}-{{stepData.entInfoSyses[2].deployAddrCounty}}</span>
@ -158,9 +167,9 @@
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="解析系统部署方式:"><span>{{stepData.entInfoSyses[3].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item> <el-form-item label="解析系统部署方式:"><span v-if="stepData.entInfoSyses[3]">{{stepData.entInfoSyses[3].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="stepData.entInfoSyses[3]">
<template v-if="stepData.entInfoSyses[3].deployMode == 1"> <template v-if="stepData.entInfoSyses[3].deployMode == 1">
<el-form-item label="解析系统所在地:"> <el-form-item label="解析系统所在地:">
<span>{{stepData.entInfoSyses[3].deployAddrProvince}}-{{stepData.entInfoSyses[3].deployAddrCity}}-{{stepData.entInfoSyses[3].deployAddrCounty}}</span> <span>{{stepData.entInfoSyses[3].deployAddrProvince}}-{{stepData.entInfoSyses[3].deployAddrCity}}-{{stepData.entInfoSyses[3].deployAddrCounty}}</span>
@ -178,7 +187,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务系统建设类型:"><span>{{stepData.servSysBuildTypeValue}}</span></el-form-item> <el-form-item label="服务系统建设类型:"><span>{{stepData.servSysBuildTypeValue}}</span></el-form-item>
<el-form-item label="服务系统建设合同:" v-if="stepData.servSysBuildType == 2"> <el-form-item label="服务系统建设合同:" v-if="stepData.servSysBuildType == 2">
<el-link type="primary" :href="stepData.servSysBuildContractFileUrl">{{stepData.servSysBuildContractFileUrl}}</el-link> <el-link type="primary" target="_blank" :href="stepData.servSysBuildContractFileUrl">{{stepData.servSysBuildContractFileName}}</el-link>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12" >
@ -189,7 +198,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务系统运营类型:"><span>{{stepData.servSysOperTypeValue}}</span></el-form-item> <el-form-item label="服务系统运营类型:"><span>{{stepData.servSysOperTypeValue}}</span></el-form-item>
<el-form-item label="服务系统运营合同:" v-if="stepData.servSysOperType == 2"> <el-form-item label="服务系统运营合同:" v-if="stepData.servSysOperType == 2">
<el-link type="primary" :href="stepData.servSysOperContractFileUrl">{{stepData.servSysOperContractFileUrl}}</el-link> <el-link type="primary" target="_blank" :href="stepData.servSysOperContractFileUrl">{{stepData.servSysOperContractFileName}}</el-link>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -198,9 +207,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备份服务系统部署方式:"><span>{{stepData.entInfoSyses[4].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item> <el-form-item label="备份服务系统部署方式:"><span v-if="stepData.entInfoSyses[4]">{{stepData.entInfoSyses[4].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="stepData.entInfoSyses[4]">
<template v-if="stepData.entInfoSyses[4].deployMode == 1"> <template v-if="stepData.entInfoSyses[4].deployMode == 1">
<el-form-item label="备份服务系统所在地:"> <el-form-item label="备份服务系统所在地:">
<span>{{stepData.entInfoSyses[4].deployAddrProvince}}-{{stepData.entInfoSyses[4].deployAddrCity}}-{{stepData.entInfoSyses[4].deployAddrCounty}}</span> <span>{{stepData.entInfoSyses[4].deployAddrProvince}}-{{stepData.entInfoSyses[4].deployAddrCity}}-{{stepData.entInfoSyses[4].deployAddrCounty}}</span>
@ -214,7 +223,7 @@
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="企业灾备与标识服务信息"> <el-tab-pane label="企业灾备与标识服务信息">
<el-form :model="stepData" ref="step3" label-width="180px" label-position="right"> <el-form :model="stepData" ref="step3" label-width="210px" label-position="right">
<div class="step-title"> <div class="step-title">
<span>灾备与服务</span> <span>灾备与服务</span>
</div> </div>
@ -225,13 +234,13 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="数据托管单位名称:"><span>{{stepData.dataHostingOrg}}</span></el-form-item> <el-form-item label="数据托管单位名称:"><span>{{stepData.dataHostingOrg}}</span></el-form-item>
<el-form-item label="数据托管合同:"> <el-form-item label="数据托管合同:">
<el-link type="primary" :href="stepData.dataHostingContractFileUrl">{{stepData.dataHostingContractFileRid}}</el-link> <el-link type="primary" target="_blank" :href="stepData.dataHostingContractFileUrl">{{stepData.dataHostingContractFileName}}</el-link>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务托管单位名称:"><span>{{stepData.servHostingOrg}}</span></el-form-item> <el-form-item label="服务托管单位名称:"><span>{{stepData.servHostingOrg}}</span></el-form-item>
<el-form-item label="服务托管合同:"> <el-form-item label="服务托管合同:">
<a :href="stepData.servHostingContractFileUrl">{{stepData.servHostingContractFileRid}}</a> <el-link type="primary" target="_blank" :href="stepData.servHostingContractFileUrl">{{stepData.servHostingContractFileName}}</el-link>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -240,15 +249,41 @@
</div> </div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务行业:"><span>{{stepData.entInfoSerIndustries}}</span></el-form-item> <el-form-item label="服务行业:"><span v-for="(item,index) in stepData.entInfoSerIndustries" :key="index">{{item}}<br></span></el-form-item>
<el-form-item label="标识服务网站域名:"><span>{{stepData.extDomain}}</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-form-item label="是否取得过互联网域名或增值电信业务经营相关许可:">
<el-switch
v-model="isLicenses"
active-color="rgb(51, 112, 255)"
inactive-color="grey"
disabled
>
</el-switch>
</el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="标识服务网站名称:"><span>{{stepData.extWebName}}</span></el-form-item> <el-form-item label="标识服务网站名称:"><span>{{stepData.extWebName}}</span></el-form-item>
<el-form-item label="标识服务网站IP:"><span>{{stepData.extIpAddr}}</span></el-form-item> <el-form-item label="标识服务网站IP:"><span>{{stepData.extIpAddr}}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="isLicenses">
<el-col :span="10">
<el-form-item label="域名根服务器运行机构许可证:">
<span>{{entInfoLicenses[0]}}</span>
</el-form-item>
<el-form-item label="域名注册服务机构许可证:">
<span>{{entInfoLicenses[1]}}</span>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="域名注册管理机构许可证:">
<span>{{entInfoLicenses[2]}}</span>
</el-form-item>
<el-form-item label="增值电信业务经营许可证:">
<span>{{entInfoLicenses[3]}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -256,34 +291,66 @@
</div> </div>
</template> </template>
<script> <script>
import variables from '@/styles/variables.scss'
import {enterpriseInfoAll} from "@/api/enterpriseManagement"; import {enterpriseInfoAll} from "@/api/enterpriseManagement";
export default { export default {
name:"showEnterpriseInfo", name:"showEnterpriseInfo",
data(){ data(){
return { return {
showInnerHelp:false, showInnerHelp:false,
stepData:{} 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':''},
],
status:{}
},
isLicenses:false,
entInfoLicenses:[]
} }
}, },
mounted(){ created(){
this.getEnterpriseAll() this.getEnterpriseAll()
}, },
computed:{
variables () {
return variables
}
},
methods:{ methods:{
getEnterpriseAll(){ getEnterpriseAll(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code) if(code)
{ {
enterpriseInfoAll(code).then(res => { enterpriseInfoAll(code).then(res => {
console.log(res.data);
this.stepData = res.data.data this.stepData = res.data.data
if(this.stepData.entInfoSyses.length == 0) { // if(this.stepData.entInfoSyses.length == 0) {
this.stepData.entInfoSyses = [ // this.stepData.entInfoSyses = [
{'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''}, // {'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''},
{'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''}, // {'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''}, // {'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''}, // {'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''}, // {'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
] // ]
// }
//,
const prefix = this.$db.get('TENANT_PREFIX')
if(this.stepData.entPrefix && !prefix) {
this.$store.commit("account/setTenantPrefix", this.stepData.entPrefix);
// this.$db.save('TENANT_PREFIX',this.stepData.entPrefix)
}
if(this.stepData.entInfoLicenses.length > 0) {
for (let i = 0; i < this.stepData.entInfoLicenses.length; i++) {
const element = this.stepData.entInfoLicenses[i];
this.entInfoLicenses[element.licenceType-1] = element.licenceNo
}
this.isLicenses = true
} else {
this.isLicenses = false
} }
}) })
} }
@ -296,7 +363,6 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content-inner { .content-inner {
position: relative; position: relative;
width: 100%; width: 100%;
@ -315,6 +381,15 @@ export default {
position: relative; position: relative;
margin: 20px 0; margin: 20px 0;
} }
img {
width: 200px;
max-width: 50%;
height: 180px;
border-radius: 10px;
border: 2px solid rgb(196, 196, 196);
padding: 5px;
margin: 5px;
}
</style> </style>
<style lang="scss"> <style lang="scss">
.content-box .el-form-item__label { .content-box .el-form-item__label {

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

@ -1,4 +1,5 @@
<template> <template>
<div>
<el-form :model="stepData1" :rules="rules" ref="step1" label-width="180px"> <el-form :model="stepData1" :rules="rules" ref="step1" label-width="180px">
<p class="text-right"> <p class="text-right">
<el-link type="primary" @click="$emit('child-event','show')"><i class="el-icon-back"></i>返回</el-link> <el-link type="primary" @click="$emit('child-event','show')"><i class="el-icon-back"></i>返回</el-link>
@ -33,7 +34,7 @@
v-for="item in bigTypeOptions" v-for="item in bigTypeOptions"
:key="item.id" :key="item.id"
:label="item.dictValue" :label="item.dictValue"
:value="item.id"> :value="item.dictCode">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -43,22 +44,23 @@
v-for="item in smallTypeOptions" v-for="item in smallTypeOptions"
:key="item.id" :key="item.id"
:label="item.dictValue" :label="item.dictValue"
:value="item.id"> :value="item.dictCode">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="注册机关:"> <el-form-item label="注册机关:" prop="regAuthority">
<el-input v-model="stepData1.regAuthority"></el-input> <el-input v-model="stepData1.regAuthority"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="成立日期:"> <el-form-item label="成立日期:">
<el-date-picker <el-date-picker
v-model="stepData1.establishDate" v-model="stepData1.establishDate"
type="date" type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="官网地址:"> <el-form-item label="官网地址:" prop="website">
<el-input v-model="stepData1.website" placeholder="请输入官网地址" /> <el-input v-model="stepData1.website" placeholder="请输入官网地址" />
</el-form-item> </el-form-item>
<el-form-item label="认证资料:" prop="orgCrtImgRid"> <el-form-item label="认证资料:" prop="orgCrtImgRid">
@ -72,15 +74,12 @@
:file-list="orgCrtImgFile" :file-list="orgCrtImgFile"
:headers="headers" :headers="headers"
:on-change="handleChangeCompany" :on-change="handleChangeCompany"
:on-preview="handlePictureCardPreviewCompany" :on-preview="handlePictureCardPreviewId"
:on-success="handSuccessCompany" :on-success="handSuccessCompany"
:before-upload="handleBeforePictureUpload" :before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveCompany"> :on-remove="handleRemoveCompany">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
@ -106,7 +105,7 @@
<el-form-item label="详细地址:" prop="orgAddr"> <el-form-item label="详细地址:" prop="orgAddr">
<el-input v-model="stepData1.orgAddr"></el-input> <el-input v-model="stepData1.orgAddr"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="注册资本:"> <el-form-item label="注册资本:" prop="regCapital">
<el-input v-model="stepData1.regCapital"> <el-input v-model="stepData1.regCapital">
<template slot="append">万元</template> <template slot="append">万元</template>
</el-input> </el-input>
@ -115,10 +114,11 @@
<el-date-picker <el-date-picker
v-model="stepData1.periodValidity" v-model="stepData1.periodValidity"
type="date" type="date"
placeholder="选择日期"> placeholder="选择日期"
value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单位简介:"> <el-form-item label="单位简介:" prop="orgDesc">
<el-input v-model="stepData1.orgDesc" type="textarea" rows=6 placeholder="请输入内容" /> <el-input v-model="stepData1.orgDesc" type="textarea" rows=6 placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -131,10 +131,10 @@
<el-form-item label="法人或代表人姓名:" prop="legalName"> <el-form-item label="法人或代表人姓名:" prop="legalName">
<el-input v-model="stepData1.legalName"></el-input> <el-input v-model="stepData1.legalName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人或代表人电话:"> <el-form-item label="法人或代表人电话:" prop="legalPhone">
<el-input v-model="stepData1.legalPhone"></el-input> <el-input v-model="stepData1.legalPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人或代表人传真:"> <el-form-item label="法人或代表人传真:" prop="legalFax">
<el-input v-model="stepData1.legalFax"></el-input> <el-input v-model="stepData1.legalFax"></el-input>
</el-form-item> </el-form-item>
<div class="linkage"> <div class="linkage">
@ -206,7 +206,7 @@
<el-form-item label="法人或代表人证件号码:" prop="legalCrtNo"> <el-form-item label="法人或代表人证件号码:" prop="legalCrtNo">
<el-input v-model="stepData1.legalCrtNo"></el-input> <el-input v-model="stepData1.legalCrtNo"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人或代表人邮箱:"> <el-form-item label="法人或代表人邮箱:" prop="legalEmail">
<el-input v-model="stepData1.legalEmail" placeholder="请输入邮箱" /> <el-input v-model="stepData1.legalEmail" placeholder="请输入邮箱" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -300,36 +300,83 @@
<el-button size="medium" type="primary" @click="submitForm(1)">下一页</el-button> <el-button size="medium" type="primary" @click="submitForm(1)">下一页</el-button>
</div> </div>
</el-form> </el-form>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template> </template>
<script> <script>
import {UPLOAD} from "@/api/api" import {UPLOAD} from "@/api/api"
import {validatePhone, validateIDCard,validateEmail} from "@/utils/validate"; import {validatePhone, validateIDCard,validateEmail,validateTyshyxdm,validateURL,validateNum,validateFax,validatePassPortCard} from "@/utils/validate";
import {enterpriseAuthNew, registerArea,selectTypeNew, industryType,selectOtherTypeNew,enterpriseInfoNew, informationModify} from "@/api/enterpriseManagement"; import {enterpriseAuthNew, registerArea,selectTypeNew, industryType,selectOtherTypeNew,enterpriseInfoNew, informationModify} from "@/api/enterpriseManagement";
export default { export default {
name:"step1", name:"step1",
data(){ data(){
const checkIDCardLegal = (rule, value, callback) => {
if (this.stepData1.legalCrtType == 1 && !validateIDCard(value)) {
return callback(new Error("请输入正确的身份证"));
} else if (this.stepData1.legalCrtType == 2 && !validatePassPortCard(value)) {
return callback(new Error("请输入正确的护照"));
} else {
callback();
}
};
const checkIDCard = (rule, value, callback) => { const checkIDCard = (rule, value, callback) => {
if (!validateIDCard(value)) { if (this.stepData1.contactCrtType == 1 && !validateIDCard(value)) {
return callback(new Error("请输入正确的身份证")); return callback(new Error("请输入正确的身份证"));
} else if (this.stepData1.contactCrtType == 2 && !validatePassPortCard(value)) {
return callback(new Error("请输入正确的护照"));
} else { } else {
callback(); callback();
} }
}; };
const checkPhone = (rule, value, callback) => { const checkPhone = (rule, value, callback) => {
if (!validatePhone(value)) { if (value && !validatePhone(value)) {
return callback(new Error("请输入正确的手机号码")); return callback(new Error("请输入正确的手机号码"));
} else { } else {
callback(); callback();
} }
}; };
const checkFax = (rule, value, callback) => {
if (value && !validateFax(value)) {
return callback(new Error("请输入正确的传真"));
} else {
callback();
}
};
const checkEmail = (rule, value, callback) => { const checkEmail = (rule, value, callback) => {
if (!validateEmail(value)) { if (value && !validateEmail(value)) {
return callback(new Error("请输入正确的邮箱")); return callback(new Error("请输入正确的邮箱"));
} else { } else {
callback(); callback();
} }
}; };
const checkOrgCrtCode = (rule, value, callback) => {
if (this.stepData1.orgCrtType == 1 && !validateTyshyxdm(value)) {
return callback(new Error("请输入正确企业信用代码"));
} else if(this.stepData1.orgCrtType == 2 && value.length > 20) {
return callback(new Error("请输入1-20个字符的证件号码"));
} else {
callback();
}
};
const checkWebsite = (rule, value, callback) => {
if (value && !validateURL(value)) {
return callback(new Error("请输入正确的网站地址"));
} else {
callback();
}
};
const checkNumber = (rule, value, callback) => {
if (value && !validateNum(value)) {
return callback(new Error("请输入正确的金额,仅支持数字"));
} else {
callback();
}
};
return { return {
provinceOptions: [],// provinceOptions: [],//
cityOptions: [],// cityOptions: [],//
@ -418,14 +465,14 @@ export default {
// //
orgName: [ orgName: [
{required: true, message: '请输入单位名称', trigger: 'blur'}, {required: true, message: '请输入单位名称', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 30 个字符', trigger: 'blur'} {min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
], ],
orgNature: [ orgNature: [
{required: true, message: '请选择单位性质', trigger: "change"}, {required: true, message: '请选择单位性质', trigger: "change"},
], ],
orgAddr: [ orgAddr: [
{required: true, message: '请输入详细地址', trigger: 'blur'}, {required: true, message: '请输入详细地址', trigger: 'blur'},
{min: 1, max: 20, message: '长度在 1 到 50 个字符', trigger: 'blur'} {min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
], ],
orgAddrProvince: [ orgAddrProvince: [
{required: true, message: '请选择省', trigger: "change"}, {required: true, message: '请选择省', trigger: "change"},
@ -441,6 +488,7 @@ export default {
], ],
orgCrtCode: [ orgCrtCode: [
{required: true, message: '请输入信用代码', trigger: 'blur'}, {required: true, message: '请输入信用代码', trigger: 'blur'},
{validator: checkOrgCrtCode, trigger: "blur"}
], ],
orgCrtImgRid: [ orgCrtImgRid: [
{required: true, message: '请上传认证资料', trigger: 'blur'}, {required: true, message: '请上传认证资料', trigger: 'blur'},
@ -451,9 +499,23 @@ export default {
industryCategory: [ industryCategory: [
{required: true, message: '请选择行业门类', trigger: 'change'} {required: true, message: '请选择行业门类', trigger: 'change'}
], ],
website: [
{validator: checkWebsite, trigger: "blur"}
],
regCapital:[
{validator: checkNumber, trigger: "blur"},
{min: 1, max: 20, message: '长度在 1 到 20 位', trigger: 'blur'}
],
orgDesc:[
{min: 1, max: 500, message: '长度在 1 到 500 个字符', trigger: 'blur'}
],
regAuthority:[
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
// //
contactName: [ contactName: [
{required: true, message: '请输入联系人姓名', trigger: 'blur'}, {required: true, message: '请输入联系人姓名', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
], ],
contactCrtType: [ contactCrtType: [
{required: true, message: '请选择联系人证件类型', trigger: 'change'} {required: true, message: '请选择联系人证件类型', trigger: 'change'}
@ -463,23 +525,34 @@ export default {
{validator: checkIDCard, trigger: "blur"}, {validator: checkIDCard, trigger: "blur"},
], ],
contactPhone: [ contactPhone: [
{required: true, message: '请输入联系电话'}, {required: true, message: '请输入联系电话', trigger: 'blur'},
{validator: checkPhone, trigger: "blur"} {validator: checkPhone, trigger: "blur"}
], ],
contactEmail: [ contactEmail: [
{required: true, message: '请输入联系人邮箱'}, {required: true, message: '请输入联系人邮箱', trigger: 'blur'},
{validator: checkEmail, trigger: "blur"} {validator: checkEmail, trigger: "blur"}
], ],
// //
legalName: [ legalName: [
{required: true, message: '请输入法人或代表人姓名', trigger: 'blur'}, {required: true, message: '请输入法人或代表人姓名', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
legalPhone:[
{validator: checkPhone, trigger: "blur", trigger: 'blur'}
],
legalFax:[
{validator: checkFax, trigger: "blur", trigger: 'blur'}
], ],
legalCrtType: [ legalCrtType: [
{required: true, message: '请选择法人或代表人证件类型', trigger: 'change'} {required: true, message: '请选择法人或代表人证件类型', trigger: 'change'}
], ],
legalCrtNo: [ legalCrtNo: [
{required: true, message: "请输入法人或代表人证件号码", trigger: "blur"}, {required: true, message: "请输入法人或代表人证件号码", trigger: "blur"},
{validator: checkIDCard, trigger: "blur"}, {validator: checkIDCardLegal, trigger: "blur"},
],
legalEmail: [
{required: true, message: '请输入法人或代表人邮箱', trigger: 'blur'},
{validator: checkEmail, trigger: "blur"}
], ],
legalCrtFrontImgRid: [ legalCrtFrontImgRid: [
{required: true, message: '请上传证件照正面', trigger: 'blur'}, {required: true, message: '请上传证件照正面', trigger: 'blur'},
@ -607,12 +680,14 @@ export default {
}, },
// //
getIndustryType(parentId,isShow = false) { getIndustryType(parentId,isShow = false) {
let temp = this.bigTypeOptions.filter(item => {
return item.dictCode == parentId
})
if(!isShow) if(!isShow)
{ {
this.stepData1.industrySpecific = "" this.stepData1.industrySpecific = ""
} }
selectTypeNew(parentId).then((res) => { selectTypeNew(temp[0].id).then((res) => {
this.smallTypeOptions = res.data.data; this.smallTypeOptions = res.data.data;
}) })
}, },
@ -627,7 +702,8 @@ export default {
}, },
// //
handleRemoveContactsId(file, fileList) { handleRemoveContactsId(file, fileList) {
this.stepData1.contactCrtFrontImgRid = fileList this.stepData1.contactCrtFrontImgRid = ''
this.contactCrtFrontImgFile = fileList
this.$refs.step1.validateField('contactCrtFrontImgRid') this.$refs.step1.validateField('contactCrtFrontImgRid')
this.hideContactsF = fileList.length >= this.limitCount; this.hideContactsF = fileList.length >= this.limitCount;
}, },
@ -644,7 +720,8 @@ export default {
}, },
// //
handleRemoveRearContactsId(file, fileList) { handleRemoveRearContactsId(file, fileList) {
this.stepData1.contactCrtBackImgRid = fileList this.stepData1.contactCrtBackImgRid = ''
this.contactCrtBackImgFile = fileList
this.$refs.step1.validateField('contactCrtBackImgRid') this.$refs.step1.validateField('contactCrtBackImgRid')
this.hideContactsR = fileList.length >= this.limitCount; this.hideContactsR = fileList.length >= this.limitCount;
}, },
@ -664,7 +741,8 @@ export default {
}, },
// //
handleRemoveLegalId(file, fileList) { handleRemoveLegalId(file, fileList) {
this.stepData1.legalCrtFrontImgRid = fileList this.stepData1.legalCrtFrontImgRid = ''
this.legalCrtFrontImgFile = fileList
this.$refs.step1.validateField('legalCrtFrontImgRid') this.$refs.step1.validateField('legalCrtFrontImgRid')
this.hideUploadF = fileList.length >= this.limitCount; this.hideUploadF = fileList.length >= this.limitCount;
}, },
@ -681,7 +759,8 @@ export default {
}, },
// //
handleRemoveRearLegalID(file, fileList) { handleRemoveRearLegalID(file, fileList) {
this.stepData1.legalCrtBackImgRid = fileList this.stepData1.legalCrtBackImgRid = ''
this.legalCrtBackImgFile = fileList
this.$refs.step1.validateField('legalCrtBackImgRid') this.$refs.step1.validateField('legalCrtBackImgRid')
this.hideUploadR = fileList.length >= this.limitCount; this.hideUploadR = fileList.length >= this.limitCount;
}, },
@ -704,11 +783,7 @@ export default {
this.$refs.step1.validateField('orgCrtImgRid') this.$refs.step1.validateField('orgCrtImgRid')
this.hideUpCompany = fileList.length >= this.limitCount; this.hideUpCompany = fileList.length >= this.limitCount;
}, },
//
handlePictureCardPreviewCompany(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
// //
handSuccessCompany(file) { handSuccessCompany(file) {
this.stepData1.orgCrtImgRid = file.data.idisResult this.stepData1.orgCrtImgRid = file.data.idisResult

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

@ -17,7 +17,7 @@
<el-option label="云部署" :value="2"></el-option> <el-option label="云部署" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item > <el-form-item prop="entInfoSyses[0].ipPort">
<span slot="label"> <span slot="label">
<span>注册系统IP地址及端口号</span> <span>注册系统IP地址及端口号</span>
<span> <span>
@ -136,33 +136,24 @@
</el-form-item> </el-form-item>
<template v-if="stepData2.servSysBuildType == 2"> <template v-if="stepData2.servSysBuildType == 2">
<el-form-item label="委托合同:" prop="servSysBuildContractFileRid"> <el-form-item label="委托合同:" prop="servSysBuildContractFileRid">
<el-col :span="8">
<el-upload <el-upload
class="upload-demo"
ref="servSysBuildRef" ref="servSysBuildRef"
:class="{hide:hideServSysBuild}" :class="{hide:hideServSysBuild}"
:action=action :action=action
:data="servSysBuild" multiple
list-type="picture-card"
:limit=limitCount :limit=limitCount
:data="servSysBuild"
:file-list="servSysBuildFile" :file-list="servSysBuildFile"
:headers="headers" :headers="headers"
:on-change="handleChangeServSysBuild"
:on-preview="handlePictureCardPreviewServSysBuild"
:on-success="handSuccessServSysBuild" :on-success="handSuccessServSysBuild"
:before-upload="handleBeforePictureUpload" :before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServSysBuild"> :on-remove="handleRemoveServSysBuild"
<i class="el-icon-plus"></i> accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload> </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> </el-form-item>
</template> </template>
</el-col> </el-col>
@ -183,34 +174,25 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<template v-if="stepData2.servSysOperType == 2"> <template v-if="stepData2.servSysOperType == 2">
<el-form-item label="委托合同:" prop="orgCrtImgRid"> <el-form-item label="委托合同:" prop="servSysOperContractFileRid">
<el-col :span="8">
<el-upload <el-upload
class="upload-demo"
ref="servSysBuildRef" ref="servSysBuildRef"
:class="{hide:hideServSysOper}" :class="{hide:hideServSysOper}"
:action=action :action=action
:data="servSysBuild" multiple
list-type="picture-card"
:limit=limitCount :limit=limitCount
:data="servSysBuild"
:file-list="servSysOperFile" :file-list="servSysOperFile"
:headers="headers" :headers="headers"
:on-change="handleChangeServSysOper"
:on-preview="handlePictureCardPreviewServSysOper"
:on-success="handSuccessServSysOper" :on-success="handSuccessServSysOper"
:before-upload="handleBeforePictureUpload" :before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServSysOper"> :on-remove="handleRemoveServSysOper"
<i class="el-icon-plus"></i> accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload> </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> </el-form-item>
</template> </template>
</el-col> </el-col>
@ -225,7 +207,7 @@
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
<el-form-item label="备份系统服务部署方式:" prop="entInfoSyses[4].deployMode"> <el-form-item label="备份系统服务部署方式:" prop="entInfoSyses[4].deployMode">
<el-select v-model="stepData2.entInfoSyses[4].deployMode" placeholder="请选择"> <el-select v-model="stepData2.entInfoSyses[4].deployMode" clearable placeholder="请选择">
<el-option label="本地部署" :value="1"></el-option> <el-option label="本地部署" :value="1"></el-option>
<el-option label="云部署" :value="2"></el-option> <el-option label="云部署" :value="2"></el-option>
</el-select> </el-select>
@ -258,9 +240,18 @@
<script> <script>
import {enterpriseAuthNew2,registerArea,enterpriseInfoNewStep2} from "@/api/enterpriseManagement"; import {enterpriseAuthNew2,registerArea,enterpriseInfoNewStep2} from "@/api/enterpriseManagement";
import {UPLOAD} from "@/api/api" import {UPLOAD} from "@/api/api"
import {validateMoreIPAndPort} from "@/utils/validate";
export default { export default {
name:"step2", name:"step2",
data(){ data(){
const checkIpAddr = (rule, value, callback) => {
if(value != '' && !validateMoreIPAndPort(value))
{
return callback(new Error("请输入正确的IP地址"));
} else {
callback();
}
};
return { return {
stepData2: { stepData2: {
entInfoSyses:[ entInfoSyses:[
@ -299,6 +290,9 @@ export default {
"entInfoSyses[0].deployAddrCounty":[ "entInfoSyses[0].deployAddrCounty":[
{required: true, message: '请选择所在地', trigger: "change"}, {required: true, message: '请选择所在地', trigger: "change"},
], ],
"entInfoSyses[0].ipPort":[
{validator: checkIpAddr, trigger: "blur"}
],
"entInfoSyses[1].deployMode": [ "entInfoSyses[1].deployMode": [
{required: true, message: '请选择注册数据部署方式', trigger: "change"}, {required: true, message: '请选择注册数据部署方式', trigger: "change"},
@ -346,11 +340,24 @@ export default {
], ],
servSysBuildType:[ servSysBuildType:[
{required: true, message: '服务系统建设类型', trigger: "change"}, {required: true, message: '请选择服务系统建设类型', trigger: "change"},
],
servSysBuildContractFileRid:[
{required: true, message: '请上传服务系统建设委托合同', trigger: "change"},
],
servSysBuildName:[
{required: true, message: '请输入委托机构名称', trigger: "change"},
], ],
servSysOperType:[ servSysOperType:[
{required: true, message: '服务系统运营类型', trigger: "change"}, {required: true, message: '服务系统运营类型', trigger: "change"},
] ],
servSysOperContractFileRid:[
{required: true, message: '请上传服务系统运营委托合同', trigger: "change"},
],
servSysOperName:[
{required: true, message: '请输入委托机构名称', trigger: "change"},
],
}, },
limitCount: 1, limitCount: 1,
dialogVisible: false, dialogVisible: false,
@ -396,12 +403,12 @@ export default {
this.stepData2 = res.data.data this.stepData2 = res.data.data
if(this.stepData2.servSysBuildContractFileUrl) if(this.stepData2.servSysBuildContractFileUrl)
{ {
this.servSysBuildFile = [{name: this.stepData2.servSysBuildContractFileUrl, url: this.stepData2.servSysBuildContractFileUrl}] this.servSysBuildFile = [{name: this.stepData2.servSysBuildContractFileName, url: this.stepData2.servSysBuildContractFileUrl}]
this.hideServSysBuild = true this.hideServSysBuild = true
} }
if(this.stepData2.servSysOperContractFileUrl) if(this.stepData2.servSysOperContractFileUrl)
{ {
this.servSysOperFile = [{name: this.stepData2.servSysOperContractFileUrl, url: this.stepData2.servSysOperContractFileUrl}] this.servSysOperFile = [{name: this.stepData2.servSysOperContractFileName, url: this.stepData2.servSysOperContractFileUrl}]
this.hideServSysOper = true this.hideServSysOper = true
} }
if(this.stepData2.entInfoSyses[0].deployMode == 1) { if(this.stepData2.entInfoSyses[0].deployMode == 1) {
@ -511,6 +518,8 @@ export default {
}, },
handleRemoveServSysBuild(file, fileList) { handleRemoveServSysBuild(file, fileList) {
this.stepData2.servSysBuildContractFileRid = '' this.stepData2.servSysBuildContractFileRid = ''
this.stepData2.servSysBuildContractFileUrl = ''
this.stepData2.servSysBuildContractFileName = ''
this.servSysBuildFile = fileList this.servSysBuildFile = fileList
this.$refs.step2.validateField('servSysBuildContractFileRid') this.$refs.step2.validateField('servSysBuildContractFileRid')
this.hideServSysBuild = fileList.length >= this.limitCount; this.hideServSysBuild = fileList.length >= this.limitCount;
@ -522,7 +531,8 @@ export default {
handSuccessServSysBuild(file) { handSuccessServSysBuild(file) {
this.stepData2.servSysBuildContractFileRid = file.data.idisResult this.stepData2.servSysBuildContractFileRid = file.data.idisResult
this.stepData2.servSysBuildContractFileUrl = file.data.url this.stepData2.servSysBuildContractFileUrl = file.data.url
this.servSysBuildFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType}) this.stepData2.servSysBuildContractFileName = file.data.submittedFileName
this.servSysBuildFile.push({name: file.data.submittedFileName, url: file.data.url, bizType: file.data.bizType})
this.$refs.step2.validateField('servSysBuildContractFileRid') this.$refs.step2.validateField('servSysBuildContractFileRid')
}, },
// //
@ -531,6 +541,8 @@ export default {
}, },
handleRemoveServSysOper(file, fileList) { handleRemoveServSysOper(file, fileList) {
this.stepData2.servSysOperContractFileRid = '' this.stepData2.servSysOperContractFileRid = ''
this.stepData2.servSysOperContractFileUrl = ''
this.stepData2.servSysOperContractFileName = ''
this.servSysOperFile = fileList this.servSysOperFile = fileList
this.$refs.step2.validateField('servSysOperContractFileRid') this.$refs.step2.validateField('servSysOperContractFileRid')
this.hideServSysOper = fileList.length >= this.limitCount; this.hideServSysOper = fileList.length >= this.limitCount;
@ -542,7 +554,8 @@ export default {
handSuccessServSysOper(file) { handSuccessServSysOper(file) {
this.stepData2.servSysOperContractFileRid = file.data.idisResult this.stepData2.servSysOperContractFileRid = file.data.idisResult
this.stepData2.servSysOperContractFileUrl = file.data.url this.stepData2.servSysOperContractFileUrl = file.data.url
this.servSysOperFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType}) this.stepData2.servSysOperContractFileName = file.data.submittedFileName
this.servSysOperFile.push({name: file.data.submittedFileName, url: file.data.url, bizType: file.data.bizType})
this.$refs.step2.validateField('servSysOperContractFileRid') this.$refs.step2.validateField('servSysOperContractFileRid')
}, },
} }

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

@ -13,71 +13,53 @@
</div> </div>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
<el-form-item label="数据托管单位名称:" > <el-form-item label="数据托管单位名称:" prop="dataHostingOrg">
<el-input v-model="stepData3.dataHostingOrg"></el-input> <el-input v-model="stepData3.dataHostingOrg"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="数据托管合同:"> <el-form-item label="数据托管合同:" prop="dataHostingContractFileRid">
<el-col :span="8">
<el-upload <el-upload
class="upload-demo"
ref="dataTrusteeRef" ref="dataTrusteeRef"
:class="{hide:hideDataTrustee}" :class="{hide:hideDataTrustee}"
:action=action :action=action
:data="servSysBuild" multiple
list-type="picture-card"
:limit=limitCount :limit=limitCount
:file-list="dataTrusteeFile" :data="servSysBuild"
:headers="headers" :headers="headers"
:on-change="handleChangeDataTrustee" :file-list="dataTrusteeFile"
:on-preview="handlePictureCardPreview"
:on-success="handSuccessDataTrustee" :on-success="handSuccessDataTrustee"
:before-upload="handleBeforePictureUpload" :before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveDataTrustee"> :on-remove="handleRemoveDataTrustee"
<i class="el-icon-plus"></i> accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload> </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-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="服务托管单位名称:" > <el-form-item label="服务托管单位名称:" prop="servHostingOrg">
<el-input v-model="stepData3.servHostingOrg"></el-input> <el-input v-model="stepData3.servHostingOrg"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="服务托管合同:"> <el-form-item label="服务托管合同:" prop="servHostingContractFileRid">
<el-col :span="8">
<el-upload <el-upload
class="upload-demo"
ref="serviceTrusteeRef" ref="serviceTrusteeRef"
:class="{hide:hideServiceTrustee}" :class="{hide:hideServiceTrustee}"
:action=action :action=action
:data="servSysBuild" multiple
list-type="picture-card"
:limit=limitCount :limit=limitCount
:file-list="serviceTrusteeFile" :data="servSysBuild"
:headers="headers" :headers="headers"
:on-change="handleChangeServiceTrustee" :file-list="serviceTrusteeFile"
:on-preview="handlePictureCardPreview"
:on-success="handSuccessServiceTrustee" :on-success="handSuccessServiceTrustee"
:before-upload="handleBeforePictureUpload" :before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServiceTrustee"> :on-remove="handleRemoveServiceTrustee"
<i class="el-icon-plus"></i> accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload> </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-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -94,7 +76,7 @@
:props="props" :props="props"
clearable></el-cascader> clearable></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="标识服务网站域名:"> <el-form-item label="标识服务网站域名:" prop="extDomain">
<el-input v-model="stepData3.extDomain"></el-input> <el-input v-model="stepData3.extDomain"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -102,7 +84,7 @@
<el-form-item label="标识服务网站名称:"> <el-form-item label="标识服务网站名称:">
<el-input v-model="stepData3.extWebName"></el-input> <el-input v-model="stepData3.extWebName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="标识服务网站IP:"> <el-form-item label="标识服务网站IP:" prop="extIpAddr">
<el-input v-model="stepData3.extIpAddr" placeholder="多个IP间以英文分号;间隔, 最后一个ip后面不要添加英文分号"></el-input> <el-input v-model="stepData3.extIpAddr" placeholder="多个IP间以英文分号;间隔, 最后一个ip后面不要添加英文分号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -154,9 +136,58 @@
<script> <script>
import {enterpriseAuthNew3,enterpriseAuthNewSubmit3,industryTypeStep3,enterpriseInfoNewStep3} from "@/api/enterpriseManagement"; import {enterpriseAuthNew3,enterpriseAuthNewSubmit3,industryTypeStep3,enterpriseInfoNewStep3} from "@/api/enterpriseManagement";
import {UPLOAD} from "@/api/api" import {UPLOAD} from "@/api/api"
import {validateURL,validateMoreIPAddr} from "@/utils/validate";
export default { export default {
name:"step3", name:"step3",
data(){ data(){
const checkDomain = (rule, value, callback) => {
if(value && !validateURL(value))
{
return callback(new Error("请输入正确的域名地址"));
} else {
callback();
}
};
const checkIpAddr = (rule, value, callback) => {
if(value && !validateMoreIPAddr(value))
{
return callback(new Error("请输入正确的IP地址"));
} else {
callback();
}
};
const checkDataHostingOrg = (rule, value, callback) => {
if(this.stepData3.dataHostingContractFileRid && !value)
{
return callback(new Error("请输入数据托管单位名称"));
} else {
callback();
}
};
const checkDataHostRid = (rule, value, callback) => {
if(this.stepData3.dataHostingOrg && !value)
{
return callback(new Error("请上传数据托管合同"));
} else {
callback();
}
};
const checkServHostingOrg = (rule, value, callback) => {
if(this.stepData3.servHostingContractFileRid && !value)
{
return callback(new Error("请输入数据托管单位名称"));
} else {
callback();
}
};
const checkServHostRid = (rule, value, callback) => {
if(this.stepData3.servHostingOrg && !value)
{
return callback(new Error("请上传数据托管合同"));
} else {
callback();
}
};
return { return {
stepData3: { stepData3: {
dataHostingOrg:"", // dataHostingOrg:"", //
@ -178,8 +209,33 @@ export default {
// entInfoLicenses.licenceType:"" //[: 1. 2. 3. 4.] // entInfoLicenses.licenceType:"" //[: 1. 2. 3. 4.]
}, },
rules: { rules: {
extDomain:[
{validator: checkDomain, trigger: "blur"},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
extIpAddr:[
{validator: checkIpAddr, trigger: "blur"},
{min: 1, max: 50, message: '长度在 1 到 200 个字符', trigger: 'blur'}
],
dataHostingOrg:[
{validator: checkDataHostingOrg, trigger: "blur"},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
dataHostingContractFileRid:[
{validator: checkDataHostRid, trigger: "blur"}
],
servHostingOrg:[
{validator: checkServHostingOrg, trigger: "blur"},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
servHostingContractFileRid:[
{validator: checkServHostRid, trigger: "blur"}
]
}, },
props: { multiple: true }, props: {
multiple: true,
value:"value" },
options:[], options:[],
entInfoSerIndustries:[], entInfoSerIndustries:[],
limitCount: 1, limitCount: 1,
@ -229,12 +285,12 @@ export default {
this.stepData3 = res.data.data this.stepData3 = res.data.data
if(this.stepData3.dataHostingContractFileUrl) if(this.stepData3.dataHostingContractFileUrl)
{ {
this.dataTrusteeFile = [{name: this.stepData3.dataHostingContractFileUrl, url: this.stepData3.dataHostingContractFileUrl}] this.dataTrusteeFile = [{name: this.stepData3.dataHostingContractFileName, url: this.stepData3.dataHostingContractFileUrl}]
this.hideDataTrustee = true this.hideDataTrustee = true
} }
if(this.stepData3.servHostingContractFileUrl) if(this.stepData3.servHostingContractFileUrl)
{ {
this.serviceTrusteeFile = [{name: this.stepData3.servHostingContractFileUrl, url: this.stepData3.servHostingContractFileUrl}] this.serviceTrusteeFile = [{name: this.stepData3.servHostingContractFileName, url: this.stepData3.servHostingContractFileUrl}]
this.hideServiceTrustee = true this.hideServiceTrustee = true
} }
if(this.stepData3.entInfoSerIndustries.length > 0) { if(this.stepData3.entInfoSerIndustries.length > 0) {
@ -321,7 +377,7 @@ export default {
message: "操作成功", message: "操作成功",
type: "success" type: "success"
}); });
this.$emit('child-event','show')
} }
}) })
} else { } else {
@ -346,6 +402,7 @@ export default {
handleRemoveDataTrustee(file, fileList) { handleRemoveDataTrustee(file, fileList) {
this.stepData3.dataHostingContractFileRid = '' this.stepData3.dataHostingContractFileRid = ''
this.stepData3.dataHostingContractFileUrl = '' this.stepData3.dataHostingContractFileUrl = ''
this.stepData3.dataHostingContractFileName = ''
this.dataTrusteeFile = fileList this.dataTrusteeFile = fileList
// this.$refs.step3.validateField('dataHostingContractFileRid') // this.$refs.step3.validateField('dataHostingContractFileRid')
this.hideDataTrustee = fileList.length >= this.limitCount; this.hideDataTrustee = fileList.length >= this.limitCount;
@ -354,7 +411,8 @@ export default {
handSuccessDataTrustee(file) { handSuccessDataTrustee(file) {
this.stepData3.dataHostingContractFileRid = file.data.idisResult this.stepData3.dataHostingContractFileRid = file.data.idisResult
this.stepData3.dataHostingContractFileUrl = file.data.url this.stepData3.dataHostingContractFileUrl = file.data.url
this.dataTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType}) this.stepData3.dataHostingContractFileName = file.data.submittedFileName
this.dataTrusteeFile.push({name: file.data.submittedFileName, url: file.data.url, bizType: file.data.bizType})
// this.$refs.step3.validateField('dataHostingContractFileRid') // this.$refs.step3.validateField('dataHostingContractFileRid')
}, },
@ -366,6 +424,7 @@ export default {
handleRemoveServiceTrustee(file, fileList) { handleRemoveServiceTrustee(file, fileList) {
this.stepData3.servHostingContractFileRid = '' this.stepData3.servHostingContractFileRid = ''
this.stepData3.servHostingContractFileUrl = '' this.stepData3.servHostingContractFileUrl = ''
this.stepData3.servHostingContractFileName = ''
this.serviceTrusteeFile = fileList this.serviceTrusteeFile = fileList
this.$refs.step3.validateField('servHostingContractFileRid') this.$refs.step3.validateField('servHostingContractFileRid')
this.hideServiceTrustee = fileList.length >= this.limitCount; this.hideServiceTrustee = fileList.length >= this.limitCount;
@ -374,7 +433,8 @@ export default {
handSuccessServiceTrustee(file) { handSuccessServiceTrustee(file) {
this.stepData3.servHostingContractFileRid = file.data.idisResult this.stepData3.servHostingContractFileRid = file.data.idisResult
this.stepData3.servHostingContractFileUrl = file.data.url this.stepData3.servHostingContractFileUrl = file.data.url
this.serviceTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType}) this.stepData3.servHostingContractFileName = file.data.submittedFileName
this.serviceTrusteeFile.push({name: file.data.submittedFileName, url: file.data.url, bizType: file.data.bizType})
this.$refs.step3.validateField('servHostingContractFileRid') this.$refs.step3.validateField('servHostingContractFileRid')
}, },
handlePictureCardPreview(file) { handlePictureCardPreview(file) {

76
src/views/fids/productManagement/addProduct/Index.vue

@ -28,6 +28,13 @@
<el-form-item label="产品名称" prop="commodityName"> <el-form-item label="产品名称" prop="commodityName">
<el-input class="input_width" v-model="addProductForm.commodityName"></el-input> <el-input class="input_width" v-model="addProductForm.commodityName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="服务行业:">
<el-cascader
style="width:50%;"
v-model="entInfoSerIndustries"
:options="optionsSerIndustries"
clearable></el-cascader>
</el-form-item>
<el-form-item label="产品介绍" prop="description"> <el-form-item label="产品介绍" prop="description">
<Tinymce :width="760" :height="200" ref="content" v-model="addProductForm.description"/> <Tinymce :width="760" :height="200" ref="content" v-model="addProductForm.description"/>
</el-form-item> </el-form-item>
@ -37,7 +44,7 @@
<el-col :span="17"> <el-col :span="17">
<span class="title">自定义数据项</span> <span class="title">自定义数据项</span>
</el-col> </el-col>
<el-col :span="7"> <!-- <el-col :span="7">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-link type="primary" @click="downloadExcel()">Excel表格模板下载</el-link> <el-link type="primary" @click="downloadExcel()">Excel表格模板下载</el-link>
@ -63,7 +70,7 @@
</el-upload> </el-upload>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row class="custom_row"> <el-row class="custom_row">
<el-col> <el-col>
@ -73,23 +80,17 @@
<el-input v-model="item.fieldName" placeholder="请输入数据项名称"></el-input> <el-input v-model="item.fieldName" placeholder="请输入数据项名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="6">
<el-form-item prop="addType" label-width="0"> <el-form-item prop="addType" label-width="0">
<el-select v-model="item.fieldType.code" placeholder="请选择类型"> <el-input v-model="item.fieldEnglishName" placeholder="请输入数据项英文名称"></el-input>
<el-option label="单行数据" value="SINGLE"></el-option>
<el-option label="多行数据" value="MULTI"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="value" label-width="0"> <el-form-item prop="value" label-width="0">
<el-input type="text" v-model="item.fieldValue" placeholder="请输入数据项内容" <el-input v-model="item.fieldValue" placeholder="请输入数据项内容"></el-input>
v-if="item.fieldType.code==='SINGLE'"></el-input>
<el-input type="textarea" v-model="item.fieldValue" :rows="2" size="large"
placeholder="请输入数据项内容" v-else-if="item.fieldType.code==='MULTI'"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="4">
<el-form-item label-width="0"> <el-form-item label-width="0">
<el-button type="success" @click="addRow(index)">增加</el-button> <el-button type="success" @click="addRow(index)">增加</el-button>
<el-button type="danger" @click="deleteRow(index)">删除</el-button> <el-button type="danger" @click="deleteRow(index)">删除</el-button>
@ -112,6 +113,7 @@
<script> <script>
import Tinymce from '@/components/Tinymce' import Tinymce from '@/components/Tinymce'
import {saveCommodity} from "@/api/productManagement"; import {saveCommodity} from "@/api/productManagement";
import {industryTypeStep3} from "@/api/enterpriseManagement"
import db from "@/utils/localstorage"; import db from "@/utils/localstorage";
import {Base64} from "js-base64"; import {Base64} from "js-base64";
import {UPLOAD} from "@/api/api" import {UPLOAD} from "@/api/api"
@ -140,40 +142,26 @@ export default {
{ {
fieldName: '', fieldName: '',
fieldValue: '', fieldValue: '',
fieldType: { fieldEnglishName: '',
code: "SINGLE",
desc: "单行"
},
sequence: 0 sequence: 0
} }
] ]
}, },
entInfoSerIndustries:[], //
optionsSerIndustries:[],
receiverVisible: false, receiverVisible: false,
rules: { rules: {
commodityName: [ commodityName: [
{required: true, message: "请输入产品名称", trigger: "blur"} {required: true, message: "请输入产品名称", trigger: "blur"}
], ],
files: [ // files: [
{required: true, message: '请上传图片材料', trigger: 'blur'}, // {required: true, message: '', trigger: 'blur'},
] // ]
} }
}; };
}, },
beforeCreate() {
},
create() {
},
beforeMount() {
},
mounted() { mounted() {
}, this.getIndustryType()
beforeUpdate() {
},
updated() {
},
beforeDestroy() {
},
destroyed() {
}, },
computed: { computed: {
headers() { headers() {
@ -184,8 +172,12 @@ export default {
}; };
} }
}, },
watch: {},
methods: { methods: {
getIndustryType(){
industryTypeStep3().then(res=>{
this.optionsSerIndustries = res.data.data
})
},
// //
handleExceed(files, fileList) { handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); this.$message.warning(`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
@ -202,7 +194,7 @@ export default {
}, },
// //
handSuccess(file) { handSuccess(file) {
this.addProductForm.files.push({name: file.data.filename, url: file.data.url}) this.addProductForm.files.push({name: file.data.submittedFileName, url: file.data.url})
this.$refs.addProductForm.validateField('files') this.$refs.addProductForm.validateField('files')
}, },
// //
@ -223,10 +215,7 @@ export default {
this.addProductForm.lists.splice(index+1,0,{ this.addProductForm.lists.splice(index+1,0,{
fieldName: '', fieldName: '',
fieldValue: '', fieldValue: '',
fieldType: { fieldEnglishName:'',
code: "SINGLE",
desc: "单行"
},
sequence: this.addProductForm.lists.length sequence: this.addProductForm.lists.length
}) })
}, },
@ -287,6 +276,15 @@ export default {
}, },
// //
addProduct() { addProduct() {
if(this.entInfoSerIndustries.length > 0) {
this.addProductForm.industryCategory = this.entInfoSerIndustries[0]
this.addProductForm.industrySpecific = this.entInfoSerIndustries[1]
this.addProductForm.industryTrade = this.entInfoSerIndustries[2]
this.addProductForm.industrySubclass = this.entInfoSerIndustries[3]
}
const prefix = this.$db.get('TENANT_PREFIX') || null
this.addProductForm.prefix = prefix
this.addProductForm.version = new Date().getTime()+''
saveCommodity(this.addProductForm).then(res => { saveCommodity(this.addProductForm).then(res => {
if (res.data.isSuccess) { if (res.data.isSuccess) {
this.$message({ this.$message({

62
src/views/fids/productManagement/modifyProduct/Index.vue

@ -28,6 +28,13 @@
<el-form-item label="产品名称" prop="commodityName"> <el-form-item label="产品名称" prop="commodityName">
<el-input class="input_width" v-model="modifyProductForm.commodityName"></el-input> <el-input class="input_width" v-model="modifyProductForm.commodityName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="服务行业:">
<el-cascader
style="width:50%;"
v-model="entInfoSerIndustries"
:options="optionsSerIndustries"
clearable></el-cascader>
</el-form-item>
<!--<el-form-item label="产品标识" prop="commodityName"> <!--<el-form-item label="产品标识" prop="commodityName">
<el-input class="input_width" v-model="modifyProductForm.commodityName"></el-input> <el-input class="input_width" v-model="modifyProductForm.commodityName"></el-input>
</el-form-item>--> </el-form-item>-->
@ -47,22 +54,18 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="key" label-width="0"> <el-form-item prop="key" label-width="0">
<el-input v-model="item.fieldName" placeholder="请输入数据项名称"></el-input> <el-input v-model="item.fieldName" placeholder="请输入数据项名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="addType" label-width="0"> <el-form-item prop="addType" label-width="0">
<el-select v-model="item.fieldType.code" placeholder="请选择类型"> <el-input v-model="item.fieldEnglishName" placeholder="请输入数据项英文名称"></el-input>
<el-option label="单行数据" value="SINGLE"></el-option>
<el-option label="多行数据" value="MULTI"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="value" label-width="0"> <el-form-item prop="value" label-width="0">
<el-input type="text" v-model="item.fieldValue" placeholder="请输入数据项内容" <el-input v-model="item.fieldValue" placeholder="请输入数据项内容"></el-input>
v-if="item.fieldType.code==='SINGLE'"></el-input>
<el-input type="textarea" v-model="item.fieldValue" :rows="2" size="large"
placeholder="请输入数据项内容" v-else-if="item.fieldType.code==='MULTI'"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -88,6 +91,7 @@
<script> <script>
import Tinymce from '@/components/Tinymce' import Tinymce from '@/components/Tinymce'
import {detailCommodity, updateCommodity} from "@/api/productManagement"; import {detailCommodity, updateCommodity} from "@/api/productManagement";
import {industryTypeStep3} from "@/api/enterpriseManagement"
import db from "@/utils/localstorage"; import db from "@/utils/localstorage";
import {Base64} from "js-base64"; import {Base64} from "js-base64";
import {UPLOAD} from "@/api/api" import {UPLOAD} from "@/api/api"
@ -118,14 +122,13 @@ export default {
{ {
fieldName: '', fieldName: '',
fieldValue: '', fieldValue: '',
fieldType: { fieldEnglishName: '',
code: "SINGLE",
desc: "单行"
},
sequence: 0 sequence: 0
} }
] ]
}, },
entInfoSerIndustries:[], //
optionsSerIndustries:[],
receiverVisible: false, receiverVisible: false,
modifyProductRule: { modifyProductRule: {
commodityName: [ commodityName: [
@ -137,22 +140,9 @@ export default {
} }
}; };
}, },
beforeCreate() {
},
create() {
},
beforeMount() {
this.initData();
},
mounted() { mounted() {
}, this.initData();
beforeUpdate() { this.getIndustryType()
},
updated() {
},
beforeDestroy() {
},
destroyed() {
}, },
computed: { computed: {
headers() { headers() {
@ -165,6 +155,11 @@ export default {
}, },
watch: {}, watch: {},
methods: { methods: {
getIndustryType(){
industryTypeStep3().then(res=>{
this.optionsSerIndustries = res.data.data
})
},
//Excel //Excel
downloadExcel() { downloadExcel() {
window.location.href = ""; window.location.href = "";
@ -215,10 +210,7 @@ export default {
this.modifyProductForm.lists.splice(index+1,0,{ this.modifyProductForm.lists.splice(index+1,0,{
fieldName: '', fieldName: '',
fieldValue: '', fieldValue: '',
fieldType: { fieldEnglishName:'',
code: "SINGLE",
desc: "单行"
},
sequence: this.modifyProductForm.lists.length sequence: this.modifyProductForm.lists.length
}) })
}, },
@ -278,6 +270,8 @@ export default {
if(res.lists.length>0){ if(res.lists.length>0){
this.modifyProductForm.lists = res.lists; this.modifyProductForm.lists = res.lists;
} }
this.entInfoSerIndustries = [this.modifyProductForm.industryCategory,this.modifyProductForm.industrySpecific,
this.modifyProductForm.industryTrade,this.modifyProductForm.industrySubclass]
} }
}) })
}, },
@ -294,6 +288,12 @@ export default {
}, },
// //
modifyProduct() { modifyProduct() {
if(this.entInfoSerIndustries.length > 0) {
this.modifyProductForm.industryCategory = this.entInfoSerIndustries[0]
this.modifyProductForm.industrySpecific = this.entInfoSerIndustries[1]
this.modifyProductForm.industryTrade = this.entInfoSerIndustries[2]
this.modifyProductForm.industrySubclass = this.entInfoSerIndustries[3]
}
updateCommodity(this.modifyProductForm).then(response => { updateCommodity(this.modifyProductForm).then(response => {
const res = response.data; const res = response.data;
console.log(res) console.log(res)

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

@ -25,7 +25,7 @@
ref="multipleTable" ref="multipleTable"
v-loading="dataListLoading"> v-loading="dataListLoading">
<el-table-column type="selection" width="50px" align="center" :reserve-selection="true"/> <el-table-column type="selection" width="50px" align="center" :reserve-selection="true"/>
<el-table-column prop="createTime" label="注册日期" align="center" width="150"></el-table-column> <el-table-column prop="createTime" label="注册日期" align="center" width="250"></el-table-column>
<el-table-column prop="files" label="产品图片" align="center" width="250"> <el-table-column prop="files" label="产品图片" align="center" width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image class="prod_pic" style="width: 40px; height: 40px" <el-image class="prod_pic" style="width: 40px; height: 40px"
@ -39,14 +39,14 @@
<el-table-column prop="commodityName" label="产品名称" align="center"></el-table-column> <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="barcode" label="二维码" align="center"></el-table-column>
<el-table-column prop="" label="编码方式" align="center"></el-table-column>--> <el-table-column prop="" label="编码方式" align="center"></el-table-column>-->
<el-table-column label="操作" width="460" align="center" fixed="right"> <el-table-column label="操作" width="350" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button 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="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="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="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="info" size="small" @click="showSendCodeDetail(scope.row.id)">发码详情</el-button>
<el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button> <!-- <el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
@ -64,7 +64,7 @@
<script> <script>
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
import {queryCommodity, deleteCommodity} from "@/api/productManagement"; import {queryCommodity,queryCommodityNew, deleteCommodity} from "@/api/productManagement";
import {initQueryParams} from '@/utils/commons' // import {initQueryParams} from '@/utils/commons' //
export default { export default {
name: "productCategoryManagement", name: "productCategoryManagement",
@ -121,10 +121,10 @@ export default {
...this.queryParams ...this.queryParams
} }
queryCommodity(params).then(res => { queryCommodity(params).then(res => {
console.log(res.data);
if (res.data.isSuccess) { if (res.data.isSuccess) {
res = res.data.data; this.tableData = res.data.data.records;
this.tableData= res.records; this.total = res.data.data.total
this.total = res.total
} }
}).finally(() => this.dataListLoading = false); }).finally(() => this.dataListLoading = false);
}, },

6
src/views/fids/productManagement/productDetails/Index.vue

@ -7,17 +7,17 @@
@click="showPages('ProductInfo')" @click="showPages('ProductInfo')"
:class="showPage==='ProductInfo'? activeClass:''">产品信息 :class="showPage==='ProductInfo'? activeClass:''">产品信息
</el-button> </el-button>
<el-button class="btn_tab border-normal-left" <!-- <el-button class="btn_tab border-normal-left"
@click="showPages('TraceabilityInfo')" @click="showPages('TraceabilityInfo')"
:class="showPage==='TraceabilityInfo'? activeClass:''" :class="showPage==='TraceabilityInfo'? activeClass:''"
v-if="sourceButton">溯源信息 v-if="sourceButton">溯源信息
</el-button> </el-button> -->
</div> </div>
<keep-alive> <keep-alive>
<component :is="showPage" :detailData="detailData"></component> <component :is="showPage" :detailData="detailData"></component>
</keep-alive> </keep-alive>
<div class="btn_bottom"> <div class="btn_bottom">
<el-button type="primary" @click="modifyProduct">修改</el-button> <!-- <el-button type="primary" @click="modifyProduct">修改</el-button> -->
<el-button type="info" @click="goBack">返回</el-button> <el-button type="info" @click="goBack">返回</el-button>
</div> </div>
</el-form> </el-form>

4
src/views/fids/productManagement/productDetails/ProductInfo.vue

@ -36,8 +36,8 @@
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="fieldType.desc" prop="fieldEnglishName"
label="类型" label="数据项英文名称"
align="center" align="center"
width="180"> width="180">
</el-table-column> </el-table-column>

10
src/views/fids/productManagement/sendCode/Index.vue

@ -9,7 +9,7 @@
<el-input class="input_width" v-model="sendCodeForm.prefix" :disabled="disabled"></el-input> <el-input class="input_width" v-model="sendCodeForm.prefix" :disabled="disabled"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="自动产品序列:" prop="type"> <el-form-item label="自动产品序列:" prop="type">
<el-select v-model="sendCodeForm.type" placeholder="请选择自动产品序列" :disabled="false"> <el-select v-model="sendCodeForm.type" placeholder="请选择自动产品序列" :disabled="true">
<el-option label="否" :value='0'></el-option> <el-option label="否" :value='0'></el-option>
<el-option label="是" :value='1'></el-option> <el-option label="是" :value='1'></el-option>
</el-select> </el-select>
@ -17,7 +17,7 @@
<el-form-item label="发码数量:" prop="sendingNumber" v-if="sendCodeForm.type===1"> <el-form-item label="发码数量:" prop="sendingNumber" v-if="sendCodeForm.type===1">
<el-input class="input_width" v-model="sendCodeForm.sendingNumber"></el-input> <el-input class="input_width" v-model="sendCodeForm.sendingNumber"></el-input>
</el-form-item> </el-form-item>
<div v-if="sendCodeForm.type===0"> <!-- <div v-if="sendCodeForm.type===0">
<el-form-item label="标识后缀:" prop="suffix"> <el-form-item label="标识后缀:" prop="suffix">
<span class="m_left_20"> <span class="m_left_20">
<el-link :underline="false" type="primary" @click="onView()">编写说明</el-link> <el-link :underline="false" type="primary" @click="onView()">编写说明</el-link>
@ -55,13 +55,13 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
</div> </div> -->
<el-form-item> <el-form-item>
<el-row class="encoding_view"> <el-row class="encoding_view">
<el-col :span="16"> <el-col :span="16">
<el-button type="primary" @click="previewSubmit('preview')">预览结果</el-button> <el-button type="primary" @click="previewSubmit('preview')">预览结果</el-button>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-link type="primary">Excel表格模板下载</el-link> <el-link type="primary">Excel表格模板下载</el-link>
@ -70,7 +70,7 @@
<el-button type="primary">批量上传</el-button> <el-button type="primary">批量上传</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col> -->
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>

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

@ -9,7 +9,7 @@
v-loading="dataListLoading"> v-loading="dataListLoading">
<el-table-column type="selection" width="50" align="center" :reserve-selection="true"></el-table-column> <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="createTime" label="发码时间" align="center"></el-table-column>
<el-table-column prop="files" label="产品图片" align="center"> <!-- <el-table-column prop="files" label="产品图片" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image class="prod_pic" style="width: 40px; height: 40px" <el-image class="prod_pic" style="width: 40px; height: 40px"
v-for="(item,index) in scope.row.files" v-for="(item,index) in scope.row.files"
@ -18,8 +18,8 @@
:preview-src-list="[item.url]"> :preview-src-list="[item.url]">
</el-image> </el-image>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column prop="qrcodeBase64" label="溯源码" align="center"> <!-- <el-table-column prop="qrcodeBase64" label="溯源码" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image class="prod_pic" style="width: 40px; height: auto" <el-image class="prod_pic" style="width: 40px; height: auto"
:src="scope.row.qrcodeBase64" :src="scope.row.qrcodeBase64"
@ -30,7 +30,7 @@
</div> </div>
</el-image> </el-image>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column prop="commodityName" label="产品名称" align="center"></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 prop="intactCode" label="产品编码" align="center"></el-table-column>
<el-table-column label="操作" width="100" align="center"> <el-table-column label="操作" width="100" align="center">
@ -123,9 +123,9 @@ export default {
} }
sendCodeListByProduct(params).then(res => { sendCodeListByProduct(params).then(res => {
if (res.data.isSuccess) { if (res.data.isSuccess) {
res = res.data.data; let data = res.data.data;
this.tableData = res.records; this.tableData = data.records;
this.total = res.total this.total = parseInt(data.total)
} }
}).finally(()=> this.dataListLoading = false); }).finally(()=> this.dataListLoading = false);
}, },

4
src/views/home/home.vue

@ -6,7 +6,7 @@
<el-card class="card"> <el-card class="card">
<div class="title">{{ title }}</div> <div class="title">{{ title }}</div>
<el-row type="flex" justify="center"> <el-row type="flex" justify="center">
<el-col :span="21" class="bg_search"> <el-col class="bg_search">
<el-row class="search"> <el-row class="search">
<el-col :span="21"> <el-col :span="21">
<el-input <el-input
@ -142,7 +142,7 @@ export default {
} }
.card { .card {
display: flex; display: flex;
/*justify-content: center;*/ justify-content: center;
align-items: center; align-items: center;
//padding-top: 50px; //padding-top: 50px;
//margin-top: 18%; //margin-top: 18%;

2
src/views/login/login.vue

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

58
src/views/searchList/searchList.vue

@ -26,25 +26,31 @@
<el-tabs type="border-card" class="tabs-wrapper" v-show="!isError" v-loading="searchLoading"> <el-tabs type="border-card" class="tabs-wrapper" v-show="!isError" v-loading="searchLoading">
<el-tab-pane label="产品信息"> <el-tab-pane label="产品信息">
<el-form label-width="150px" > <el-form label-width="150px" >
<el-form-item :label="item.key" v-for="(item,index) in productInfoData" :key="item.id" v-if="index % 1 == 0"> <el-form-item label="产品名称:" >
<span>{{item.value}}</span> <span>{{dataAll.commodityName === null ? '' : dataAll.commodityName}}</span>
</el-form-item>
<el-form-item label="产品图片:" >
<img :src="file.url" :alt="file.fileName" v-for="file in dataAll.files" :key="file.id" class="product-img">
</el-form-item>
<el-form-item :label="item.fieldName+':'" v-for="item in dataAll.lists" :key="item.id">
<span>{{item.fieldValue}}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane> <el-tab-pane>
<span slot="label">企业信息</span> <span slot="label">企业信息</span>
<el-form label-width="150px" > <el-form label-width="150px" >
<el-form-item label="企业前缀" > <el-form-item label="前缀注册地:" >
<span>{{enInfoData.prefix === null ? '' : enInfoData.prefix}}</span> <span>{{dataAll.ghrName === null ? '' : dataAll.ghrName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="企业名称" > <el-form-item label="企业名称" >
<span>{{enInfoData.name === null ? '' : enInfoData.name}}</span> <span>{{dataAll.entNameCn === null ? '' : dataAll.entNameCn}}</span>
</el-form-item> </el-form-item>
<el-form-item label="企业邮箱" > <el-form-item label="企业简介:" >
<span>{{enInfoData.email === null ? '' : enInfoData.email}}</span> <span>{{dataAll.entDesc === null ? '' : dataAll.entDesc}}</span>
</el-form-item> </el-form-item>
<el-form-item label="企业地址" > <el-form-item label="企业地址" >
<span>{{enInfoData.address === null ? '' : enInfoData.address}}</span> <span>{{dataAll.entAddrCn === null ? '' : dataAll.entAddrCn}}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
@ -59,7 +65,7 @@
import Header from "@/components/Header/Header"; import Header from "@/components/Header/Header";
import Footer from "@/components/Footer/Footer"; import Footer from "@/components/Footer/Footer";
import db from "@/utils/localstorage"; import db from "@/utils/localstorage";
import {analysDetail} from "@/api/codeSearch.js"; import {analysDetailNew} from "@/api/codeSearch.js";
export default { export default {
components: { Header, Footer }, components: { Header, Footer },
@ -75,10 +81,7 @@ export default {
}, },
], ],
selectValue: "模糊查询", selectValue: "模糊查询",
enInfoData: [ dataAll:[],
],
productInfoData:[
],
searchValue: "", searchValue: "",
errorResult: '', errorResult: '',
isError: false, isError: false,
@ -90,10 +93,8 @@ export default {
}, },
mounted() { mounted() {
db.clear(); db.clear();
if(this.searchValue)this.doQuery(this.searchValue);
this.doQuery(this.searchValue);
}, },
destroyed() {}, destroyed() {},
methods: { methods: {
@ -101,11 +102,9 @@ export default {
this.$router.go(-1); this.$router.go(-1);
}, },
query(){ query(){
let idCode = this.searchValue; let idCode = this.searchValue;
// //
if(idCode == null){ if(idCode == null || idCode == ''){
// //
this.$message({ this.$message({
message: '标识信息不能为空', message: '标识信息不能为空',
@ -115,26 +114,18 @@ export default {
this.doQuery(idCode); this.doQuery(idCode);
} }
}, },
doQuery(idCode){ doQuery(idCode){
this.searchLoading = true; this.searchLoading = true;
analysDetail(idCode).then((res) => { analysDetailNew(idCode).then((res) => {
console.log(res)
this.searchLoading = false; this.searchLoading = false;
if(res.status == 200){ if(res.status == 200){
if(res.data == null){ if(res.data == null){
this.errorResult = '无效标识!'; this.errorResult = '无效标识!';
this.isError = true; this.isError = true;
} else { } else {
if(res.data.data == null){ this.dataAll = res.data
this.errorResult = '无效标识!';
this.isError = true;
}else{
this.productInfoData = res.data.data.analysis;
this.enInfoData = res.data.data.tenant;
this.isError = false; this.isError = false;
} }
}
} else { } else {
this.errorResult = '暂时无法获得查询结果,请稍后重试!'; this.errorResult = '暂时无法获得查询结果,请稍后重试!';
this.isError = true; this.isError = true;
@ -214,6 +205,11 @@ export default {
margin: 20px; margin: 20px;
height: 100%; height: 100%;
} }
.product-img {
position: relative;
width: 200px;
margin: 10px;
}
} }
} }
} }

Loading…
Cancel
Save