Browse Source

跳转修改

dev_kxc
xzt 1 year ago
parent
commit
898067f2c8
  1. 5
      jwtech-pc-page/config/index.js
  2. 18
      jwtech-pc-page/src/api/enterpriseInformation.js
  3. 168
      jwtech-pc-page/src/components/aerialHeaderMenu.vue
  4. 208
      jwtech-pc-page/src/views/announcement/actionAnnouncementDetail.vue
  5. 124
      jwtech-pc-page/src/views/announcement/components/announcementBasicTable.vue
  6. 157
      jwtech-pc-page/src/views/announcement/components/misconductTable.vue
  7. 504
      jwtech-pc-page/src/views/announcement/index.vue
  8. 699
      jwtech-pc-page/src/views/creditStatistics/certificationPage.vue
  9. 186
      jwtech-pc-page/src/views/creditStatistics/components/allQualified.vue
  10. 353
      jwtech-pc-page/src/views/creditStatistics/components/goodNotice.vue
  11. 223
      jwtech-pc-page/src/views/enterpriseInformation/components/actionList.vue
  12. 259
      jwtech-pc-page/src/views/enterpriseInformation/components/personalTable.vue
  13. 468
      jwtech-pc-page/src/views/enterpriseInformation/index.vue

5
jwtech-pc-page/config/index.js

@ -32,7 +32,8 @@ module.exports = {
// },
proxyTable: {
'/kms-pc-web': {
target: 'http://127.0.0.1:18080/kms-pc-web',
// target: 'http://127.0.0.1:18080/kms-pc-web',
target: 'http://192.168.2.106:18082/kms-pc-web',
changeOrigin: true,
pathRewrite: {
'^/kms-pc-web': '/'
@ -41,7 +42,7 @@ module.exports = {
},
// 使用 localhost:18080 或者 本机地址:18080 访问系统页面
host: '192.168.2.101', // can be overwritten by process.env.HOST
host: '192.168.2.100', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,

18
jwtech-pc-page/src/api/enterpriseInformation.js

@ -25,6 +25,15 @@ export function listByEid(enterpriseId) {
})
}
// 企业详情-人员信息
export function personInfoList(data) {
return request({
url: '/enterprise/certificateInfo/list',
method: 'POST',
data: data
})
}
// 企业详情-资质信息
export function personInfo(enterpriseId) {
return request({
@ -60,6 +69,15 @@ export function zhxxList(data) {
})
}
// 良好公告
export function getGoodAll(data) {
return request({
url: '/enterprise/credit/getGoodAll',
method: 'POST',
data: data
})
}
// 不良公告
export function getBadAll(data) {
return request({

168
jwtech-pc-page/src/components/aerialHeaderMenu.vue

@ -2,34 +2,42 @@
<div class="head">
<div class="head-content" v-if="isHome">
<div class="bottom-img">
<img src="@/assets/image/img_huxing.png" alt="">
<img src="@/assets/image/img_huxing.png" alt="" />
</div>
<div class="content-wrap">
<div class="incorrect-wrap">
<div class="incorrect-item">
<img src="@/assets/image/icon_zhuguan.png" alt="">
<img src="@/assets/image/icon_zhuguan.png" alt="" />
<span>主管部门填报</span>
</div>
<div class="incorrect-item">
<img src="@/assets/image/icon_qiye.png" alt="">
<img src="@/assets/image/icon_qiye.png" alt="" />
<span>企业填报</span>
</div>
</div>
<div id="clear"></div>
<div class="title-search">
<div class="title-content">
<img src="@/assets/image/logo.png" alt="">
<img src="@/assets/image/广东省水利建设市场信用信息平台.png" alt="">
<img src="@/assets/image/logo.png" alt="" />
<img
src="@/assets/image/广东省水利建设市场信用信息平台.png"
alt=""
/>
</div>
<div class="search-content">
<div class="search-input">
<el-input placeholder="请输入要搜索的企业" v-model="input">
<el-button slot="append" icon="el-icon-search">搜索</el-button>
<el-button
slot="append"
icon="el-icon-search"
@click="searchEnterpriseName"
>搜索</el-button
>
</el-input>
</div>
<div class="search-word">
<div class="img-tip">
<img src="@/assets/image/icon_resou.png" alt="">
<img src="@/assets/image/icon_resou.png" alt="" />
<span>热搜词</span>
</div>
<div class="word-wrap">
@ -45,15 +53,15 @@
<div class="head-content2" v-else>
<div class="content2-wrap">
<div class="content2-left">
<img src="@/assets/image/logo2.png" alt="">
<img src="@/assets/image/logo2.png" alt="" />
</div>
<div class="content2-right">
<div class="incorrect-item">
<img src="@/assets/image/icon_zhuguan.png" alt="">
<img src="@/assets/image/icon_zhuguan.png" alt="" />
<span>主管部门填报</span>
</div>
<div class="incorrect-item">
<img src="@/assets/image/icon_qiye.png" alt="">
<img src="@/assets/image/icon_qiye.png" alt="" />
<span>企业填报</span>
</div>
</div>
@ -61,10 +69,22 @@
</div>
<div class="menu-content">
<div class="menu-wrap" ref="menuWp">
<hk-menu :collapse-transition="false" ref="menu" :default-active="activeIndex" class="el-menu-demo"
mode="horizontal" menu-trigger="click" @select="handleSelect">
<hk-menu
:collapse-transition="false"
ref="menu"
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
menu-trigger="click"
@select="handleSelect"
>
<template v-for="(item, index) in menus">
<el-menu-item v-if="!item.children" :key="index" :index="item.path" :id="item.path">
<el-menu-item
v-if="!item.children"
:key="index"
:index="item.path"
:id="item.path"
>
<span class="span4" slot="title">{{ item.name }}</span>
</el-menu-item>
</template>
@ -83,11 +103,11 @@ export default {
components: { hkMenu },
data() {
return {
input:"",
input: "",
showSubMenu: false,
activeIndex: "",
menus: this.$partten.menus,
subMenus: ['hkdata', 'hkknowledge', 'service'],
subMenus: ["hkdata", "hkknowledge", "service"],
isHome: true
};
},
@ -95,60 +115,68 @@ export default {
$route: {
handler(val, oldval) {
if (val.path == "/home") {
this.isHome = true
this.isHome = true;
} else {
this.isHome = false
this.isHome = false;
}
this.activeIndex = val.matched[1].name;
},
//
deep: true,
immediate: true
},
}
},
created() {
this.activeIndex = this.$route.matched[1].name;
},
mounted() {
// this.changeStyle();
let menuWp = this.$refs.menuWp
let menuWp = this.$refs.menuWp;
if (menuWp) {
menuWp.addEventListener('mouseleave', this.handleMenuClose)
menuWp.addEventListener("mouseleave", this.handleMenuClose);
}
},
destroyed() {
let menuWp = this.$refs.menuWp
let menuWp = this.$refs.menuWp;
if (menuWp) {
menuWp.removeEventListener('mouseleave', this.handleMenuClose)
menuWp.removeEventListener("mouseleave", this.handleMenuClose);
}
},
methods: {
searchEnterpriseName() {
if (this.input) {
this.$router.push({
path: "/enterpriseInformation",
query: {
enterpriseName: this.input
}
});
}
},
handleMenuClose(e) {
this.handleClose()
this.handleClose();
},
handleClose() {
if (!this.showSubMenu) {
return
return;
}
this.showSubMenu = false
this.subMenus.forEach(path => this.$refs.menu.closeMenu(path))
this.showSubMenu = false;
this.subMenus.forEach(path => this.$refs.menu.closeMenu(path));
},
//
changeStyle: function () {
this.$refs.clearFix[0].popperElm.style.marginLeft = '40px';
this.$refs.clearFix[1].popperElm.style.marginLeft = '40px';
this.$refs.clearFix[2].popperElm.style.marginLeft = '40px';
changeStyle: function() {
this.$refs.clearFix[0].popperElm.style.marginLeft = "40px";
this.$refs.clearFix[1].popperElm.style.marginLeft = "40px";
this.$refs.clearFix[2].popperElm.style.marginLeft = "40px";
},
handleSelect(key, keyPath) {
if (key == 'https://www.zg-learn.com') {
window.open(key, '_black');
this.handleClose()
if (key == "https://www.zg-learn.com") {
window.open(key, "_black");
this.handleClose();
} else {
this.$router.push("/" + key);
this.$store.commit('SET_QUERY_PARAMS', '')
this.handleClose()
this.$store.commit("SET_QUERY_PARAMS", "");
this.handleClose();
}
},
handleLoginOut() {
@ -157,7 +185,7 @@ export default {
this.$store.commit("setUserInfo", "");
this.$router.push("/");
});
},
}
},
filters: {
ellipsis(value) {
@ -166,14 +194,13 @@ export default {
return value.slice(0, 12) + "...";
}
return value;
},
},
}
}
};
</script>
<style lang="less" scoped>
.head {
.head-content {
height: 500px;
background: url("../assets/image/banner.png");
@ -215,7 +242,7 @@ export default {
display: block;
font-size: 14px;
font-weight: 600;
color: #005EB7;
color: #005eb7;
margin-left: 5px;
}
}
@ -255,7 +282,7 @@ export default {
.el-input__inner {
height: 50px;
border-radius: 8px 0 0 8px;
border: 1px solid #AAD8FB;
border: 1px solid #aad8fb;
}
.el-input__inner::placeholder {
@ -264,8 +291,8 @@ export default {
}
.el-input-group__append {
background: #0059A5;
color: #FFFFFF;
background: #0059a5;
color: #ffffff;
border-radius: 0 8px 8px 0;
.el-button {
@ -318,7 +345,7 @@ export default {
}
span:nth-child(1) {
color: #DE0000;
color: #de0000;
}
}
}
@ -329,7 +356,7 @@ export default {
.head-content2 {
height: 80px;
background: linear-gradient(180deg, #63B7FF 0%, #FFFFFF 100%);
background: linear-gradient(180deg, #63b7ff 0%, #ffffff 100%);
.content2-wrap {
width: 1200px;
@ -357,7 +384,7 @@ export default {
display: block;
font-size: 14px;
font-weight: 600;
color: #005EB7;
color: #005eb7;
margin-left: 5px;
}
}
@ -369,7 +396,7 @@ export default {
width: 100%;
height: 80px;
padding-top: 15px;
background: #0055A6;
background: #0055a6;
// border-bottom: 1px solid #FFFFFF;
.menu-wrap {
@ -377,17 +404,17 @@ export default {
height: 100%;
margin: 0 auto;
&>.el-menu-demo {
& > .el-menu-demo {
background-color: inherit;
border-bottom: 0;
&>.el-menu-item:not(.is-disabled):focus,
& > .el-menu-item:not(.is-disabled):focus,
.el-menu-item:not(.is-disabled):hover,
.el-submenu .el-submenu__title:hover {
background-color: inherit;
}
&>.el-menu-item {
& > .el-menu-item {
font-weight: 400;
color: rgba(255, 255, 255, 0.89);
letter-spacing: 0px;
@ -397,7 +424,7 @@ export default {
padding-bottom: 60px;
}
&>.el-menu-item:first-child {
& > .el-menu-item:first-child {
margin-left: 14px;
}
@ -410,18 +437,18 @@ export default {
font-family: MicrosoftYaHei;
}
&>.el-menu-item.is-active {
& > .el-menu-item.is-active {
border-bottom: 0;
position: relative;
font-weight: 600;
}
&>.el-submenu {
& > .el-submenu {
height: 51px;
line-height: 40px;
}
&>.el-submenu.is-active {
& > .el-submenu.is-active {
.el-submenu__title {
//border-bottom: none;
position: relative;
@ -432,39 +459,36 @@ export default {
display: inline-block;
width: 16px;
height: 3px;
background: #FFFFFF;
background: #ffffff;
border-radius: 2px;
left: 50%;
margin-left: -8px;
bottom: 0;
}
}
}
&>.el-menu-item.is-active::after {
& > .el-menu-item.is-active::after {
content: "";
position: absolute;
width: 25px;
height: 5px;
background: #FFFFFF;
background: #ffffff;
border-radius: 2px;
left: 50%;
margin-left: -13px;
bottom: 0;
}
&>.el-menu-item.is-active {
& > .el-menu-item.is-active {
background-color: transparent !important;
}
&>.el-menu-item:hover {
& > .el-menu-item:hover {
background-color: transparent !important;
}
&>.el-submenu /deep/ .el-submenu__title:hover {
& > .el-submenu /deep/ .el-submenu__title:hover {
background-color: transparent !important;
// background-color: #41a3fb !important;
}
@ -479,7 +503,6 @@ export default {
border-bottom: none;
}
/deep/ .el-submenu__title {
margin: 0 55px;
padding: 0px;
@ -491,16 +514,14 @@ export default {
}
}
&>img {
& > img {
cursor: pointer;
width: 18px;
margin-left: 30px;
}
}
&>div {
& > div {
/deep/ .el-badge__content {
border: none;
background: #f53502;
@ -514,7 +535,7 @@ export default {
height: 20px;
line-height: 20px;
&>span {
& > span {
color: #b0adad;
font-size: 14px;
position: relative;
@ -522,7 +543,7 @@ export default {
font-weight: 500;
font-family: MicrosoftYaHei;
&>span {
& > span {
position: absolute;
background-color: #f53502;
letter-spacing: 0px;
@ -539,8 +560,7 @@ export default {
}
}
&>img {
& > img {
margin-left: 37px;
width: 20px;
cursor: pointer;

208
jwtech-pc-page/src/views/announcement/actionAnnouncementDetail.vue

@ -1,109 +1,143 @@
<template>
<div class="basic-detail">
<div class="basic-header">
<div class="header-wrap">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/announcement' }">公告</el-breadcrumb-item>
<el-breadcrumb-item>不良行为公告详情</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
<div class="basic-main">
<div class="main-wrap">
<announcementBasicTable :enterpriseObj="enterpriseObj" :bonusPointsAll="bonusPointsAll" />
<div class="descriptions-wrap">
<misconductTable :title="'企业不良行为' + (index + 1)" v-for="(item, index) in badList" :key="(item, index)" :itemObj="item"/>
</div>
</div>
<div class="basic-detail">
<div class="basic-header">
<div class="header-wrap">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/announcement' }"
>公告</el-breadcrumb-item
>
<el-breadcrumb-item>{{
this.$route.query.type === "good"
? "良好行为公告详情"
: "不良行为公告详情"
}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
<div class="basic-main">
<div class="main-wrap">
<announcementBasicTable
:enterpriseObj="enterpriseObj"
:bonusPointsAll="bonusPointsAll"
/>
<div class="descriptions-wrap">
<misconductTable
:title="title + (index + 1)"
v-for="(item, index) in actionList"
:key="(item, index)"
:itemObj="item"
/>
</div>
</div>
</div>
</div>
</template>
<script>
import { getBadAll } from "@/api/enterpriseInformation"
import announcementBasicTable from "./components/announcementBasicTable"
import misconductTable from "./components/misconductTable"
import { getGoodAll, getBadAll } from "@/api/enterpriseInformation";
import announcementBasicTable from "./components/announcementBasicTable";
import misconductTable from "./components/misconductTable";
export default {
components: {
announcementBasicTable,
misconductTable,
},
data() {
return {
activeName: "first",
enterpriseObj: {},
enterpriseBadForm: {
enterpriseId: "",
type: "0",
},
badList: [],
bonusPointsAll: 0
}
},
mounted() {
this.enterpriseBadForm.enterpriseId = this.$route.query.enterpriseId
this.getCreditBadList()
components: {
announcementBasicTable,
misconductTable
},
data() {
return {
activeName: "first",
enterpriseObj: {},
enterpriseForm: {
enterpriseId: "",
type: "0"
},
actionList: [],
bonusPointsAll: 0
};
},
computed: {
title() {
const type = this.$route.query.type;
return type === "good" ? "企业良好行为" : "企业不良行为";
}
},
mounted() {
this.enterpriseForm.enterpriseId = this.$route.query.enterpriseId;
this.getCreditList();
},
methods: {
getCreditList() {
const type = this.$route.query.type;
if (type === "good") {
this.enterpriseForm.type = "1";
getGoodAll(this.enterpriseForm).then(res => {
this.enterpriseObj = res.data.data[0];
this.actionList = res.data.data;
this.actionList.forEach(item => {
this.bonusPointsAll += Number(item.bonusPoints);
});
});
} else if (type === "bad") {
this.enterpriseForm.type = "0";
getBadAll(this.enterpriseForm).then(res => {
this.enterpriseObj = res.data.data[0];
this.actionList = res.data.data;
this.actionList.forEach(item => {
this.bonusPointsAll += Number(item.bonusPoints);
});
});
}
},
methods: {
getCreditBadList() {
getBadAll(this.enterpriseBadForm).then(res => {
this.enterpriseObj = res.data.data[0]
this.badList = res.data.data
this.badList.forEach(item => {
this.bonusPointsAll += Number(item.bonusPoints)
})
})
},
handleClick(tab, event) {
// console.log(tab, event);
},
handleClick(tab, event) {
// console.log(tab, event);
}
}
}
};
</script>
<style lang="less" scoped>
.basic-detail {
.basic-header {
height: 40px;
background: #EBF4FE;
.basic-header {
height: 40px;
background: #ebf4fe;
.header-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
.header-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
/deep/.el-breadcrumb {
margin-top: 10px;
/deep/.el-breadcrumb {
margin-top: 10px;
.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 16px;
color: #005EB7 !important;
}
.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 16px;
color: #005eb7 !important;
}
.el-breadcrumb__separator {
font-size: 16px;
color: #005EB7 !important;
}
}
}
.el-breadcrumb__separator {
font-size: 16px;
color: #005eb7 !important;
}
}
}
}
}
.basic-main {
background: linear-gradient(180deg, #005EB7 0%, #EDF7FF 60% #EDF7FF 100%);
padding: 20px 0;
.basic-main {
background: linear-gradient(180deg, #005eb7 0%, #edf7ff 60% #edf7ff 100%);
padding: 20px 0;
.main-wrap {
width: 1200px;
margin: 0 auto;
background: #FFFFFF;
border-radius: 8px;
overflow: hidden;
padding: 20px;
.main-wrap {
width: 1200px;
margin: 0 auto;
background: #ffffff;
border-radius: 8px;
overflow: hidden;
padding: 20px;
.descriptions-wrap {}
}
.descriptions-wrap {
}
}
}
}
</style>
</style>

124
jwtech-pc-page/src/views/announcement/components/announcementBasicTable.vue

@ -1,68 +1,80 @@
<template>
<div class="descriptions-table">
<el-descriptions class="margin-top" :column="1" border :content-style="rowCenter" :label-style="labelRowCenter">
<el-descriptions-item label="企业名称">
{{ enterpriseObj.enterpriseName }}
</el-descriptions-item>
<el-descriptions-item label="资质类别">
{{ enterpriseObj.qualificationCategory || "-" }}
</el-descriptions-item>
<el-descriptions-item label="项目名称">
{{ enterpriseObj.projectName || "-" }}
</el-descriptions-item>
<el-descriptions-item label="扣分值">
{{ bonusPointsAll || "-" }}
</el-descriptions-item>
<el-descriptions-item label="发布时间">
{{ enterpriseObj.noticeBeginTime || "-" }}
</el-descriptions-item>
<el-descriptions-item label="发布单位">
{{ enterpriseObj.publishUnit || "-" }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="descriptions-table">
<el-descriptions
class="margin-top"
:column="1"
border
:content-style="rowCenter"
:label-style="labelRowCenter"
>
<el-descriptions-item label="企业名称">
{{ enterpriseObj.enterpriseName }}
</el-descriptions-item>
<el-descriptions-item label="资质类别">
{{ enterpriseObj.qualificationCategory || "-" }}
</el-descriptions-item>
<el-descriptions-item label="项目名称">
{{ enterpriseObj.projectName || "-" }}
</el-descriptions-item>
<el-descriptions-item :label="sorce">
{{ bonusPointsAll || "-" }}
</el-descriptions-item>
<el-descriptions-item label="发布时间">
{{ enterpriseObj.noticeBeginTime || "-" }}
</el-descriptions-item>
<el-descriptions-item label="发布单位">
{{ enterpriseObj.publishUnit || "-" }}
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
props:{
enterpriseObj:{
type:Object,
default: ()=>{
return []
}
},
bonusPointsAll:{
type:Number,
default: 0
}
props: {
enterpriseObj: {
type: Object,
default: () => {
return [];
}
},
data() {
return {
rowCenter: {
'borderColor': '#DADCE3'
},
labelRowCenter: {
'borderColor': '#DADCE3'
}
}
bonusPointsAll: {
type: Number,
default: 0
}
}
},
data() {
return {
rowCenter: {
borderColor: "#DADCE3"
},
labelRowCenter: {
borderColor: "#DADCE3"
}
};
},
computed: {
sorce() {
const type = this.$route.query.type;
return type === "good" ? "加分值" : "扣分值";
}
}
};
</script>
<style lang="less" scoped>
.descriptions-table {
/deep/.el-descriptions {
.el-descriptions-item__cell {
padding: 11px 10px;
font-size: 16px;
}
/deep/.el-descriptions {
.el-descriptions-item__cell {
padding: 11px 10px;
font-size: 16px;
}
.el-descriptions-item__label {
background: #EBF4FE;
width: 220px;
font-weight: 600;
color: #005EB7;
padding-left: 21px;
}
.el-descriptions-item__label {
background: #ebf4fe;
width: 220px;
font-weight: 600;
color: #005eb7;
padding-left: 21px;
}
}
}
</style>
</style>

157
jwtech-pc-page/src/views/announcement/components/misconductTable.vue

@ -1,76 +1,111 @@
<template>
<div class="descriptions-table">
<span>{{ title }}</span>
<el-descriptions class="margin-top" :column="1" border :content-style="rowCenter" :label-style="labelRowCenter">
<el-descriptions-item label="不良行为">
{{ itemObj.badBehavior || "-" }}
</el-descriptions-item>
<el-descriptions-item label="等级">
{{ itemObj.commendationLevel || "-" }}
</el-descriptions-item>
<el-descriptions-item label="扣分值">
{{ itemObj.bonusPoints || "-" }}
</el-descriptions-item>
<el-descriptions-item label="有效期">
{{ itemObj.validityPeriod || "-" }}
</el-descriptions-item>
<!-- <el-descriptions-item label="扣分起止时间">
<div class="descriptions-table">
<span>{{ title }}</span>
<el-descriptions
class="margin-top"
:column="1"
border
:content-style="rowCenter"
:label-style="labelRowCenter"
>
<el-descriptions-item label="良好行为" v-if="isGood">
{{ itemObj.goodBehavior || "-" }}
</el-descriptions-item>
<el-descriptions-item label="不良行为" v-else>
{{ itemObj.badBehavior || "-" }}
</el-descriptions-item>
<el-descriptions-item label="等级">
{{ itemObj.commendationLevel || "-" }}
</el-descriptions-item>
<el-descriptions-item :label="isGood ? '加分值' : '扣分值'">
{{ itemObj.bonusPoints || "-" }}
</el-descriptions-item>
<el-descriptions-item label="有效期">
{{ itemObj.validityPeriod || "-" }}
</el-descriptions-item>
<!-- <el-descriptions-item label="扣分起止时间">
{{ itemObj.noticeBeginTime || "-" }}
</el-descriptions-item> -->
<el-descriptions-item label="扣分依据">
{{ itemObj.attachment || "-" }}
</el-descriptions-item>
</el-descriptions>
</div>
<el-descriptions-item :label="isGood ? '加分依据' : '扣分依据'">
<!-- {{ JSON.parse(itemObj.attachment) || "-" }} -->
<div
v-for="(item, index) in JSON.parse(
itemObj.attachment ? itemObj.attachment : JSON.stringify({})
)"
:key="item + index"
>
<span>
<i class="el-icon-document"></i>
<span>{{ item.name }}</span>
</span>
<i
class="el-icon-download"
@click="downloadFile(item, index)"
style="cursor: pointer"
></i>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
props: {
title: {
type: String,
default: ""
},
itemObj:{
type:Object,
default: ()=>{
return []
}
}
props: {
title: {
type: String,
default: ""
},
data() {
return {
rowCenter: {
'borderColor': '#DADCE3'
},
labelRowCenter: {
'borderColor': '#DADCE3'
}
}
itemObj: {
type: Object,
default: () => {
return [];
}
}
}
},
data() {
return {
rowCenter: {
borderColor: "#DADCE3"
},
labelRowCenter: {
borderColor: "#DADCE3"
}
};
},
computed: {
isGood() {
const type = this.$route.query.type;
return type === "good" ? true : false;
}
},
methods: {
downloadFile() {}
}
};
</script>
<style lang="less" scoped>
.descriptions-table {
margin-top: 20px;
span{
display: block;
font-size: 18px;
font-weight: 600;
margin-bottom: 10px;
margin-top: 20px;
.descriptions-table > span {
display: block;
font-size: 18px;
font-weight: 600;
margin-bottom: 10px;
}
/deep/.el-descriptions {
.el-descriptions-item__cell {
padding: 11px 10px;
font-size: 16px;
}
/deep/.el-descriptions {
.el-descriptions-item__cell {
padding: 11px 10px;
font-size: 16px;
}
.el-descriptions-item__label {
background: #EBF4FE;
width: 220px;
font-weight: 600;
color: #005EB7;
padding-left: 21px;
}
.el-descriptions-item__label {
background: #ebf4fe;
width: 220px;
font-weight: 600;
color: #005eb7;
padding-left: 21px;
}
}
}
</style>
</style>

504
jwtech-pc-page/src/views/announcement/index.vue

@ -1,241 +1,303 @@
<template>
<div class="certification-page">
<div class="certification-tabs">
<div class="tabs-wrap">
<el-tabs ref="tabcs">
<el-tab-pane label="企业不良行为公告"></el-tab-pane>
</el-tabs>
</div>
</div>
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input class="name-inp-search" placeholder="请输入关键字" v-model="queryForm.enterpriseName"></el-input>
</el-form-item>
<el-form-item label="企业类型">
<el-select v-model="queryForm.qualificationCategory" clearable placeholder="请选择企业类型">
<el-option v-for="item in categoryList" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()">查询</el-button>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="enterpriseName" label="企业名称" width="400" align="center">
<template slot-scope="scope">
<span style="color: #005EB7;cursor: pointer;font-size: 16px !important;" @click="toDetail(scope.row)">{{ scope.row.enterpriseName
}}</span>
</template>
</el-table-column>
<el-table-column prop="projectName" label="项目名称" align="center">
</el-table-column>
<el-table-column prop="qualificationCategory" label="企业资质" align="center">
<template slot-scope="scope">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">{{
cateTtem.dictLabel }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="dynamicCreditScore" label="信用分数" align="center">
</el-table-column>
<el-table-column prop="bonusPoints" label="扣分值" align="center">
</el-table-column>
<el-table-column prop="publishUnit" label="发布单位" align="center">
</el-table-column>
<el-table-column prop="noticeTime" label="公告时间" align="center">
</el-table-column>
</el-table>
<pagination :total="total" :page.sync="apidata.pageNum" :limit.sync="apidata.pageSize"
:pageSizes="pageSizes" @pagination="getResult" />
</div>
</div>
<div class="certification-page">
<div class="certification-tabs">
<div class="tabs-wrap">
<el-tabs ref="tabcs" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="企业良好行为公告" name="good"></el-tab-pane>
<el-tab-pane label="企业不良行为公告" name="bad"></el-tab-pane>
</el-tabs>
</div>
</div>
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input
class="name-inp-search"
placeholder="请输入关键字"
v-model="queryForm.enterpriseName"
></el-input>
</el-form-item>
<el-form-item label="企业类型">
<el-select
v-model="queryForm.qualificationCategory"
clearable
placeholder="请选择企业类型"
>
<el-option
v-for="item in categoryList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()"
>查询</el-button
>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%">
<el-table-column
prop="enterpriseName"
label="企业名称"
width="400"
align="center"
>
<template slot-scope="scope">
<span
style="color: #005EB7;cursor: pointer;font-size: 16px !important;"
@click="toDetail(scope.row)"
>{{ scope.row.enterpriseName }}</span
>
</template>
</el-table-column>
<el-table-column prop="projectName" label="项目名称" align="center">
</el-table-column>
<el-table-column
prop="qualificationCategory"
label="企业资质"
align="center"
>
<template slot-scope="scope">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div
v-if="cateTtem.dictValue == scope.row.qualificationCategory"
>
{{ cateTtem.dictLabel }}
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="dynamicCreditScore"
label="信用分数"
align="center"
>
</el-table-column>
<el-table-column
prop="bonusPoints"
:label="activeName === 'good' ? '加分值' : '扣分值'"
align="center"
>
</el-table-column>
<el-table-column prop="publishUnit" label="发布单位" align="center">
</el-table-column>
<el-table-column prop="noticeTime" label="公告时间" align="center">
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="apidata.pageNum"
:limit.sync="apidata.pageSize"
:pageSizes="pageSizes"
@pagination="getResult"
/>
</div>
</div>
</div>
</template>
<script>
import { creditGetBad } from "@/api/creditStatistics"
import { creditGetGood, creditGetBad } from "@/api/creditStatistics";
export default {
data() {
return {
total: 0,
apidata: {
pageNum: 1,
pageSize: 10,
},
pageSizes: [10, 20, 30, 50],
queryForm: {
enterpriseName: "",
qualificationCategory:"",
pageNum: 1,
pageSize: 10,
},
tableData: [],
categoryList:[]
}
data() {
return {
total: 0,
apidata: {
pageNum: 1,
pageSize: 10
},
pageSizes: [10, 20, 30, 50],
queryForm: {
enterpriseName: "",
qualificationCategory: "",
pageNum: 1,
pageSize: 10,
adcd: ""
},
tableData: [],
categoryList: [],
activeName: "good"
};
},
created() {
if (this.$route.query.type) {
this.activeName = this.$route.query.type;
}
},
mounted() {
this.getResult();
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data;
});
},
methods: {
getResult() {
if (this.activeName === "good") {
creditGetGood(this.queryForm).then(res => {
this.tableData = res.data.records;
this.total = res.data.total;
});
} else {
creditGetBad(this.queryForm).then(res => {
this.tableData = res.data.records;
this.total = res.data.total;
});
}
},
mounted(){
this.getResult()
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data
})
handleClick(tab, event) {
// console.log(tab, event);
this.getResult();
},
methods: {
getResult() {
creditGetBad(this.queryForm).then(res=>{
this.tableData=res.data.records
this.total=res.data.total
})
},
handleClick(tab, event) {
// console.log(tab, event);
},
resetForm(){
this.queryForm={
enterpriseName: "",
qualificationCategory:"",
pageNum: 1,
pageSize: 10,
}
this.getResult()
},
toDetail(row){
this.$router.push({
path:"/actionAnnouncementDetail",
query:{
enterpriseId:row.enterpriseId
}
})
resetForm() {
this.queryForm = {
enterpriseName: "",
qualificationCategory: "",
pageNum: 1,
pageSize: 10
};
this.getResult();
},
toDetail(row) {
this.$router.push({
path: "/actionAnnouncementDetail",
query: {
type: this.activeName,
enterpriseId: row.enterpriseId
}
});
}
}
}
};
</script>
<style lang="less" scoped>
.certification-page {
.certification-tabs {
height: 60px;
background: #ffffff;
border: 1px solid transparent;
.tabs-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
/deep/.el-tabs {
margin-top: 11px;
.el-tabs__nav-wrap::after {
background: #fff;
}
.certification-tabs {
height: 60px;
background: #FFFFFF;
border: 1px solid transparent;
.tabs-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
/deep/.el-tabs {
margin-top: 11px;
.el-tabs__nav-wrap::after {
background: #Fff;
}
.el-tabs__item {
font-size: 16px;
font-weight: 600;
color: #333333;
height: 48px;
}
.el-tabs__item.is-active {
color: #005EB7;
}
.el-tabs__active-bar {
width: 0 !important;
height: 0;
border: 10px solid transparent;
border-bottom: 10px solid #005EB7;
background: none;
left: 55px;
}
}
.el-tabs__item {
font-size: 16px;
font-weight: 600;
color: #333333;
height: 48px;
}
.el-tabs__item.is-active {
color: #005eb7;
}
.el-tabs__active-bar {
width: 0 !important;
height: 0;
border: 10px solid transparent;
border-bottom: 10px solid #005eb7;
background: none;
left: 55px;
}
}
}
}
.certification-list {
background: linear-gradient(180deg, #005eb7 0%, #edf7ff 60% #edf7ff 100%);
padding: 20px 0;
.list-wrap {
width: 1200px;
height: 1098px;
background: #ffffff;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
/deep/.el-form {
display: flex;
align-items: center;
.el-form-item__label {
font-size: 16px;
color: #333333;
}
.el-input__inner {
width: 300px;
border-radius: 8px;
border: 1px solid #aad8fb;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005ba6 0%, #0059a5 100%);
border-radius: 8px;
color: #ffffff;
span {
font-size: 16px;
font-weight: 600;
}
i {
font-size: 16px;
}
}
.el-button:nth-child(1) {
margin-left: 50px;
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
th {
background: #ebf4fe;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005eb7;
}
}
.certification-list {
background: linear-gradient(180deg, #005EB7 0%, #EDF7FF 60% #EDF7FF 100%);
padding: 20px 0;
.list-wrap {
width: 1200px;
height: 1098px;
background: #FFFFFF;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
/deep/.el-form {
display: flex;
align-items: center;
.el-form-item__label {
font-size: 16px;
color: #333333;
}
.el-input__inner {
width: 300px;
border-radius: 8px;
border: 1px solid #AAD8FB;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005BA6 0%, #0059A5 100%);
border-radius: 8px;
color: #FFFFFF;
span {
font-size: 16px;
font-weight: 600;
}
i {
font-size: 16px;
}
}
.el-button:nth-child(1) {
margin-left: 50px;
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
th {
background: #EBF4FE;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005EB7;
}
}
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
}
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
}
}
}
}
</style>
</style>

699
jwtech-pc-page/src/views/creditStatistics/certificationPage.vue

@ -1,364 +1,433 @@
<template>
<div class="certification-page">
<div class="certification-header">
<div class="header-wrap">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/creditStatistics' }">信用统计</el-breadcrumb-item>
<el-breadcrumb-item>信用统计列表</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
<div class="certification-tabs">
<div class="tabs-wrap">
<el-tabs v-model="activeName" @tab-click="handleClick" ref="tabcs">
<el-tab-pane label="所有资质" name="allCertification"></el-tab-pane>
<el-tab-pane label="施工资质" name="buildCerti"></el-tab-pane>
<el-tab-pane label="监理资质" name="supervisorCerti"></el-tab-pane>
<el-tab-pane label="勘测设计资质" name="surveyCerti"></el-tab-pane>
<el-tab-pane label="招标代理资质" name="tenderingCerti"></el-tab-pane>
<el-tab-pane label="质量检测资质" name="qualityCerti"></el-tab-pane>
<el-tab-pane label="生产供货资质" name="productionCerti"></el-tab-pane>
<el-tab-pane label="白蚁防治资质" name="termiteCerti"></el-tab-pane>
<el-tab-pane label="其他资质" name="otherCerti"></el-tab-pane>
</el-tabs>
</div>
</div>
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input class="name-inp-search" placeholder="请输入企业名称"
v-model="queryForm.enterpriseName"></el-input>
</el-form-item>
<el-form-item label="所在区域">
<el-select v-model="queryForm.adcd" clearable placeholder="请选择所有区域">
<el-option v-for="item in areaList" :key="item.xzqhdm" :label="item.name" :value="item.xzqhdm">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()">查询</el-button>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%" v-loading="loading">
<el-table-column prop="enterpriseName" label="企业名称" width="700">
<template slot-scope="scope">
<span style="color: #005EB7;cursor: pointer;font-size: 16px !important;">{{
scope.row.enterpriseName
}}</span>
</template>
</el-table-column>
<el-table-column prop="certification" label="企业资质" width="180" align="center">
<template slot-scope="scope">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">{{
cateTtem.dictLabel }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="area" label="所在区域" width="180" align="center">
<template slot-scope="scope">
<span>{{ functionArea(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="dynamicCreditScore" label="信用分数" align="center">
</el-table-column>
</el-table>
<pagination :total="total" :page.sync="apidata.pageNum" :limit.sync="apidata.pageSize"
:pageSizes="pageSizes" @pagination="getResult" />
</div>
</div>
<div class="certification-page">
<div class="certification-header">
<div class="header-wrap">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/creditStatistics' }"
>信用统计</el-breadcrumb-item
>
<el-breadcrumb-item>信用统计列表</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
<div class="certification-tabs">
<div class="tabs-wrap">
<el-tabs v-model="activeName" @tab-click="handleClick" ref="tabcs">
<el-tab-pane label="所有资质" name="allCertification"></el-tab-pane>
<el-tab-pane label="施工资质" name="buildCerti"></el-tab-pane>
<el-tab-pane label="监理资质" name="supervisorCerti"></el-tab-pane>
<el-tab-pane label="勘测设计资质" name="surveyCerti"></el-tab-pane>
<el-tab-pane label="招标代理资质" name="tenderingCerti"></el-tab-pane>
<el-tab-pane label="质量检测资质" name="qualityCerti"></el-tab-pane>
<el-tab-pane
label="生产供货资质"
name="productionCerti"
></el-tab-pane>
<el-tab-pane label="白蚁防治资质" name="termiteCerti"></el-tab-pane>
<el-tab-pane label="其他资质" name="otherCerti"></el-tab-pane>
</el-tabs>
</div>
</div>
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input
class="name-inp-search"
placeholder="请输入企业名称"
v-model="queryForm.enterpriseName"
></el-input>
</el-form-item>
<el-form-item label="所在区域">
<el-select
v-model="queryForm.adcd"
clearable
placeholder="请选择所有区域"
>
<el-option
v-for="item in areaList"
:key="item.xzqhdm"
:label="item.name"
:value="item.xzqhdm"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()"
>查询</el-button
>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%" v-loading="loading">
<el-table-column prop="enterpriseName" label="企业名称" width="700">
<template slot-scope="scope">
<span
style="color: #005EB7;cursor: pointer;font-size: 16px !important;"
@click="goDetails(scope.row)"
>{{ scope.row.enterpriseName }}</span
>
</template>
</el-table-column>
<el-table-column
prop="certification"
label="企业资质"
width="180"
align="center"
>
<template slot-scope="scope">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div
v-if="cateTtem.dictValue == scope.row.qualificationCategory"
>
{{ cateTtem.dictLabel }}
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="area"
label="所在区域"
width="180"
align="center"
>
<template slot-scope="scope">
<span>{{ functionArea(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column
prop="dynamicCreditScore"
label="信用分数"
align="center"
>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="apidata.pageNum"
:limit.sync="apidata.pageSize"
:pageSizes="pageSizes"
@pagination="getResult"
/>
</div>
</div>
</div>
</template>
<script>
import { getDisclosure } from "@/api/home"
import { getGuangDong } from "@/api/creditStatistics"
import { getDisclosure } from "@/api/home";
import { getGuangDong } from "@/api/creditStatistics";
import { regionData, codeToText, TextToCode } from "element-china-area-data";
export default {
data() {
return {
loading:false,
total: 0,
apidata: {
pageNum: 1,
pageSize: 10,
},
pageSizes: [10, 20, 30, 50],
activeName: "allCertification",
queryForm: {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
},
tableData: [],
categoryList: [],
certificationData: [{
qualificationCategory: "",
codeText: "allCertification"
}, {
qualificationCategory: "0",
codeText: "buildCerti"
}, {
qualificationCategory: "2",
codeText: "supervisorCerti"
}, {
qualificationCategory: "3",
codeText: "surveyCerti"
}, {
qualificationCategory: "1",
codeText: "tenderingCerti"
}, {
qualificationCategory: "5",
codeText: "productionCerti"
}, {
qualificationCategory: "4",
codeText: "qualityCerti"
}, {
qualificationCategory: "6",
codeText: "termiteCerti"
}, {
qualificationCategory: "9",
codeText: "otherCerti"
}],
areaList: []
}
},
mounted() {
this.getArea()
this.activeName = this.$route.query.codeText
this.queryForm.qualificationCategory = this.$route.query.qualificationCategory
if (this.activeName !== "allCertification" && this.activeName !== "buildCerti" && this.activeName !== "supervisorCerti" && this.activeName !== "otherCerti") {
this.resetActivePosition(this.$refs.tabcs.$el);
}
this.getResult()
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data
})
},
methods: {
getResult() {
this.loading=true
getDisclosure({ ...this.queryForm }).then(res => {
this.loading=false
this.tableData = []
this.tableData = res.data.data.records
this.total = res.data.data.total
})
data() {
return {
loading: false,
total: 0,
apidata: {
pageNum: 1,
pageSize: 10
},
pageSizes: [10, 20, 30, 50],
activeName: "allCertification",
queryForm: {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
},
tableData: [],
categoryList: [],
certificationData: [
{
qualificationCategory: "",
codeText: "allCertification"
},
{
qualificationCategory: "0",
codeText: "buildCerti"
},
getArea() {
getGuangDong().then(res => {
this.areaList = res.data.data
})
{
qualificationCategory: "2",
codeText: "supervisorCerti"
},
resetForm() {
this.queryForm.enterpriseName=""
this.queryForm.adcd=""
this.queryForm.pageNum=1
this.getResult()
{
qualificationCategory: "3",
codeText: "surveyCerti"
},
handleClick(tab, event) {
// console.log(tab, event);
this.certificationData.forEach(item => {
if (item.codeText == tab.name) {
this.queryForm.qualificationCategory = item.qualificationCategory
}
})
this.getResult()
if (tab.name !== "allCertification" && tab.name !== "buildCerti" && tab.name !== "supervisorCerti" && tab.name !== "otherCerti") {
this.resetActivePosition(this.$refs.tabcs.$el);
}
{
qualificationCategory: "1",
codeText: "tenderingCerti"
},
resetActivePosition($el) {
this.$nextTick(() => {
const activeEl = $el.querySelector('.el-tabs__item.is-active');
const lineEl = $el.querySelector('.el-tabs__active-bar');
const style = getComputedStyle(activeEl);
const pl = style.paddingLeft.match(/\d+/)[0] * 1;
lineEl.style.transform =
'translateX(' + (activeEl.offsetLeft + 40) + 'px)';
// console.log(activeEl.offsetLeft, pl);
});
{
qualificationCategory: "5",
codeText: "productionCerti"
},
functionArea(row) {
if (row.adcd) {
let provinceCode = row.adcd.slice(0, 2);
let cityCode = row.adcd.slice(2, 4);
let areaCode = row.adcd.slice(4, 6);
if (areaCode != "00") {
return (
codeToText[provinceCode] +
"/" +
codeToText[provinceCode + cityCode] +
"/" +
codeToText[provinceCode + cityCode + areaCode]
);
} else if (cityCode != "00") {
return (
codeToText[provinceCode] + "/" + codeToText[provinceCode + cityCode]
);
} else {
return codeToText[provinceCode];
}
}
{
qualificationCategory: "4",
codeText: "qualityCerti"
},
{
qualificationCategory: "6",
codeText: "termiteCerti"
},
{
qualificationCategory: "9",
codeText: "otherCerti"
}
],
areaList: []
};
},
mounted() {
this.getArea();
this.activeName = this.$route.query.codeText;
this.queryForm.qualificationCategory = this.$route.query.qualificationCategory;
if (
this.activeName !== "allCertification" &&
this.activeName !== "buildCerti" &&
this.activeName !== "supervisorCerti" &&
this.activeName !== "otherCerti"
) {
this.resetActivePosition(this.$refs.tabcs.$el);
}
}
this.getResult();
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data;
});
},
methods: {
goDetails(row) {
this.$router.push("/enterpriseInDetail?enterpriseId=" + row.enterpriseId);
},
getResult() {
this.loading = true;
getDisclosure({ ...this.queryForm }).then(res => {
this.loading = false;
this.tableData = [];
this.tableData = res.data.data.records;
this.total = res.data.data.total;
});
},
getArea() {
getGuangDong().then(res => {
this.areaList = res.data.data;
});
},
resetForm() {
this.queryForm.enterpriseName = "";
this.queryForm.adcd = "";
this.queryForm.pageNum = 1;
this.getResult();
},
handleClick(tab, event) {
// console.log(tab, event);
this.certificationData.forEach(item => {
if (item.codeText == tab.name) {
this.queryForm.qualificationCategory = item.qualificationCategory;
}
});
this.getResult();
if (
tab.name !== "allCertification" &&
tab.name !== "buildCerti" &&
tab.name !== "supervisorCerti" &&
tab.name !== "otherCerti"
) {
this.resetActivePosition(this.$refs.tabcs.$el);
}
},
resetActivePosition($el) {
this.$nextTick(() => {
const activeEl = $el.querySelector(".el-tabs__item.is-active");
const lineEl = $el.querySelector(".el-tabs__active-bar");
const style = getComputedStyle(activeEl);
const pl = style.paddingLeft.match(/\d+/)[0] * 1;
lineEl.style.transform =
"translateX(" + (activeEl.offsetLeft + 40) + "px)";
// console.log(activeEl.offsetLeft, pl);
});
},
functionArea(row) {
if (row.adcd) {
let provinceCode = row.adcd.slice(0, 2);
let cityCode = row.adcd.slice(2, 4);
let areaCode = row.adcd.slice(4, 6);
if (areaCode != "00") {
return (
codeToText[provinceCode] +
"/" +
codeToText[provinceCode + cityCode] +
"/" +
codeToText[provinceCode + cityCode + areaCode]
);
} else if (cityCode != "00") {
return (
codeToText[provinceCode] + "/" + codeToText[provinceCode + cityCode]
);
} else {
return codeToText[provinceCode];
}
}
}
}
};
</script>
<style lang="less" scoped>
.certification-page {
.certification-header {
height: 40px;
background: #EBF4FE;
.certification-header {
height: 40px;
background: #ebf4fe;
.header-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
.header-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
/deep/.el-breadcrumb {
margin-top: 10px;
/deep/.el-breadcrumb {
margin-top: 10px;
.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 16px;
color: #005EB7 !important;
}
.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 16px;
color: #005eb7 !important;
}
.el-breadcrumb__separator {
font-size: 16px;
color: #005EB7 !important;
}
}
}
.el-breadcrumb__separator {
font-size: 16px;
color: #005eb7 !important;
}
}
}
}
}
.certification-tabs {
height: 60px;
background: #FFFFFF;
border: 1px solid transparent;
.certification-tabs {
height: 60px;
background: #ffffff;
border: 1px solid transparent;
.tabs-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
.tabs-wrap {
width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
/deep/.el-tabs {
margin-top: 11px;
/deep/.el-tabs {
margin-top: 11px;
.el-tabs__nav-wrap::after {
background: #Fff;
}
.el-tabs__nav-wrap::after {
background: #fff;
}
.el-tabs__item {
font-size: 16px;
font-weight: 600;
color: #333333;
height: 48px;
}
.el-tabs__item {
font-size: 16px;
font-weight: 600;
color: #333333;
height: 48px;
}
.el-tabs__item.is-active {
color: #005EB7;
}
.el-tabs__item.is-active {
color: #005eb7;
}
.el-tabs__active-bar {
width: 0 !important;
height: 0;
border: 10px solid transparent;
border-bottom: 10px solid #005EB7;
background: none;
left: 20px;
}
}
.el-tabs__active-bar {
width: 0 !important;
height: 0;
border: 10px solid transparent;
border-bottom: 10px solid #005eb7;
background: none;
left: 20px;
}
}
}
}
.certification-list {
background: linear-gradient(180deg, #005EB7 0%, #EDF7FF 60% #EDF7FF 100%);
padding: 20px 0;
.list-wrap {
width: 1200px;
height: 1098px;
background: #FFFFFF;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
.certification-list {
background: linear-gradient(180deg, #005eb7 0%, #edf7ff 60% #edf7ff 100%);
padding: 20px 0;
/deep/.el-form {
display: flex;
align-items: center;
.list-wrap {
width: 1200px;
height: 1098px;
background: #ffffff;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
.el-form-item__label {
font-size: 16px;
color: #333333;
}
/deep/.el-form {
display: flex;
align-items: center;
.el-input__inner {
width: 300px;
border-radius: 8px;
border: 1px solid #AAD8FB;
}
.el-form-item__label {
font-size: 16px;
color: #333333;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005BA6 0%, #0059A5 100%);
border-radius: 8px;
color: #FFFFFF;
.el-input__inner {
width: 300px;
border-radius: 8px;
border: 1px solid #aad8fb;
}
span {
font-size: 16px;
font-weight: 600;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005ba6 0%, #0059a5 100%);
border-radius: 8px;
color: #ffffff;
i {
font-size: 16px;
}
}
span {
font-size: 16px;
font-weight: 600;
}
.el-button:nth-child(1) {
margin-left: 50px;
}
i {
font-size: 16px;
}
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
.el-button:nth-child(1) {
margin-left: 50px;
}
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
th {
background: #EBF4FE;
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005EB7;
}
}
th {
background: #ebf4fe;
tr {
background-color: #fff !important;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005eb7;
}
}
.cell {
font-size: 16px;
}
}
}
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
}
}
}
}
</style>
</style>

186
jwtech-pc-page/src/views/creditStatistics/components/allQualified.vue

@ -1,108 +1,122 @@
<template>
<div class="qualified-wrap">
<headerImg :title="'所有资质企业信用排名'" :url="require('@/assets/image/icon_syzzqyxy.png')" />
<div class="sort-btns">
<div class="btn-item">
<span>正序</span>
<i class="el-icon-arrow-up"></i>
</div>
<div class="btn-item">
<span>倒叙</span>
<i class="el-icon-arrow-up"></i>
</div>
</div>
<div class="qualified-list">
<div class="qualified-item" v-for="(item, index) in qualifiedList" :key="(item, index)">
<span>{{ item.enterpriseName }}</span>
<span>{{ item.dynamicCreditScore }}</span>
</div>
</div>
<div class="qualified-wrap">
<headerImg
:title="'所有资质企业信用排名'"
:url="require('@/assets/image/icon_syzzqyxy.png')"
/>
<div class="sort-btns">
<div class="btn-item">
<span>正序</span>
<i class="el-icon-arrow-up"></i>
</div>
<div class="btn-item">
<span>倒叙</span>
<i class="el-icon-arrow-up"></i>
</div>
</div>
<div class="qualified-list">
<div
class="qualified-item"
v-for="(item, index) in qualifiedList"
:key="(item, index)"
>
<span @click="goDetails(item)" style="cursor: pointer;">{{
item.enterpriseName
}}</span>
<span>{{ item.dynamicCreditScore }}</span>
</div>
</div>
</div>
</template>
<script>
import { getDisclosure } from "@/api/home"
import { getDisclosure } from "@/api/home";
export default {
data() {
return {
qualifiedList: []
}
},
mounted() {
this.getList()
data() {
return {
qualifiedList: []
};
},
mounted() {
this.getList();
},
methods: {
goDetails(item) {
this.$router.push(
"/enterpriseInDetail?enterpriseId=" + item.enterpriseId
);
},
methods: {
getList() {
getDisclosure({ 'groupId': '2', pageNum: 1, pageSize: 10 }).then(res => {
this.qualifiedList=res.data.data.records
})
},
getList() {
getDisclosure({ groupId: "2", pageNum: 1, pageSize: 10 }).then(res => {
this.qualifiedList = res.data.data.records;
});
}
}
}
};
</script>
<style lang="less" scoped>
.qualified-wrap {
height: 824px;
background: #FFFFFF;
border-radius: 8px;
padding: 20px;
height: 824px;
background: #ffffff;
border-radius: 8px;
padding: 20px;
.sort-btns {
height: 40px;
background: #f6f6f6;
margin-top: 10px;
display: flex;
justify-content: center;
align-items: center;
.sort-btns {
height: 40px;
background: #F6F6F6;
margin-top: 10px;
.btn-item {
cursor: pointer;
margin-right: 50px;
font-size: 16px;
font-weight: 600;
color: #005eb7;
display: flex;
align-items: center;
/deep/i {
width: 20px;
height: 20px;
background: #fff;
border-radius: 50%;
font-size: 10px;
font-weight: 600;
display: flex;
justify-content: center;
align-items: center;
margin-left: 5px;
}
}
.btn-item {
cursor: pointer;
margin-right: 50px;
font-size: 16px;
font-weight: 600;
color: #005EB7;
display: flex;
align-items: center;
/deep/i {
width: 20px;
height: 20px;
background: #fff;
border-radius: 50%;
font-size: 10px;
font-weight: 600;
display: flex;
justify-content: center;
align-items: center;
margin-left: 5px;
}
}
.btn-item:last-child {
margin-right: 0;
color: #333333;
}
.btn-item:last-child {
margin-right: 0;
color: #333333;
}
}
.qualified-list {
margin-top: 10px;
.qualified-list {
margin-top: 10px;
.qualified-item {
height: 44px;
line-height: 44px;
border-bottom: 1px solid #DADCE3;
display: flex;
justify-content: space-between;
.qualified-item {
height: 44px;
line-height: 44px;
border-bottom: 1px solid #dadce3;
display: flex;
justify-content: space-between;
span {
display: block;
font-size: 16px;
color: #005EB7;
}
span {
display: block;
font-size: 16px;
color: #005eb7;
}
span:last-child {
color: #FF6200;
}
}
span:last-child {
color: #ff6200;
}
}
}
}
</style>
</style>

353
jwtech-pc-page/src/views/creditStatistics/components/goodNotice.vue

@ -1,181 +1,212 @@
<template>
<div class="good-notice">
<headerImg :title="title" :url="url" :isMore="true" />
<div class="notice-main">
<div class="table-title">
<span>企业名称</span>
<span>项目名称</span>
<span>{{title=='良好信用信息公告'?'加分':'扣分'}}</span>
<span>企业资质</span>
<span>所在区域</span>
<span>发布单位</span>
<span>建立时间</span>
</div>
<div class="table-list">
<div class="table-item" v-for="(item, index) in noticeList" :key="(item, index)">
<div class="enterpriseName">{{ item.enterpriseName }}</div>
<div class="projectName">{{ item.projectName }}</div>
<div class="bonusPoints">{{title=='良好信用信息公告'?'+':'-'}}{{ item.bonusPoints }}</div>
<div class="qualificationCategory">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == item.qualificationCategory">{{
cateTtem.dictLabel }}</div>
</div>
</div>
<div class="projectLocation">{{ item.projectLocation }}</div>
<div class="publishUnit">{{ item.publishUnit }}</div>
<div class="noticeTime">{{ item.noticeTime }}</div>
</div>
<div class="good-notice">
<headerImg :title="title" :url="url" :isMore="true" @toMore="toMore" />
<div class="notice-main">
<div class="table-title">
<span>企业名称</span>
<span>项目名称</span>
<span>{{ title == "良好信用信息公告" ? "加分" : "扣分" }}</span>
<span>企业资质</span>
<span>所在区域</span>
<span>发布单位</span>
<span>建立时间</span>
</div>
<div class="table-list">
<div
class="table-item"
v-for="(item, index) in noticeList"
:key="(item, index)"
>
<div class="enterpriseName" @click="goDetails(item)">
{{ item.enterpriseName }}
</div>
<div class="projectName">{{ item.projectName }}</div>
<div class="bonusPoints">
{{ title == "良好信用信息公告" ? "+" : "-" }}{{ item.bonusPoints }}
</div>
<div class="qualificationCategory">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div v-if="cateTtem.dictValue == item.qualificationCategory">
{{ cateTtem.dictLabel }}
</div>
</div>
</div>
<div class="projectLocation">{{ item.projectLocation }}</div>
<div class="publishUnit">{{ item.publishUnit }}</div>
<div class="noticeTime">{{ item.noticeTime }}</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
title: {
type: String,
default: ""
},
url: {
type: String,
default: ""
},
noticeList:{
type:Array,
default: ()=>{
return []
}
}
props: {
title: {
type: String,
default: ""
},
url: {
type: String,
default: ""
},
data() {
return {
categoryList:[]
noticeList: {
type: Array,
default: () => {
return [];
}
}
},
data() {
return {
categoryList: []
};
},
mounted() {
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data;
});
},
methods: {
toMore() {
this.$router.push({
path: "/announcement",
query: {
type: this.title == "良好信用信息公告" ? "good" : "bad"
}
});
},
mounted(){
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data
})
goDetails(item) {
this.$router.push({
path: "/actionAnnouncementDetail",
query: {
type: this.title == "良好信用信息公告" ? "good" : "bad",
enterpriseId: item.enterpriseId
}
});
}
}
}
};
</script>
<style lang="less" scoped>
.good-notice {
background: #FFFFFF;
border-radius: 8px;
background: #ffffff;
border-radius: 8px;
margin-top: 20px;
padding: 20px;
.notice-main {
margin-top: 20px;
padding: 20px;
.notice-main {
margin-top: 20px;
.table-title {
display: flex;
span {
display: block;
font-size: 16px;
font-weight: 600;
color: #005EB7;
}
span:nth-child(1) {
width: 52%;
// border: 1px solid red;
}
span:nth-child(2) {
width: 36%;
// border: 1px solid blue;
text-align: center;
}
span:nth-child(3) {
width: 10%;
// border: 1px solid rgb(49, 70, 60);
text-align: center;
}
span:nth-child(4) {
width: 18%;
// border: 1px solid olive;
text-align: center;
}
span:nth-child(5) {
width: 12%;
// border: 1px solid rgb(2, 0, 128);
text-align: center;
}
span:nth-child(6) {
width: 20%;
// border: 1px solid rgb(128, 41, 0);
text-align: center;
}
span:nth-child(7) {
width: 15%;
// border: 1px solid rgb(128, 0, 38);
text-align: center;
}
.table-title {
display: flex;
span {
display: block;
font-size: 16px;
font-weight: 600;
color: #005eb7;
}
span:nth-child(1) {
width: 52%;
// border: 1px solid red;
}
span:nth-child(2) {
width: 36%;
// border: 1px solid blue;
text-align: center;
}
span:nth-child(3) {
width: 10%;
// border: 1px solid rgb(49, 70, 60);
text-align: center;
}
span:nth-child(4) {
width: 18%;
// border: 1px solid olive;
text-align: center;
}
span:nth-child(5) {
width: 12%;
// border: 1px solid rgb(2, 0, 128);
text-align: center;
}
span:nth-child(6) {
width: 20%;
// border: 1px solid rgb(128, 41, 0);
text-align: center;
}
span:nth-child(7) {
width: 15%;
// border: 1px solid rgb(128, 0, 38);
text-align: center;
}
}
.table-list {
margin-top: 10px;
height: 225px;
overflow: hidden;
.table-item {
height: 44px;
line-height: 44px;
border-top: 1px solid #d8d6d6;
display: flex;
div {
display: block;
font-size: 16px;
color: #333333;
}
.enterpriseName {
width: 52%;
color: #005eb7;
cursor: pointer;
}
.projectName {
width: 36%;
text-align: center;
}
.bonusPoints {
width: 10%;
text-align: center;
}
.qualificationCategory {
width: 18%;
text-align: center;
}
.projectLocation {
width: 12%;
text-align: center;
}
.publishUnit {
width: 20%;
text-align: center;
}
.table-list {
margin-top: 10px;
height: 225px;
overflow: hidden;
.table-item {
height: 44px;
line-height: 44px;
border-top: 1px solid #d8d6d6;
display: flex;
div {
display: block;
font-size: 16px;
color: #333333;
}
.enterpriseName {
width: 52%;
color: #005EB7;
cursor: pointer;
}
.projectName {
width: 36%;
text-align: center;
}
.bonusPoints {
width: 10%;
text-align: center;
}
.qualificationCategory {
width: 18%;
text-align: center;
}
.projectLocation {
width: 12%;
text-align: center;
}
.publishUnit {
width: 20%;
text-align: center;
}
.noticeTime {
width: 15%;
text-align: center;
}
}
.noticeTime {
width: 15%;
text-align: center;
}
}
}
}
}
</style>
</style>

223
jwtech-pc-page/src/views/enterpriseInformation/components/actionList.vue

@ -1,111 +1,150 @@
<template>
<div class="action-wrap">
<headerImg :title="title" />
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="projectName" label="项目名称" width="300">
<template slot-scope="scope">
<span style="color: #005EB7;cursor: pointer;font-size: 16px !important;" @click="toDetail()">{{
scope.row.projectName
}}</span>
</template>
</el-table-column>
<el-table-column prop="enterpriseName" label="责任主体" width="320" align="center">
</el-table-column>
<el-table-column prop="qualificationCategory" label="企业资质" align="center">
<template slot-scope="scope">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">{{
cateTtem.dictLabel }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="bonusPoints" :label="title == '良好行为列表' ? '加分' : '扣分'" align="center">
</el-table-column>
<el-table-column prop="updateTime" label="动态信用核定时间" align="center">
<template slot-scope="scope">
<div>
{{ scope.row.updateTime?scope.row.updateTime.split(" ")[0]:"-" }}
</div>
</template>
</el-table-column>
</el-table>
<pagination :total="total" :page.sync="apidata.pageNum" :limit.sync="apidata.pageSize" :pageSizes="pageSizes"
@pagination="getResult" />
</div>
<div class="action-wrap">
<headerImg :title="title" />
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="projectName" label="项目名称" width="300">
<template slot-scope="scope">
<span
style="color: #005EB7;cursor: pointer;font-size: 16px !important;"
@click="goDetails(scope.row)"
>{{ scope.row.projectName }}</span
>
</template>
</el-table-column>
<el-table-column
prop="enterpriseName"
label="责任主体"
width="320"
align="center"
>
</el-table-column>
<el-table-column
prop="qualificationCategory"
label="企业资质"
align="center"
>
<template slot-scope="scope">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">
{{ cateTtem.dictLabel }}
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="bonusPoints"
:label="title == '良好行为列表' ? '加分' : '扣分'"
align="center"
>
</el-table-column>
<el-table-column
prop="updateTime"
label="动态信用核定时间"
align="center"
>
<template slot-scope="scope">
<div>
{{
scope.row.updateTime ? scope.row.updateTime.split(" ")[0] : "-"
}}
</div>
</template>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="apidata.pageNum"
:limit.sync="apidata.pageSize"
:pageSizes="pageSizes"
@pagination="getResult"
/>
</div>
</template>
<script>
export default {
props: {
title: {
type: String,
default: ""
},
tableData: {
type: Array,
default: () => {
return []
}
},
total: {
type: Number,
default: 0
}
props: {
title: {
type: String,
default: ""
},
data() {
return {
apidata: {
pageNum: 1,
pageSize: 10,
},
pageSizes: [10, 20, 30, 50],
categoryList: []
}
tableData: {
type: Array,
default: () => {
return [];
}
},
mounted() {
console.log(this.tableData);
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data
})
total: {
type: Number,
default: 0
}
},
data() {
return {
apidata: {
pageNum: 1,
pageSize: 10
},
pageSizes: [10, 20, 30, 50],
categoryList: []
};
},
mounted() {
console.log(this.tableData);
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data;
});
},
methods: {
getResult() {
if (title == "良好行为列表") {
this.$emit("getGoodResult");
} else {
this.$emit("getBadResult");
}
},
methods: {
getResult() {
if(title == '良好行为列表'){
this.$emit("getGoodResult")
}else{
this.$emit("getBadResult")
}
},
goDetails(item) {
this.$router.push({
path: "/actionAnnouncementDetail",
query: {
type: this.title == "良好行为列表" ? "good" : "bad",
enterpriseId: item.enterpriseId
}
});
}
}
}
};
</script>
<style lang="less" scoped>
.action-wrap {
padding: 20px;
padding: 20px;
/deep/.el-table {
margin-top: 10px;
/deep/.el-table {
margin-top: 10px;
.el-table__header-wrapper {
height: 44px;
}
.el-table__header-wrapper {
height: 44px;
}
th {
background: #EBF4FE;
th {
background: #ebf4fe;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005EB7;
}
}
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005eb7;
}
}
tr {
background-color: #fff !important;
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
.cell {
font-size: 16px;
}
}
}
}
</style>
</style>

259
jwtech-pc-page/src/views/enterpriseInformation/components/personalTable.vue

@ -1,124 +1,171 @@
<template>
<div class="descriptions-table">
<div class="table-item" v-for="(item,index) in allPersonType" :key="(item,index)">
<span style="font-size: 16px; font-weight: 700;margin-bottom: 10px;display: block;">技术负责人</span>
<el-table :data="item.personTypeData" border style="width: 100%">
<el-table-column prop="name" label="姓名" width="100">
</el-table-column>
<el-table-column prop="idNo" label="身份证号" width="180">
</el-table-column>
<el-table-column prop="speciality" label="专业" width="150">
</el-table-column>
<el-table-column prop="address" label="等级" width="120">
</el-table-column>
<el-table-column prop="address" label="注册证书编号" width="200">
</el-table-column>
<el-table-column prop="address" label="核发机构" width="300">
</el-table-column>
<el-table-column prop="address" label="核发日期">
</el-table-column>
</el-table>
</div>
<div class="descriptions-table">
<div
class="table-item"
v-for="(item, index) in allPersonType"
:key="(item, index)"
>
<span
style="font-size: 16px; font-weight: 700;margin-bottom: 10px;display: block;"
>{{ item.personTypeLabel }}</span
>
<el-table :data="item.personTypeData" border style="width: 100%">
<el-table-column prop="name" label="姓名" width="100">
</el-table-column>
<el-table-column prop="idNo" label="身份证号" width="180">
</el-table-column>
<el-table-column prop="certificateSpeciality" label="专业" width="150">
</el-table-column>
<el-table-column
prop="certificateLevel"
label="等级"
width="120"
:formatter="certificateLevelFormatter"
>
</el-table-column>
<el-table-column prop="certificateNo" label="注册证书编号" width="200">
</el-table-column>
<el-table-column prop="issuedBy" label="核发机构" width="280">
</el-table-column>
<el-table-column prop="issuanceDate" label="核发日期">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { personInfo } from "@/api/enterpriseInformation"
import { personInfoList, personInfo } from "@/api/enterpriseInformation";
export default {
data() {
return {
rowCenter: {
'borderColor': '#DADCE3'
},
labelRowCenter: {
'borderColor': '#DADCE3'
},
enterpriseId: "",
personList: [],
allPersonType: []
data() {
return {
rowCenter: {
borderColor: "#DADCE3"
},
labelRowCenter: {
borderColor: "#DADCE3"
},
enterpriseId: "",
personList: [],
allPersonType: [],
queryParams: {
pageNum: 1,
pageSize: 10,
data: {
enterpriseId: null
}
},
mounted() {
this.getDicts("personnel_type").then(res => {
this.personList = res.data.data
let obj = {}
let obj1 = {}
let obj2 = {}
res.data.data.forEach(item => {
if (item.dictValue == "0") {
obj = {
personTypeLabel: item.dictLabel,
personTypeValue: item.dictValue,
personTypeData: [],
}
} else if (item.dictValue == "1") {
obj1 = {
personTypeLabel: item.dictLabel,
personTypeValue: item.dictValue,
personTypeData: [],
}
} else if (item.dictValue !== "0" && item.dictValue !== "1") {
obj2 = {
personTypeLabel: "其它有职称人员",
personTypeValue: "",
personTypeData: [],
}
}
})
this.allPersonType = [obj, obj1, obj2]
})
this.enterpriseId = this.$route.query.enterpriseId
this.getPersonInfo()
},
methods: {
getPersonInfo() {
personInfo(this.enterpriseId).then(res => {
res.data.data.forEach(item => {
this.allPersonType.forEach(item2 => {
if (item.personType == item2.personTypeValue) {
item2.personTypeData.push(item)
}
})
if (item.personType !== "0" && item.personType !== "1") {
this.allPersonType[2].personTypeData.push(item)
}
})
console.log(this.allPersonType);
})
},
certificateLevelOptions: []
};
},
created() {
this.getDicts("certificate_level").then(res => {
this.certificateLevelOptions = res.data.data;
});
},
mounted() {
this.getDicts("personnel_type").then(res => {
this.personList = res.data.data;
let obj = {};
let obj1 = {};
let obj2 = {};
res.data.data.forEach(item => {
if (item.dictValue == "0") {
obj = {
personTypeLabel: item.dictLabel,
personTypeValue: item.dictValue,
personTypeData: []
};
} else if (item.dictValue == "1") {
obj1 = {
personTypeLabel: item.dictLabel,
personTypeValue: item.dictValue,
personTypeData: []
};
} else if (item.dictValue !== "0" && item.dictValue !== "1") {
obj2 = {
personTypeLabel: "其它有职称人员",
personTypeValue: "",
personTypeData: []
};
}
});
this.allPersonType = [obj, obj1, obj2];
});
this.enterpriseId = this.$route.query.enterpriseId;
this.getPersonInfo();
},
methods: {
certificateLevelFormatter(row) {
let res = "";
// console.log(777, this.certificateLevelOptions);
this.certificateLevelOptions.forEach(item => {
if (item.dictValue == row.certificateLevel) res = item.dictLabel;
});
return res;
},
getPersonInfo() {
this.queryParams.data.enterpriseId = this.$route.query.enterpriseId;
personInfoList(this.queryParams).then(res => {
res.data.records.forEach(item => {
this.allPersonType.forEach(item2 => {
if (item.personType == item2.personTypeValue) {
item2.personTypeData.push(item);
}
});
if (item.personType !== "0" && item.personType !== "1") {
this.allPersonType[2].personTypeData.push(item);
}
});
console.log(this.allPersonType);
});
// personInfo(this.enterpriseId).then(res => {
// res.data.data.forEach(item => {
// this.allPersonType.forEach(item2 => {
// if (item.personType == item2.personTypeValue) {
// item2.personTypeData.push(item);
// }
// });
// if (item.personType !== "0" && item.personType !== "1") {
// this.allPersonType[2].personTypeData.push(item);
// }
// });
// console.log(this.allPersonType);
// });
}
}
}
};
</script>
<style lang="less" scoped>
.descriptions-table {
min-height: 500px;
.table-item{
margin-bottom: 20px;
min-height: 500px;
.table-item {
margin-bottom: 20px;
}
/deep/.el-table {
border: 1px solid #dadce3;
.el-table__header-wrapper {
}
/deep/.el-table {
border: 1px solid #DADCE3;
.el-table__header-wrapper {
}
th {
background: #EBF4FE;
th {
background: #ebf4fe;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005EB7;
}
}
.el-table__cell{
border-right: 1px solid #DADCE3;
}
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005eb7;
}
}
.el-table__cell {
border-right: 1px solid #dadce3;
}
tr {
background-color: #fff !important;
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
.cell {
font-size: 16px;
}
}
}
}
</style>
</style>

468
jwtech-pc-page/src/views/enterpriseInformation/index.vue

@ -1,233 +1,295 @@
<template>
<div class="certification-page">
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input class="name-inp-search" placeholder="请输入企业名称"
v-model="queryForm.enterpriseName"></el-input>
</el-form-item>
<el-form-item label="所在区域">
<el-select v-model="queryForm.adcd" clearable placeholder="请选择所有区域">
<el-option v-for="item in areaList" :key="item.xzqhdm" :label="item.name" :value="item.xzqhdm">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="企业类型">
<el-select v-model="queryForm.qualificationCategory" clearable placeholder="请选择企业类型">
<el-option v-for="item in categoryList" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()">查询</el-button>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%" v-loading="loading">
<el-table-column prop="enterpriseName" label="企业名称" width="500">
<template slot-scope="scope">
<span style="color: #005EB7;cursor: pointer;font-size: 16px !important;" @click="toDetail(scope.row)">{{
scope.row.enterpriseName
}}</span>
</template>
</el-table-column>
<el-table-column prop="qualificationCategory" label="企业类型" width="180" align="center">
<template slot-scope="scope">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">{{
cateTtem.dictLabel }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="legalRepresentative" label="法定代表人" width="180" align="center">
</el-table-column>
<el-table-column prop="qualificationCategory" label="资质类别" width="180" align="center">
<template slot-scope="scope">
<div v-for="(cateTtem, index) in categoryList" :key="(cateTtem, index)">
<div v-if="cateTtem.dictValue == scope.row.qualificationCategory">{{
cateTtem.dictLabel.split("资质")[0] }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="adcd" label="所在区域" align="center">
<template slot-scope="scope">
<div>{{ getadcd(scope.row) }}</div>
</template>
</el-table-column>
</el-table>
<pagination :total="total" :page.sync="apidata.pageNum" :limit.sync="apidata.pageSize"
:pageSizes="pageSizes" @pagination="getResult" />
</div>
</div>
<div class="certification-page">
<div class="certification-list">
<div class="list-wrap">
<el-form :inline="true" label-width="80px" :model="queryForm">
<el-form-item label="企业名称">
<el-input
class="name-inp-search"
placeholder="请输入企业名称"
v-model="queryForm.enterpriseName"
></el-input>
</el-form-item>
<el-form-item label="所在区域">
<el-select
v-model="queryForm.adcd"
clearable
placeholder="请选择所有区域"
>
<el-option
v-for="item in areaList"
:key="item.xzqhdm"
:label="item.name"
:value="item.xzqhdm"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="企业类型">
<el-select
v-model="queryForm.qualificationCategory"
clearable
placeholder="请选择企业类型"
>
<el-option
v-for="item in categoryList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="mini" icon="el-icon-search" @click="getResult()"
>查询</el-button
>
<el-button type="mini" icon="el-icon-refresh" @click="resetForm()"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table :data="tableData" style="width: 100%" v-loading="loading">
<el-table-column prop="enterpriseName" label="企业名称" width="500">
<template slot-scope="scope">
<span
style="color: #005EB7;cursor: pointer;font-size: 16px !important;"
@click="toDetail(scope.row)"
>{{ scope.row.enterpriseName }}</span
>
</template>
</el-table-column>
<el-table-column
prop="qualificationCategory"
label="企业类型"
width="180"
align="center"
>
<template slot-scope="scope">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div
v-if="cateTtem.dictValue == scope.row.qualificationCategory"
>
{{ cateTtem.dictLabel }}
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="legalRepresentative"
label="法定代表人"
width="180"
align="center"
>
</el-table-column>
<el-table-column
prop="qualificationCategory"
label="资质类别"
width="180"
align="center"
>
<template slot-scope="scope">
<div
v-for="(cateTtem, index) in categoryList"
:key="(cateTtem, index)"
>
<div
v-if="cateTtem.dictValue == scope.row.qualificationCategory"
>
{{ cateTtem.dictLabel.split("资质")[0] }}
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="adcd" label="所在区域" align="center">
<template slot-scope="scope">
<div>{{ getadcd(scope.row) }}</div>
</template>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="apidata.pageNum"
:limit.sync="apidata.pageSize"
:pageSizes="pageSizes"
@pagination="getResult"
/>
</div>
</div>
</div>
</template>
<script>
import { getDisclosure } from "@/api/home"
import { getGuangDong } from "@/api/creditStatistics"
import { getDisclosure } from "@/api/home";
import { getGuangDong } from "@/api/creditStatistics";
export default {
data() {
return {
loading: false,
total: 0,
apidata: {
pageNum: 1,
pageSize: 10,
},
pageSizes: [10, 20, 30, 50],
queryForm: {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
},
tableData: [],
areaList: [],
categoryList: []
data() {
return {
loading: false,
total: 0,
apidata: {
pageNum: 1,
pageSize: 10
},
pageSizes: [10, 20, 30, 50],
queryForm: {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
},
tableData: [],
areaList: [],
categoryList: []
};
},
created() {
const enterpriseName = this.$route.query.enterpriseName;
if (enterpriseName) {
this.queryForm.enterpriseName = enterpriseName;
}
},
mounted() {
this.getArea();
this.getResult();
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data;
});
},
methods: {
getResult() {
this.loading = true;
getDisclosure({ ...this.queryForm }).then(res => {
this.loading = false;
this.tableData = [];
this.tableData = res.data.data.records;
this.total = res.data.data.total;
});
},
getArea() {
getGuangDong().then(res => {
this.areaList = res.data.data;
});
},
getadcd(row) {
let adcdText = "";
let adcdCode = row.adcd.slice(0, 4) + "00";
this.areaList.forEach(item => {
if (item.xzqhdm == adcdCode) {
adcdText = item.name;
}
});
if (adcdText == "") {
adcdText = "省外";
}
return adcdText;
},
mounted() {
this.getArea()
this.getResult()
this.getDicts("qualification_type").then(res => {
this.categoryList = res.data.data
})
resetForm() {
this.queryForm = {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
};
this.getResult();
},
methods: {
getResult() {
this.loading = true
getDisclosure({ ...this.queryForm }).then(res => {
this.loading = false
this.tableData = []
this.tableData = res.data.data.records
this.total = res.data.data.total
})
},
getArea() {
getGuangDong().then(res => {
this.areaList = res.data.data
})
},
getadcd(row) {
let adcdText = ""
let adcdCode = row.adcd.slice(0, 4) + "00"
this.areaList.forEach(item => {
if (item.xzqhdm == adcdCode) {
adcdText = item.name
}
})
if (adcdText == "") {
adcdText = "省外"
}
return adcdText
},
resetForm() {
this.queryForm = {
groupId: "2",
qualificationCategory: "",
enterpriseName: "",
adcd: "",
pageNum: 1,
pageSize: 10
}
this.getResult()
},
toDetail(row) {
this.$router.push({
path: "/enterpriseInDetail",
query:{
enterpriseId:row.enterpriseId
}
})
toDetail(row) {
this.$router.push({
path: "/enterpriseInDetail",
query: {
enterpriseId: row.enterpriseId
}
});
}
}
}
};
</script>
<style lang="less" scoped>
.certification-page {
.certification-list {
background: linear-gradient(180deg, #005eb7 0%, #edf7ff 60% #edf7ff 100%);
padding: 20px 0;
.certification-list {
background: linear-gradient(180deg, #005EB7 0%, #EDF7FF 60% #EDF7FF 100%);
padding: 20px 0;
.list-wrap {
width: 1200px;
height: 1098px;
background: #ffffff;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
.list-wrap {
width: 1200px;
height: 1098px;
background: #FFFFFF;
border-radius: 8px;
margin: 0 auto;
padding: 20px;
/deep/.el-form {
display: flex;
flex-wrap: wrap;
align-items: center;
/deep/.el-form {
display: flex;
flex-wrap: wrap;
align-items: center;
.el-form-item__label {
font-size: 16px;
color: #333333;
}
.el-input__inner {
width: 210px;
border-radius: 8px;
border: 1px solid #AAD8FB;
}
.el-form-item__label {
font-size: 16px;
color: #333333;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005BA6 0%, #0059A5 100%);
border-radius: 8px;
color: #FFFFFF;
.el-input__inner {
width: 210px;
border-radius: 8px;
border: 1px solid #aad8fb;
}
span {
font-size: 16px;
font-weight: 600;
}
.el-button {
padding: 13px 15px;
background: linear-gradient(180deg, #005ba6 0%, #0059a5 100%);
border-radius: 8px;
color: #ffffff;
i {
font-size: 16px;
}
}
span {
font-size: 16px;
font-weight: 600;
}
.el-button:nth-child(1) {
margin-left: 50px;
}
i {
font-size: 16px;
}
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
.el-button:nth-child(1) {
margin-left: 50px;
}
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
.el-button:nth-child(2) {
background: #fff;
color: #333;
}
}
th {
background: #EBF4FE;
/deep/.el-table {
.el-table__header-wrapper {
height: 44px;
}
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005EB7;
}
}
th {
background: #ebf4fe;
tr {
background-color: #fff !important;
.cell {
font-size: 16px !important;
font-weight: 600 !important;
color: #005eb7;
}
}
.cell {
font-size: 16px;
}
}
}
tr {
background-color: #fff !important;
.cell {
font-size: 16px;
}
}
}
}
}
}
</style>
</style>

Loading…
Cancel
Save