Commit 281f1983 authored by caixingbing's avatar caixingbing
parents 863b3a70 ed02fd1a
......@@ -33,8 +33,8 @@ public class EnterpriseController {
return enterpriseService.infoHeader(body);
}
@ApiOperation(value = "企业统计信息")
@PostMapping(value = "statistic(建设库)")
@ApiOperation(value = "企业统计信息(建设库)")
@PostMapping(value = "statistic")
public R statistic(@RequestBody @Valid EnterpriseStatisticBody vo) throws Exception {
return enterpriseService.statistic(vo);
}
......
......@@ -12,6 +12,11 @@ import lombok.Data;
@Data
public class SpecialPurposeBondsDto {
/**
* 省Id
*/
private Integer provinceId;
/**
* 项目类型
*/
......
......@@ -12,4 +12,8 @@ import lombok.Data;
*/
@Data
public class SpecialPurposeBondsPageDto extends BasePage {
/**
* 省Id
*/
private Integer provinceId;
}
......@@ -27,5 +27,21 @@ let regionWebList= function regionWebList(param) {
method: 'get',
})
}
// 查甲方选项
let uipGroupData= function uipGroupData(param) {
return request({
url: '/enterprise/uipGroupData',
method: 'post',
})
}
// 查甲方列表
let uipSerach= function uipSerach(param) {
return request({
url: '/enterprise/uipSerach',
method: 'post',
data: param
})
}
export default {aptitudeCode,personCert,searchDic,regionWebList}
\ No newline at end of file
export default {aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach}
\ No newline at end of file
......@@ -10,6 +10,11 @@
>span{
opacity: 0.4;
&:last-child{opacity:0.8}
&.on:hover{
color: #0081FF;
opacity: 1;
cursor: pointer;
}
}
}
.overflows{
......@@ -71,6 +76,8 @@
.con{
>span{
opacity: 0.8;
float: left;
margin-top: 3px;
}
.inputxt{
display: inline-block;
......
......@@ -416,7 +416,7 @@ select {
}
.toolbar-right-download {
padding: 8px 21px;
padding: 6px 18px;
margin: 0px;
cursor: pointer;
font-weight: 400;
......@@ -425,6 +425,8 @@ select {
border-radius: 5px 5px 5px 5px;
border: 1px solid #D9D9D9;
text-align: center;
font-size:14px;
font-weight: 400;
}
.toolbar-right-download .el-icon-arrow-down{
margin-left: 8px;
......@@ -692,3 +694,24 @@ select {
.select-list .el-radio__input {
display: none;
}
.checkbox{
display: flex;
align-items: center;
}
.checkbox .checkbox-titel{
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
margin-right:24px;
}
.checkbox .checkbox-content{
display: flex;
align-items: center;
}
.checkbox .el-checkbox__label{
padding-left: 8px;
color: #232323;
}
.checkbox .checkbox-content .checkbox-content-qx{
margin-right: 30px;
}
\ No newline at end of file
......@@ -72,7 +72,8 @@ export default {
data: params,
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(res => {
const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
console.log(res)
const blob = new Blob([res.data], { type: 'application/octet-stream/pdf/doc/xlsx/xls/docx' })
this.saveAs(blob, decodeURI(res.headers['download-filename']))
})
},
......
......@@ -142,7 +142,7 @@ export const constantRoutes = [
path: '/macro/financing/details/:id(\\d+)',
component: () => import('@/views/macro/financing/details'),
name: 'financingDetails',
meta: { title: '区域专项债详情',icon: ''}
meta: { title: '区域专项债详情',icon: 'radar'}
}
]
},
......
......@@ -20,7 +20,7 @@
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="dc">
<div class="total">126</div>
<div class="total">{{tableData.total}}</div>
<div class="btn-export" @click="pldrs"><img src="@/assets/images/project/import.png">批量导入</div>
<div class="btn btn_primary h32 p10" @click="opennew"><div class="img img1"></div>添加客户</div>
</div>
......@@ -47,8 +47,8 @@
<div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row.companyId,'')">{{scope.row.companyName}}</div>
<div class="ps3">
<div @click="toDetail(scope.row.companyId,1)">写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div @click="toDetail(scope.row.companyId,2)">编辑信息<img src="@/assets/images/project/edit_2.png"></div>
<div @click="toDetail(scope.row,'gjjl')">写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div @click="toDetail(scope.row,'preference')">编辑信息<img src="@/assets/images/project/edit_2.png"></div>
</div>
</div>
</template>
......@@ -99,7 +99,7 @@
label="注册资本金(万元)"
width="140">
<template slot-scope="scope">
{{scope.row.registerCapitalStr || '--'}}
{{scope.row.registerCapital || '--'}}
</template>
</el-table-column>
<el-table-column
......@@ -227,7 +227,7 @@
</el-dialog>
</el-card>
</div>
<batchimport v-if="pldr" :importtype="types" @cancels="importCancel" @getdatas="handleCurrentChange(1)"></batchimport>
<batchimport v-if="pldr" :importtype="types" @cancels="cancelimport" @getdatas="handleCurrentChange(1)"></batchimport>
</div>
</template>
......@@ -304,7 +304,7 @@ export default {
pldrs(){
this.pldr = true
},
importCancel(){
cancelimport(){
this.pldr = false
},
//获取客户列表
......@@ -314,12 +314,11 @@ export default {
})
},
//跳转到客户详情
toDetail(id,type){
if(type == 1){//跟进
}else if(type == 2){//编辑信息
}
toDetail(row,type){
let customerId = row.customerId
let companyId = row.companyId
let path = type
this.$router.push({path:'/party/party-a',query:{customerId:customerId,companyId:companyId,path:path}})
},
//翻页
handleCurrentChange(val) {
......
......@@ -31,9 +31,9 @@
<Hiscontract v-if="currentPath.pathName=='hiscontract'" :company-id="companyId" />
<Bidrecords v-if="currentPath.pathName=='bidrecords'" :company-id="companyId" />
<!-- 投诚分析 -->
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" :companyInfo="companyInfo" />
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" />
<SameRegion v-if="currentPath.pathName=='sameRegion'" :company-id="companyId" />
<SameRegion v-if="currentPath.pathName=='sameRegion'" :company-id="companyId" :companyInfo="companyInfo" />
<!-- 风险信息 -->
<Punish v-if="currentPath.pathName=='punish'" :company-id="companyId" />
<BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" :company-id="companyId" />
......
......@@ -18,7 +18,7 @@
@handle-current-change="handleCurrentChange"
>
<template slot="projectName" slot-scope="data">
<router-link :to="''+ data.row.id" style="color: #0081FF">{{ data.row.projectName }}</router-link>
<router-link to="" tag="a" class="a-link">{{ data.row.projectName }}</router-link>
</template>
</tables>
......
......@@ -30,9 +30,6 @@ import dataRegion from '@/assets/json/dataRegion'
import {
regionalEconomy
} from '@/api/detail/party-a/urbanLnvestment'
import {
infoHeader
} from '@/api/detail/party-a/index'
export default {
name: 'regionalEconomies',
components: {
......@@ -42,14 +39,18 @@ export default {
companyId: {
type: Number,
default: 0
},
companyInfo: {
type: Object,
default: {}
}
},
data() {
return {
addressList:'',
params: {
provinceId: 500000,
cityId: 500100
provinceId: this.companyInfo.provinceId,
cityId: this.companyInfo.cityId
},
labels: [
'指标',
......@@ -231,16 +232,13 @@ export default {
//地区
regionalEconomys() {
this.tableLoading = true
infoHeader({companyId: this.companyId}).then(res => {
regionalEconomy({
provinceId: res.data.provinceId,
cityId: res.data.cityId
}).then(res => {
if(this.companyInfo){
regionalEconomy(this.params).then(res => {
this.tableData = res.data
this.tableLoading = false
})
this.dataRegion(res.data.provinceId, res.data.cityId)
})
this.dataRegion(this.companyInfo.provinceId, this.companyInfo.cityId)
}
},
dataRegion(p,c) {
var str = [];
......
......@@ -98,7 +98,7 @@
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="data">
<router-link :to="''+ data.row.companyId" style="color: #0081FF">{{ data.row.companyName }}</router-link>
<router-link to="" tag="a" class="a-link">{{ data.row.companyName }}</router-link>
</template>
</tables>
......@@ -112,9 +112,6 @@ import {
urbanInvestmentPage,
uipGroupData
} from '@/api/detail/party-a/urbanLnvestment'
import {
infoHeader
} from '@/api/detail/party-a/index'
export default {
name: 'SameRegion',
mixins: [mixin],
......@@ -125,6 +122,10 @@ export default {
companyId: {
type: Number,
default: 0
},
companyInfo: {
type: Object,
default: {}
}
},
data() {
......@@ -200,12 +201,12 @@ export default {
}
},
created() {
infoHeader({companyId: this.companyId}).then(res => {
this.queryParams.provinceId = res.data.provinceId
this.queryParams.cityId = res.data.cityId
if(this.companyInfo){
this.queryParams.provinceId = this.companyInfo.provinceId
this.queryParams.cityId = this.companyInfo.cityId
this.handleQuery()
this.getScreen()
})
}
},
computed: {
......
......@@ -13,8 +13,8 @@
</div>
</div>
</div>
<!-- 企业专项债 -->
<!-- <debtProject v-if="personnelHerf=='debtProject'" /> -->
<!-- 查业主单位 -->
<Owner v-if="personnelHerf=='Owner'" />
<!-- 查企业 -->
<SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" />
......@@ -25,28 +25,29 @@
</template>
<script>
import SearchEnterprise from "./components/SearchEnterprise/index.vue";
import Owner from "./components/Owner/index.vue";
import "@/assets/styles/public.css";
export default {
name: 'enterpriseData',
components: { SearchEnterprise },
components: { SearchEnterprise,Owner },
data() {
return {
// tablist
personnelList: [{
key: '1',
status: false,
key: 'Owner',
status: true,
value: '查业主单位',
},
{
key: 'SearchEnterprise',
status: true,
status: false,
value: '查建筑企业',
},
],
personnelHerf:'SearchEnterprise'
personnelHerf:'Owner'
}
},
created() {},
......
......@@ -86,6 +86,8 @@ export default {
if(this.queryParams.order){
params.order=this.queryParams.order
}
params.provinceIds=[this.dataQuery.provinceId]
nationalPage(params).then(res => {
this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount
......
<template>
<div class="app-container enterprises">
<div class="flex-box eco-header">
<el-tabs v-model="activeName">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="本地企业" name="first"></el-tab-pane>
<el-tab-pane label="异地备案" name="second"></el-tab-pane>
</el-tabs>
<div class="location"><i class="el-icon-location"></i>重庆市</div>
<div class="location"><i class="el-icon-location"></i>{{province}}</div>
</div>
<div class="content">
<div class="search">
<el-cascader
ref="address"
ref="aptitudeCode"
:options="aptitudeCodeList"
:props="props"
v-model="queryParams.codeStr"
@change="handleChange"
placeholder="资质资格"
collapse-tags
clearable></el-cascader>
<el-input placeholder="输入企业名称关键词" v-model="queryParams.key">
<el-button slot="append">搜索</el-button>
<el-input placeholder="输入企业名称关键词" v-model="queryParams.ename">
<el-button slot="append" @click="querySubmit()">搜索</el-button>
</el-input>
<span class="total">{{tableDataTotal}}</span>
</div>
......@@ -36,22 +37,22 @@
</el-table-column>
<el-table-column label="公司名称" align="left" width="300">
<template slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.name}}</router-link>
<router-link to="" tag="a" class="a-link" v-html="scope.row.name"></router-link>
</template>
</el-table-column>
<el-table-column label="注册地区" prop="address" width="80"/>
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="120" align="right" />
<el-table-column label="专业人员" prop="persionCount" sortable width="130" align="right" />
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="130" align="right" />
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="四库业绩" prop="skyCount" sortable width="130" align="right" />
<el-table-column label="公路业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="水利业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="常合作业主" prop="cgfs" width="280" align="right" />
<el-table-column label="客户(个)" prop="customerCount" sortable width="130" align="right" />
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" align="right" />
<el-table-column label="常合作供应商" prop="cgfs" width="280" align="right" />
<el-table-column label="注册地址" prop="domicile" width="150"/>
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="100"/>
<el-table-column label="专业人员" prop="persionCount" sortable width="100"/>
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="100"/>
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160"/>
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160"/>
<el-table-column label="四库业绩" prop="skyCount" sortable width="100"/>
<el-table-column label="公路业绩" prop="cgfs" sortable width="100"/>
<el-table-column label="水利业绩" prop="cgfs" sortable width="100"/>
<el-table-column label="常合作业主" prop="cgfs" width="130"/>
<el-table-column label="客户(个)" prop="customerCount" sortable width="100"/>
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" />
<el-table-column label="常合作供应商" prop="supplierCount" width="120"/>
</el-table>
</div>
<div class="pagination-box">
......@@ -68,7 +69,7 @@
// import LocalEnterprises from './component/localEnterprises'
// import Offsite from './component/offsite'
import aptitudeCode from '@/assets/json/aptitudeCode'
import { enterprise } from '@/api/macro/macro'
import { enterprise,location } from '@/api/macro/macro'
export default {
name: 'Enterprises',
// components: {LocalEnterprises,Offsite},
......@@ -76,36 +77,36 @@ export default {
return {
activeName: 'first',
queryParams:{
key:'',
codeStr:''
ename:'',
codeStr:'',
},
props: {
value: 'id',
multiple: true,
// checkStrictly:true,
checkStrictly:true,
label:'name',
children:'list',
expandTrigger:'hover'
},
tableData: [
{
dataId:'1',
cgrssqy:'100',
cgfs:'200',
address:'江北区',
name:'重庆市江北区国有资本投资运营管理集团有限公司'
}
],
tableData: [],
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 1,
aptitudeCodeList:[],
aptitudeType:'',
province:'',
provinceId:''
}
},
created() {
this.aptitudeCode()
location({provinceId:'500000'}).then(res => {
this.province=res.data.currentProvince.regionName;
this.provinceId=res.data.currentProvince.id;
this.querySubmit()
})
this.aptitudeCode()
},
methods: {
//资质Json
......@@ -129,8 +130,32 @@ export default {
if(this.queryParams.order){
params.order=this.queryParams.order
}
params.aptitudeQueryDto={
filePlaceType:this.activeName === 'first' ? 3 : 2,
aptitudeSource:'new',
aptitudeQueryType:'or',
filePlaceCode:this.provinceId
}
if(this.queryParams.ename){
params.aptitudeQueryDto.ename=this.queryParams.ename
}
if(this.aptitudeType){
let aptitudeType=[];
aptitudeType.push({
codeStr:this.aptitudeType,
queryType: "and",
aptitudeType: "qualification"
})
params.aptitudeQueryDto.aptitudeDtoList=aptitudeType
}
if(this.aptitudeType || this.queryParams.ename){
}
console.log(params)
enterprise(params).then(res => {
console.log(res.data)
this.tableData=res.data.list;
this.tableDataTotal=res.data.total;
})
},
// 重置页数
......@@ -144,6 +169,28 @@ export default {
this.pageIndex = val
this.querySubmit()
},
handleChange(){
// console.log(this.queryParams.codeStr)
let codeStr=this.queryParams.codeStr;
let arr=[]
for(let i=0; i<codeStr.length; i++){
arr.push(codeStr[i][codeStr[i].length - 1])
}
this.aptitudeType=arr.join(',')
console.log(this.aptitudeType)
this.$refs.aptitudeCode.toggleDropDownVisible(false)
this.querySubmit()
},
handleClick(){
this.queryParams.codeStr=[]
this.aptitudeType='';
this.queryParams={
ename:'',
codeStr:'',
}
this.pageIndex=1;
this.querySubmit()
}
}
}
</script>
......
......@@ -2,10 +2,8 @@
<div class="app-container qyzx-details">
<p class="tab">区域专项债 <span>/ 专项债项目详情</span></p>
<div class="content main1">
<div class="title"><img src="@/assets/images/financing/head_icon.png" />重庆至黔江高速铁路项目一项目详情</div>
<p>本项目是厦渝高铁通道的重要组成部分,是成渝地区、海西经济区间高速客运交流的主通道;是成渝地区与华南、华东地区间客运交流的辅助通道;是以重庆主城为核心的城际客流的快速客运通道;
是整合区域旅游资源,促进沿线旅游资源开发的黄金旅游通道。线路起自重庆站,经巴南、南川、武隆、彭水,终至江,正线全长265公里,设8座,其中新建6座。
同步建设重庆东动车所动车出入段,重庆枢纽东环联络线。</p>
<div class="cont-title"><img src="@/assets/images/financing/head_icon.png" />{{details.projectName}}</div>
<p>{{details.projectScale}}</p>
</div>
<div class="content main2">
<div class="common-title">项目筹资</div>
......@@ -13,28 +11,28 @@
<div class="list">
<div class="item color1">
<div class="item-left">
<h4>535.00<span>亿</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>535.00<span>亿</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>535.00<span>亿</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>535.00<span>亿</span></h4>
<h4>{{details.specialCapital || '-'}}<span>{{details.specialCapital ? '亿' : ''}}</span></h4>
<p>专项债用作资本金</p>
</div>
<img class="img" src="@/assets/images/financing/icon4.png" />
......@@ -43,28 +41,28 @@
<div class="list">
<div class="item color4">
<div class="item-left">
<h4>535.00<span>亿</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>535.00<span>亿 / 10只</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>535.00<span>亿</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>535.00<span>亿</span></h4>
<h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '亿' : ''}}</span></h4>
<p>政府安排资金</p>
</div>
<img class="img" src="@/assets/images/financing/icon8.png" />
......@@ -77,27 +75,27 @@
<div class="main3-box">
<p>
<label class="label">项目总收益/项目总债务融资本息(覆盖倍数)</label>
<span>1.36</span>
<span>{{details.econData007}}</span>
</p>
<p>
<label class="label">项目总收益/项目总地方债券融资本息</label>
<span>1.96</span>
<span>{{details.econData008}}</span>
</p>
<p>
<label class="label">项目总收益/项目总投资</label>
<span>1.96</span>
<span>{{details.econData009}}</span>
</p>
<p>
<label class="label">项目总收益/项目总地方债券融资本金</label>
<span>1.96</span>
<span>{{details.econData010}}</span>
</p>
<p>
<label class="label">项目总收益/项目总债务融资本金</label>
<span>2.45</span>
<span>{{details.econData011}}</span>
</p>
<p>
<label class="label">项目预测总收益</label>
<span>2.45倍</span>
<span>{{details.projectForecastTotalRevenue}}亿</span>
</p>
</div>
</div>
......@@ -105,11 +103,11 @@
<div class="common-title">项目当事人</div>
<div class="main4-box">
<label class="label">项目主体</label>
<span>重庆铁路投资集团有限公司</span>
<span>{{details.projectEntity || '-'}}</span>
<label class="label">主管部门</label>
<span>-</span>
<span>{{details.chargeDepartment || '-'}}</span>
<label class="label">实施单位</label>
<span>重庆铁路投资集团有限公司</span>
<span>{{details.piu || '-'}}</span>
</div>
</div>
<div class="content main5">
......@@ -122,15 +120,19 @@
fit
highlight-current-row
>
<el-table-column prop="name" label="债券简称">
<el-table-column prop="bondAbbreviation" label="债券简称">
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.bondAbbreviation}}</router-link>-->
<!--</template>-->
</el-table-column>
<el-table-column label="招标日期" width="220">
<template slot-scope="scope">
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.name}}</router-link>
{{formatDate(scope.row.tenderDate)}}
</template>
</el-table-column>
<el-table-column prop="name" label="招标日期" width="220" />
<el-table-column prop="gm" label="专项债规模(亿)" width="260" />
<el-table-column prop="gm" label="用于项目规模(亿)" width="260" />
<el-table-column prop="zj" label="是否资本金" width="200" />
<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>
</div>
......@@ -138,28 +140,53 @@
</template>
<script>
import { details,bondPage } from '@/api/macro/macro'
export default {
name: 'financingDetails',
data() {
return {
id:'',
tableData:[
{
id:0,
name:'20重庆债14(2005938)',
time:'2020-09-18',
gm:'285.24',
zj:'否',
}
]
tableData:[],
details:{},
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 1,
}
},
created() {
console.log(this.$route.params)
this.id=this.$route.params.id
this.id=this.$route.params.id;
this.getDetails()
},
methods: {
getDetails(){
details({id:this.id}).then(res => {
this.details=res.data;
this.getData()
})
},
getData(){
const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:'2e59fca0-21a6-47db-975d-5481e1c52f45_74'}
// const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:this.details.specialBondUuid}
bondPage(params).then(res => {
console.log(res.data)
this.tableData=res.data.list;
this.tableDataTotal=res.data.totalCount;
})
},
formatDate(cellValue) {
if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue)
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}
}
}
</script>
......@@ -186,7 +213,7 @@ export default {
margin-bottom: 8px;
}
.main1{
.title{
.cont-title{
color: #232323;
font-size: 16px;
line-height: 28px;
......
......@@ -55,7 +55,7 @@
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable="custom" width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" sortable="custom" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" sortable="custom" width="150" />
<el-table-column prop="specialCapital" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="projectEntity" label="项目主体">
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
......
......@@ -42,7 +42,7 @@
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">成功导入客户信息</div>
<div class="p2">成功导入{{titletext}}信息</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
......@@ -79,7 +79,7 @@
console.log(this.importtype )
if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '项目'
this.titletext = '商机'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
}
if(this.importtype == 'custom'){//客户管理
......@@ -101,8 +101,10 @@
onSuccess(res, file, fileList) {
if(res.code == 200 )
this.addsuccess = true
else
this.$message.error({message:res.msg,showClose:true})
else {
this.importCancel()
this.$message.error({ message: res.msg, showClose: true })
}
},
downloadClick() {
......
......@@ -65,7 +65,7 @@
<span v-if="showtype == 'gjdt' && item.companyName != ''">关联企业:{{item.companyName}}</span>
<span v-if="item.position">职位:{{item.position}}</span>
<span v-if="item.createTime">拜访时间:{{item.createTime.slice(0, 10)}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.createTime.slice(0, 10)}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.nextVisitTime.slice(0, 10)}}</span>
</div>
</div>
</div>
......@@ -342,8 +342,11 @@
let day = times.getDate()
day = day<10?"0"+day:day
let hour = times.getHours()
hour = hour<10?"0"+hour:hour
let minute = times.getMinutes()
minute = minute<10?"0"+minute:minute
let second = times.getSeconds()
second = second<10?"0"+second:second
return year+'-'+month+'-'+day+' '+hour+":"+minute+":"+second
}
}
......
......@@ -28,7 +28,7 @@
</div>
</div>
</div>
<div class="tasktitle"><strong>我的任务</strong><span @click="getYQ">4条已逾期</span><!--<span class="on">4条已逾期</span>--></div>
<div class="tasktitle"><strong>我的任务</strong><span @click="getYQ">{{yqnum}}条已逾期</span><!--<span class="on">4条已逾期</span>--></div>
<div class="tasklist" v-for="(item,index) in datalist.rows">
<div class="task_name">{{item.task}}</div>
<div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div>
......@@ -39,7 +39,6 @@
<i class="el-icon-caret-bottom"></i>
</span>
<el-select placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-option label="未完成" value="0"></el-option>
<el-option label="未完成" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
......@@ -94,6 +93,7 @@
state:null,
},
datalist:[],
yqnum:0,//已逾期数量
}
},
created(){
......@@ -117,6 +117,12 @@
getList(){
getGZDB(this.searchPram).then(result=>{
this.datalist = result.code == 200?result:[]
let num = 0
this.datalist.rows.forEach(item=>{
if(item.state == 0)
num++;
})
this.yqnum = num
})
},
handleCurrentChange(val){
......
......@@ -110,7 +110,7 @@
<div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(1,$event)" style="width: 56px">确定</div>
<div class="btnsmall btn_primary h28" @click="isphone(1,xmsldata.supervisorPhone)" style="width: 56px">确定</div>
<div class="cancels h28" @click="nowedit = -1" style="">取消</div>
</div>
</div>
......@@ -123,7 +123,7 @@
<div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" @click="isphone(2,$event)" style="width: 56px">确定</div>
<div class="btnsmall btn_primary h28" @click="isphone(2,xmsldata.constructionPhone)" style="width: 56px">确定</div>
<div class="cancels h28" @click="nowedit = -1" style="">取消</div>
</div>
</div>
......@@ -214,16 +214,16 @@
},
//验证电话号码
isphone(type,value){
var regPartton = /1[3-8]+\d{9}/;
var regPartton = /1[3-9]+\d{9}/;
var regPartton1 = /^(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)$/;
if (!regPartton.test(value) && !regPartton1.test(value)) {
this.$message.error("请输入正确的电话");
} else {
if (type == 1) {
this.editXMSL({ supervisorPhone: this.xmsldata.supervisorPhone })
this.editXMSL({ supervisorPhone: value })
}
if (type == 2) {
this.editXMSL({ constructionPhone: this.xmsldata.constructionPhone })
this.editXMSL({ constructionPhone: value })
}
}
},
......
......@@ -198,9 +198,7 @@
},
downnlod(row){
let param = {filePath:row.filePath}
// this.$download.saveAs(row.filePath,row.name);
this.$download.exportByPost('/business/file/download',param);
// // this.$download()
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
......
......@@ -3,9 +3,9 @@
<div class="miantitle">
<template v-if="!detailId">
<span>项目管理</span>
<span> / 商机列表</span>
<span class="on" @click="tolist"> / 商机列表</span>
</template>
<span v-else @click="cooperateList">合作情况</span>
<span class="on" v-else @click="cooperateList">合作情况</span>
<span> / 项目详情</span>
</div>
<div class="app-container" v-if="ProjectData">
......@@ -89,11 +89,10 @@
</div>
</div>
<div class="schedule">
<div class="child" v-for="(item,index) in projectStage" @mouseover="hover(item.dictValue)" @mouseleave="hover(-1)" @click="choose(item.dictValue)">
<img v-if="item.dictValue == lastindex" src="@/assets/images/project/pro_2.png">
<img v-else-if="item.dictValue == thisindex" src="@/assets/images/project/pro_3.png">
<img v-else src="@/assets/images/project/pro_1.png">
<span :class="{'now':item.dictValue == thisindex}">{{item.dictLabel}}</span>
<div class="child" v-for="(item,index) in projectStage" @click="choose(item.dictValue)" :class="{'on':item.dictValue == thisindex}">
<div class="left"></div>
<span>{{item.dictLabel}}</span>
<div class="right"></div>
</div>
</div>
......@@ -179,6 +178,7 @@
}
},
created(){
this.thistag = this.$route.query.tag
this.prvinceTree()
this.id = this.detailId ? this.detailId : this.$route.query.id
//项目阶段
......@@ -232,7 +232,8 @@
locks(isPrivate){
isPrivate = isPrivate==0?1:0
this.editXMSL({isPrivate:isPrivate})
this.lock = false
this.islock = false
this.ProjectData.isPrivate = isPrivate
},
editXMSL(param){
let params = param
......@@ -337,7 +338,10 @@
// 跳转到企业详情合作情况
cooperateList(){
this.$emit('close-detail')
}
},
tolist(){
this.$router.push({path:'/project/projectList'})
},
}
}
</script>
......@@ -395,30 +399,54 @@
}
}
.schedule{
display: flex;
padding-bottom: 8px;
width: 100%;
.child{
cursor: pointer;
margin-right: 4px;
color: #4f4f4f;
/*color: rgb(79,79,79);*/
color: rgba(35, 35, 35, 0.80);
position: relative;
width: 137px;
min-width: 137px;
padding: 0 20px;
height: 32px;
line-height: 32px;
text-align: center;
>img{
background: #F3F4F5;
margin-bottom: 8px;
display: inline-block;
.left{
width: 10px;
height: 32px;
background: url("../../../assets/images/project/icol1.png") no-repeat top center #fff;
position: absolute;
left: 0;
top: 0;
}
.right{
position: absolute;
width: 100%;
z-index: 0;
top: 0;
right: 0;
width: 10px;
height: 32px;
background: url("../../../assets/images/project/icor1.png") no-repeat top center #fff;
}
>span{
position: relative;
z-index: 1;
&.now{
&:hover{
background: #E3E6EA;
.left{
background: url("../../../assets/images/project/icol2.png") no-repeat top center #fff;
}
.right{
background: url("../../../assets/images/project/icor2.png") no-repeat top center #fff;
}
}
&.on{
background: #0081FF;
color: #fff;
.left{
background: url("../../../assets/images/project/icol3.png") no-repeat top center #fff;
}
.right{
background: url("../../../assets/images/project/icor3.png") no-repeat top center #fff;
}
}
}
......
......@@ -113,16 +113,16 @@
</div>
<div class="datalist">
<div class="datali" v-for="(item,index) in datalist">
<div class="det-title" @click="toDetail(item.id)">{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-title" @click="toDetail(item.id,'xmsl')">{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"><span class="tips tip1" v-if="item.label">{{item.label}}</span><span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
<div class="det-contets">
<div class="det-con">
<span>项目类型:</span>
<span>{{item.projectType}}</span>
<span>{{item.projectType || '--'}}</span>
</div>
<div class="det-con">
<span>投资估算(万元):</span>
<span>{{item.investmentAmount}}</span>
<span>{{item.investmentAmount || '--'}}</span>
</div>
<div class="det-con">
<span>最后跟进时间:</span>
......@@ -130,13 +130,13 @@
</div>
<div class="det-con">
<span>业主单位:</span>
<span class="wordprimary">{{item.ownerCompany}}</span>
<span class="wordprimary">{{item.ownerCompany || '--'}}</span>
</div>
</div>
<el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png">跟进</div>
<div class="i2"><img src="@/assets/images/edit.png">编辑</div>
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div>
<div class="i2"><img src="@/assets/images/edit.png" @click="toDetail(item.id,'xmsl')">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div>
<div class="delform" v-if="activeName=='first' && ondel == index">
......@@ -355,8 +355,8 @@ export default {
this.isshow = false
this.getList(1)
},
toDetail(id){
this.$router.push({ path: '/project/projectList/detail', query: {id:id} });
toDetail(id,tag){
this.$router.push({ path: '/project/projectList/detail', query: {id:id,tag:tag} });
},
handleClick(){
......
package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult;
......@@ -125,6 +126,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
Integer errorCount = 0;//失败条数
List<String> result = new LinkedList();//导入结果汇总
List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file);
if(CollectionUtil.isEmpty(businessInfoList))return AjaxResult.error("文档中无项目信息!");
for (BusinessExcelDto businessInfo : businessInfoList) {
//查询已有的项目名称
Integer count = businessInfoMapper.isRepetitionProjectName(businessInfo.getProjectName(), userId.intValue());
......
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