Commit 27a4117b authored by caixingbing's avatar caixingbing
parents 17645c41 e2e67737
...@@ -88,10 +88,12 @@ public class BusinessFileController extends BaseController { ...@@ -88,10 +88,12 @@ public class BusinessFileController extends BaseController {
//校验是否上传同名文件 //校验是否上传同名文件
File newFile = new File(filePath); File newFile = new File(filePath);
// 获取当前目录下的文件和文件夹 if (newFile.exists()) {
File[] files = newFile.listFiles(); // 获取当前目录下的文件和文件夹
for (File allFile : files) { File[] files = newFile.listFiles();
if(filename.equals(allFile.getName())) return error("文件已存在"); for (File allFile : files) {
if (filename.equals(allFile.getName())) return error("文件已存在");
}
} }
// 上传并返回文件全路径 // 上传并返回文件全路径
......
package com.dsk.web.controller.search.macroMarket; package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.page.TableDataInfo; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto; import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.system.service.RegionalEnterprisesService; import com.dsk.system.service.RegionalEnterprisesService;
import com.dsk.web.controller.search.controller.PageQueryLimit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -24,7 +26,15 @@ public class RegionalEnterprisesController { ...@@ -24,7 +26,15 @@ public class RegionalEnterprisesController {
private RegionalEnterprisesService regionalEnterprisesService; private RegionalEnterprisesService regionalEnterprisesService;
@PostMapping("regional/page") @PostMapping("regional/page")
public TableDataInfo page(@RequestBody ComposeQueryDto compose) throws Exception{ public AjaxResult page(@RequestBody JSONObject object) throws Exception{
return regionalEnterprisesService.page(compose); ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return regionalEnterprisesService.enterprisePage(compose);
} }
} }
...@@ -168,7 +168,7 @@ export function bondPage(param) { ...@@ -168,7 +168,7 @@ export function bondPage(param) {
//区域企业 //区域企业
export function enterprise(param) { export function enterprise(param) {
return request({ return request({
url: '/enterprise/page', url: '/enterprises/regional/page',
method: 'POST', method: 'POST',
data: param data: param
}) })
......
...@@ -158,11 +158,11 @@ select { ...@@ -158,11 +158,11 @@ select {
} }
.el-popper[x-placement^=top] { .el-popper[x-placement^=top] {
margin-bottom: 12px; margin-bottom: 4px;
} }
.el-popper[x-placement^=bottom] { .el-popper[x-placement^=bottom] {
margin-top: 12px; margin-top: 4px;
} }
.el-select-dropdown .popper__arrow { .el-select-dropdown .popper__arrow {
...@@ -390,12 +390,13 @@ select { ...@@ -390,12 +390,13 @@ select {
height: 0px; height: 0px;
opacity: 1; opacity: 1;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
margin: 16px 0px; margin-top: 20px;
margin-bottom: 24px;
} }
.content_item .search-new { .content_item .search-new {
width: 100%; width: 100%;
padding-bottom: 16px; padding-bottom: 24px;
} }
.content_item .search-new span:last-child { .content_item .search-new span:last-child {
...@@ -433,6 +434,7 @@ select { ...@@ -433,6 +434,7 @@ select {
border-color: #0081FF; border-color: #0081FF;
} }
.toolbar-right-download { .toolbar-right-download {
padding: 6px 18px; padding: 6px 18px;
margin: 0px; margin: 0px;
...@@ -1181,6 +1183,6 @@ select { ...@@ -1181,6 +1183,6 @@ select {
font-weight: 400; font-weight: 400;
color: #999999; color: #999999;
line-height: 18px; line-height: 18px;
margin-bottom: 24px; padding-bottom: 48px;
text-align: center; text-align: center;
} }
\ No newline at end of file
...@@ -28,9 +28,7 @@ ...@@ -28,9 +28,7 @@
<el-table v-if="tableData.total > 0" <el-table v-if="tableData.total > 0"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%" style="width: 100%">
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column <el-table-column
prop="index" prop="index"
label="序号" label="序号"
...@@ -428,8 +426,6 @@ export default { ...@@ -428,8 +426,6 @@ export default {
// //
// return; // return;
// } // }
console.log(this.queryParam)
return false
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
addCustomer(this.queryParam).then(result=>{ addCustomer(this.queryParam).then(result=>{
......
<template>
<div class="app-container operations-container">
<div class="common-title">基本信息</div>
<div class="part-swiper">
<div class="baseinfo">
<div class="row">
<div class="con">
<Elselects
title="企业性质"
:list="companyType.companyNaturelist"
:id="infos.customerId"
:val="infos.companyNature"
field="companyNature"
@changenowedit="clickNowedit" />
</div>
<div class="con i">
<Elselects
title="企业级别"
:list="companyType.companyLevellist"
:id="infos.customerId"
:val="infos.companyLevel"
field="companyLevel"
@changenowedit="clickNowedit" />
</div>
</div>
<div class="row">
<div class="con">
<span>企业母公司:</span>
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == noweditis && isDisabled == false" >
<el-input placeholder="待添加" v-model="superCompany"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL(superCompany)">确定</div>
<div class="cancels h28" @click="clickNowedit(-1)" style="">取消</div>
</div>
</div>
<span :class="{txt:!superCompany}" v-else @click="clickNowedit(noweditis)">{{superCompany||'待添加'}}</span>
</div>
</div>
<div class="con i">
<Elselects
title="上市公司"
:list="companyType.isOnlistlist"
:id="infos.customerId"
:val="infos.isOn"
field="isOn"
@changenowedit="clickNowedit" />
</div>
</div>
<div class="row">
<div class="con">
<Elselects
title="局级大客户"
:list="companyType.isOnlistlist"
:id="infos.customerId"
:val="infos.isMajor"
field="isMajor"
@changenowedit="clickNowedit" />
</div>
<div class="con i">
<Elselects
title="资信等级"
:list="companyType.creditLevellist"
:id="infos.customerId"
:val="infos.creditLevel"
field="creditLevel"
@changenowedit="clickNowedit" />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
import Elselects from "./elselects"
export default {
name: "basicIinformation",
props: ['infos','companyType','nowedit','noweditis'],
components: {
Elselects,
},
data() {
return {
isDisabled:false,
isselect:false,
superCompany:this.infos.superCompany,
}
},
created(){
},
methods:{
editXMSL(val){
if(this.isDisabled == true)
return false
let params = {
customerId: this.infos.customerId,
superCompany: val,
}
this.clickNowedit(-1)
customerUpdate(params).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
},
clickNowedit(e){
this.$emit("focus-nowedit", e)
}
}
}
</script>
<style lang="scss" scoped>
.operations-container {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.part-swiper {
position: relative;
margin-top: 16px;
}
}
.select-popper{
top: 3px;
}
.inputxt .flex{
background: #fff;
}
.baseinfo .row{
padding-left: 0;
}
</style>
<template>
<div class="">
<el-card class="box-card noborder">
<div class="cardtitles">{{ title }}</div>
<div class="baseinfo" >
<el-input id="inputxt9" v-model="val" @focus="focusNowedit(noweditis)" class="textarea" type="textarea" :placeholder="'请输入' + title" maxlength="500" :show-word-limit="true" ></el-input>
<div class="flex btns" v-if="nowedit == noweditis">
<div class="flex">
<div class="btnsmall btn_primary h28" @click="changes(val,field)" style="width: 56px">确定</div>
<div class="cancels h28" @click="focusNowedit(-1)" style="">取消</div>
</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
export default {
name: "elCardinput",
props: ['infos','title','projectDetails','nowedit','noweditis','field'],
data() {
return {
val: this.projectDetails
}
},
created() {
},
methods: {
changes(v,n){
let data = {
customerId: this.infos.customerId,
}
data[n] = v
this.$emit("focus-nowedit", -1)
customerUpdate(data).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
},
focusNowedit(e){
this.$emit("focus-nowedit", e)
},
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="baseinfoselect">
<span class="select-title">{{ title }}</span>
<div class="select-popper " >
<span :class="{'txt':selectTxt1.name == '待添加'}">
{{selectTxt1.name}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-if="isDisabled==false" v-model="selectTxt1.val" class="select-multiple" placeholder="请选择" @change="editXMSL($event)">
<el-option v-for="(item,index) in list" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
export default {
name: "elselects",
props: [
'title',
'list',
'id',
'val',
'field'
],
data() {
return {
isDisabled:false,
selectTxt1:this.selectTxts(),
isselect: false
}
},
created(){
this.selectTxts()
},
methods:{
editXMSL(val){
let option = this.lists(val)
if (option) {
this.selectTxt1.name = option.dictLabel;
this.selectTxt1.val = option.val;
this.$emit("changenowedit", -1);
let params = {
customerId: this.id,
}
params[this.field] = val
customerUpdate(params).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
}
},
lists(val){
return this.list.find(option => option.dictValue === val);
},
selectTxts(){
let option = this.lists(this.val)
if (option) {
return {
name: option.dictLabel,
val: this.val
}
}else{
return {
name:'待添加',
val:'',
}
}
}
}
}
</script>
<style lang="scss" scoped>
.baseinfoselect{
.select-title{
color: rgba(35,35,35,0.8);
}
}
</style>
<template>
<div class="app-container info-container">
<div class="company-box">
<div class="company-nav flex-box">
<div class="company-left">
<img :src="companyInfo.logoUrl" :alt="companyInfo.companyName" :title="companyInfo.companyName" v-if="companyInfo.logoUrl">
<span
:class="companyInfo.nameSimple&&companyInfo.nameSimple.length<3?'conenctLogo textOne bg'+companyInfo.nameSimple.length:'conenctLogo textTwo bg'+companyInfo.nameSimple.length"
v-else-if="companyInfo.nameSimple"
v-html="companyInfo.nameSimple"></span>
<img :src="require('@/assets/images/detail/overview/logo@2x.png')" :alt="companyInfo.companyName" :title="companyInfo.companyName" v-else>
</div>
<div class="company-title">
<div class="company-name">
{{companyInfo.companyName || ''}}
</div>
<div class="company-tag">
<div style="float: left;margin-top: 8px;" class="company-history" v-if="companyInfo.historyNames && companyInfo.historyNames.length>0">
<el-popover
placement="bottom-start"
popper-class="enterpriseLabel-item"
trigger="hover">
<el-button slot="reference">曾用名 <i class="el-icon-caret-bottom"></i></el-button>
<ul class="history-item">
<li v-for="(item, index) in companyInfo.historyNames" :key="index">{{item.value}}</li>
</ul>
</el-popover>
</div>
<span style="float: left;" :class="!labelArr.includes(companyInfo.businessStatus)?'label-bg1':'label-bg3'" v-if="companyInfo.businessStatus">{{companyInfo.businessStatus}}</span>
</div>
</div>
</div>
<div class="company-info">
<div class="info-item flex-box">
<div class="flex-box item"><label>法定代表人:</label><span class="text-cl1">{{companyInfo.corporatePerson || '--'}}</span></div>
<div class="flex-box item"><label>统一社会信用代码:</label><span class="text-cl1">{{companyInfo.creditCode || '--'}}</span></div>
</div>
<div class="info-item flex-box">
<div class="flex-box item"><label>注册资本:</label><span class="text-cl1">{{companyInfo.regCapital || '--'}}</span></div>
<div class="flex-box item"><label>注册地址:</label><span class="text-cl1">{{companyInfo.addressDetail || '--'}}</span></div>
</div>
</div>
</div>
</div>
</template>
<script>
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
export default {
name: "info",
props: ['companyId', 'companyInfo'],
data() {
return {
labelArr:['失信联合惩戒企业','司法纠纷','注销'], //负向经营状态
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.info-container{
margin: 0;
padding: 0px 16px 10px 16px;
background: #FFFFFF;
border-radius: 4px;
.company-box{
width: 100%;
position: relative;
.company-nav{
align-items: normal;
.company-left{
width: 64px;
height: 64px;
margin-right: 12px;
flex-shrink: 0;
img{
width: 100%;
height: 100%;
border-radius: 4px;
overflow: hidden;
}
.conenctLogo{
width: 100%;
height: 100%;
color: #FFFFFF;
border-radius: 4px;
overflow: hidden;
text-align: center;
display: block;
&.textOne{
font-size: 18px;
line-height: 64px;
}
&.textTwo{
font-size: 18px;
padding: 9px 10px;
line-height: 24px;
}
&.bg1{
background: #99BE81;
}
&.bg2{
background: #76B4D4;
}
&.bg3{
background: #7A91D9;
}
&.bg4{
background: #8F8DD2;
}
&.bg5{
background: #C4A89F;
}
}
p{
font-size: 12px;
color: #999999;
text-align: center;
margin-top: 7px;
}
}
.company-title{
.company-name{
font-size: 20px;
color: #000000;
font-weight: bold;
margin-right: 100px;
}
.company-tag{
overflow: hidden;
font-size: 12px;
padding: 2px 0 10px 0;
.company-history, .company-highTech{
display: inline-block;
height: 22px;
background: #EFEFEF;
border-radius: 2px;
margin-right: 8px;
margin-left: 0;
button{
height: 22px;
line-height: 22px;
font-size: 12px;
padding: 0 8px;
background: #EFEFEF;
color: #838383;
border: 1px solid #EFEFEF;
border-radius: 2px;
}
}
.company-highTech{
button{
background: #DFEAFE;
color: #0065F9;
}
}
.enterpriseLabel-highTech{
background: #ffffff;
margin-top: 8px;
margin-right: 8px;
float: left;
}
>span{
display: inline-block;
height: 22px;
line-height: 22px;
padding: 0 8px;
border-radius: 2px;
margin-right: 8px;
margin-top: 8px;
&:last-child{
margin-right: 0;
}
}
.enterpriseLabel-span{
display: inline-block;
height: 22px;
line-height: 22px;
padding: 0 8px;
border-radius: 2px;
margin-right: 8px;
margin-top: 8px;
float: left;
}
.label-bg1{
background: #DEF6F0;
color: #0BAE8D;
}
.label-bg2{
background: #DFEAFE;
color: #0065F9;
}
.label-bg3{
background: #fbf2f1;
color: #fa5640;
}
}
}
}
.company-info{
background: #F5F9FE;
border-radius: 2px;
padding: 12px 10px 12px 16px;
.info-item{
margin-bottom: 12px;
&:last-child{
margin-bottom: 0;
}
.item-link{
color: #0081FF;
cursor: pointer;
font-size: 12px;
line-height: 20px;
&:hover{
color: #0069D0;
text-decoration: none;
}
}
.item{
font-size: 14px;
color: #333333;
&:first-child{
width: 280px;
}
&:nth-child(2){
//width: 350px;
}
&.item-line{
width: 100%;
align-items: flex-end;
.item-all{
width: calc(100% - 50px);
text-overflow: initial;
white-space: initial;
overflow: initial;
}
.item-more{
width: calc(100% - 50px);
}
}
label{
color: #666666;
flex-shrink: 0;
font-weight: 400;
}
span{
display: inline-block;
}
}
}
}
}
.history-item{
padding: 8px 8px;
li{
font-size: 12px;
color: #333333;
padding: 2px 0;
}
}
.enterpriseLabel-item{
padding: 0;
//width: 100%;
max-width: 276px;
margin-top: 8px !important;
}
.ml-4{
margin-left: 4px;
}
}
</style>
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<div style="background: #FFFFFF; height: 300px;"> <template v-if="isInfo">
商务信息 <!-- 企业信息 -->
</div> <div class="view-content">
<Info :companyInfo="companyInfo" />
</div>
<!-- 基本信息 -->
<div class="view-content">
<BasicIinformation
:infos="infos"
:companyType="companyType"
:nowedit="nowedit"
:noweditis="1"
@focus-nowedit="focusNowedits"/>
</div>
<!-- 发包属性 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="发包属性"
field="companyAttribute"
:projectDetails="infos.companyAttribute"
:nowedit="nowedit"
:noweditis="2"
@focus-nowedit="focusNowedits" />
</div>
<!-- 主营业务 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="主营业务"
field="mainBusiness"
:projectDetails="infos.mainBusiness"
:nowedit="nowedit"
:noweditis="3"
@focus-nowedit="focusNowedits" />
</div>
<!-- 经营范围 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="经营范围"
field="businessScope"
:projectDetails="infos.businessScope"
:nowedit="nowedit"
:noweditis="4"
@focus-nowedit="focusNowedits" />
</div>
</template>
</div> </div>
</template> </template>
<script> <script>
import { getDictType } from '@/api/main'
import { customerInfo } from '@/api/detail/party-a/cooperate'
import Info from "./component/info"
import BasicIinformation from "./component/basicIinformation"
import ElCardinput from "./component/elCardinput"
export default { export default {
name: 'Business', name: 'Business',
props: ['customerIds', 'companyInfo', 'customerInfo'],
components: {
Info,
BasicIinformation,
ElCardinput
},
data() { data() {
return { return {
isInfo:false,
infos:{},
projectDetails:'',
nowedit: -1,
companyType: {
companyNaturelist: [],//企业性质
companyLevellist: [],//企业级别
isOnlistlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],//上市公司
isMajorlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],//局级大客户
creditLevellist: [],//资信等级
}
} }
}, },
created() { created() {
this.handleQuery()
this.infos = this.customerInfo
},
mounted(){
this.customerInfos()
}, },
methods: { methods: {
async handleQuery() {
let [type1,type2,type3] = await Promise.all([
getDictType('company_nature_type'),
getDictType('company_level_type'),
getDictType('credit_level_type')
])
if(type1.code==200){
type1.data.forEach(item => {
this.companyType.companyNaturelist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
if(type2.code==200){
type2.data.forEach(item => {
this.companyType.companyLevellist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
if(type3.code==200){
type3.data.forEach(item => {
this.companyType.creditLevellist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
this.isInfo = true
},
customerInfos(){
customerInfo(this.customerIds).then(res=>{
this.infos = res.data
})
},
focusNowedits(e){
this.nowedit = e
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.part-container{ .part-container{
padding: 0; margin: 0;
padding: 0;
.view-content{
margin-top: 16px;
} }
}
</style> </style>
...@@ -90,13 +90,14 @@ export default { ...@@ -90,13 +90,14 @@ export default {
{title: '开庭公告', pathName: 'openacourtsessionNotice'}, {title: '开庭公告', pathName: 'openacourtsessionNotice'},
// {title: '信用中国', pathName: ''} // {title: '信用中国', pathName: ''}
]}, ]},
// {title: '商务信息', pathName: 'business'}, {title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: 'preference'}, {title: '招标偏好', pathName: 'preference'},
{title: '合作情况', pathName: 'cooperate'}, {title: '合作情况', pathName: 'cooperate'},
{title: '决策链条', pathName: 'decisionMaking'}, {title: '决策链条', pathName: 'decisionMaking'},
{title: '跟进记录', pathName: 'gjjl'} {title: '跟进记录', pathName: 'gjjl'}
], ],
customer:[ customer:[
'business',
'preference', 'preference',
'cooperate', 'cooperate',
'decisionMaking', 'decisionMaking',
......
...@@ -33,7 +33,10 @@ ...@@ -33,7 +33,10 @@
</span> </span>
</template> </template>
<template slot="investmentAmount" slot-scope="scope"> <template slot="investmentAmount" slot-scope="scope">
{{ numbers(scope.row.investmentAmount) }} {{ scope.row.investmentAmount ? numbers(scope.row.investmentAmount) : '--' }}
</template>
<template slot="status" slot-scope="scope">
{{ scope.row.status || scope.row.status == 0 ? handleStatus(scope.row.status) : '--' }}
</template> </template>
</tables> </tables>
...@@ -47,79 +50,72 @@ ...@@ -47,79 +50,72 @@
</div> </div>
</template> </template>
<!-- 弹窗关联项目 --> <!-- 弹窗关联项目 -->
<el-drawer <el-dialog
title="添加合作情况" class="cooperate_addhzqk"
size="50%"
:visible.sync="drawer" :visible.sync="drawer"
:direction="direction" :before-close="handleClose"
:with-header="false" width="604px">
:before-close="handleClose"> <div class="poptitle">
<div class="cooperate_addhzqk"> <img src="@/assets/images/economies/icon.png">
<div class="addhzqk_top"> <span>{{ companyInfo.companyName }}</span>
<div class="addhzqk_top_t"> </div>
<div class="top_t_h1"> <div class="addhzqk_from">
<img src="@/assets/images/economies/icon.png" />{{ companyInfo.companyName }} <el-form :model="addParam" :rules="rules" ref="addParam" size="small" label-width="70px">
<el-form-item label="项目名称:" prop="projectName" label-width="120px">
<el-input v-model="addParam.projectName" placeholder="请输入项目名称" @input="getCompany1"></el-input>
<div class="resultlist" v-if="showlist1">
<div v-for="(item,index) in companData1" @click="selCompany1(item)"><span v-html="item"></span></div>
</div> </div>
<div class="top_t_close"><i class="el-icon-close" @click="handleClose"></i></div> </el-form-item>
</div> <div class="erow">
<div class="addhzqk_top_d"> <div class="elcol">
<div class="top_d_item"> <el-form-item label="项目阶段:" prop="projectStage">
法定代表人:<span>{{ companyInfo.corporatePerson }}</span> <el-select v-model="addParam.projectStage" style="width: 175px" class="form-content-width" placeholder="请选择项目阶段">
<el-option v-for="(item, index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</div> </div>
<div class="top_d_item"> <div class="elcol">
注册资本:<span>{{ companyInfo.regCapital }}</span> <el-form-item label="项目类型:" prop="projectType">
<el-select v-model="addParam.projectType" style="width: 175px" class="form-content-width" placeholder="请选择项目类型">
<el-option v-for="(item, index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</div> </div>
<div class="top_d_item"> </div>
注册地址:<span>{{ companyInfo.addressDetail }}</span>
<div class="erow">
<div class="elcol">
<el-form-item label="项目类别:" prop="projectCategory">
<el-select v-model="addParam.projectCategory" style="width: 175px" class="form-content-width" placeholder="请选择项目类别">
<el-option v-for="(item, index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</div>
<div class="elcol">
<el-form-item label="可见范围:" prop="isPrivate">
<el-select v-model="addParam.isPrivate" style="width: 175px" class="form-content-width" placeholder="请选择">
<el-option v-for="(item, index) in isPrivate" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
</div> </div>
</div> </div>
</div> <el-row>
<div class="addhzqk_from"> <el-col :span="11">
<el-form :model="addParam" :rules="rules" ref="addParam" size="small" label-width="126px"> <el-form-item label="投资估算(万):" prop="investmentAmount" label-width="120px">
<el-form-item label="项目名称:" prop="projectName"> <el-input v-model="addParam.investmentAmount" placeholder="请输入投资估算" style="width: 175px" @input="number"></el-input>
<el-input v-model="addParam.projectName" placeholder="请输入项目名称" @input="getCompany1"></el-input> </el-form-item>
<div class="resultlist" v-if="showlist1"> </el-col>
<div v-for="(item,index) in companData1" @click="selCompany1(item)"><span v-html="item"></span></div> </el-row>
</div>
</el-form-item> <el-form-item style="text-align: right;">
<el-form-item label="业主单位:" prop="ownerCompany"> <el-button @click="handleClose">关闭</el-button>
<el-input v-model="addParam.ownerCompany" placeholder="请输入业主单位" @input="getCompany"></el-input> <el-button type="primary" @click="submitForm">添加</el-button>
<div class="resultlist" v-if="showlist"> </el-form-item>
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
<el-form-item label="项目阶段:" prop="projectStage">
<el-select v-model="addParam.projectStage" style="width: 100%" class="form-content-width" placeholder="请选择项目阶段">
<el-option v-for="(item, index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="项目类型:" prop="projectType">
<el-select v-model="addParam.projectType" style="width: 100%" class="form-content-width" placeholder="请选择项目类型">
<el-option v-for="(item, index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="项目类别:" prop="projectCategory">
<el-select v-model="addParam.projectCategory" style="width: 100%" class="form-content-width" placeholder="请选择项目类别">
<el-option v-for="(item, index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="投资估算(万):" prop="investmentAmount">
<el-input v-model="addParam.investmentAmount" placeholder="请输入投资估算" @input="number"></el-input>
</el-form-item>
<el-form-item label="可见范围:" prop="isPrivate">
<el-select v-model="addParam.isPrivate" style="width: 100%" class="form-content-width" placeholder="请选择">
<el-option v-for="(item, index) in isPrivate" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item style="text-align: right;">
<el-button @click="handleClose">关闭</el-button>
<el-button type="primary" @click="submitForm">添加</el-button>
</el-form-item>
</el-form> </el-form>
</div>
</div> </div>
</el-drawer> </el-dialog>
</div> </div>
</template> </template>
...@@ -146,7 +142,7 @@ export default { ...@@ -146,7 +142,7 @@ export default {
components: { components: {
Detail Detail
}, },
props: ['customerIds','companyInfo','cooDetail'], props: ['customerIds','companyInfo','cooDetail','customerInfo'],
data() { data() {
return { return {
ifEmpty:false, ifEmpty:false,
...@@ -159,7 +155,7 @@ export default { ...@@ -159,7 +155,7 @@ export default {
{label: '项目名称', prop: 'projectName', slot: true}, {label: '项目名称', prop: 'projectName', slot: true},
{label: '项目阶段', prop: 'projectStage', width: '120'}, {label: '项目阶段', prop: 'projectStage', width: '120'},
{label: '投资金额(万元)', prop: 'investmentAmount', width: '140', slot: true}, {label: '投资金额(万元)', prop: 'investmentAmount', width: '140', slot: true},
{label: '项目状态', prop: 'status', width: '90'} {label: '项目状态', prop: 'status', width: '90', slot: true}
], ],
formData: [ formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []}, { type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
...@@ -174,6 +170,7 @@ export default { ...@@ -174,6 +170,7 @@ export default {
tableDataTotal:0, tableDataTotal:0,
//弹窗-关联项目 //弹窗-关联项目
drawer: false, drawer: false,
drawer1: false,
direction: 'rtl', direction: 'rtl',
//业主单位 //业主单位
showlist:false, showlist:false,
...@@ -216,7 +213,7 @@ export default { ...@@ -216,7 +213,7 @@ export default {
} }
],//可见访问 ],//可见访问
//客户详情 //客户详情
info: {}, info: this.customerInfo,
// //
detailId: null, detailId: null,
isDetailId: false, isDetailId: false,
...@@ -229,7 +226,6 @@ export default { ...@@ -229,7 +226,6 @@ export default {
}, },
created() { created() {
this.list() this.list()
this.customerInfos()
//项目阶段 //项目阶段
this.handleOptions('project_stage_type',0) this.handleOptions('project_stage_type',0)
//项目状态 //项目状态
...@@ -269,12 +265,6 @@ export default { ...@@ -269,12 +265,6 @@ export default {
} }
}) })
}, },
// 客户详情
customerInfos(){
customerInfo(this.queryParams.customerId).then(res=>{
this.info = res.data
})
},
//弹窗-添加项目 //弹窗-添加项目
handleClose(formName) { handleClose(formName) {
...@@ -289,6 +279,7 @@ export default { ...@@ -289,6 +279,7 @@ export default {
this.addParam.customerId = this.queryParams.customerId this.addParam.customerId = this.queryParams.customerId
this.addParam.companyId = this.info.companyId this.addParam.companyId = this.info.companyId
this.addParam.userId = this.info.userId this.addParam.userId = this.info.userId
this.addParam.investmentAmount = this.addParam.investmentAmount ? this.addParam.investmentAmount : null
addProject(this.addParam).then(result=>{ addProject(this.addParam).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('添加成功!') this.$message.success('添加成功!')
...@@ -354,6 +345,13 @@ export default { ...@@ -354,6 +345,13 @@ export default {
} }
}) })
}, },
//处理项目状态
handleStatus(val){
let da = this.formData[1].options.find(option => option.value == val)
if(da){
return da.name
}
},
//输入数字 //输入数字
number(value){ number(value){
this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入2位小数 this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入2位小数
...@@ -471,6 +469,31 @@ export default { ...@@ -471,6 +469,31 @@ export default {
} }
// 弹窗 // 弹窗
.cooperate_addhzqk{ .cooperate_addhzqk{
.poptitle {
line-height: 48px;
border-bottom: 1px solid #E1E1E1;
height: 48px;
position: absolute;
top: 0;
left: 0;
width: 100%;
img {
width: 17px;
margin: 16px;
float: left;
}
span {
font-weight: bold;
font-size: 16px;
color: #232323;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
width: 385px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.addhzqk_top{ .addhzqk_top{
padding: 14px 16px; padding: 14px 16px;
border-bottom: 1px solid #E1E1E1; border-bottom: 1px solid #E1E1E1;
...@@ -527,7 +550,7 @@ export default { ...@@ -527,7 +550,7 @@ export default {
} }
} }
.addhzqk_from{ .addhzqk_from{
padding: 26px 16px; //padding: 26px 16px;
::v-deep .el-form-item__label{ ::v-deep .el-form-item__label{
padding: 0; padding: 0;
font-weight: 400; font-weight: 400;
...@@ -537,8 +560,58 @@ export default { ...@@ -537,8 +560,58 @@ export default {
content: "\e78f"; content: "\e78f";
color: rgba(35,35,35,0.4); color: rgba(35,35,35,0.4);
} }
::v-deep .el-form-item__label{
padding: 0;
}
::v-deep .el-form-item{
margin-right: 0 !important;
}
::v-deep .el-input{
.el-input__inner{
height: 32px;
line-height: 32px;
}
}
.erow{
display:flex;
.elcol{
&:nth-child(1){
margin-left: 50px
}
&:nth-child(2){
margin-left: 24px
}
}
}
}
::v-deep .el-dialog__body{
padding-top: 40px;
padding-bottom: 1px;
}
::v-deep .el-dialog__headerbtn{
z-index: 9;
} }
} }
::v-deep .el-dialog{
display: flex;
display: -ms-flex; /* 兼容IE */
flex-direction: column;
-ms-flex-direction: column; /* 兼容IE */
margin:0 !important;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
max-height:calc(100% - 30px);
max-width:calc(100% - 30px);
}
::v-deep .el-dialog .el-dialog__body{
max-height: 100%;
flex: 1;
-ms-flex: 1 1 auto; /* 兼容IE */
overflow-y: auto;
overflow-x: hidden;
}
} }
::v-deep .cooperate-detail{ ::v-deep .cooperate-detail{
......
...@@ -320,5 +320,7 @@ export default { ...@@ -320,5 +320,7 @@ export default {
::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{ ::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{
background-color:unset; background-color:unset;
} }
::v-deep .el-dialog__headerbtn{
z-index: 9;
}
</style> </style>
...@@ -43,10 +43,12 @@ ...@@ -43,10 +43,12 @@
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" /> <CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> <OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" />
<template v-if="customerId"> <template v-if="customerId">
<!-- 商务信息 -->
<Business v-if="currentPath.pathName=='business'" :customer-ids="customerId" :companyInfo="companyInfo" :customerInfo="customerInfo" />
<!-- 招标偏好 --> <!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" /> <Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" :customerInfo="customerInfo" />
<!-- 合作情况 --> <!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" :cooDetail="cooDetail" @detail="cooperateDetail" /> <Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" :cooDetail="cooDetail" :customerInfo="customerInfo" @detail="cooperateDetail" />
<!-- 决策链条 --> <!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" /> <DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 跟进记录 --> <!-- 跟进记录 -->
...@@ -62,6 +64,7 @@ ...@@ -62,6 +64,7 @@
<script> <script>
import { idRemark } from '@/api/common' import { idRemark } from '@/api/common'
import { infoHeader } from '@/api/detail/party-a/index' import { infoHeader } from '@/api/detail/party-a/index'
import { customerInfo } from '@/api/detail/party-a/cooperate'
import elementResizeDetectorMaker from "element-resize-detector" import elementResizeDetectorMaker from "element-resize-detector"
import Header from "./component/Header" import Header from "./component/Header"
import SideBar from "./component/Sidebar" import SideBar from "./component/Sidebar"
...@@ -95,6 +98,7 @@ import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被 ...@@ -95,6 +98,7 @@ import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被
import Judgment from "./riskInformation/judgment" //风险信息-判决文书 import Judgment from "./riskInformation/judgment" //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告 import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告 import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告
import Business from "./business" //商务信息
import Preference from "./preference" //招标偏好 import Preference from "./preference" //招标偏好
import Cooperate from "./cooperate" //合作情况 import Cooperate from "./cooperate" //合作情况
import DecisionMaking from "./decisionMaking" //决策链条 import DecisionMaking from "./decisionMaking" //决策链条
...@@ -134,6 +138,7 @@ export default { ...@@ -134,6 +138,7 @@ export default {
Judgment, Judgment,
CourtNotice, CourtNotice,
OpenacourtsessionNotice, OpenacourtsessionNotice,
Business,
Preference, Preference,
Cooperate, Cooperate,
DecisionMaking, DecisionMaking,
...@@ -142,6 +147,7 @@ export default { ...@@ -142,6 +147,7 @@ export default {
data() { data() {
return { return {
companyInfo: {}, companyInfo: {},
customerInfo: {},
companyId: '', //企业Id(测试默认3068) companyId: '', //企业Id(测试默认3068)
customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736') customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
currentPath: { currentPath: {
...@@ -173,9 +179,6 @@ export default { ...@@ -173,9 +179,6 @@ export default {
if (this.$route.query.path) { // 获取跳转对应板块 if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path this.currentPath.pathName = this.$route.query.path
} }
if (this.$route.query.customerId) { // 判断是否显示
this.customerId = this.$route.query.customerId
}
}, },
mounted() { mounted() {
console.log('进入了mounted') console.log('进入了mounted')
...@@ -193,6 +196,7 @@ export default { ...@@ -193,6 +196,7 @@ export default {
this.listenSider() this.listenSider()
}) })
this.handleQuery() this.handleQuery()
this.association(this.$route.query.customerId)
} }
}, },
async handleQuery() { async handleQuery() {
...@@ -212,7 +216,23 @@ export default { ...@@ -212,7 +216,23 @@ export default {
}, },
closeDetail(){ closeDetail(){
this.cooDetail = false this.cooDetail = false
},
// 判断客户是否关联显示修改
association(id){
customerInfo(id).then(res=>{
if(res.code == 200){
if(res.data.companyId == this.companyId && res.data.userId == this.$store.state.user.userId){
this.customerInfo = res.data
this.customerId = res.data.customerId
}else{
this.currentPath.pathName = 'overview'
}
}
}).catch(err=>{
this.currentPath.pathName = 'overview'
})
} }
} }
} }
</script> </script>
......
...@@ -160,7 +160,7 @@ export default { ...@@ -160,7 +160,7 @@ export default {
components: { components: {
}, },
props: ['customerIds'], props: ['customerIds','customerInfo'],
data() { data() {
return { return {
autosize: { autosize: {
...@@ -181,6 +181,9 @@ export default { ...@@ -181,6 +181,9 @@ export default {
} }
}, },
created() { created() {
this.queryParams = this.customerInfo
},
mounted(){
this.customerInfos() this.customerInfos()
}, },
computed: { computed: {
......
...@@ -689,7 +689,7 @@ export default { ...@@ -689,7 +689,7 @@ export default {
if(val.length>0){ if(val.length>0){
this.checkuipExecutive=false; this.checkuipExecutive=false;
}else if(val.length==0){ }else if(val.length==0){
this.checkuipExecutive==true; this.checkuipExecutive=true;
} }
this.search(); this.search();
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
<div class="content_item"> <div class="content_item">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入关键字,如企业名称、统一社会信用代码等" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')"> <el-input class="ename_input" placeholder="请输入关键字,如企业名称、统一社会信用代码等" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')">
<div slot="append" class="btn-search" @click="submitbtn">搜索</div> <div slot="append" class="btn-search" @click="search">搜索</div>
</el-input> </el-input>
<template v-if="ename"> <!-- <template v-if="ename">
<span v-for=" (item,k) in enameQueryTypeList" :key="k" style="margin-right: 24px;"> <span v-for=" (item,k) in enameQueryTypeList" :key="k" style="margin-right: 24px;">
<el-radio v-model="enameQueryType" :label="item.key">{{item.value}}</el-radio> <el-radio v-model="enameQueryType" :label="item.key">{{item.value}}</el-radio>
</span> </span>
</template> </template> -->
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item">
...@@ -243,7 +243,7 @@ ...@@ -243,7 +243,7 @@
<div class="select-popper"> <div class="select-popper">
<el-dropdown trigger="click" ref="establishPopper" placement='bottom-start'> <el-dropdown trigger="click" ref="establishPopper" placement='bottom-start'>
<div class=" " <div class="el-dropdown-link"
:class="(establishText!='不限'&&establishText!='自定义')||(establishText=='自定义'&&startTimetext.length>0)?'select-active':''"> :class="(establishText!='不限'&&establishText!='自定义')||(establishText=='自定义'&&startTimetext.length>0)?'select-active':''">
成立年限{{(establishText!='不限'&&establishText!='自定义')||(establishText=='自定义'&&startTimetext.length>0)?('1项'):''}} 成立年限{{(establishText!='不限'&&establishText!='自定义')||(establishText=='自定义'&&startTimetext.length>0)?('1项'):''}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
...@@ -417,7 +417,7 @@ ...@@ -417,7 +417,7 @@
<div class="content_item content_item_nopadding "> <div class="content_item content_item_nopadding ">
<div class="search-new" > <div class="search-new" >
<span @click="submitbtn()">查询</span> <span @click="search()">查询</span>
<span @click="reset()">重置</span> <span @click="reset()">重置</span>
</div> </div>
...@@ -441,7 +441,7 @@ ...@@ -441,7 +441,7 @@
</el-popover> </el-popover>
<div class="toolbar-right-search"> <div class="toolbar-right-search">
<el-input placeholder="请输入企业名称关键词" class="toolbar-right_input" v-model="resultEname"> <el-input placeholder="请输入企业名称关键词" class="toolbar-right_input" v-model="resultEname">
<div slot="append" class="result-search" @click="submitbtn()">过滤企业</div> <div slot="append" class="result-search" @click="search()">过滤企业</div>
</el-input> </el-input>
</div> </div>
</div> </div>
...@@ -1418,7 +1418,7 @@ ...@@ -1418,7 +1418,7 @@
}); });
this.getRegionWebList(); this.getRegionWebList();
this.getaddressList(); this.getaddressList();
this.submitbtn(); this.search();
}, },
mounted() { mounted() {
...@@ -2608,6 +2608,7 @@ ...@@ -2608,6 +2608,7 @@
this.getaddressList(); this.getaddressList();
this.getRegionWebList(); this.getRegionWebList();
this.search();
}, },
reloadPage() { reloadPage() {
...@@ -2642,8 +2643,7 @@ ...@@ -2642,8 +2643,7 @@
} }
}, },
// submitbtn search(page, limit,exportFlag){
submitbtn(page, limit,exportFlag){
// return false; // return false;
if (!page) { if (!page) {
this.page = 1; this.page = 1;
......
...@@ -100,14 +100,15 @@ ...@@ -100,14 +100,15 @@
<div class="main"> <div class="main">
<div class="amount"> <div class="amount">
<p> <p>
<span>产值目标(万元)</span>
<span>实际已完成(万元)</span> <span>实际已完成(万元)</span>
<span>产值目标(万元)</span>
</p> </p>
<p> <p>
<span class="money">359,800.00</span> <span class="money">359,800.00</span>
<span class="money">359,800.00</span> <span class="money">359,800.00</span>
</p> </p>
<el-progress :text-inside="true" :stroke-width="10" :percentage="70"></el-progress> <el-progress class="progress1" :text-inside="true" :stroke-width="14" :percentage="40"></el-progress>
<el-progress class="progress2" :text-inside="true" :stroke-width="14" :percentage="70"></el-progress>
</div> </div>
<div style="background: #ffffff;margin: 0 12px 12px 12px;"> <div style="background: #ffffff;margin: 0 12px 12px 12px;">
<div id="pm-echarts" style="height: 288px;"></div> <div id="pm-echarts" style="height: 288px;"></div>
...@@ -134,7 +135,7 @@ ...@@ -134,7 +135,7 @@
</div> </div>
</div> </div>
<div> <div>
<div id="fx-echarts" style="height: 260px;"></div> <div id="fx-echarts" style="height: 280px;"></div>
</div> </div>
</div> </div>
...@@ -271,6 +272,13 @@ ...@@ -271,6 +272,13 @@
<span>中标单位:中铁十二局集团</span> <span>中标单位:中铁十二局集团</span>
</p> </p>
</div> </div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
<span>中标单位:中铁十二局集团</span>
</p>
</div>
</div> </div>
</div> </div>
<div v-if="user === 2" class="zbhxr"> <div v-if="user === 2" class="zbhxr">
...@@ -593,25 +601,28 @@ export default { ...@@ -593,25 +601,28 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#0CBC6D", color: "#81D4BC",
}, },
itemStyle:{ itemStyle:{
color: "#0CBC6D", color: "#81D4BC",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#EFFAF6", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(189, 249, 232, 1)'
color: "#9DDCCA", }, {
}, offset: 1, color: 'rgba(189, 249, 232, 0)'
]), } ],
global: false
}
}, },
}, },
{ {
data: this.jyfxData1.map(item => item.dcjzje), data: this.jyfxData1.map(item => item.dcjzje),
...@@ -625,24 +636,26 @@ export default { ...@@ -625,24 +636,26 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#0081FF", color: "#9EE474",
}, },
itemStyle:{ itemStyle:{
color: "#4E8EFF", color: "#9EE474",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#FAFDFF", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(208, 250, 183, 1)'
color: "#C5E3FF", }, {
}, offset: 1, color: 'rgba(208, 250, 183, 0)'
]), } ],
global: false
}
}, },
}, },
{ {
...@@ -657,24 +670,26 @@ export default { ...@@ -657,24 +670,26 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#8077F2", color: "#E1B3FF",
}, },
itemStyle:{ itemStyle:{
color: "#8077F2", color: "#E1B3FF",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#FAF9FF", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(233, 200, 255, 1)'
color: "#E2DCFF", }, {
}, offset: 1, color: 'rgba(233, 200, 255, 0)'
]), } ],
global: false
}
}, },
}, },
{ {
...@@ -689,24 +704,26 @@ export default { ...@@ -689,24 +704,26 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#FA6C6C", color: "#ADC0FF",
}, },
itemStyle:{ itemStyle:{
color: "#FA6C6C", color: "#ADC0FF",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#FDEAE8", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(173, 192, 255, 1)'
color: "#FDB2AE", }, {
}, offset: 1, color: 'rgba(173, 192, 255, 0)'
]), } ],
global: false
}
}, },
}, },
{ {
...@@ -721,24 +738,26 @@ export default { ...@@ -721,24 +738,26 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#FA936C", color: "#67B3FD",
}, },
itemStyle:{ itemStyle:{
color: "#FA936C", color: "#67B3FD",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#FCE8E0", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(192, 224, 255, 1)'
color: "#FBC4AF", }, {
}, offset: 1, color: 'rgba(192, 224, 255, 0)'
]), } ],
global: false
}
}, },
}, },
{ {
...@@ -753,24 +772,26 @@ export default { ...@@ -753,24 +772,26 @@ export default {
//设置折线颜色和粗细 //设置折线颜色和粗细
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#FDD85E", color: "#BEECFF",
}, },
itemStyle:{ itemStyle:{
color: "#FDD85E", color: "#BEECFF",
}, },
//设置面积区域为渐变效果 //设置面积区域为渐变效果
areaStyle: { areaStyle: {
opacity:0.8, color: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ type: 'linear',
{ x: 0,
offset: 0.2, y: 0,
color: "#FCF8EF", x2: 0,
}, y2: 1,
{ colorStops: [{
offset: 1, offset: 0, color: 'rgba(165, 229, 255, 1)'
color: "#FEEBAA", }, {
}, offset: 1, color: 'rgba(165, 229, 255, 0)'
]), } ],
global: false
}
}, },
}, },
] ]
...@@ -796,6 +817,11 @@ export default { ...@@ -796,6 +817,11 @@ export default {
x:'center', x:'center',
y:'bottom', y:'bottom',
padding:[0,0,10,0], padding:[0,0,10,0],
itemWidth: 24,
itemHeight: 10,
textStyle:{
borderRadius:30,
}
}, },
yAxis: { yAxis: {
type: 'category', type: 'category',
...@@ -886,31 +912,35 @@ export default { ...@@ -886,31 +912,35 @@ export default {
series: [ series: [
{ {
// realtimeSort: true, // realtimeSort: true,
name:'目标产值', name:'已完成产值',
data: this.pmData.map(item => item.value), data: this.pmData.map(item => item.value),
barGap: 0,
type: 'bar', type: 'bar',
stack: 'total', // stack: 'total',
emphasis: { // emphasis: {
focus: 'series' // focus: 'series'
}, // },
itemStyle:{ itemStyle:{
color: '#14C9C9', color: '#14C9C9',
barBorderRadius:[0, 20, 20, 0]
}, },
barWidth: 16, barWidth: 8,
}, },
{ {
// realtimeSort: true, // realtimeSort: true,
name:'已完成产值', name:'目标产值',
data: this.pmData.map(item => item.value1), data: this.pmData.map(item => item.value1),
barGap: 0,
type: 'bar', type: 'bar',
stack: 'total', // stack: 'total',
emphasis: { // emphasis: {
focus: 'series' // focus: 'series'
}, // },
itemStyle:{ itemStyle:{
color: '#C3F6F6', color: '#92C9FF',
barBorderRadius:[0, 20, 20, 0]
}, },
barWidth: 16, barWidth: 8,
}, },
], ],
} }
...@@ -1132,18 +1162,42 @@ export default { ...@@ -1132,18 +1162,42 @@ export default {
font-size: 14px; font-size: 14px;
} }
.money{ .money{
font-weight: 700; font-weight: bold;
color: #184280; color: #184280;
font-size: 18px; font-size: 18px;
margin-top: 8px; margin-top: 2px;
}
.money:first-child{
color:#48C5A0;
}
.money:last-child{
color:#60B0FD;
}
.progress1{
height: 10px !important;
::v-deep .el-progress-bar__outer{
.el-progress-bar__inner{
background:#9AEAD3
}
}
}
.progress2{
height: 10px !important;
::v-deep .el-progress-bar__outer{
.el-progress-bar__inner{
background:#92C9FF
}
}
} }
::v-deep .el-progress-bar__outer{ ::v-deep .el-progress-bar__outer{
border: 1px solid #A2E8E8; /*border: 1px solid #A2E8E8;*/
background-color:#ffffff !important; /*background-color:#ffffff !important;*/
border-radius: 2px; height: 10px !important;
background-color: rgba(235, 238, 245, 0%) !important;
border-radius:0 20px 20px 0;
.el-progress-bar__inner{ .el-progress-bar__inner{
background: linear-gradient(-270deg, #C3F6F6 0%, #14C9C9 100%); /*<!--background: linear-gradient(-270deg, #C3F6F6 0%, #14C9C9 100%);-->*/
border-radius:0; border-radius:0 20px 20px 0;
.el-progress-bar__innerText{ .el-progress-bar__innerText{
color: #ffffff; color: #ffffff;
opacity: 0; opacity: 0;
...@@ -1261,7 +1315,7 @@ export default { ...@@ -1261,7 +1315,7 @@ export default {
} }
} }
.analysis{ .analysis{
height: 314px; height: 334px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
...@@ -1474,7 +1528,7 @@ export default { ...@@ -1474,7 +1528,7 @@ export default {
} }
} }
.zbgg{ .zbgg{
height: 450px; height: 470px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<el-table-column prop="rate" label="占比(%)"> </el-table-column> <el-table-column prop="rate" label="占比(%)"> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column :label="twoYear"> <el-table-column :label="twoYear">
<el-table-column prop="lastMoney" label="金额(亿元)"> </el-table-column> <el-table-column prop="lastMoney" label="金额(亿元)" sortable> </el-table-column>
<el-table-column prop="lastRate" label="占比(%)" > </el-table-column> <el-table-column prop="lastRate" label="占比(%)" > </el-table-column>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -227,7 +227,6 @@ export default { ...@@ -227,7 +227,6 @@ export default {
// return; // return;
// } // }
}); });
console.log(sums)
return sums; return sums;
}, },
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<!--{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}--> <!--{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}-->
<!--</template>--> <!--</template>-->
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="{path:'/macro/economies',query:{provinceId:scope.row.provinceId}}" tag="a" class="a-link">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</router-link> <span @click="childMethod(scope.row)" class="a-link" style="cursor: pointer;">{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}</span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -37,14 +37,14 @@ ...@@ -37,14 +37,14 @@
<el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/> <el-table-column prop="gdpGrowth" label="GDP增速" sortable width="100" :formatter="formatStatus"/>
<el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/> <el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/>
<el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="170" :formatter="formatStatus"/> <el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="gbr" label="一般公共预算收入(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="gbr" label="一般公共预算收入(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="gbe" label="一般公共预算支出(亿 元)" sortable width="190" :formatter="formatStatus"/> <el-table-column prop="gbe" label="一般公共预算支出(亿 元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="180" :formatter="formatStatus"/> <el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率(%)" sortable width="120":formatter="formatStatus"/> <el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率(%)" sortable width="150" :formatter="formatStatus"/>
<el-table-column prop="govDebtRateWild" label="债务率-宽口径(%)" sortable :formatter="formatStatus"/> <el-table-column prop="govDebtRateWild" label="债务率-宽口径(%)" sortable width="170" :formatter="formatStatus"/>
</el-table> </el-table>
</div> </div>
<div class="pagination-box"> <div class="pagination-box">
...@@ -70,7 +70,7 @@ export default { ...@@ -70,7 +70,7 @@ export default {
tableData:[], tableData:[],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 20,
tableDataTotal: 0, tableDataTotal: 0,
} }
}, },
...@@ -147,6 +147,18 @@ export default { ...@@ -147,6 +147,18 @@ export default {
message: '功能正在开发中', message: '功能正在开发中',
type: 'warning' type: 'warning'
}); });
},
childMethod(item) {
let data={}
data.provinceId=item.provinceId;
data.cityId=item.cityId;
data.areaId=item.areaId;
if(item.area){
data.province=item.area;
}else {
data.province=item.province;
}
this.$parent.handleClick('first',data);
} }
} }
} }
......
...@@ -96,6 +96,24 @@ export default { ...@@ -96,6 +96,24 @@ export default {
if(key === 'four'){ if(key === 'four'){
this.activeName='four' this.activeName='four'
} }
if(key === 'first'){
this.activeName='first'
}
if(item.cityId){
if(this.provinceId.length >= 2){
this.provinceId.splice(1, 1, item.cityId);
}else {
this.provinceId.push(item.cityId)
}
if(item.areaId){
if(this.provinceId.length >= 3){
this.provinceId.splice(2, 1, item.areaId);
}else {
this.provinceId.push(item.areaId)
}
}
this.province=item.province;
}
// sessionStorage.setItem('currentTab', this.activeName) // sessionStorage.setItem('currentTab', this.activeName)
}, },
//地区 //地区
......
...@@ -34,10 +34,10 @@ ...@@ -34,10 +34,10 @@
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0" v-if="tableDataTotal > 0"
> >
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="60" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="公司名称" align="left" fixed> <el-table-column label="公司名称" align="left" fixed width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link v-if="scope.row.jskEid" :to="`/company/${encodeStr(scope.row.jskEid)}`" tag="a" class="a-link" v-html="scope.row.name" ></router-link> <router-link v-if="scope.row.jskEid" :to="`/company/${encodeStr(scope.row.jskEid)}`" tag="a" class="a-link" v-html="scope.row.name" ></router-link>
<span v-else v-html="scope.row.name" ></span> <span v-else v-html="scope.row.name" ></span>
...@@ -47,15 +47,15 @@ ...@@ -47,15 +47,15 @@
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable="custom" width="120" :formatter="formatStatus"/> <el-table-column label="资质资格" prop="aptitudeCountNew" sortable="custom" width="120" :formatter="formatStatus"/>
<el-table-column label="专业人员" prop="persionCount" sortable="custom" width="120" :formatter="formatStatus"/> <el-table-column label="专业人员" prop="persionCount" sortable="custom" width="120" :formatter="formatStatus"/>
<el-table-column label="中标业绩" prop="recentlyCount" sortable="custom" width="120" :formatter="formatStatus"/> <el-table-column label="中标业绩" prop="recentlyCount" sortable="custom" width="120" :formatter="formatStatus"/>
<!--<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable="custom" width="160" :formatter="formatStatus"/>--> <el-table-column label="最大中标金额(万元)" prop="bidMaxAmount" sortable="custom" width="170" :formatter="formatStatus"/>
<!--<el-table-column label="中标总金额(万元)" prop="cgfs" sortable="custom" width="160" :formatter="formatStatus"/>--> <el-table-column label="中标总金额(万元)" prop="bidSumAmount" sortable="custom" width="170" :formatter="formatStatus"/>
<el-table-column label="四库业绩" prop="skyCount" sortable="custom" width="120" :formatter="formatStatus"/> <el-table-column label="四库业绩" prop="skyCount" sortable="custom" width="120" :formatter="formatStatus"/>
<el-table-column label="公路业绩" prop="cgfs" sortable="custom" width="100" :formatter="formatStatus"/> <el-table-column label="公路业绩" prop="roadConservancy" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="水利业绩" prop="cgfs" sortable="custom" width="100" :formatter="formatStatus"/> <el-table-column label="水利业绩" prop="waterConservancy" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="常合作业主" prop="cgfs" width="130" :formatter="formatStatus"/> <el-table-column label="常合作业主" prop="topCustomer" width="150" :formatter="formatStatus"/>
<el-table-column label="客户(个)" prop="customerCount" sortable="custom" width="120" :formatter="formatStatus"/> <el-table-column label="客户(个)" prop="customerCount" sortable="custom" width="120" :formatter="formatStatus"/>
<el-table-column label="供应商(个)" prop="supplierCount" sortable="custom" width="130" :formatter="formatStatus"/> <el-table-column label="供应商(个)" prop="supplierCount" sortable="custom" :formatter="formatStatus"/>
<!--<el-table-column label="常合作供应商" prop="gys" width="120" :formatter="formatStatus"/>--> <el-table-column label="常合作供应商" prop="topSupplier" width="150" :formatter="formatStatus"/>
</el-table> </el-table>
<div class="empty" v-if="tableDataTotal === 0"> <div class="empty" v-if="tableDataTotal === 0">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
......
...@@ -11,28 +11,28 @@ ...@@ -11,28 +11,28 @@
<div class="list"> <div class="list">
<div class="item color1"> <div class="item color1">
<div class="item-left"> <div class="item-left">
<h4>{{details.projectTotalInvestment || '-'}}<span>{{details.projectTotalInvestment ? '' : ''}}</span></h4> <h4>{{details.projectTotalInvestment || '-'}}<span>{{details.projectTotalInvestment ? '亿' : ''}}</span></h4>
<p>项目总投资额</p> <p>项目总投资额</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon1.png" /> <img class="img" src="@/assets/images/financing/icon1.png" />
</div> </div>
<div class="item color2"> <div class="item color2">
<div class="item-left"> <div class="item-left">
<h4>{{details.projectCapital || '-'}}<span>{{details.projectCapital ? '' : ''}}</span></h4> <h4>{{details.projectCapital || '-'}}<span>{{details.projectCapital ? '亿' : ''}}</span></h4>
<p>项目资本金</p> <p>项目资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon2.png" /> <img class="img" src="@/assets/images/financing/icon2.png" />
</div> </div>
<div class="item color3"> <div class="item color3">
<div class="item-left"> <div class="item-left">
<h4>{{details.specialBondFinancing || '-'}}<span>{{details.specialBondFinancing ? '' : ''}}</span></h4> <h4>{{details.specialBondFinancing || '-'}}<span>{{details.specialBondFinancing ? '亿' : ''}}</span></h4>
<p>专项债融资</p> <p>专项债融资</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon3.png" /> <img class="img" src="@/assets/images/financing/icon3.png" />
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '' : ''}}</span></h4> <h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '亿' : ''}}</span></h4>
<p>专项债用作资本金</p> <p>专项债用作资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon4.png" /> <img class="img" src="@/assets/images/financing/icon4.png" />
...@@ -41,28 +41,28 @@ ...@@ -41,28 +41,28 @@
<div class="list"> <div class="list">
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4>{{details.otherFunds || '-'}}<span>{{details.otherFunds ? '' : ''}}</span></h4> <h4>{{details.otherFunds || '-'}}<span>{{details.otherFunds ? '亿' : ''}}</span></h4>
<p>其他资金</p> <p>其他资金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon5.png" /> <img class="img" src="@/assets/images/financing/icon5.png" />
</div> </div>
<div class="item color3"> <div class="item color3">
<div class="item-left"> <div class="item-left">
<h4>{{details.specialBondFinancingAmount || '-'}}<span>{{details.specialBondFinancingAmount ? '' : ''}} / {{details.specialBondIssueNumber || '-'}}{{details.specialBondIssueNumber ? '只' : ''}}</span></h4> <h4>{{details.specialBondFinancingAmount || '-'}}<span>{{details.specialBondFinancingAmount ? '亿' : ''}} / {{details.specialBondIssueNumber || '-'}}{{details.specialBondIssueNumber ? '只' : ''}}</span></h4>
<p>专项债融资额/专项债只数</p> <p>专项债融资额/专项债只数</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon6.png" /> <img class="img" src="@/assets/images/financing/icon6.png" />
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4>{{details.otherFinancing || '-'}}<span>{{details.otherFinancing ? '' : ''}}</span></h4> <h4>{{details.otherFinancing || '-'}}<span>{{details.otherFinancing ? '亿' : ''}}</span></h4>
<p>其他融资</p> <p>其他融资</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon7.png" /> <img class="img" src="@/assets/images/financing/icon7.png" />
</div> </div>
<div class="item color2"> <div class="item color2">
<div class="item-left"> <div class="item-left">
<h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '' : ''}}</span></h4> <h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '亿' : ''}}</span></h4>
<p>政府安排资金</p> <p>政府安排资金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon8.png" /> <img class="img" src="@/assets/images/financing/icon8.png" />
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
</p> </p>
<p> <p>
<label class="label">项目预测总收益</label> <label class="label">项目预测总收益</label>
<span>{{details.projectForecastTotalRevenue || '-'}}{{details.projectForecastTotalRevenue ? '' : ''}}</span> <span>{{details.projectForecastTotalRevenue || '-'}}{{details.projectForecastTotalRevenue ? '亿' : ''}}</span>
</p> </p>
</div> </div>
</div> </div>
...@@ -130,8 +130,8 @@ ...@@ -130,8 +130,8 @@
{{formatDate(scope.row.tenderDate)}} {{formatDate(scope.row.tenderDate)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actualBondIssueScale" label="专项债规模()" width="260" /> <el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模()" width="260" /> <el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" />
<el-table-column prop="isUsedCapital" label="是否资本金" width="200" /> <el-table-column prop="isUsedCapital" label="是否资本金" width="200" />
</el-table> </el-table>
</div> </div>
......
...@@ -52,11 +52,11 @@ ...@@ -52,11 +52,11 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link> <router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目总投资(万元)" :formatter="formatStatus" align="right" sortable="custom" width="165" /> <el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" :formatter="formatStatus" align="right" sortable="custom" width="165" />
<el-table-column prop="projectCapital" label="项目资本金(万元)" :formatter="formatStatus" align="right" sortable="custom" width="155" /> <el-table-column prop="projectCapital" label="项目资本金(亿)" :formatter="formatStatus" align="right" sortable="custom" width="160" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" :formatter="formatStatus" align="right" sortable="custom" width="150" /> <el-table-column prop="econData007" label="项目收益倍数(倍)" :formatter="formatStatus" align="right" sortable="custom" width="160" />
<!--<el-table-column prop="zxz" label="专项债金额(亿)" :formatter="formatStatus" sortable="custom" width="150" />--> <!--<el-table-column prop="zxz" label="专项债金额(亿)" :formatter="formatStatus" sortable="custom" width="150" />-->
<el-table-column prop="specialBondCapital" label="专项债用作资本金(万元)" align="right" sortable="custom" :formatter="formatStatus" width="180" /> <el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" align="right" sortable="custom" :formatter="formatStatus" width="180" />
<el-table-column prop="projectEntity" :formatter="formatStatus" label="项目主体"> <el-table-column prop="projectEntity" :formatter="formatStatus" label="项目主体">
<!--<template slot-scope="scope">--> <!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>--> <!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
......
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="label" label="月份"/> <el-table-column prop="label" label="月份"/>
<el-table-column prop="count" sortable label="招标数量" align="right"/> <el-table-column prop="count" sortable label="招标数量" align="right"/>
<el-table-column prop="rate" sortable label="占比" align="right"/> <el-table-column prop="rate" sortable label="占比(%)" align="right"/>
</el-table> </el-table>
</div> </div>
</div> </div>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<div class="main1"> <div class="main1">
<div style="height: 300px;"> <div style="height: 300px;">
<div class="left"> <div class="left">
<div class="item" v-for="(item,index) in glData" :class="typeIndex === index ? 'color':''" @click="handleClick(1,index)">{{item.major}}<i></i></div> <div class="item" v-for="(item,index) in glData" :class="typeIndex === index ? 'color':''" @click="handleClick(1,index)">{{item.major}}企业<i></i></div>
</div> </div>
<div class="right"> <div class="right">
<div id="gl-echarts" style="height: 260px;background: #ffffff;"></div> <div id="gl-echarts" style="height: 260px;background: #ffffff;"></div>
...@@ -232,7 +232,7 @@ export default { ...@@ -232,7 +232,7 @@ export default {
for (let i=0; i<res.data.length; i++){ for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse(); res.data[i].levelList=res.data[i].levelList.reverse();
let item={}; let item={};
item.major=res.data[i].major; item.major=res.data[i].major+'施工总承包';
for (let j=0; j<res.data[i].levelList.length; j++){ for (let j=0; j<res.data[i].levelList.length; j++){
if(res.data[i].levelList[j].levelValue === '特级'){ if(res.data[i].levelList[j].levelValue === '特级'){
item.tjCount=res.data[i].levelList[j].count; item.tjCount=res.data[i].levelList[j].count;
......
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
<el-table-column prop="uipBusinessType" label="城投业务类型" :formatter="formatStatus" width="140" > <el-table-column prop="uipBusinessType" label="城投业务类型" :formatter="formatStatus" width="140" >
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<span>城投业务类型 <span>城投业务类型
<el-tooltip popper-class="tips" effect="light" content=" 根据主营业务构成划分为土地开发整理、基础设施建设、交通建设运营、棚改保障房建设、公用事业等8大类型。" placement="top"> <el-tooltip popper-class="tips" effect="light" content=" 根据主营业务构成划分为土地开发整理、基础设施建设、交通建设运营、棚改保障房建设、公用事业等7大类型。" placement="top">
<i class="el-icon-warning-outline"></i> <i class="el-icon-warning-outline"></i>
</el-tooltip> </el-tooltip>
</span> </span>
...@@ -244,7 +244,11 @@ ...@@ -244,7 +244,11 @@
<el-dialog :visible.sync="claimVisible" width="244" :show-close="false"> <el-dialog :visible.sync="claimVisible" width="244" :show-close="false">
<div>认领成功,是否完善客户信息?</div> <div>认领成功,是否完善客户信息?</div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="innerVisible = true">立即完善</el-button> <el-button @click="innerVisible = true">
<router-link :to="`/enterprise/${encodeStr(companyId)}?customerId=${customerId}`" tag="a" >
立即完善
</router-link>
</el-button>
<el-button @click="claimVisible = false">稍后</el-button> <el-button @click="claimVisible = false">稍后</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -288,6 +292,8 @@ export default { ...@@ -288,6 +292,8 @@ export default {
typeList:[], typeList:[],
statistics:{}, statistics:{},
claimVisible:false, claimVisible:false,
customerId:'',
companyId:'',
} }
}, },
watch:{ watch:{
...@@ -386,7 +392,7 @@ export default { ...@@ -386,7 +392,7 @@ export default {
this.tableData = res.data.list; this.tableData = res.data.list;
this.tableDataTotal = res.data.totalCount this.tableDataTotal = res.data.totalCount
}) })
urbanInvestmentStatistics(param).then(res => { urbanInvestmentStatistics(params).then(res => {
this.statistics=res.data; this.statistics=res.data;
}) })
}, },
...@@ -581,9 +587,11 @@ export default { ...@@ -581,9 +587,11 @@ export default {
}); });
}, },
handleClick(item){ handleClick(item){
this.companyId=item.companyId
claim({uipId:item.uipId,companyName:item.companyName}).then(res => { claim({uipId:item.uipId,companyName:item.companyName}).then(res => {
if(res.code === 200){ if(res.code === 200){
this.claimVisible=true; this.claimVisible=true;
this.customerId=res.data.customerId;
} }
}) })
}, },
......
...@@ -226,7 +226,7 @@ ...@@ -226,7 +226,7 @@
}, },
selCompany(item){ selCompany(item){
this.queryParam.companyId = item.jskEid this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '') this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
this.showlist = false this.showlist = false
}, },
handleALL(event){ handleALL(event){
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div class="con i" style="width: 100%;"> <div class="con i" style="width: 100%;">
<span style="float: left;margin-top: 2px">项目标签 :</span> <span style="float: left;margin-top: 2px">项目标签 :</span>
<div class="flex tipinput"> <div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img v-if="disabled == false" @click="deltip(item)" src="@/assets/images/project/del.png"></div> <div class="tips" v-for="(item,index) in tipslit">{{item.label}}<img v-if="isDisabled == false" @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div style="position: relative"> <div style="position: relative">
<el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span> <el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div> </div>
...@@ -323,10 +323,10 @@ ...@@ -323,10 +323,10 @@
}) })
// this.tipslit.push(this.tipsvalue) // this.tipslit.push(this.tipsvalue)
}, },
deltip(value){ deltip(item){
let param={ let param={
businessId:this.id, businessId:this.id,
label:value id:item.id
} }
removeLabel(JSON.stringify(param)).then(res=>{ removeLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){ if (res.code == 200){
...@@ -341,7 +341,11 @@ ...@@ -341,7 +341,11 @@
getXMSL(){ getXMSL(){
getXMSL(this.id).then(result=> { getXMSL(this.id).then(result=> {
this.xmjd = result.data.projectStage this.xmjd = result.data.projectStage
this.tipslit = result.data.labelList if(result.data.labelList == null || result.data.labelList == "" || result.data.labelList == undefined){
this.tipslit = []
}else {
this.tipslit = JSON.parse(result.data.labelList)
}
this.xmsldata = result.data this.xmsldata = result.data
this.isDisabled = result.data.isFounder == 1 ? false:true this.isDisabled = result.data.isFounder == 1 ? false:true
const spanStyle = document.querySelector(".rig1"); const spanStyle = document.querySelector(".rig1");
......
...@@ -9,7 +9,21 @@ ...@@ -9,7 +9,21 @@
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input> <el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div> </div>
<div class="btn btn_primary h32 b2" @click="getUP"><div class="img img2"></div>上传</div> <!--<div class="btn btn_primary h32 b2" @click="getUP" v-if="fileDatas.total>0"><div class="img img2"></div>上传</div>-->
<div class="btn btn_primary h32 b2" v-if="fileDatas.total>0"><div class="img img2"></div>
<el-upload
class="upload-demo"
:action="action"
:on-change="handleFileListChange"
:multiple="false"
ref="upload"
:file-list="fileList"
accept=".word,.pdf.excel,.xlsx,.doc,.docx"
:headers="headers"
:show-file-list="false"
:on-success="onSuccess">
上传
</el-upload></div>
</div> </div>
<div class="filepath" v-if="filename"><font @click="getall">全部</font> / <span> <img class="img" src="@/assets/images/folder.png">{{filename}}</span></div> <div class="filepath" v-if="filename"><font @click="getall">全部</font> / <span> <img class="img" src="@/assets/images/folder.png">{{filename}}</span></div>
<div class="uploadbox" v-if="isupload"> <div class="uploadbox" v-if="isupload">
...@@ -53,7 +67,20 @@ ...@@ -53,7 +67,20 @@
<img src="@/assets/images/project/empty.png"> <img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div> <div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div> <div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div> <!--<div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>-->
<div v-if="isDisabled==false" class="btn btn_primary h36 w102"> <el-upload
class="upload-demo"
:action="action"
:on-change="handleFileListChange"
:multiple="false"
ref="upload"
:file-list="fileList"
accept=".word,.pdf.excel,.xlsx,.doc,.docx"
:headers="headers"
:show-file-list="false"
:on-success="onSuccess">
上传文档
</el-upload></div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
......
...@@ -15,6 +15,12 @@ ...@@ -15,6 +15,12 @@
<div class="titles"> <div class="titles">
<img src="@/assets/images/project/headimg.png" class="headimg"> <img src="@/assets/images/project/headimg.png" class="headimg">
<strong class="text">{{ProjectData.projectName}}</strong> <strong class="text">{{ProjectData.projectName}}</strong>
<div class="protypes i1" v-if="isDisabled == false">
<span v-for="(item,index) in projectStatus"><i v-if="ProjectData.status == item.dictValue">{{item.dictLabel}}</i></span>
<el-select class="sels" v-model="ProjectData.status" @change="editXMSL({status:ProjectData.status})">
<el-option v-for="(item,index) in projectStatus" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
<div class="locks" v-if="ProjectData.isFounder == 1"> <div class="locks" v-if="ProjectData.isFounder == 1">
<div @click="islock=true"> <div @click="islock=true">
<img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png"> <img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png">
...@@ -167,6 +173,7 @@ ...@@ -167,6 +173,7 @@
projectStage:[],//项目阶段 projectStage:[],//项目阶段
projectType:[],//项目类型 projectType:[],//项目类型
projectCategory:[],//项目类别 projectCategory:[],//项目类别
projectStatus:[],//项目状态
nowedit:-1, nowedit:-1,
address:[], address:[],
addresstxt:'待添加', addresstxt:'待添加',
...@@ -198,6 +205,10 @@ ...@@ -198,6 +205,10 @@
getDictType('project_category').then(result=>{ getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[] this.projectCategory = result.code == 200 ? result.data:[]
}) })
//项目状态
getDictType('project_status_type').then(result=>{
this.projectStatus = result.code == 200 ? result.data:[]
})
//获取基本信息 //获取基本信息
this.getXMSL() this.getXMSL()
}, },
...@@ -235,6 +246,7 @@ ...@@ -235,6 +246,7 @@
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage this.thisindex = result.data.projectStage
this.ProjectData.status = result.data.status.toString()
let list = [] let list = []
let txt = '' let txt = ''
if(result.data.provinceId != ""){ if(result.data.provinceId != ""){
...@@ -271,6 +283,9 @@ ...@@ -271,6 +283,9 @@
return false return false
let params = param let params = param
params.id = this.id params.id = this.id
if(param.status){
param.status = parseInt(param.status)
}
editXMNR(JSON.stringify(params)).then(res=>{ editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){ if (res.code == 200){
this.$message.success('修改成功!') this.$message.success('修改成功!')
...@@ -398,6 +413,57 @@ ...@@ -398,6 +413,57 @@
.head{ .head{
.titles{ .titles{
line-height: 31px; line-height: 31px;
.protypes{
min-width: 96px;
padding: 0 18px;
height: 24px;
border-radius: 20px;
margin-left: 16px;
display: inline-block;
cursor: pointer;
font-size: 12px;
line-height: 24px;
text-align: center;
position: relative;
&.i1{
background: #FCF3DF;
color: #B5760B;
&:hover{
background: #F3E2BB;
}
}
&.i2{
background: #E5F6E4;
color: #09A442;
&:hover{
background: #B8EBB7;
}
}
&.i3{
background: #E5F2FF;
color: #0081FF;
&:hover{
background: #CBE5FF;
}
}
>span{
width: 100%;
}
.sels{
opacity: 0;
}
.el-select{
position: absolute;
top: 0;
width: 100%;
left: 0;
height: 24px;
::v-deep.el-input,::v-deep.el-input__inner{
height: 24px;
}
}
}
.headimg{ .headimg{
float: left; float: left;
margin-right: 16px; margin-right: 16px;
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
border border
fit
highlight-current-row highlight-current-row
> >
<el-table-column label="序号" width="80"> <el-table-column label="序号" width="80">
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<el-table-column label="项目名称" > <el-table-column label="项目名称" >
<template slot-scope="scope"> <template slot-scope="scope">
<router-link v-if="scope.row.companyId" :to="'/company/' + encodeStr(scope.row.companyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="scope.row.name"></router-link> <router-link v-if="scope.row.id" :to="'/company/' + encodeStr(scope.row.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="scope.row.name"></router-link>
</template> </template>
</el-table-column> </el-table-column>
...@@ -376,6 +376,11 @@ ...@@ -376,6 +376,11 @@
.main5 { .main5 {
.table-item { .table-item {
margin-top: 22px; margin-top: 22px;
.blue {
color: #0081FF !important;
cursor: pointer;
}
} }
.pagination { .pagination {
padding: 14px; padding: 14px;
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
</p> </p>
<p> <p>
<label class="label">项目联系方式</label> <label class="label">项目联系方式</label>
<span>{{textList.money||'--'}}</span> <span>{{textList.personTel||'--'}}</span>
<label class="label">行业分类</label> <label class="label">行业分类</label>
<span>{{textList.projectIndustry||'--'}}</span> <span>{{textList.projectIndustry||'--'}}</span>
</p> </p>
......
...@@ -19,12 +19,12 @@ ...@@ -19,12 +19,12 @@
<p class="list-content-text"> <p class="list-content-text">
<span>成交金额:</span> <span>成交金额:</span>
<span v-if="textList.transactionPrice">{{textList.transactionPrice}}万元</span> <span v-if="textList.transactionPrice">{{textList.transactionPrice}}万元</span>
<span>--</span> <span v-else>--</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>总面积:</span> <span>总面积:</span>
<span v-if="textList.transactionPrice">{{textList.transactionPrice}}平方米</span> <span v-if="textList.acreage">{{textList.acreage}}平方米</span>
<span>--</span> <span v-else>--</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>合同签订:</span> <span>合同签订:</span>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</p> </p>
<p> <p>
<label class="label">面积(平方米)</label> <label class="label">面积(平方米)</label>
<span>{{textList.buildArea||"--"}}</span> <span>{{textList.acreage||"--"}}</span>
<label class="label">土地来源</label> <label class="label">土地来源</label>
<span>{{textList.landSource||"--"}}</span> <span>{{textList.landSource||"--"}}</span>
</p> </p>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
<p> <p>
<label class="label">地块名称</label> <label class="label">地块名称</label>
<span>{{textList.landName||"--"}}</span> <span>{{textList.landName||"--"}}</span>
<label class="label">建筑面积</label> <label class="label">建筑面积(平方米)</label>
<span>{{textList.buildArea||"--"}}</span> <span>{{textList.buildArea||"--"}}</span>
</p> </p>
<p> <p>
......
...@@ -37,19 +37,24 @@ ...@@ -37,19 +37,24 @@
<div class="common-title-list"> <div class="common-title-list">
<p> <p>
<img src="@/assets/images/bxpro/pdf.png" alt=""> <img src="@/assets/images/bxpro/pdf.png" alt="">
<span>竞争对手</span> <span v-if="textList.marketAnalysis" @click="download(textList.marketAnalysis,'项目简析')">竞争对手</span>
<span v-else class="spanset">竞争对手</span>
</p> </p>
<p> <p>
<img src="@/assets/images/bxpro/pdf.png" alt=""> <img src="@/assets/images/bxpro/pdf.png" alt="">
<span>项目简析</span> <span v-if="textList.projectCharacteristics" @click="download(textList.projectCharacteristics,'项目简析')">项目简析</span>
<span v-else class="spanset">项目简析</span>
</p> </p>
<p> <p>
<img src="@/assets/images/bxpro/pdf.png" alt=""> <img src="@/assets/images/bxpro/pdf.png" alt="">
<span>成本分析</span> <span v-if="textList.costAnalysis" @click="download(textList.costAnalysis,'成本分析')">成本分析</span>
<span v-else class="spanset">成本分析</span>
</p> </p>
<p> <p>
<img src="@/assets/images/bxpro/pdf.png" alt=""> <img src="@/assets/images/bxpro/pdf.png" alt="">
<span>招标文件</span> <span v-if="textList.fileUrl&&textList.fileUrl.length>0" @click="download(textList.fileUrl[0],'招标文件')">招标文件</span>
<span v-else class="spanset">招标文件</span>
</p> </p>
</div> </div>
...@@ -215,7 +220,6 @@ ...@@ -215,7 +220,6 @@
} }
}, },
created() { created() {
console.log(this.$route.params)
this.id = this.$route.params.id; this.id = this.$route.params.id;
this.bidNoticeProDetail(); this.bidNoticeProDetail();
}, },
...@@ -224,12 +228,36 @@ ...@@ -224,12 +228,36 @@
api.bidNoticeProDetail({ api.bidNoticeProDetail({
id: this.id id: this.id
}).then(res => { }).then(res => {
// console.log(res);
this.textList = res.data; this.textList = res.data;
if(this.textList.eligibleEnterprisesUrl){
let tempUrl = this.textList.eligibleEnterprisesUrl.replace('http://', 'https://')
this.textList.eligibleEnterprisesUrl = tempUrl
}
if(this.textList.fileUrl&&this.textList.fileUrl.length>0){
this.textList.fileUrl=this.textList.fileUrl.substr(2,this.textList.fileUrl.length-4);
this.textList.fileUrl=this.textList.fileUrl.split(',');
this.textList.fileUrl = this.textList.fileUrl.map(item=>{
let it = item.replace('http://', 'https://')
return it
})
}
}).catch(error => { }).catch(error => {
}); });
}, },
download(url,name){
console.log(url);
const a = document.createElement('a');
a.style.display = 'none';
a.download = name;
a.href = url;
a.target="_blank";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
} }
} }
...@@ -466,6 +494,10 @@ ...@@ -466,6 +494,10 @@
width: 14px; width: 14px;
margin-right: 4px; margin-right: 4px;
} }
.spanset{
color: #23232366;
cursor: text;
}
} }
p:hover{ p:hover{
color: #0081FF; color: #0081FF;
......
...@@ -211,7 +211,8 @@ ...@@ -211,7 +211,8 @@
<div class="list-content"> <div class="list-content">
<p class="list-content-text" v-if="item.companyName"> <p class="list-content-text" v-if="item.companyName">
<span>项目业主:</span> <span>项目业主:</span>
<router-link :to="`/company/${encodeStr(item.companyId)}/`" tag="a" class="list-titel-a blue" v-html="item.companyName" ></router-link> <span><router-link :to="`/company/${encodeStr(item.companyId)}/`" tag="a" class="list-titel-a blue" v-html="item.companyName" ></router-link></span>
</p> </p>
<p class="list-content-text"v-if="item.money"> <p class="list-content-text"v-if="item.money">
......
...@@ -236,45 +236,44 @@ ...@@ -236,45 +236,44 @@
<router-link :to="'/radar/Land/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link> <router-link :to="'/radar/Land/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
</p> </p>
<div class="list-content"> <div class="list-content" v-if="item.companyName||item.transactionPrice||item.acreage||item.acreage">
<p class="list-content-text"> <p class="list-content-text" v-if="item.companyName">
<span>受让人:</span> <span>受让人:</span>
<span v-if="item.companyName"> <span >
<router-link :to="'/company/' + encodeStr(item.companyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link> <router-link :to="'/company/' + encodeStr(item.companyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
</span> </span>
<span v-else>--</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.transactionPrice">
<span>成交金额:</span> <span>成交金额:</span>
<span>{{item.transactionPrice||'--'}}万元</span> <span>{{item.transactionPrice||'--'}}万元</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.acreage">
<span>总面积:</span> <span>总面积:</span>
<span>{{item.acreage||'--'}}</span> <span>{{item.acreage||'--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.contractSignTime">
<span>合同签订:</span> <span>合同签订:</span>
<span>{{item.contractSignTime||'--'}}</span> <span>{{item.contractSignTime||'--'}}</span>
</p> </p>
</div> </div>
<div class="list-content"> <div class="list-content" v-if="item.landUse||item.industry||item.supplyLandWay">
<p class="list-content-text"> <p class="list-content-text" v-if="item.landUse">
<span>土地用途:</span> <span>土地用途:</span>
<span >{{item.landUse||'--'}}</span> <span >{{item.landUse||'--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.industry">
<span>行业分类:</span> <span>行业分类:</span>
<span >{{item.industry||'--'}}</span> <span >{{item.industry||'--'}}</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.supplyLandWay">
<span>供应方式:</span> <span>供应方式:</span>
<span >{{item.supplyLandWay||'--'}}</span> <span >{{item.supplyLandWay||'--'}}</span>
</p> </p>
</div> </div>
<div class="list-content list-addree"> <div class="list-content list-addree" v-if="item.province||item.city||item.area||item.landAddr">
<img src="@/assets/images/addree.png" alt=""> <img src="@/assets/images/addree.png" alt="">
<p class="list-content-text"> <p class="list-content-text" v-if="item.province||item.city||item.area">
<span>行政区划:</span> <span>行政区划:</span>
<span > <span >
{{item.province}} {{item.province}}
...@@ -286,10 +285,9 @@ ...@@ -286,10 +285,9 @@
</template> </template>
</span> </span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text" v-if="item.landAddr">
<span>土地坐落:</span> <span>土地坐落:</span>
<span v-if="item.landAddr" v-html="item.landAddr"></span> <span v-html="item.landAddr"></span>
<span v-else>--</span>
</p> </p>
</div> </div>
</li> </li>
......
...@@ -373,11 +373,44 @@ ...@@ -373,11 +373,44 @@
</el-table-column> </el-table-column>
<el-table-column prop="zj" label="项目金额" width="161" > <el-table-column prop="zj" label="项目金额" width="161" >
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.projectAmount||'--'}} <ul class="bxpro_list_money">
<template v-if="scope.row.projectInvestmentAmount ||
scope.row.projectContractAmount ||
scope.row.projectSafeAmount ||
scope.row.projectSurveyAmount ||
scope.row.projectDesignAmount">
<li v-if="scope.row.projectInvestmentAmount">
<span >
<span >投资额:{{ scope.row.projectInvestmentAmount }}万元</span>
</span>
</li>
<li v-if="scope.row.projectContractAmount">
<span >
<span >控制价:{{ scope.row.projectContractAmount }}万元</span>
</span>
</li>
<li v-if="scope.row.projectSafeAmount">
<span >
<span >建安费:{{ scope.row.projectSafeAmount }}万元</span>
</span>
</li>
<li v-if="scope.row.projectSurveyAmount">
<span >
<span >勘察费:{{ scope.row.projectSurveyAmount }}万元</span>
</span>
</li>
<li v-if="scope.row.projectDesignAmount">
<span >
<span >设计费:{{ scope.row.projectDesignAmount }}万元</span>
</span>
</li>
</template>
<li v-else>--</li>
</ul>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="zj" label="债券保证金(万元)" width="146" > <el-table-column prop="zj" label="投标保证金(万元)" width="146" >
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.projectEnsureAmount||'--'}} {{ scope.row.projectEnsureAmount||'--'}}
</template> </template>
...@@ -1962,6 +1995,16 @@ ...@@ -1962,6 +1995,16 @@
.list-titel-a{ .list-titel-a{
color:#0081FF; color:#0081FF;
} }
.bxpro_list_money{
li{
margin-bottom: 8px;
line-height: 18px;
display: flex;
&:last-child{
margin-bottom: 0;
}
}
}
} }
.bottomlist-content{ .bottomlist-content{
......
<template> <template>
<div> <div>
<div class="content"> <div class="content">
<div class="content_item"> <div class="content_item content_item_padding0">
<div class="label">项目名称</div> <div class="label">项目名称</div>
<div class="content_right"> <div class="content_right">
<el-input class="ename_input" <el-input class="ename_input"
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</template> </template>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item ">
<div class="label">项目主体</div> <div class="label">项目主体</div>
<div class="content_right"> <div class="content_right">
<div class="item_ckquery_list" > <div class="item_ckquery_list" >
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<el-input ref="inp" <el-input ref="inp"
v-model="projectEntity" autocomplete="off" type="text" v-model="projectEntity" autocomplete="off" type="text"
class="register_count_ipt" placeholder="请输入企业名称"> class="register_count_ipt" placeholder="请输入企业名称">
<el-dropdown trigger="click" slot="prepend" style="cursor:pointer;" <el-dropdown trigger="click" slot="prepend" placement="bottom-start" style="cursor:pointer;"
@command="changeCommand"> @command="changeCommand">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
{{chargeDepartment.value}}<i class="el-icon-caret-bottom"></i> {{chargeDepartment.value}}<i class="el-icon-caret-bottom"></i>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item content_item16">
<div class="label">项目地区</div> <div class="label">项目地区</div>
<div class="content_right"> <div class="content_right">
<div class="select-popper"> <div class="select-popper">
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="content_item"> <div class="content_item content_item16">
<div class="label">项目类型</div> <div class="label">项目类型</div>
<div class="content_right"> <div class="content_right">
<!-- <div class="content-projecttype"> <!-- <div class="content-projecttype">
...@@ -178,16 +178,16 @@ ...@@ -178,16 +178,16 @@
projectName:'', projectName:'',
nameTypeList: [{ nameTypeList: [{
key: 'like', key: 'like',
status: false, status: true ,
value: '模糊搜索', value: '模糊搜索',
}, },
{ {
key: 'match', key: 'match',
status: true, status: false,
value: '精准匹配', value: '精准匹配',
}, },
], ],
nameType: 'match', nameType: 'like',
projectEntity:'', projectEntity:'',
countTypelist: [{ countTypelist: [{
key: '1', key: '1',
...@@ -550,10 +550,11 @@ ...@@ -550,10 +550,11 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .content{
padding: 0px 16px; padding: 0px 16px;
padding-top: 16px;
border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px;
background: #FFFFFF; background: #FFFFFF;
.content_item{ .content_item{
padding-top: 12px; padding-top: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
.label{ .label{
...@@ -577,6 +578,7 @@ ...@@ -577,6 +578,7 @@
} }
.item_ckquery_list .el-input__icon { .item_ckquery_list .el-input__icon {
position: relative; position: relative;
top: 1px; top: 1px;
...@@ -593,6 +595,10 @@ ...@@ -593,6 +595,10 @@
} }
::v-deep .el-input-group__prepend{ ::v-deep .el-input-group__prepend{
padding: 0 8px; padding: 0 8px;
background-color:#F3F4F5;
border-radius:2px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
} }
.content-projecttype{ .content-projecttype{
display: flex; display: flex;
...@@ -626,8 +632,12 @@ ...@@ -626,8 +632,12 @@
.content_item_padding0{ .content_item_padding0{
padding: 0; padding: 0;
} }
.content_item18{
padding-top: 16px;
}
} }
.bottomlist{ .bottomlist{
width: 100%; width: 100%;
background-color: #FFFFFF; background-color: #FFFFFF;
...@@ -679,7 +689,8 @@ ...@@ -679,7 +689,8 @@
} }
} }
.content-label{ .content-label{
margin-top: 7px; margin-top: 5px;
margin-bottom: 5px;
.list-label{ .list-label{
background: #F3F3FF; background: #F3F3FF;
color: #8491E8; color: #8491E8;
...@@ -703,7 +714,7 @@ ...@@ -703,7 +714,7 @@
display: flex; display: flex;
justify-content: start; justify-content: start;
align-items: center; align-items: center;
margin-right: 27px; margin-right: 32px;
font-size: 14px; font-size: 14px;
span:first-child{ span:first-child{
......
...@@ -154,13 +154,12 @@ ...@@ -154,13 +154,12 @@
<el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row> <el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column prop="name" label="债券简称"> <el-table-column prop="name" label="债券简称">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" {{ scope.row.bondAbbreviation}}
class="a-link">{{ scope.row.bondAbbreviation}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="tenderDate" label="招标日期" width="220" /> <el-table-column prop="tenderDate" label="招标日期" width="220" />
<el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" /> <el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" /> <el-table-column prop="isUsedProjectScale" label="用于项目规模(万元)" width="260" />
<el-table-column label="是否资本金" width="200"> <el-table-column label="是否资本金" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -9,9 +9,10 @@ ...@@ -9,9 +9,10 @@
<p>{{itme.value}}</p> <p>{{itme.value}}</p>
</div> </div>
</div> </div>
<p class="solid"></p>
</div> </div>
</div> </div>
<p class="solid"></p>
</div> </div>
<!-- 企业专项债 --> <!-- 企业专项债 -->
<debtProject v-if="personnelHerf=='debtProject'" /> <debtProject v-if="personnelHerf=='debtProject'" />
...@@ -168,8 +169,11 @@ ...@@ -168,8 +169,11 @@
top: -1px; top: -1px;
margin-right: 6px; margin-right: 6px;
} }
.app-container .content{
position: relative;
}
.app-container .combined-title .title-right .solid { .app-container .solid {
width: 100%; width: 100%;
height: 1px; height: 1px;
background-color: #EEEEEE; background-color: #EEEEEE;
......
...@@ -15,6 +15,11 @@ public class BusinessIdDto { ...@@ -15,6 +15,11 @@ public class BusinessIdDto {
*/ */
private Integer businessId; private Integer businessId;
/**
* 项目标签id
*/
private Integer labelId;
/** /**
* 项目标签名称 * 项目标签名称
*/ */
......
...@@ -2,8 +2,6 @@ package com.dsk.system.domain.vo; ...@@ -2,8 +2,6 @@ package com.dsk.system.domain.vo;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author lxl * @author lxl
* @Description: * @Description:
...@@ -90,7 +88,7 @@ public class BusinessBrowseVo { ...@@ -90,7 +88,7 @@ public class BusinessBrowseVo {
/** /**
* 项目标签 * 项目标签
*/ */
private List<String> labelList; private String labelList;
/** 建设单位 */ /** 建设单位 */
private String constructionUnit; private String constructionUnit;
......
package com.dsk.system.domain.vo;
import lombok.Data;
/**
* @author lxl
* @Description:
* @Date 2023/6/27 下午 2:51
**/
@Data
public class BusinessLabelVo {
//主键
private Integer id;
//标签
private String label;
}
...@@ -28,5 +28,7 @@ public interface CustomerMapper extends BaseMapper<Customer> { ...@@ -28,5 +28,7 @@ public interface CustomerMapper extends BaseMapper<Customer> {
List<CustomerStatusListVo> selectStatusList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId); List<CustomerStatusListVo> selectStatusList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId);
List<String> selectUipIdList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId);
} }
...@@ -3,10 +3,7 @@ package com.dsk.system.service; ...@@ -3,10 +3,7 @@ package com.dsk.system.service;
import com.dsk.system.domain.customer.Customer; import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto; import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo; import com.dsk.system.domain.customer.vo.*;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
import java.util.List; import java.util.List;
...@@ -32,4 +29,6 @@ public interface ICustomerService { ...@@ -32,4 +29,6 @@ public interface ICustomerService {
List<CustomerStatusListVo> selectStatusList(List<String> uipIds); List<CustomerStatusListVo> selectStatusList(List<String> uipIds);
List<String> selectUipIdList(List<String> uipIds);
} }
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto; import com.dsk.common.dtos.ComposeQueryDto;
/** /**
...@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService { ...@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
TableDataInfo page(ComposeQueryDto compose) throws Exception; AjaxResult enterprisePage(ComposeQueryDto compose) throws Exception;
} }
...@@ -3,6 +3,7 @@ package com.dsk.system.service.impl; ...@@ -3,6 +3,7 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.config.RuoYiConfig; import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus; import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
...@@ -21,10 +22,10 @@ import com.dsk.system.domain.BusinessListDto; ...@@ -21,10 +22,10 @@ import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo; import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
import com.dsk.system.domain.vo.BusinessBrowseVo; import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessLabelVo;
import com.dsk.system.domain.vo.BusinessListVo; import com.dsk.system.domain.vo.BusinessListVo;
import com.dsk.system.mapper.BusinessInfoMapper; import com.dsk.system.mapper.BusinessInfoMapper;
import com.dsk.system.mapper.BusinessLabelMapper; import com.dsk.system.mapper.BusinessLabelMapper;
import com.dsk.system.mapper.BusinessRelateCompanyMapper;
import com.dsk.system.mapper.BusinessUserMapper; import com.dsk.system.mapper.BusinessUserMapper;
import com.dsk.system.service.IBusinessInfoService; import com.dsk.system.service.IBusinessInfoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -36,7 +37,6 @@ import javax.annotation.Resource; ...@@ -36,7 +37,6 @@ import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 项目详情Service业务层处理 * 项目详情Service业务层处理
...@@ -52,8 +52,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -52,8 +52,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Resource @Resource
private BusinessUserMapper businessUserMapper; private BusinessUserMapper businessUserMapper;
@Resource @Resource
private BusinessRelateCompanyMapper businessRelateCompanyMapper;
@Resource
private BusinessLabelMapper businessLabelMapper; private BusinessLabelMapper businessLabelMapper;
@Resource @Resource
private ReadBusinessInfoExcel readBusinessInfoExcel; private ReadBusinessInfoExcel readBusinessInfoExcel;
...@@ -108,12 +106,15 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -108,12 +106,15 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//商务团队 //商务团队
businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId)); businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId));
//查询是否是项目创建人 //查询是否是项目创建人
Long userId = SecurityUtils.getLoginUser().getUserId(); // Long userId = SecurityUtils.getLoginUser().getUserId();
if (userId == null) throw new BaseException("请登录"); // if (userId == null) throw new BaseException("请登录");
Long userId = 103l;
Integer founder = businessUserMapper.selectFounder(businessId, userId); Integer founder = businessUserMapper.selectFounder(businessId, userId);
businessBrowseVo.setIsFounder(founder == null ? 0 : founder); businessBrowseVo.setIsFounder(founder == null ? 0 : founder);
//查询项目标签 //查询项目标签
businessBrowseVo.setLabelList(businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId)).stream().map(p -> p.getLabel()).collect(Collectors.toList())); List<BusinessLabel> labels = businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId));
String labelList = CollectionUtil.isEmpty(labels) ? null : JSONObject.toJSONString(BeanUtil.copyToList(labels, BusinessLabelVo.class));
businessBrowseVo.setLabelList(labelList);
//相关数据统计 //相关数据统计
BusinessBrowseVo total = businessInfoMapper.selectTotal(businessId); BusinessBrowseVo total = businessInfoMapper.selectTotal(businessId);
businessBrowseVo.setBacklogCount(total.getBacklogCount()); businessBrowseVo.setBacklogCount(total.getBacklogCount());
......
...@@ -11,10 +11,7 @@ import com.dsk.system.domain.customer.Customer; ...@@ -11,10 +11,7 @@ import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.CustomerUser; import com.dsk.system.domain.customer.CustomerUser;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto; import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo; import com.dsk.system.domain.customer.vo.*;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
import com.dsk.system.dskService.EnterpriseService; import com.dsk.system.dskService.EnterpriseService;
import com.dsk.system.mapper.CustomerMapper; import com.dsk.system.mapper.CustomerMapper;
import com.dsk.system.mapper.CustomerUserMapper; import com.dsk.system.mapper.CustomerUserMapper;
...@@ -51,16 +48,6 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -51,16 +48,6 @@ public class CustomerServiceImpl implements ICustomerService {
@Override @Override
public List<CustomerListVo> selectList(CustomerSearchDto dto) { public List<CustomerListVo> selectList(CustomerSearchDto dto) {
dto.setUserId(SecurityUtils.getUserId()); dto.setUserId(SecurityUtils.getUserId());
// List<CustomerListVo> vos = baseMapper.selectList(dto);
// vos.parallelStream().forEach(vo -> {
// //合作项目
// vo.setCooperationProject(businessInfoService.selectCountByStatusAndCustomerId(2, vo.getCustomerId()));
// //跟进项目
// vo.setFollowProject(businessInfoService.selectCountByStatusAndCustomerId(1, vo.getCustomerId()));
// //储备项目
// vo.setReserveProject(businessInfoService.selectCountByStatusAndCustomerId(0, vo.getCustomerId()));
// });
// return vos;
return baseMapper.selectList(dto); return baseMapper.selectList(dto);
} }
...@@ -131,4 +118,10 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -131,4 +118,10 @@ public class CustomerServiceImpl implements ICustomerService {
return baseMapper.selectStatusList(uipIds, SecurityUtils.getUserId()); return baseMapper.selectStatusList(uipIds, SecurityUtils.getUserId());
} }
@Override
public List<String> selectUipIdList(List<String> uipIds) {
return baseMapper.selectUipIdList(uipIds, SecurityUtils.getUserId());
}
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.page.TableDataInfo; import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.model.EnterpriseInfoHeaderBody;
import com.dsk.common.dtos.ComposeQueryDto; import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.RegionalEnterprisesService; import com.dsk.system.service.RegionalEnterprisesService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -24,8 +31,51 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic ...@@ -24,8 +31,51 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Override @Override
public TableDataInfo page(ComposeQueryDto compose) throws Exception { public AjaxResult enterprisePage(ComposeQueryDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(pageDto, false, false));
return dskOpenApiUtil.responsePage(map); Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isNotEmpty(list)) {
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
//常合作客户id
Integer topCustomerId = MapUtils.getInteger(companyMap, "topCustomerId");
EnterpriseInfoHeaderBody body = new EnterpriseInfoHeaderBody();
body.setCompanyId(topCustomerId);
if (ObjectUtil.isNotEmpty(topCustomerId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
companyMap.put("topCustomer", companyName);
} else {
companyMap.put("topCustomer", null);
}
} else {
companyMap.put("topCustomer", null);
}
//常合作供应商id
Integer topSupplierId = MapUtils.getInteger(companyMap, "topSupplierId");
body.setCompanyId(topSupplierId);
if (ObjectUtil.isNotEmpty(topSupplierId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
companyMap.put("topSupplier", companyName);
} else {
companyMap.put("topSupplier", null);
}
} else {
companyMap.put("topSupplier", null);
}
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
} }
} }
...@@ -5,7 +5,6 @@ import com.dsk.acc.openapi.client.util.CommonUtils; ...@@ -5,7 +5,6 @@ import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto; import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.service.ICustomerService; import com.dsk.system.service.ICustomerService;
import com.dsk.system.service.UrbanInvestmentPlatformService; import com.dsk.system.service.UrbanInvestmentPlatformService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -52,21 +51,17 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -52,21 +51,17 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
for (Object dataMap : list) { for (Object dataMap : list) {
uipIds.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "uipId")); uipIds.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "uipId"));
} }
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusList(uipIds); List<String> claimStatusList = iCustomerService.selectUipIdList(uipIds);
//按照城投企业id合并两个list //按照城投企业id合并两个list
for (Object companyObj : list) { for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
String uipId = MapUtils.getString(companyMap, "uipId","uipId"); String uipId = MapUtils.getString(companyMap, "uipId","uipId");
if (CollectionUtils.isEmpty(claimStatusList)) { if (CollectionUtils.isEmpty(claimStatusList)) {
companyMap.put("claimStatus", 0); companyMap.put("claimStatus", 0);
} } else if (claimStatusList.contains(uipId)) {
for (CustomerStatusListVo vo : claimStatusList) { companyMap.put("claimStatus", 1);
if (uipId.equals(vo.getUipId())) { } else {
companyMap.put("claimStatus", 1); companyMap.put("claimStatus", 0);
} else {
companyMap.put("claimStatus", 0);
}
} }
} }
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<delete id="deleteBusinessLabelById"> <delete id="deleteBusinessLabelById">
delete delete
from business_label from business_label
where business_id = #{businessId} and label = #{label} where id = #{labelId}
</delete> </delete>
<delete id="deleteBusinessLabelByIds" parameterType="String"> <delete id="deleteBusinessLabelByIds" parameterType="String">
......
...@@ -10,17 +10,6 @@ ...@@ -10,17 +10,6 @@
ct.performance_characteristic, ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time ct.performance_characteristic, ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time
</sql> </sql>
<select id="selectList1" resultType="com.dsk.system.domain.customer.vo.CustomerListVo">
select
u.nick_name followUser,
<include refid="Base_Bean"></include>
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
join sys_user u on ctu.user_id = u.user_id
where ctu.user_id = #{dto.userId}
<if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if>
</select>
<select id="selectList" resultType="com.dsk.system.domain.customer.vo.CustomerListVo"> <select id="selectList" resultType="com.dsk.system.domain.customer.vo.CustomerListVo">
select select
u.nick_name followUser, bi1.num reserveProject, bi2.num followProject, bi3.num cooperationProject, u.nick_name followUser, bi1.num reserveProject, bi2.num followProject, bi3.num cooperationProject,
...@@ -69,5 +58,16 @@ ...@@ -69,5 +58,16 @@
</foreach> </foreach>
</select> </select>
<select id="selectUipIdList" resultType="java.lang.String">
select
ct.uip_id
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
where ctu.user_id = #{userId} and ct.uip_id in
<foreach collection="uipIds" item="uipId" open="(" separator="," close=")">
#{uipId}
</foreach>
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment