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_PROD_REQUEST_DOMAIN_PREFIX = 'http://120.46.128.104:8900'
VUE_APP_PROD_REQUEST_DOMAIN_PREFIX = 'http://124.70.30.20:8900'
# base 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 name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<title><%= htmlWebpackPlugin.options.title %>|顺鑫控股二级节点</title>
</head>
<body>
<noscript>

2
src/api/AxiosApi.js

@ -103,7 +103,7 @@ const httpServer = (opts) => {
// 生产环境: http://IP:PORT/api // 生产环境中 代理失效, 故需要配置绝对路径
const httpDefaultOpts = {
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,
responseType: opts.responseType || '',
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' //登录获取企业名称
//产品管理模块 productManagement.js
export const QUERYCOMMODITY = `/product/commodityInfo/queryCommodity`; //查询动态商品列表数据
export const QUERYCOMMODITYNEW = `/product/commodityInfo/queryCommodityAndTenantCode`; //查询动态商品列表数据
export const SAVECOMMODITY = `/product/commodityInfo/saveCommodity`; //动态商品新增
export const UPDATECOMMODITY = `/product/commodityInfo/updateCommodity`; //动态商品修改
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_NEW = `/idis/middlePlatform/analysDetail`; //标识搜索 -- 新

8
src/api/codeSearch.js

@ -1,6 +1,7 @@
import axiosApi from "@/api/AxiosApi";
import {
IDIS_CODE_SEARCH,
IDIS_CODE_SEARCH_NEW
} from "@/api/api";
export function analysDetail(idCode) {
@ -9,3 +10,10 @@ export function analysDetail(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 {
QUERYCOMMODITY,
QUERYCOMMODITYNEW,
SAVECOMMODITY,
UPDATECOMMODITY,
DELETECOMMODITY,
@ -24,7 +25,13 @@ export function queryCommodity(data) {
data
})
}
//批量查询动态商品列表数据--新
export function queryCommodityNew(code) {
return axiosApi({
method: 'get',
url: QUERYCOMMODITYNEW+'/'+code
})
}
//动态商品新增
export function saveCommodity(data) {
return axiosApi({
@ -33,7 +40,6 @@ export function saveCommodity(data) {
data
})
}
//动态商品修改
export function updateCommodity(data) {
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="/platformIntroduction">平台介绍</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>-->
<a href="https://easydoc.xyz/s/95339992" target="_blank" style="margin-right:30px ">API说明</a>
<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"/>
<div class="right-menu">
<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="搜索菜单"/>
<screenfull id="screenfull" class="right-menu-item hover-effect"/>
<!-- <lang-select class="right-menu-item hover-effect"/> -->
<el-popover
<!-- <el-popover
placement="bottom"
width="400"
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">
<i class="el-icon-bell"/>
</el-badge>
</el-popover>
</el-popover> -->
</template>
<el-dropdown
class="avatar-container right-menu-item hover-effect"

2
src/settings.js

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

3
src/styles/variables.scss

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

2
src/utils/localstorage.js

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

32
src/utils/validate.js

@ -37,6 +37,11 @@ export function validateIDCard(idCard){
return false
}
}
/* 护照正则表达式*/
export function validatePassPortCard(str) {
const reg = /^([a-zA-z]|[0-9]){5,17}$/;
return reg.test(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,}$/
@ -47,6 +52,12 @@ export function validatePhone(textval) {
const reg = /^1(3|4|5|6|7|8|9)\d{9}$/
return reg.test(textval)
}
/* 检验传真*/
export function validateFax(textval) {
const reg = /^(\d{3,4}-)?\d{7,8}$/
return reg.test(textval)
}
/* 合法uri*/
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.,?'\\+&%$#=~_-]+))*$/
@ -93,3 +104,24 @@ export function validatePasswordStrong(str) {
if(/\W/.test(str)) modes++; //特殊字符
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;
}
}
.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>
</span>
<el-link type="primary" class="fr" @click="editEnperprise">
<i class="el-icon-edit"></i>
修改
</el-link>
<div class="content-inner" v-show="showInnerHelp">
<div class="transition-box">
<div class="title-bar-text">
@ -23,10 +20,24 @@
</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">
<el-tabs type="border-card">
<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">
<span>资质信息</span>
</div>
@ -79,10 +90,11 @@
</div>
<el-row>
<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="联系人证件照片:">
<img :src="stepData.contactCrtBackImgUrl">
<img :src="stepData.contactCrtFrontImgUrl">
<img v-if="stepData.contactCrtBackImgUrl" :src="stepData.contactCrtBackImgUrl">
<img v-if="stepData.contactCrtFrontImgUrl" :src="stepData.contactCrtFrontImgUrl">
</el-form-item>
</el-col>
<el-col :span="12">
@ -94,7 +106,7 @@
</el-form>
</el-tab-pane>
<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">
<span>系统建设</span>
</div>
@ -103,12 +115,10 @@
</div>
<el-row>
<el-col :span="12">
<el-form-item label="注册系统部署方式:"><span>{{stepData.entInfoSyses[0].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
<el-form-item label="注册系统IP地址及端口号:"><span>{{stepData.entInfoSyses[0].ipPort}}</span></el-form-item>
<el-form-item label="注册系统部署方式:"><span v-if="stepData.entInfoSyses[0]">{{stepData.entInfoSyses[0].deployMode == 1 ? "本地部署" : "云部署"}}</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 :span="12">
<el-col :span="12" v-if="stepData.entInfoSyses[0]">
<template v-if="stepData.entInfoSyses[0].deployMode == 1">
<el-form-item label="注册系统所在地:">
<span>{{stepData.entInfoSyses[0].deployAddrProvince}}-{{stepData.entInfoSyses[0].deployAddrCity}}-{{stepData.entInfoSyses[0].deployAddrCounty}}</span>
@ -118,14 +128,13 @@
<template v-else-if="stepData.entInfoSyses[0].deployMode == 2">
<el-form-item label="云服务商名称:"><span>{{stepData.entInfoSyses[0].name}}</span></el-form-item>
</template>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="注册数据部署方式:"><span>{{stepData.entInfoSyses[1].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
<el-form-item label="注册数据部署方式:"><span v-if="stepData.entInfoSyses[1]">{{stepData.entInfoSyses[1].deployMode == 1 ? "本地部署" : "云部署"}}</span></el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="stepData.entInfoSyses[1]">
<template v-if="stepData.entInfoSyses[1].deployMode == 1">
<el-form-item label="注册数据所在地:">
<span>{{stepData.entInfoSyses[1].deployAddrProvince}}-{{stepData.entInfoSyses[1].deployAddrCity}}-{{stepData.entInfoSyses[1].deployAddrCounty}}</span>
@ -139,9 +148,9 @@
</el-row>
<el-row>
<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 :span="12">
<el-col :span="12" v-if="stepData.entInfoSyses[2]">
<template v-if="stepData.entInfoSyses[2].deployMode == 1">
<el-form-item label="注册备份数据所在地:">
<span>{{stepData.entInfoSyses[2].deployAddrProvince}}-{{stepData.entInfoSyses[2].deployAddrCity}}-{{stepData.entInfoSyses[2].deployAddrCounty}}</span>
@ -158,9 +167,9 @@
</div>
<el-row>
<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 :span="12">
<el-col :span="12" v-if="stepData.entInfoSyses[3]">
<template v-if="stepData.entInfoSyses[3].deployMode == 1">
<el-form-item label="解析系统所在地:">
<span>{{stepData.entInfoSyses[3].deployAddrProvince}}-{{stepData.entInfoSyses[3].deployAddrCity}}-{{stepData.entInfoSyses[3].deployAddrCounty}}</span>
@ -178,7 +187,7 @@
<el-col :span="12">
<el-form-item label="服务系统建设类型:"><span>{{stepData.servSysBuildTypeValue}}</span></el-form-item>
<el-form-item label="服务系统建设合同:" v-if="stepData.servSysBuildType == 2">
<el-link type="primary" :href="stepData.servSysBuildContractFileUrl">{{stepData.servSysBuildContractFileUrl}}</el-link>
<el-link type="primary" target="_blank" :href="stepData.servSysBuildContractFileUrl">{{stepData.servSysBuildContractFileName}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12" >
@ -189,7 +198,7 @@
<el-col :span="12">
<el-form-item label="服务系统运营类型:"><span>{{stepData.servSysOperTypeValue}}</span></el-form-item>
<el-form-item label="服务系统运营合同:" v-if="stepData.servSysOperType == 2">
<el-link type="primary" :href="stepData.servSysOperContractFileUrl">{{stepData.servSysOperContractFileUrl}}</el-link>
<el-link type="primary" target="_blank" :href="stepData.servSysOperContractFileUrl">{{stepData.servSysOperContractFileName}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12">
@ -198,9 +207,9 @@
</el-row>
<el-row>
<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 :span="12">
<el-col :span="12" v-if="stepData.entInfoSyses[4]">
<template v-if="stepData.entInfoSyses[4].deployMode == 1">
<el-form-item label="备份服务系统所在地:">
<span>{{stepData.entInfoSyses[4].deployAddrProvince}}-{{stepData.entInfoSyses[4].deployAddrCity}}-{{stepData.entInfoSyses[4].deployAddrCounty}}</span>
@ -214,7 +223,7 @@
</el-form>
</el-tab-pane>
<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">
<span>灾备与服务</span>
</div>
@ -225,13 +234,13 @@
<el-col :span="12">
<el-form-item label="数据托管单位名称:"><span>{{stepData.dataHostingOrg}}</span></el-form-item>
<el-form-item label="数据托管合同:">
<el-link type="primary" :href="stepData.dataHostingContractFileUrl">{{stepData.dataHostingContractFileRid}}</el-link>
<el-link type="primary" target="_blank" :href="stepData.dataHostingContractFileUrl">{{stepData.dataHostingContractFileName}}</el-link>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="服务托管单位名称:"><span>{{stepData.servHostingOrg}}</span></el-form-item>
<el-form-item label="服务托管合同:">
<a :href="stepData.servHostingContractFileUrl">{{stepData.servHostingContractFileRid}}</a>
<el-link type="primary" target="_blank" :href="stepData.servHostingContractFileUrl">{{stepData.servHostingContractFileName}}</el-link>
</el-form-item>
</el-col>
</el-row>
@ -240,15 +249,41 @@
</div>
<el-row>
<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.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 :span="12">
<el-form-item label="标识服务网站名称:"><span>{{stepData.extWebName}}</span></el-form-item>
<el-form-item label="标识服务网站IP:"><span>{{stepData.extIpAddr}}</span></el-form-item>
</el-col>
</el-row>
<el-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-tab-pane>
</el-tabs>
@ -256,34 +291,66 @@
</div>
</template>
<script>
import variables from '@/styles/variables.scss'
import {enterpriseInfoAll} from "@/api/enterpriseManagement";
export default {
name:"showEnterpriseInfo",
data(){
return {
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()
},
computed:{
variables () {
return variables
}
},
methods:{
getEnterpriseAll(){
const code = `${this.$Base64.decode(this.$db.get('TENANT'))}` || null
if(code)
{
enterpriseInfoAll(code).then(res => {
console.log(res.data);
this.stepData = res.data.data
if(this.stepData.entInfoSyses.length == 0) {
this.stepData.entInfoSyses = [
{'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''},
{'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
{'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
]
// if(this.stepData.entInfoSyses.length == 0) {
// this.stepData.entInfoSyses = [
// {'sysType':1,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':'','ipPort':''},
// {'sysType':2,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
// {'sysType':3,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
// {'sysType':4,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
// {'sysType':5,'deployMode':'','deployAddrProvince':'','deployAddrCity':'','deployAddrCounty':'','deployAddr':'','name':''},
// ]
// }
//,
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>
<style lang="scss" scoped>
.content-inner {
position: relative;
width: 100%;
@ -315,6 +381,15 @@ export default {
position: relative;
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 lang="scss">
.content-box .el-form-item__label {

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

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

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

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

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

@ -13,71 +13,53 @@
</div>
<el-row>
<el-col :span="10">
<el-form-item label="数据托管单位名称:" >
<el-form-item label="数据托管单位名称:" prop="dataHostingOrg">
<el-input v-model="stepData3.dataHostingOrg"></el-input>
</el-form-item>
<el-form-item label="数据托管合同:">
<el-col :span="8">
<el-form-item label="数据托管合同:" prop="dataHostingContractFileRid">
<el-upload
class="upload-demo"
ref="dataTrusteeRef"
:class="{hide:hideDataTrustee}"
:action=action
:data="servSysBuild"
list-type="picture-card"
multiple
:limit=limitCount
:file-list="dataTrusteeFile"
:data="servSysBuild"
:headers="headers"
:on-change="handleChangeDataTrustee"
:on-preview="handlePictureCardPreview"
:file-list="dataTrusteeFile"
:on-success="handSuccessDataTrustee"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveDataTrustee">
<i class="el-icon-plus"></i>
:on-remove="handleRemoveDataTrustee"
accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="16">
<div class="upload-tip">
注意事项<br>
请上传加盖公章的数据托管合同支持.pdf格式
</div>
</el-col>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="服务托管单位名称:" >
<el-form-item label="服务托管单位名称:" prop="servHostingOrg">
<el-input v-model="stepData3.servHostingOrg"></el-input>
</el-form-item>
<el-form-item label="服务托管合同:">
<el-col :span="8">
<el-form-item label="服务托管合同:" prop="servHostingContractFileRid">
<el-upload
class="upload-demo"
ref="serviceTrusteeRef"
:class="{hide:hideServiceTrustee}"
:action=action
:data="servSysBuild"
list-type="picture-card"
multiple
:limit=limitCount
:file-list="serviceTrusteeFile"
:data="servSysBuild"
:headers="headers"
:on-change="handleChangeServiceTrustee"
:on-preview="handlePictureCardPreview"
:file-list="serviceTrusteeFile"
:on-success="handSuccessServiceTrustee"
:before-upload="handleBeforePictureUpload"
:on-remove="handleRemoveServiceTrustee">
<i class="el-icon-plus"></i>
:on-remove="handleRemoveServiceTrustee"
accept="application/pdf"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip"> 注意事项合同附件支持.pdf格式,最大上传附件1个</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
<el-col :span="16">
<div class="upload-tip">
注意事项<br>
请上传加盖公章的服务托管合同支持.pdf格式
</div>
</el-col>
</el-form-item>
</el-col>
</el-row>
@ -94,7 +76,7 @@
:props="props"
clearable></el-cascader>
</el-form-item>
<el-form-item label="标识服务网站域名:">
<el-form-item label="标识服务网站域名:" prop="extDomain">
<el-input v-model="stepData3.extDomain"></el-input>
</el-form-item>
</el-col>
@ -102,7 +84,7 @@
<el-form-item label="标识服务网站名称:">
<el-input v-model="stepData3.extWebName"></el-input>
</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-form-item>
</el-col>
@ -154,9 +136,58 @@
<script>
import {enterpriseAuthNew3,enterpriseAuthNewSubmit3,industryTypeStep3,enterpriseInfoNewStep3} from "@/api/enterpriseManagement";
import {UPLOAD} from "@/api/api"
import {validateURL,validateMoreIPAddr} from "@/utils/validate";
export default {
name:"step3",
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 {
stepData3: {
dataHostingOrg:"", //
@ -178,8 +209,33 @@ export default {
// entInfoLicenses.licenceType:"" //[: 1. 2. 3. 4.]
},
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:[],
entInfoSerIndustries:[],
limitCount: 1,
@ -229,12 +285,12 @@ export default {
this.stepData3 = res.data.data
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
}
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
}
if(this.stepData3.entInfoSerIndustries.length > 0) {
@ -321,7 +377,7 @@ export default {
message: "操作成功",
type: "success"
});
this.$emit('child-event','show')
}
})
} else {
@ -346,6 +402,7 @@ export default {
handleRemoveDataTrustee(file, fileList) {
this.stepData3.dataHostingContractFileRid = ''
this.stepData3.dataHostingContractFileUrl = ''
this.stepData3.dataHostingContractFileName = ''
this.dataTrusteeFile = fileList
// this.$refs.step3.validateField('dataHostingContractFileRid')
this.hideDataTrustee = fileList.length >= this.limitCount;
@ -354,7 +411,8 @@ export default {
handSuccessDataTrustee(file) {
this.stepData3.dataHostingContractFileRid = file.data.idisResult
this.stepData3.dataHostingContractFileUrl = file.data.url
this.dataTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.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')
},
@ -366,6 +424,7 @@ export default {
handleRemoveServiceTrustee(file, fileList) {
this.stepData3.servHostingContractFileRid = ''
this.stepData3.servHostingContractFileUrl = ''
this.stepData3.servHostingContractFileName = ''
this.serviceTrusteeFile = fileList
this.$refs.step3.validateField('servHostingContractFileRid')
this.hideServiceTrustee = fileList.length >= this.limitCount;
@ -374,7 +433,8 @@ export default {
handSuccessServiceTrustee(file) {
this.stepData3.servHostingContractFileRid = file.data.idisResult
this.stepData3.servHostingContractFileUrl = file.data.url
this.serviceTrusteeFile.push({name: file.data.filename, url: file.data.url, bizType: file.data.bizType})
this.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')
},
handlePictureCardPreview(file) {

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

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

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

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

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

@ -25,7 +25,7 @@
ref="multipleTable"
v-loading="dataListLoading">
<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">
<template slot-scope="scope">
<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="barcode" 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">
<el-button size="small" @click="showDetail(scope.row.id)">详情</el-button>
<el-button type="warning" size="small" @click="modifyRow(scope.row.id)">修改</el-button>
<el-button type="danger" size="small" @click="deleteRow('radio',scope.row)">删除</el-button>
<!-- <el-button type="warning" size="small" @click="modifyRow(scope.row.id)">修改</el-button>
<el-button type="danger" size="small" @click="deleteRow('radio',scope.row)">删除</el-button> -->
<el-button type="success" size="small" @click="sendCode(scope.row)">发码</el-button>
<el-button type="info" size="small" @click="showSendCodeDetail(scope.row.id)">发码详情</el-button>
<el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button>
<!-- <el-button type="primary" size="small" @click="bindLabel(scope.row)">绑定标签</el-button> -->
</template>
</el-table-column>
@ -64,7 +64,7 @@
<script>
import Pagination from "@/components/Pagination";
import {queryCommodity, deleteCommodity} from "@/api/productManagement";
import {queryCommodity,queryCommodityNew, deleteCommodity} from "@/api/productManagement";
import {initQueryParams} from '@/utils/commons' //
export default {
name: "productCategoryManagement",
@ -121,10 +121,10 @@ export default {
...this.queryParams
}
queryCommodity(params).then(res => {
console.log(res.data);
if (res.data.isSuccess) {
res = res.data.data;
this.tableData= res.records;
this.total = res.total
this.tableData = res.data.data.records;
this.total = res.data.data.total
}
}).finally(() => this.dataListLoading = false);
},

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

@ -7,17 +7,17 @@
@click="showPages('ProductInfo')"
:class="showPage==='ProductInfo'? activeClass:''">产品信息
</el-button>
<el-button class="btn_tab border-normal-left"
<!-- <el-button class="btn_tab border-normal-left"
@click="showPages('TraceabilityInfo')"
:class="showPage==='TraceabilityInfo'? activeClass:''"
v-if="sourceButton">溯源信息
</el-button>
</el-button> -->
</div>
<keep-alive>
<component :is="showPage" :detailData="detailData"></component>
</keep-alive>
<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>
</div>
</el-form>

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

@ -36,8 +36,8 @@
width="180">
</el-table-column>
<el-table-column
prop="fieldType.desc"
label="类型"
prop="fieldEnglishName"
label="数据项英文名称"
align="center"
width="180">
</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-form-item>
<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='1'></el-option>
</el-select>
@ -17,7 +17,7 @@
<el-form-item label="发码数量:" prop="sendingNumber" v-if="sendCodeForm.type===1">
<el-input class="input_width" v-model="sendCodeForm.sendingNumber"></el-input>
</el-form-item>
<div v-if="sendCodeForm.type===0">
<!-- <div v-if="sendCodeForm.type===0">
<el-form-item label="标识后缀:" prop="suffix">
<span class="m_left_20">
<el-link :underline="false" type="primary" @click="onView()">编写说明</el-link>
@ -55,13 +55,13 @@
</el-col>
</el-row>
</el-form-item>
</div>
</div> -->
<el-form-item>
<el-row class="encoding_view">
<el-col :span="16">
<el-button type="primary" @click="previewSubmit('preview')">预览结果</el-button>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-row>
<el-col :span="12">
<el-link type="primary">Excel表格模板下载</el-link>
@ -70,7 +70,7 @@
<el-button type="primary">批量上传</el-button>
</el-col>
</el-row>
</el-col>
</el-col> -->
</el-row>
</el-form-item>
<el-form-item>

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

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

4
src/views/home/home.vue

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

2
src/views/login/login.vue

@ -127,7 +127,7 @@ export default {
saveLogin: true,
isCaptcha: process.env.VUE_APP_IS_CAPTCHA === "true" ? true : false,
loginForm: {
tenantView: "j2ufjynd", //ID
tenantView: "", //ID
tenant: "", //Base64
account: "",//
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-tab-pane label="产品信息">
<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">
<span>{{item.value}}</span>
<el-form-item label="产品名称:" >
<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>
</el-tab-pane>
<el-tab-pane>
<span slot="label">企业信息</span>
<el-form label-width="150px" >
<el-form-item label="企业前缀" >
<span>{{enInfoData.prefix === null ? '' : enInfoData.prefix}}</span>
<el-form-item label="前缀注册地:" >
<span>{{dataAll.ghrName === null ? '' : dataAll.ghrName}}</span>
</el-form-item>
<el-form-item label="企业名称" >
<span>{{enInfoData.name === null ? '' : enInfoData.name}}</span>
<el-form-item label="企业名称" >
<span>{{dataAll.entNameCn === null ? '' : dataAll.entNameCn}}</span>
</el-form-item>
<el-form-item label="企业邮箱" >
<span>{{enInfoData.email === null ? '' : enInfoData.email}}</span>
<el-form-item label="企业简介:" >
<span>{{dataAll.entDesc === null ? '' : dataAll.entDesc}}</span>
</el-form-item>
<el-form-item label="企业地址" >
<span>{{enInfoData.address === null ? '' : enInfoData.address}}</span>
<el-form-item label="企业地址" >
<span>{{dataAll.entAddrCn === null ? '' : dataAll.entAddrCn}}</span>
</el-form-item>
</el-form>
</el-tab-pane>
@ -59,7 +65,7 @@
import Header from "@/components/Header/Header";
import Footer from "@/components/Footer/Footer";
import db from "@/utils/localstorage";
import {analysDetail} from "@/api/codeSearch.js";
import {analysDetailNew} from "@/api/codeSearch.js";
export default {
components: { Header, Footer },
@ -75,10 +81,7 @@ export default {
},
],
selectValue: "模糊查询",
enInfoData: [
],
productInfoData:[
],
dataAll:[],
searchValue: "",
errorResult: '',
isError: false,
@ -90,10 +93,8 @@ export default {
},
mounted() {
db.clear();
if(this.searchValue)this.doQuery(this.searchValue);
this.doQuery(this.searchValue);
},
destroyed() {},
methods: {
@ -101,11 +102,9 @@ export default {
this.$router.go(-1);
},
query(){
let idCode = this.searchValue;
//
if(idCode == null){
if(idCode == null || idCode == ''){
//
this.$message({
message: '标识信息不能为空',
@ -115,26 +114,18 @@ export default {
this.doQuery(idCode);
}
},
doQuery(idCode){
this.searchLoading = true;
analysDetail(idCode).then((res) => {
console.log(res)
analysDetailNew(idCode).then((res) => {
this.searchLoading = false;
if(res.status == 200){
if(res.data == null){
this.errorResult = '无效标识!';
this.isError = true;
} else {
if(res.data.data == null){
this.errorResult = '无效标识!';
this.isError = true;
}else{
this.productInfoData = res.data.data.analysis;
this.enInfoData = res.data.data.tenant;
this.dataAll = res.data
this.isError = false;
}
}
} else {
this.errorResult = '暂时无法获得查询结果,请稍后重试!';
this.isError = true;
@ -214,6 +205,11 @@ export default {
margin: 20px;
height: 100%;
}
.product-img {
position: relative;
width: 200px;
margin: 10px;
}
}
}
}

Loading…
Cancel
Save