Commit d4a59a2d authored by yht15023815643's avatar yht15023815643

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 122f246a 59ab562f
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
<finalName>${project.artifactId}</finalName> <finalName>dsk-operate-sys</finalName>
</build> </build>
</project> </project>
...@@ -136,4 +136,10 @@ public class EnterpriseController { ...@@ -136,4 +136,10 @@ public class EnterpriseController {
return enterpriseService.getUipIdByCid(vo); return enterpriseService.getUipIdByCid(vo);
} }
@ApiOperation(value = "企业-财务数据")
@PostMapping(value = "financialData")
public R financialData(@RequestBody EnterpriseFinancialDataBody vo) throws Exception {
return enterpriseService.financialData(vo);
}
} }
...@@ -134,7 +134,7 @@ spring: ...@@ -134,7 +134,7 @@ spring:
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 6 database: 15
# 密码 # 密码
password: zfTFIJjaN#6xB83r password: zfTFIJjaN#6xB83r
# 连接超时时间 # 连接超时时间
......
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseFinancialDataBody {
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
public boolean isValidateCid() {
return 0 == cid;
}
}
...@@ -26,17 +26,6 @@ public class SpecialPurposeBondsPageDto extends BasePage { ...@@ -26,17 +26,6 @@ public class SpecialPurposeBondsPageDto extends BasePage {
*/ */
private Integer areaId; private Integer areaId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
/** /**
* 排序字段 默认-投资金额 * 排序字段 默认-投资金额
*/ */
......
...@@ -59,6 +59,22 @@ let cancelClaim= function cancelClaim(data) { ...@@ -59,6 +59,22 @@ let cancelClaim= function cancelClaim(data) {
// data: data // data: data
}) })
} }
// 历史认领用户
let historyClaim= function historyClaim(data) {
return request({
url: '/customer/historyClaim/'+data,
method: 'put',
// data: data
})
}
// 客户状态
let customerStatus= function customerStatus(data) {
return request({
url: '/customer/status/'+data,
method: 'get',
// data: data
})
}
// 查建筑企业 // 查建筑企业
let enterprisePage= function enterprisePage(param) { let enterprisePage= function enterprisePage(param) {
...@@ -80,4 +96,4 @@ let infoHeader= function infoHeader(param) { ...@@ -80,4 +96,4 @@ let infoHeader= function infoHeader(param) {
export default {aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach,claim,cancelClaim,enterprisePage,infoHeader} export default {aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach,claim,cancelClaim,enterprisePage,infoHeader,historyClaim,customerStatus}
\ No newline at end of file
...@@ -215,11 +215,18 @@ export function claim(param) { ...@@ -215,11 +215,18 @@ export function claim(param) {
data: param data: param
}) })
} }
//城投平台-取消认领 //客户状态
export function cancelClaim(name) { export function customerStatus(name) {
return request({ return request({
url:`/customer/cancelClaim/`+name, url:`/customer/status/`+name,
method: 'PUT', method: 'get',
})
}
//历史客户认领
export function historyClaim(name) {
return request({
url:`/customer/historyClaim/`+name,
method: 'put',
}) })
} }
//批量获取城投企业id //批量获取城投企业id
......
.el-card{
overflow: initial;
}
.app-container{ .app-container{
padding: 0; padding: 0;
} }
...@@ -1202,3 +1204,23 @@ ...@@ -1202,3 +1204,23 @@
.el-select .el-input__inner{ .el-select .el-input__inner{
padding-left: 16px; padding-left: 16px;
} }
.el-tooltip__popper.is-dark {
opacity: 0.5;
//background: rgba(0, 0, 0, 0.5);
//.el-tooltip__popper[x-placement^=top] .popper__arrow {
// border-top-color:rgba(0, 0, 0, 0.5);
//}
}
.fixed-table {
overflow: visible;
.el-table__header-wrapper {
position: sticky;
top: 56px;
z-index: 9;
}
.el-table__fixed-header-wrapper {
z-index: 9;
}
}
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
</div> </div>
</div> </div>
<skeleton v-if="isSkeleton"></skeleton> <skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0" <el-table id="tables" v-if="!isSkeleton&&tableData.total > 0" class="fixed-table"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
...@@ -43,13 +43,17 @@ ...@@ -43,13 +43,17 @@
prop="date" prop="date"
label="企业名称" label="企业名称"
fixed="left" fixed="left"
width="441"> width="316">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ps1"> <div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div> <div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="ps3"> <div class="ps3">
<div @click="toDetail(scope.row,'gjjl')"><img class="i" src="@/assets/images/project/edit_1.png"><img class="o" src="@/assets/images/project/edit_11.png"></div> <el-tooltip class="item" effect="dark" content="写跟进" placement="top">
<div @click="toDetail(scope.row,'business')"><img class="i" src="@/assets/images/project/edit_2.png"><img class="o" src="@/assets/images/project/edit_22.png"></div> <div @click="toDetail(scope.row,'gjjl')"><img class="i" src="@/assets/images/project/edit_1.png"><img class="o" src="@/assets/images/project/edit_11.png"></div>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="编辑信息" placement="top">
<div @click="toDetail(scope.row,'business')"><img class="i" src="@/assets/images/project/edit_2.png"><img class="o" src="@/assets/images/project/edit_22.png"></div>
</el-tooltip>
</div> </div>
</div> </div>
</template> </template>
...@@ -246,16 +250,16 @@ ...@@ -246,16 +250,16 @@
</template> </template>
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from '@/utils/auth'
import "@/assets/styles/project.scss" import '@/assets/styles/project.scss'
import {getCustomerList,importData,addCustomer} from '@/api/custom/custom' import { addCustomer, getCustomerList, importData } from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main' import { getDictType, getEnterprise } from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree' import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport' import batchimport from '../../project/projectList/component/batchImport'
import skeleton from '../../project/projectList/component/skeleton' import skeleton from '../../project/projectList/component/skeleton'
import axios from 'axios' import { encodeStr } from '@/assets/js/common'
import {encodeStr} from "@/assets/js/common"
export default { export default {
name: 'CustomList', name: 'CustomList',
components:{batchimport,skeleton}, components:{batchimport,skeleton},
data() { data() {
...@@ -313,7 +317,26 @@ export default { ...@@ -313,7 +317,26 @@ export default {
this.getDictType() this.getDictType()
this.prvinceTree() this.prvinceTree()
}, },
mounted() {
window.addEventListener("scroll",this.scrolling)
},
beforeDestroy() {
window.removeEventListener("scroll", this.scrolling);
},
methods:{ methods:{
scrolling() {
let e1 = document.getElementById("tables").offsetTop
let e2 = document.getElementsByClassName("navbar")[0].getBoundingClientRect().height
let mheight = e1+e2 +2
let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0]
let scrollTop = document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop>mheight){
let top = scrollTop-mheight
el.style.top = top+'px'
}else{
el.style.top = 0
}
},
sq1(item,sq){ sq1(item,sq){
this.$nextTick(()=>{ this.$nextTick(()=>{
item.sq1 = sq item.sq1 = sq
...@@ -368,7 +391,7 @@ export default { ...@@ -368,7 +391,7 @@ export default {
}else{ }else{
item.sq2 = false item.sq2 = false
} }
console.log(item) // console.log(item)
}) })
}) })
}, },
...@@ -596,8 +619,8 @@ export default { ...@@ -596,8 +619,8 @@ export default {
} }
.tables{ .tables{
position: relative; position: relative;
height: calc(100vh - 134px); min-height: calc(100vh - 134px);
overflow: auto; /*overflow: auto;*/
.empty{ .empty{
position: absolute; position: absolute;
top: 50%; top: 50%;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
</div> </div>
<skeleton v-if="isSkeleton"></skeleton> <skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0" <el-table id="tables" v-if="!isSkeleton&&tableData.total > 0" class="fixed-table"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%"> style="width: 100%">
...@@ -35,12 +35,14 @@ ...@@ -35,12 +35,14 @@
prop="date" prop="date"
label="企业名称" label="企业名称"
fixed="left" fixed="left"
width="441"> width="316">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ps1"> <div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div> <div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="ps3"> <div class="ps3">
<div @click="toRL(scope.row)"><img class="i" src="@/assets/images/project/khrl1.png"><img class="o" src="@/assets/images/project/khrl2.png"></div> <el-tooltip class="item" effect="dark" content="重新认领" placement="top">
<div @click="toRL(scope.row)"><img class="i" src="@/assets/images/project/khrl1.png"><img class="o" src="@/assets/images/project/khrl2.png"></div>
</el-tooltip>
</div> </div>
</div> </div>
</template> </template>
...@@ -244,7 +246,26 @@ export default { ...@@ -244,7 +246,26 @@ export default {
this.getCustomerList() this.getCustomerList()
this.getDictType() this.getDictType()
}, },
mounted() {
window.addEventListener("scroll",this.scrolling)
},
beforeDestroy() {
window.removeEventListener("scroll", this.scrolling);
},
methods:{ methods:{
scrolling() {
let e1 = document.getElementById("tables").offsetTop
let e2 = document.getElementsByClassName("navbar")[0].getBoundingClientRect().height
let mheight = e1+e2 +2
let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0]
let scrollTop = document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop>mheight){
let top = scrollTop-mheight
el.style.top = top+'px'
}else{
el.style.top = 0
}
},
sq1(item,sq){ sq1(item,sq){
this.$nextTick(()=>{ this.$nextTick(()=>{
item.sq1 = sq item.sq1 = sq
......
<template> <template>
<div class="Tables"> <div class="Tables">
<div class="table-item"> <div class="table-item">
<el-table <el-table v-if="tableDataTotal>0" class="fixed-table"
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
...@@ -61,11 +61,12 @@ ...@@ -61,11 +61,12 @@
</template> </template>
<template slot="empty"> <template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template> </template>
</el-table> </el-table>
<div style="padding: 30px 0" v-else>
<no-data />
</div>
</div> </div>
<div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize"> <div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
......
...@@ -134,6 +134,13 @@ ...@@ -134,6 +134,13 @@
<span class="dialog-footer-btn2" @click="renHide()">稍后</span> <span class="dialog-footer-btn2" @click="renHide()">稍后</span>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="dialogVisible2" custom-class='dialog-renlin' title="重新认领" width="260px" :show-close="false">
<div>再次认领将会恢复客户数据</div>
<div slot="footer" class="dialog-footer">
<span class="dialog-footer-btn1" type="primary" @click="handleHistoryClaim()">确认</span>
<span class="dialog-footer-btn2" @click="dialogVisible2 = false">关闭</span>
</div>
</el-dialog>
<el-dialog <el-dialog
title="取消认领" title="取消认领"
:visible.sync="dialogVisible1" :visible.sync="dialogVisible1"
...@@ -185,6 +192,7 @@ export default { ...@@ -185,6 +192,7 @@ export default {
enterpriseLabel:[],//企业标签 enterpriseLabel:[],//企业标签
dialogVisible: false, dialogVisible: false,
dialogVisible1: false, dialogVisible1: false,
dialogVisible2: false,
} }
}, },
created() { created() {
...@@ -211,12 +219,18 @@ export default { ...@@ -211,12 +219,18 @@ export default {
registerAddress:this.companyInfo.provinceName+(this.companyInfo.cityName?'-'+this.companyInfo.cityName:'')+(this.companyInfo.districtName?'-'+this.companyInfo.districtName:''), registerAddress:this.companyInfo.provinceName+(this.companyInfo.cityName?'-'+this.companyInfo.cityName:'')+(this.companyInfo.districtName?'-'+this.companyInfo.districtName:''),
creditCode:this.companyInfo.creditCode creditCode:this.companyInfo.creditCode
} }
let res = await claim(param) let res = await api.customerStatus(this.companyInfo.companyName)
this.claimLoading = false if(res.data === 1){
if(res.code==200){ this.claimLoading = false
this.dialogVisible=true this.dialogVisible2=true;
this.companyInfo.claimStatus = 1 }else{
this.customerId = res.data.customerId let res = await claim(param)
this.claimLoading = false
if(res.code==200){
this.dialogVisible=true
this.companyInfo.claimStatus = 1
this.customerId = res.data.customerId
}
} }
}else{ }else{
this.$message.warning('对不起,当前不能认领') this.$message.warning('对不起,当前不能认领')
...@@ -226,6 +240,16 @@ export default { ...@@ -226,6 +240,16 @@ export default {
cancelClaimClick(){ cancelClaimClick(){
this.dialogVisible1 = true; this.dialogVisible1 = true;
}, },
async handleHistoryClaim(){
let res = await api.historyClaim(this.companyInfo.companyName)
if(res.code==200){
this.dialogVisible2 = false;
this.companyInfo.claimStatus = 1
}else{
this.$message.error(res.msg)
}
},
async confirm(){ async confirm(){
let res = await api.cancelClaim(this.companyInfo.companyName) let res = await api.cancelClaim(this.companyInfo.companyName)
if(res.code==200){ if(res.code==200){
...@@ -235,7 +259,7 @@ export default { ...@@ -235,7 +259,7 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
// api.cancelClaim(this.companyInfo.companyName).then(res=>{ // api.cancelClaim(this.companyInfo.companyName).then(res=>{
// }) // })
}, },
companySwiper(){ companySwiper(){
...@@ -329,9 +353,9 @@ export default { ...@@ -329,9 +353,9 @@ export default {
renlin(){ renlin(){
this.dialogVisible=false; this.dialogVisible=false;
// window.location.href = window.location.origin+window.location.pathname+'?customerId='+this.customerId+'&path=business' // window.location.href = window.location.origin+window.location.pathname+'?customerId='+this.customerId+'&path=business'
this.$router.replace({ this.$router.replace({
path: '/enterprise/'+encodeStr(this.companyId), path: '/enterprise/'+encodeStr(this.companyId),
query: { query: {
'customerId': this.customerId, 'customerId': this.customerId,
'path':'business' 'path':'business'
} , } ,
...@@ -711,6 +735,12 @@ export default { ...@@ -711,6 +735,12 @@ export default {
text-align: center; text-align: center;
padding-bottom: 24px; padding-bottom: 24px;
} }
.el-dialog__header{
text-align: center;
.el-dialog__title{
font-size: 16px;
}
}
.el-dialog__footer{ .el-dialog__footer{
padding: 0px; padding: 0px;
padding-bottom: 24px; padding-bottom: 24px;
......
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
<el-progress class="progress2" :text-inside="true" :stroke-width="14" :percentage="70"></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: 400px;"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -279,6 +279,20 @@ ...@@ -279,6 +279,20 @@
<span>中标单位:中铁十二局集团</span> <span>中标单位:中铁十二局集团</span>
</p> </p>
</div> </div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
<span>中标单位:中铁十二局集团</span>
</p>
</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">
...@@ -314,6 +328,24 @@ ...@@ -314,6 +328,24 @@
<span>中标金额:4754.34</span> <span>中标金额:4754.34</span>
</p> </p>
</div> </div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
<div class="item">
<h3>太原市万柏林区2023年兴华街道老旧小区改造项目</h3>
<p>
<span>中标金额:4754.34</span>
</p>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -429,6 +461,24 @@ export default { ...@@ -429,6 +461,24 @@ export default {
name:'重庆机场集团', name:'重庆机场集团',
time:'2023-04-12 14: 00' time:'2023-04-12 14: 00'
}, },
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
},
], ],
pmData:[ pmData:[
{ {
...@@ -974,6 +1024,7 @@ export default { ...@@ -974,6 +1024,7 @@ export default {
margin: 0; margin: 0;
} }
.home { .home {
padding-bottom:24px;
::v-deep .el-row{ ::v-deep .el-row{
.el-col:nth-child(1){ .el-col:nth-child(1){
padding-left: 0 !important; padding-left: 0 !important;
...@@ -1089,18 +1140,18 @@ export default { ...@@ -1089,18 +1140,18 @@ export default {
} }
.content-wrap{ .content-wrap{
margin-bottom: 12px; margin-bottom: 12px;
height: 460px; height: 587px;
.select-popper{ .select-popper{
margin-right:0; margin-right:0;
} }
.record{ .record{
height: 460px; height: 587px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
position: relative; position: relative;
.list{ .list{
height: 375px; height: 510px;
overflow: hidden; overflow: hidden;
.item{ .item{
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
...@@ -1131,27 +1182,28 @@ export default { ...@@ -1131,27 +1182,28 @@ export default {
text-align: center; text-align: center;
color: #0081FF; color: #0081FF;
font-size: 14px; font-size: 14px;
margin-top: 4px;
cursor: pointer; cursor: pointer;
position: absolute; position: absolute;
bottom:16px; width: 95%;
left: 50%; height: 60px;
margin-left: -48px; line-height: 60px;
background: linear-gradient(360deg, #FFFFFF 0%, #FFFFFF 17%, rgba(255,255,255,0.6) 100%);
bottom: 0;
} }
} }
.ranking{ .ranking{
height: 460px; height: 587px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
.main{ .main{
background: url("../assets/images/index/yjpm_bg.png"); background: url("../assets/images/index/yjpm_bg.png");
background-size: 100% 100%; background-size: 100% 100%;
height: 399px; height: 525px;
margin-top: 10px; margin-top: 10px;
} }
.amount{ .amount{
padding: 16px 24px; padding: 16px 12px;
p{ p{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -1175,6 +1227,8 @@ export default { ...@@ -1175,6 +1227,8 @@ export default {
} }
.progress1{ .progress1{
height: 10px !important; height: 10px !important;
margin-bottom:6px;
margin-top:8px;
::v-deep .el-progress-bar__outer{ ::v-deep .el-progress-bar__outer{
.el-progress-bar__inner{ .el-progress-bar__inner{
background:#9AEAD3 background:#9AEAD3
...@@ -1303,6 +1357,7 @@ export default { ...@@ -1303,6 +1357,7 @@ export default {
font-size: 14px; font-size: 14px;
span{ span{
margin-right: 24px; margin-right: 24px;
color:rgba(35, 35, 35, 0.8);
} }
} }
.btn{ .btn{
...@@ -1380,7 +1435,7 @@ export default { ...@@ -1380,7 +1435,7 @@ export default {
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
height: 440px; height: 617px;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
::v-deep .el-tabs__header{ ::v-deep .el-tabs__header{
...@@ -1388,7 +1443,7 @@ export default { ...@@ -1388,7 +1443,7 @@ export default {
} }
::v-deep .el-tabs__content{ ::v-deep .el-tabs__content{
overflow-y: auto; overflow-y: auto;
height: 368px; height: 567px;
} }
::v-deep .el-timeline{ ::v-deep .el-timeline{
.el-timeline-item{ .el-timeline-item{
...@@ -1528,7 +1583,7 @@ export default { ...@@ -1528,7 +1583,7 @@ export default {
} }
} }
.zbgg{ .zbgg{
height: 470px; height: 599px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
...@@ -1570,7 +1625,7 @@ export default { ...@@ -1570,7 +1625,7 @@ export default {
} }
} }
.zbhxr{ .zbhxr{
height: 382px; height: 558px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
......
...@@ -174,7 +174,7 @@ export default { ...@@ -174,7 +174,7 @@ export default {
.left{ .left{
float: left; float: left;
width: 730px; width: 730px;
margin-right: 170px; /*margin-right: 170px;*/
} }
.logo{ .logo{
width: 253px; width: 253px;
......
<template> <template>
<div class="region"> <div class="region">
<div class="region_left"> <div class="region_left">
<span class="province">{{province}}</span> <div>
<span class="icon"> <span class="province">{{province}}</span>
<i class="el-icon-location"></i> <span class="icon">
切换 <i class="el-icon-location"></i>切换
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd'
@change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader>
</span> </span>
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd' </div>
@change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader>
</div> </div>
</div> </div>
</template> </template>
...@@ -49,6 +50,7 @@ ...@@ -49,6 +50,7 @@
data.provinceId=this.provinceId data.provinceId=this.provinceId
data.provinces=nodesObj.pathLabels data.provinces=nodesObj.pathLabels
this.$parent.addressListbtn(data) this.$parent.addressListbtn(data)
localStorage.setItem('location', true)
}, },
//地区 //地区
async dataRegion() { async dataRegion() {
...@@ -118,7 +120,6 @@ ...@@ -118,7 +120,6 @@
background-size: 100%; background-size: 100%;
width: 603px; width: 603px;
height: 48px; height: 48px;
position: relative;
padding-left: 16px; padding-left: 16px;
.province{ .province{
font-size: 20px; font-size: 20px;
...@@ -136,6 +137,7 @@ ...@@ -136,6 +137,7 @@
font-size: 12px; font-size: 12px;
display: inline-block; display: inline-block;
height: 48px; height: 48px;
position: relative;
i{ i{
margin-left: 4px; margin-left: 4px;
font-size: 16px; font-size: 16px;
...@@ -145,11 +147,11 @@ ...@@ -145,11 +147,11 @@
} }
.cascader-region { .cascader-region {
position: absolute; position: absolute;
left: 20px; left: -50px;
top: 8px; top: 8px;
opacity: 0; opacity: 0;
line-height: 22px; line-height: 22px;
width: 100px; width: 80px;
} }
} }
} }
......
...@@ -45,6 +45,12 @@ ...@@ -45,6 +45,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!--<div class="content content-box" v-else>-->
<!--<div class="empty">-->
<!--<img class="img" src="@/assets/images/project/empty.png">-->
<!--<div class="p1">抱歉,暂无专项债项目数据</div>-->
<!--</div>-->
<!--</div>-->
</div> </div>
</template> </template>
...@@ -66,11 +72,13 @@ export default { ...@@ -66,11 +72,13 @@ export default {
data:[], data:[],
oneYear:'', oneYear:'',
twoYear:'', twoYear:'',
state:false
} }
}, },
watch: { watch: {
provinceId(newValue, oldValue){ provinceId(newValue, oldValue){
this.getData() this.getData()
this.getGroupCount()
} }
}, },
created() { created() {
...@@ -105,22 +113,24 @@ export default { ...@@ -105,22 +113,24 @@ export default {
params.county=this.provinceId[2] params.county=this.provinceId[2]
} }
bidMoneyGroupByProjectType(params).then(res => { bidMoneyGroupByProjectType(params).then(res => {
let list=res.data[1].type if(res.data.length > 0){
for (let i=0; i<res.data[0].type.length; i++){ let list=res.data[1].type
for (let j=0; j<list.length; j++){ for (let i=0; i<res.data[0].type.length; i++){
if(res.data[0].type[i].projectType === list[j].projectType){ for (let j=0; j<list.length; j++){
list[j].lastMoney=res.data[0].type[i].money; if(res.data[0].type[i].projectType === list[j].projectType){
list[j].lastRate=res.data[0].type[i].rate; list[j].lastMoney=res.data[0].type[i].money;
list[j].lastRate=res.data[0].type[i].rate;
}
} }
} }
for(let i=0; i<list.length; i++){
list[i].money=list[i].money ? Number(list[i].money).toFixed(2) : '-';
list[i].rate=list[i].rate ? Number(list[i].rate).toFixed(2) : '-';
list[i].lastMoney=list[i].lastMoney ? Number(list[i].lastMoney).toFixed(2) : '-';
list[i].lastRate=list[i].lastRate ? Number(list[i].lastRate).toFixed(2) : '-';
}
this.tableData=list.reverse()
} }
for(let i=0; i<list.length; i++){
list[i].money=Number(list[i].money).toFixed(2)
list[i].rate=Number(list[i].rate).toFixed(2)
list[i].lastMoney=Number(list[i].lastMoney).toFixed(2)
list[i].lastRate=Number(list[i].lastRate).toFixed(2)
}
this.tableData=list.reverse()
}) })
}, },
getGroupCount(){ getGroupCount(){
...@@ -134,7 +144,17 @@ export default { ...@@ -134,7 +144,17 @@ export default {
startTime=this.queryParams.year+'-01-01'; startTime=this.queryParams.year+'-01-01';
endTime=this.queryParams.year+'-12-31'; endTime=this.queryParams.year+'-12-31';
} }
bidGroupCountByProjectType({startDate:startTime,endDate:endTime}).then(res => { let params={startDate:startTime,endDate:endTime}
if(this.provinceId.length >= 0){
params.province=this.provinceId[0]
}
if(this.provinceId.length >= 1){
params.city=this.provinceId[1]
}
if(this.provinceId.length >= 2){
params.county=this.provinceId[2]
}
bidGroupCountByProjectType(params).then(res => {
if(res.code === 200){ if(res.code === 200){
let list=[] let list=[]
for(let i=0; i<res.data.length; i++){ for(let i=0; i<res.data.length; i++){
...@@ -316,6 +336,26 @@ export default { ...@@ -316,6 +336,26 @@ export default {
} }
} }
} }
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
} }
</style> </style>
...@@ -279,10 +279,10 @@ export default { ...@@ -279,10 +279,10 @@ export default {
} }
}, },
created() { created() {
this.getData()
let mydate=new Date(); let mydate=new Date();
this.labelData=[mydate.getFullYear()-2,mydate.getFullYear()-1] this.labelData=[mydate.getFullYear()-2,mydate.getFullYear()-1]
this.$nextTick(()=>{ this.$nextTick(()=>{
this.getData()
// console.log(this.dataQuery) // console.log(this.dataQuery)
}) })
}, },
...@@ -300,11 +300,6 @@ export default { ...@@ -300,11 +300,6 @@ export default {
// } // }
}, },
watch: { watch: {
dataQuery: {
handler(newValue, oldValue) {
},
deep: true
},
provinceId(newValue, oldValue){ provinceId(newValue, oldValue){
this.getData() this.getData()
} }
......
...@@ -63,7 +63,9 @@ export default { ...@@ -63,7 +63,9 @@ export default {
} }
}, },
created() { created() {
this.dataQuery=this.$route.query; //使用JSON方法深拷贝
let data = JSON.parse(JSON.stringify(this.$route.query))
this.dataQuery=data;
if(this.dataQuery.provinceId){ if(this.dataQuery.provinceId){
if(Array.isArray(this.dataQuery.province)){ if(Array.isArray(this.dataQuery.province)){
this.province=this.dataQuery.province[0]; this.province=this.dataQuery.province[0];
...@@ -71,41 +73,54 @@ export default { ...@@ -71,41 +73,54 @@ export default {
this.province=this.dataQuery.province this.province=this.dataQuery.province
this.dataQuery.province = [this.dataQuery.province]; this.dataQuery.province = [this.dataQuery.province];
} }
this.provinceId.push(this.dataQuery.provinceId) if(Array.isArray(this.dataQuery.provinceId)){
this.provinceId=this.dataQuery.provinceId
}else {
this.provinceId.push(this.dataQuery.provinceId)
}
}else { }else {
location({}).then(res => { location({}).then(res => {
if(res.data.area){ if(localStorage.getItem('location')){
this.province=res.data.area if(res.data.area){
}else { this.province=res.data.area
if(res.data.city){
this.province=res.data.city
}else { }else {
this.province=res.data.province if(res.data.city){
this.province=res.data.city
}else {
this.province=res.data.province
}
} }
} if(!this.dataQuery.provinceId){
if(!this.dataQuery.provinceId){ if(res.data.areaId){
if(res.data.areaId){ this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId] this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
}else {
if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else { }else {
this.provinceId=[res.data.provinceId] if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else {
this.provinceId=[res.data.provinceId]
}
} }
let arr=[res.data.province]
this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
} }
let arr=[res.data.province]
this.dataQuery.province=arr;
}else { }else {
this.provinceId=this.dataQuery.provinceId this.province=res.data.province
if(!this.dataQuery.provinceId){
this.provinceId=[res.data.provinceId]
let arr=[res.data.province]
this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
}
} }
}) })
} }
if(this.dataQuery.activeName){ if(this.dataQuery.activeName){
this.activeName=this.dataQuery.activeName; this.activeName=this.dataQuery.activeName;
} }
// let name = sessionStorage.getItem('currentTab') // let name = sessionStorage.getItem('currentTab')
// if (name != "undefined" && name){ // if (name != "undefined" && name){
// this.activeName = name; // this.activeName = name;
......
...@@ -130,9 +130,9 @@ ...@@ -130,9 +130,9 @@
{{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" :formatter="formatStatus"/>
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" /> <el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" :formatter="formatStatus"/>
<el-table-column prop="isUsedCapital" label="是否资本金" width="200" /> <el-table-column prop="isUsedCapital" label="是否资本金" width="200" :formatter="formatStatus"/>
</el-table> </el-table>
</div> </div>
</div> </div>
...@@ -185,7 +185,10 @@ export default { ...@@ -185,7 +185,10 @@ export default {
// var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
// return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds // return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
return year + '-' + month + '-' + day return year + '-' + month + '-' + day
} },
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
},
} }
} }
</script> </script>
......
...@@ -110,30 +110,41 @@ export default { ...@@ -110,30 +110,41 @@ export default {
}, },
created() { created() {
location({}).then(res => { location({}).then(res => {
if(res.data.area){ if(localStorage.getItem('location')){
this.province=res.data.area if(res.data.area){
}else { this.province=res.data.area
if(res.data.city){
this.province=res.data.city
}else { }else {
this.province=res.data.province if(res.data.city){
this.province=res.data.city
}else {
this.province=res.data.province
}
} }
} if(!this.dataQuery.provinceId){
if(!this.dataQuery.provinceId){ if(res.data.areaId){
if(res.data.areaId){ this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId] this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
}else {
if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else { }else {
this.provinceId=[res.data.provinceId] if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else {
this.provinceId=[res.data.provinceId]
}
} }
let arr=[res.data.province]
this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
} }
let arr=[res.data.province]
this.dataQuery.province=arr;
}else { }else {
this.provinceId=this.dataQuery.provinceId this.province=res.data.province;
if(!this.dataQuery.provinceId){
this.provinceId=[res.data.provinceId]
let arr=[res.data.province]
this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
}
} }
this.$nextTick(() => { this.$nextTick(() => {
this.getData() this.getData()
......
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.accountsReceivable}}<span>亿元</span></p> <p>{{statistics.accountsReceivable}}<span>亿元</span></p>
<span>收账款</span> <span>收账款</span>
</div> </div>
<img src="@/assets/images/urban/img4.png"> <img src="@/assets/images/urban/img4.png">
</div> </div>
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
<el-dialog :visible.sync="claimVisible" width="244" :show-close="false"> <el-dialog :visible.sync="claimVisible" width="244" custom-class='dialog-claim' :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 @click="innerVisible = true">
...@@ -255,6 +255,13 @@ ...@@ -255,6 +255,13 @@
<el-button @click="claimVisible = false">稍后</el-button> <el-button @click="claimVisible = false">稍后</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="claimVisible1" custom-class='historyClaim' title="重新认领" width="260" :show-close="false">
<div>再次认领将会恢复客户数据</div>
<div slot="footer" class="dialog-footer">
<el-button @click="handleHistoryClaim">确认</el-button>
<el-button @click="claimVisible1 = false">取消</el-button>
</div>
</el-dialog>
<el-dialog <el-dialog
title="取消认领" title="取消认领"
:visible.sync="dialogVisible1" :visible.sync="dialogVisible1"
...@@ -278,7 +285,7 @@ ...@@ -278,7 +285,7 @@
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import elementResizeDetectorMaker from "element-resize-detector" import elementResizeDetectorMaker from "element-resize-detector"
import { uipGroupData,urbanInvestmentPage,urbanInvestmentStatistics,claim,location } from '@/api/macro/macro' import { uipGroupData,urbanInvestmentPage,urbanInvestmentStatistics,claim,location,customerStatus,historyClaim } from '@/api/macro/macro'
import { infoHeader } from '@/api/detail/party-a/index' import { infoHeader } from '@/api/detail/party-a/index'
import Region from '../component/region' import Region from '../component/region'
export default { export default {
...@@ -317,9 +324,11 @@ export default { ...@@ -317,9 +324,11 @@ export default {
typeList:[], typeList:[],
statistics:{}, statistics:{},
claimVisible:false, claimVisible:false,
claimVisible1:false,
dialogVisible1: false, dialogVisible1: false,
customerId:'', customerId:'',
companyId:'', companyId:'',
companyName:'',
show_page:true, show_page:true,
MaxPage:500, MaxPage:500,
// 表格高度 // 表格高度
...@@ -346,7 +355,6 @@ export default { ...@@ -346,7 +355,6 @@ export default {
}, },
mounted(){ mounted(){
window.addEventListener("scroll",this.scrolling) window.addEventListener("scroll",this.scrolling)
window.addEventListener('scroll', this.handleScroll);
const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("content") const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("content")
erd.listenTo(partBox, element => { erd.listenTo(partBox, element => {
_this.$nextTick(() => { _this.$nextTick(() => {
...@@ -354,9 +362,6 @@ export default { ...@@ -354,9 +362,6 @@ export default {
}) })
}) })
}, },
destroyed () {
window.removeEventListener('scroll', this.handleScroll)
},
beforeDestroy() { beforeDestroy() {
window.removeEventListener("scroll", this.scrolling); window.removeEventListener("scroll", this.scrolling);
}, },
...@@ -379,33 +384,45 @@ export default { ...@@ -379,33 +384,45 @@ export default {
this.querySubmit() this.querySubmit()
}else { }else {
location({}).then(res => { location({}).then(res => {
if(res.data.area){ if(localStorage.getItem('location')){
this.province=res.data.area if(res.data.area){
}else { this.province=res.data.area
if(res.data.city){
this.province=res.data.city
}else { }else {
this.province=res.data.province if(res.data.city){
} this.province=res.data.city
}
if(!this.dataQuery.provinceId){
if(res.data.areaId){
this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
}else {
if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else { }else {
this.provinceId=[res.data.provinceId] this.province=res.data.province
} }
} }
if(!this.dataQuery.provinceId){
if(res.data.areaId){
this.dataQuery.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
this.provinceId=[res.data.provinceId,res.data.cityId,res.data.areaId]
}else {
if(res.data.cityId){
this.provinceId=[res.data.provinceId,res.data.cityId]
}else {
this.provinceId=[res.data.provinceId]
}
}
let arr=[res.data.province] let arr=[res.data.province]
this.dataQuery.province=arr; this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
}
}else { }else {
this.provinceId=this.dataQuery.provinceId this.province=res.data.province
if(!this.dataQuery.provinceId){
this.provinceId=[res.data.provinceId]
let arr=[res.data.province]
this.dataQuery.province=arr;
}else {
this.provinceId=this.dataQuery.provinceId
}
} }
this.querySubmit() this.querySubmit()
}) })
} }
...@@ -416,21 +433,24 @@ export default { ...@@ -416,21 +433,24 @@ export default {
methods: { methods: {
scrolling() { scrolling() {
let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0] let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0]
let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop; // let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop>368){ // if (scrollTop>368){
let top = scrollTop-368 // let top = scrollTop-368
el.style.top = top+'px' // el.style.top = top+'px'
}else{ // }else{
el.style.top = 0 // el.style.top = 0
} // }
}, let el1 = document.getElementsByClassName("el-table")[0].offsetTop
handleScroll () { let el2 = document.getElementsByClassName("content")[1].offsetTop
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop let scrollTop = document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop > 300) { this.$nextTick(() => {
this.fixed = true if (scrollTop>(el1+el2)){
} else { let top = scrollTop-(el1+el2)-13
this.fixed = false el.style.top = top+'px'
} }else{
el.style.top = 0
}
})
}, },
getType(){ getType(){
uipGroupData({}).then(res => { uipGroupData({}).then(res => {
...@@ -736,8 +756,17 @@ export default { ...@@ -736,8 +756,17 @@ export default {
} }
}) })
}, },
handleHistoryClaim(){
historyClaim(this.companyName).then(res => {
if(res.code === 200){
this.claimVisible1=false;
this.querySubmit()
}
})
},
handleClick(item){ handleClick(item){
this.companyId=item.companyId; this.companyId=item.companyId;
this.companyName=item.companyName;
infoHeader({companyId:this.companyId}).then(res => { infoHeader({companyId:this.companyId}).then(res => {
if(res.code === 200){ if(res.code === 200){
let registerAddress=res.data.provinceName let registerAddress=res.data.provinceName
...@@ -760,11 +789,18 @@ export default { ...@@ -760,11 +789,18 @@ export default {
registerAddress:registerAddress, registerAddress:registerAddress,
creditCode:res.data.creditCode, creditCode:res.data.creditCode,
} }
claim(params).then(res => { customerStatus(item.companyName).then(res => {
if(res.code === 200){ if(res.data === 1){
this.claimVisible=true; this.claimVisible1=true;
this.customerId=res.data.customerId; }else {
this.querySubmit() claim(params).then(res => {
if(res.code === 200){
this.claimVisible=true;
this.customerId=res.data.customerId;
this.querySubmit()
}
})
} }
}) })
} }
...@@ -1041,9 +1077,25 @@ export default { ...@@ -1041,9 +1077,25 @@ export default {
} }
} }
} }
::v-deep .historyClaim{
.el-dialog__header{
display: block;
padding: 12px;
text-align: center;
.el-dialog__title{
font-size: 16px;
}
}
.el-dialog__body{
padding: 0;
text-align: center;
padding-bottom: 24px;
}
}
::v-deep .dialog-renlin{ ::v-deep .dialog-renlin{
.el-dialog__header{ .el-dialog__header{
display: block; display: block;
text-align: center;
} }
.el-dialog__body{ .el-dialog__body{
padding: 0; padding: 0;
...@@ -1086,10 +1138,5 @@ export default { ...@@ -1086,10 +1138,5 @@ export default {
} }
} }
} }
.fixed{
position: fixed;
z-index: 999;
top: 56px;
}
} }
</style> </style>
...@@ -5,20 +5,27 @@ ...@@ -5,20 +5,27 @@
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="tables" v-else> <div class="tables" v-else>
<el-table
<div class="empty" v-if="total==0">
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds == false">新增联系人</div>
</div>
<el-table class="fixed-table" v-else
:data="tableData" :data="tableData"
stripe border stripe border
style="width: 100%" style="width: 100%"
:default-sort = "{prop: 'role', order: 'ascending'}" :default-sort = "{prop: 'role', order: 'ascending'}"
> >
<template slot="empty"> <!--<template slot="empty">-->
<div class="empty"> <!--<div class="empty">-->
<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 class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds == false">新增联系人</div> <!--<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds == false">新增联系人</div>-->
</div> <!--</div>-->
</template> <!--</template>-->
<el-table-column <el-table-column
prop="name" prop="name"
label="姓名" label="姓名"
......
...@@ -16,19 +16,17 @@ ...@@ -16,19 +16,17 @@
</div> </div>
<div class="document tables"> <div class="document tables">
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton> <skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<el-table v-else <div class="empty" v-if="tableData.total == 0">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或添加相关企业,重新搜索</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds==false">新增相关企业</div>
</div>
<el-table v-else-if="!isSkeleton" class="fixed-table"
:data="tableData.rows" :data="tableData.rows"
style="width: 100%" style="width: 100%"
:default-sort = "{prop: 'depth', order: 'descending'}" :default-sort = "{prop: 'depth', order: 'descending'}"
> >
<template slot="empty">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或添加相关企业,重新搜索</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisableds==false">新增相关企业</div>
</div>
</template>
<el-table-column <el-table-column
prop="companyName" prop="companyName"
label="企业名称" label="企业名称"
......
...@@ -61,31 +61,31 @@ ...@@ -61,31 +61,31 @@
</div> </div>
<div class="document tables"> <div class="document tables">
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton> <skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<el-table v-else <div class="empty" v-if="fileDatas.total==0">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<!--<div v-if="isDisableds==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>-->
<div v-if="isDisableds==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>
<el-table v-else-if="!isSkeleton" class="fixed-table"
:data="fileDatas.rows" :data="fileDatas.rows"
style="width: 100%" style="width: 100%"
:default-sort = "{prop: 'creatTime', order: 'descending'}" :default-sort = "{prop: 'creatTime', order: 'descending'}"
> >
<template slot="empty"> <template slot="empty">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<!--<div v-if="isDisableds==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>-->
<div v-if="isDisableds==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> </template>
<el-table-column <el-table-column
prop="name" prop="name"
......
...@@ -34,8 +34,8 @@ module.exports = { ...@@ -34,8 +34,8 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://47.104.91.229:9099/prod-api`, target: `http://47.104.91.229:9099/prod-api`,
target: `http://122.9.160.122:9011`, // target: `http://122.9.160.122:9011`,
// target: `http://192.168.60.126:9011`, // target: `http://192.168.60.126:9011`,
// target: `http://192.168.60.27:8766`, // target: `http://192.168.60.27:8766`,
changeOrigin: true, changeOrigin: true,
......
...@@ -315,4 +315,13 @@ public class EnterpriseService { ...@@ -315,4 +315,13 @@ public class EnterpriseService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/getUipIdByCid", paramMap); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/getUipIdByCid", paramMap);
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
public R financialData(EnterpriseFinancialDataBody body) throws Exception {
if (body.isValidateCid()) {
return R.ok();
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/financialData", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import com.dsk.system.domain.BusinessExcelDto; import com.dsk.system.domain.BusinessExcelDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
...@@ -13,6 +8,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; ...@@ -13,6 +8,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/** /**
* @author lxl * @author lxl
* @Description: * @Description:
...@@ -120,28 +120,32 @@ public class ReadBusinessInfoExcel { ...@@ -120,28 +120,32 @@ public class ReadBusinessInfoExcel {
for (int c = 0; c < this.totalCells; c++) { for (int c = 0; c < this.totalCells; c++) {
Cell cell = row.getCell(c); Cell cell = row.getCell(c);
if (null != cell) { if (null != cell) {
//项目名称
if (c == 0) { if (c == 0) {
//如果是纯数字,比如你写的是25,cell.getNumericCellValue()获得是25.0,通过截取字符串去掉.0获得25 //如果是纯数字,比如你写的是25,cell.getNumericCellValue()获得是25.0,通过截取字符串去掉.0获得25
if (cell.getCellType() == CellType.NUMERIC) { if (cell.getCellType() == CellType.NUMERIC) {
String name = String.valueOf(cell.getNumericCellValue()); String name = String.valueOf(cell.getNumericCellValue());
businessExcelDto.setProjectName(name.substring(0, name.length() - 2 > 0 ? name.length() - 2 : 1));//项目名称 businessExcelDto.setProjectName(name.substring(0, name.length() - 2 > 0 ? name.length() - 2 : 1));
} else { } else {
businessExcelDto.setProjectName(cell.getStringCellValue());//名称 businessExcelDto.setProjectName(cell.getStringCellValue());
} }
//业主单位
} else if (c == 1) { } else if (c == 1) {
if (cell.getCellType() == CellType.NUMERIC) { if (cell.getCellType() == CellType.NUMERIC) {
String company = String.valueOf(cell.getNumericCellValue()); String company = String.valueOf(cell.getNumericCellValue());
businessExcelDto.setOwnerCompany(company.substring(0, company.length() - 2 > 0 ? company.length() - 2 : 1));//业主单位 businessExcelDto.setOwnerCompany(company.substring(0, company.length() - 2 > 0 ? company.length() - 2 : 1));
} else { } else {
businessExcelDto.setOwnerCompany(cell.getStringCellValue());//性别 businessExcelDto.setOwnerCompany(cell.getStringCellValue());
} }
//投资估算(万元)
} else if (c == 2) { } else if (c == 2) {
if (cell.getCellType() == CellType.NUMERIC) { businessExcelDto.setInvestmentAmount(cell.getStringCellValue());
/* if (cell.getCellType() == CellType.NUMERIC) {
String amount = String.valueOf(cell.getNumericCellValue()); String amount = String.valueOf(cell.getNumericCellValue());
businessExcelDto.setInvestmentAmount(amount.substring(0, amount.length() - 2 > 0 ? amount.length() - 2 : 1));//投资估算(万元) businessExcelDto.setInvestmentAmount(amount.substring(0, amount.length() - 2 > 0 ? amount.length() - 2 : 1));
} else { } else {
businessExcelDto.setInvestmentAmount(cell.getStringCellValue()); businessExcelDto.setInvestmentAmount(cell.getStringCellValue());
} }*/
} }
} }
} }
......
...@@ -110,15 +110,15 @@ ...@@ -110,15 +110,15 @@
#{projectType} #{projectType}
</foreach> </foreach>
</if> </if>
<if test="minAmount != null and minAmount != '' and minAmount != 0 and maxAmount != minAmount"> <if test="minAmount != null and minAmount != '' and minAmount != '0' and maxAmount != minAmount">
and i.investment_amount &gt; #{minAmount} and i.investment_amount &gt; #{minAmount}
</if> </if>
<if test="minAmount == 0 and maxAmount != minAmount"> <if test="minAmount == '0' and maxAmount != minAmount">
and ((i.investment_amount &gt; #{minAmount} and ((i.investment_amount &gt; #{minAmount}
and i.investment_amount &lt;= #{maxAmount}) and i.investment_amount &lt;= #{maxAmount})
or i.investment_amount is null) or i.investment_amount is null)
</if> </if>
<if test="maxAmount != null and maxAmount != '' and maxAmount != minAmount and minAmount != 0"> <if test="maxAmount != null and maxAmount != '' and maxAmount != minAmount and minAmount != '0'">
and i.investment_amount &lt;= #{maxAmount} and i.investment_amount &lt;= #{maxAmount}
</if> </if>
<if test="minAmount != null and minAmount != '' and maxAmount != null and maxAmount != '' and maxAmount == minAmount"> <if test="minAmount != null and minAmount != '' and maxAmount != null and maxAmount != '' and maxAmount == minAmount">
......
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