Commit 6ac417a2 authored by dengguangman's avatar dengguangman

Merge remote-tracking branch 'origin/master'

parents d3e2a207 702b00dc
......@@ -88,10 +88,12 @@ public class BusinessFileController extends BaseController {
//校验是否上传同名文件
File newFile = new File(filePath);
if (newFile.exists()) {
// 获取当前目录下的文件和文件夹
File[] files = newFile.listFiles();
for (File allFile : files) {
if(filename.equals(allFile.getName())) return error("文件已存在");
if (filename.equals(allFile.getName())) return error("文件已存在");
}
}
// 上传并返回文件全路径
......
......@@ -168,7 +168,7 @@ export function bondPage(param) {
//区域企业
export function enterprise(param) {
return request({
url: '/enterprise/page',
url: '/enterprises/regional/page',
method: 'POST',
data: param
})
......
......@@ -28,9 +28,7 @@
<el-table v-if="tableData.total > 0"
:data="tableData.rows"
stripe border
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}"
>
style="width: 100%">
<el-table-column
prop="index"
label="序号"
......
<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>
<div class="app-container part-container">
<div style="background: #FFFFFF; height: 300px;">
商务信息
<template v-if="isInfo">
<!-- 企业信息 -->
<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>
</template>
<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 {
name: 'Business',
props: ['customerIds', 'companyInfo'],
components: {
Info,
BasicIinformation,
ElCardinput
},
data() {
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() {
this.customerInfos()
//企业性质
getDictType('company_nature_type').then(result=>{
this.companyType.companyNaturelist = result.code == 200 ? result.data:[]
})
//企业级别
getDictType('company_level_type').then(result=>{
this.companyType.companyLevellist = result.code == 200 ? result.data:[]
})
//资信等级
getDictType('credit_level_type').then(result=>{
this.companyType.creditLevellist = result.code == 200 ? result.data:[]
})
},
methods: {
customerInfos(){
customerInfo(this.customerIds).then(res=>{
this.infos = res.data
this.isInfo = true
})
},
focusNowedits(e){
this.nowedit = e
}
}
}
</script>
<style lang="scss" scoped>
.part-container{
.part-container{
margin: 0;
padding: 0;
.view-content{
margin-top: 16px;
}
}
</style>
......@@ -90,13 +90,14 @@ export default {
{title: '开庭公告', pathName: 'openacourtsessionNotice'},
// {title: '信用中国', pathName: ''}
]},
// {title: '商务信息', pathName: 'business'},
{title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: 'preference'},
{title: '合作情况', pathName: 'cooperate'},
{title: '决策链条', pathName: 'decisionMaking'},
{title: '跟进记录', pathName: 'gjjl'}
],
customer:[
'business',
'preference',
'cooperate',
'decisionMaking',
......
......@@ -289,6 +289,7 @@ export default {
this.addParam.customerId = this.queryParams.customerId
this.addParam.companyId = this.info.companyId
this.addParam.userId = this.info.userId
this.addParam.investmentAmount = this.addParam.investmentAmount ? this.addParam.investmentAmount : null
addProject(this.addParam).then(result=>{
if(result.code == 200){
this.$message.success('添加成功!')
......
......@@ -43,6 +43,8 @@
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" />
<template v-if="customerId">
<!-- 商务信息 -->
<Business v-if="currentPath.pathName=='business'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" />
<!-- 合作情况 -->
......@@ -95,6 +97,7 @@ import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被
import Judgment from "./riskInformation/judgment" //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告
import Business from "./business" //商务信息
import Preference from "./preference" //招标偏好
import Cooperate from "./cooperate" //合作情况
import DecisionMaking from "./decisionMaking" //决策链条
......@@ -134,6 +137,7 @@ export default {
Judgment,
CourtNotice,
OpenacourtsessionNotice,
Business,
Preference,
Cooperate,
DecisionMaking,
......
This diff is collapsed.
......@@ -227,7 +227,6 @@ export default {
// return;
// }
});
console.log(sums)
return sums;
},
......
......@@ -29,7 +29,7 @@
<!--{{ scope.row.province}}{{scope.row.city ? '-': ''}}{{ scope.row.city}}{{scope.row.area ? '-': ''}}{{ scope.row.area}}-->
<!--</template>-->
<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>
</el-table-column>
......@@ -37,14 +37,14 @@
<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="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="170" :formatter="formatStatus"/>
<el-table-column prop="gbr" label="一般公共预算收入(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="gbe" label="一般公共预算支出(亿 元)" sortable width="190" :formatter="formatStatus"/>
<el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="180" :formatter="formatStatus"/>
<el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率(%)" sortable width="120":formatter="formatStatus"/>
<el-table-column prop="govDebtRateWild" label="债务率-宽口径(%)" sortable :formatter="formatStatus"/>
<el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="gbr" label="一般公共预算收入(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="gbe" label="一般公共预算支出(亿 元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="govFundIncome" label="政府性基金收入(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="govDebtBalance" label="地方政府债务余额(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="uipInterestBearingDebt" label="城投平台有息债务(亿元)" sortable width="200" :formatter="formatStatus"/>
<el-table-column prop="fiscalSelfSufficiencyRate" label="财政自给率(%)" sortable width="150" :formatter="formatStatus"/>
<el-table-column prop="govDebtRateWild" label="债务率-宽口径(%)" sortable width="170" :formatter="formatStatus"/>
</el-table>
</div>
<div class="pagination-box">
......@@ -147,6 +147,18 @@ export default {
message: '功能正在开发中',
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 {
if(key === '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)
},
//地区
......
......@@ -34,10 +34,10 @@
highlight-current-row
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>
</el-table-column>
<el-table-column label="公司名称" align="left" fixed>
<el-table-column label="公司名称" align="left" fixed width="300">
<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>
<span v-else v-html="scope.row.name" ></span>
......@@ -47,15 +47,15 @@
<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="recentlyCount" sortable="custom" width="120" :formatter="formatStatus"/>
<!--<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable="custom" width="160" :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="bidSumAmount" sortable="custom" width="170" :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="cgfs" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="常合作业主" prop="cgfs" width="130" :formatter="formatStatus"/>
<el-table-column label="公路业绩" prop="roadConservancy" sortable="custom" width="100" :formatter="formatStatus"/>
<el-table-column label="水利业绩" prop="waterConservancy" sortable="custom" width="100" :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="supplierCount" sortable="custom" width="130" :formatter="formatStatus"/>
<!--<el-table-column label="常合作供应商" prop="gys" width="120" :formatter="formatStatus"/>-->
<el-table-column label="供应商(个)" prop="supplierCount" sortable="custom" :formatter="formatStatus"/>
<el-table-column label="常合作供应商" prop="topSupplier" width="150" :formatter="formatStatus"/>
</el-table>
<div class="empty" v-if="tableDataTotal === 0">
<img class="img" src="@/assets/images/project/empty.png">
......
......@@ -11,28 +11,28 @@
<div class="list">
<div class="item color1">
<div class="item-left">
<h4>{{details.projectTotalInvestment || '-'}}<span>{{details.projectTotalInvestment ? '' : ''}}</span></h4>
<h4>{{details.projectTotalInvestment || '-'}}<span>{{details.projectTotalInvestment ? '亿' : ''}}</span></h4>
<p>项目总投资额</p>
</div>
<img class="img" src="@/assets/images/financing/icon1.png" />
</div>
<div class="item color2">
<div class="item-left">
<h4>{{details.projectCapital || '-'}}<span>{{details.projectCapital ? '' : ''}}</span></h4>
<h4>{{details.projectCapital || '-'}}<span>{{details.projectCapital ? '亿' : ''}}</span></h4>
<p>项目资本金</p>
</div>
<img class="img" src="@/assets/images/financing/icon2.png" />
</div>
<div class="item color3">
<div class="item-left">
<h4>{{details.specialBondFinancing || '-'}}<span>{{details.specialBondFinancing ? '' : ''}}</span></h4>
<h4>{{details.specialBondFinancing || '-'}}<span>{{details.specialBondFinancing ? '亿' : ''}}</span></h4>
<p>专项债融资</p>
</div>
<img class="img" src="@/assets/images/financing/icon3.png" />
</div>
<div class="item color4">
<div class="item-left">
<h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '' : ''}}</span></h4>
<h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '亿' : ''}}</span></h4>
<p>专项债用作资本金</p>
</div>
<img class="img" src="@/assets/images/financing/icon4.png" />
......@@ -41,28 +41,28 @@
<div class="list">
<div class="item color4">
<div class="item-left">
<h4>{{details.otherFunds || '-'}}<span>{{details.otherFunds ? '' : ''}}</span></h4>
<h4>{{details.otherFunds || '-'}}<span>{{details.otherFunds ? '亿' : ''}}</span></h4>
<p>其他资金</p>
</div>
<img class="img" src="@/assets/images/financing/icon5.png" />
</div>
<div class="item color3">
<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>
</div>
<img class="img" src="@/assets/images/financing/icon6.png" />
</div>
<div class="item color4">
<div class="item-left">
<h4>{{details.otherFinancing || '-'}}<span>{{details.otherFinancing ? '' : ''}}</span></h4>
<h4>{{details.otherFinancing || '-'}}<span>{{details.otherFinancing ? '亿' : ''}}</span></h4>
<p>其他融资</p>
</div>
<img class="img" src="@/assets/images/financing/icon7.png" />
</div>
<div class="item color2">
<div class="item-left">
<h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '' : ''}}</span></h4>
<h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '亿' : ''}}</span></h4>
<p>政府安排资金</p>
</div>
<img class="img" src="@/assets/images/financing/icon8.png" />
......@@ -95,7 +95,7 @@
</p>
<p>
<label class="label">项目预测总收益</label>
<span>{{details.projectForecastTotalRevenue || '-'}}{{details.projectForecastTotalRevenue ? '' : ''}}</span>
<span>{{details.projectForecastTotalRevenue || '-'}}{{details.projectForecastTotalRevenue ? '亿' : ''}}</span>
</p>
</div>
</div>
......@@ -130,8 +130,8 @@
{{formatDate(scope.row.tenderDate)}}
</template>
</el-table-column>
<el-table-column prop="actualBondIssueScale" label="专项债规模()" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模()" width="260" />
<el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" />
<el-table-column prop="isUsedCapital" label="是否资本金" width="200" />
</el-table>
</div>
......
......@@ -52,11 +52,11 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template>
</el-table-column>
<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="econData007" label="项目收益倍数(倍)" :formatter="formatStatus" align="right" sortable="custom" width="150" />
<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="160" />
<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="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="项目主体">
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
......
......@@ -104,7 +104,7 @@
</el-table-column>
<el-table-column prop="label" label="月份"/>
<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>
</div>
</div>
......
......@@ -10,7 +10,7 @@
<div class="main1">
<div style="height: 300px;">
<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 class="right">
<div id="gl-echarts" style="height: 260px;background: #ffffff;"></div>
......@@ -232,7 +232,7 @@ export default {
for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse();
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++){
if(res.data[i].levelList[j].levelValue === '特级'){
item.tjCount=res.data[i].levelList[j].count;
......
......@@ -244,7 +244,11 @@
<el-dialog :visible.sync="claimVisible" width="244" :show-close="false">
<div>认领成功,是否完善客户信息?</div>
<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>
</div>
</el-dialog>
......@@ -288,6 +292,8 @@ export default {
typeList:[],
statistics:{},
claimVisible:false,
customerId:'',
companyId:'',
}
},
watch:{
......@@ -386,7 +392,7 @@ export default {
this.tableData = res.data.list;
this.tableDataTotal = res.data.totalCount
})
urbanInvestmentStatistics(param).then(res => {
urbanInvestmentStatistics(params).then(res => {
this.statistics=res.data;
})
},
......@@ -581,9 +587,11 @@ export default {
});
},
handleClick(item){
this.companyId=item.companyId
claim({uipId:item.uipId,companyName:item.companyName}).then(res => {
if(res.code === 200){
this.claimVisible=true;
this.customerId=res.data.customerId;
}
})
},
......
......@@ -36,7 +36,7 @@
<div class="con i" style="width: 100%;">
<span style="float: left;margin-top: 2px">项目标签 :</span>
<div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img v-if="isDisabled == 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">
<el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div>
......@@ -323,10 +323,10 @@
})
// this.tipslit.push(this.tipsvalue)
},
deltip(value){
deltip(item){
let param={
businessId:this.id,
label:value
id:item.id
}
removeLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){
......@@ -341,7 +341,11 @@
getXMSL(){
getXMSL(this.id).then(result=> {
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.isDisabled = result.data.isFounder == 1 ? false:true
const spanStyle = document.querySelector(".rig1");
......
......@@ -9,7 +9,21 @@
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</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 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">
......@@ -53,7 +67,20 @@
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</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>
</template>
<el-table-column
......
......@@ -15,6 +15,11 @@ public class BusinessIdDto {
*/
private Integer businessId;
/**
* 项目标签id
*/
private Integer labelId;
/**
* 项目标签名称
*/
......
......@@ -2,8 +2,6 @@ package com.dsk.system.domain.vo;
import lombok.Data;
import java.util.List;
/**
* @author lxl
* @Description:
......@@ -90,7 +88,7 @@ public class BusinessBrowseVo {
/**
* 项目标签
*/
private List<String> labelList;
private String labelList;
/** 建设单位 */
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;
}
......@@ -3,6 +3,7 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult;
......@@ -21,10 +22,10 @@ import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo;
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.mapper.BusinessInfoMapper;
import com.dsk.system.mapper.BusinessLabelMapper;
import com.dsk.system.mapper.BusinessRelateCompanyMapper;
import com.dsk.system.mapper.BusinessUserMapper;
import com.dsk.system.service.IBusinessInfoService;
import lombok.extern.slf4j.Slf4j;
......@@ -36,7 +37,6 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 项目详情Service业务层处理
......@@ -52,8 +52,6 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Resource
private BusinessUserMapper businessUserMapper;
@Resource
private BusinessRelateCompanyMapper businessRelateCompanyMapper;
@Resource
private BusinessLabelMapper businessLabelMapper;
@Resource
private ReadBusinessInfoExcel readBusinessInfoExcel;
......@@ -108,12 +106,15 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//商务团队
businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId));
//查询是否是项目创建人
Long userId = SecurityUtils.getLoginUser().getUserId();
if (userId == null) throw new BaseException("请登录");
// Long userId = SecurityUtils.getLoginUser().getUserId();
// if (userId == null) throw new BaseException("请登录");
Long userId = 103l;
Integer founder = businessUserMapper.selectFounder(businessId, userId);
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.setBacklogCount(total.getBacklogCount());
......
......@@ -48,16 +48,6 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
public List<CustomerListVo> selectList(CustomerSearchDto dto) {
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);
}
......
......@@ -62,7 +62,7 @@
<delete id="deleteBusinessLabelById">
delete
from business_label
where business_id = #{businessId} and label = #{label}
where id = #{labelId}
</delete>
<delete id="deleteBusinessLabelByIds" parameterType="String">
......
......@@ -10,17 +10,6 @@
ct.performance_characteristic, ct.other_ms_characteistic, ct.create_id, ct.create_time, ct.update_id, ct.update_time
</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
u.nick_name followUser, bi1.num reserveProject, bi2.num followProject, bi3.num cooperationProject,
......
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