Commit fb16a235 authored by yht15023815643's avatar yht15023815643

xiugai

parents 19e5f1ca f74eb7d0
...@@ -145,4 +145,16 @@ public class BusinessOpportunityRadarController { ...@@ -145,4 +145,16 @@ public class BusinessOpportunityRadarController {
public AjaxResult bidSourceList(@RequestBody JSONObject object) { public AjaxResult bidSourceList(@RequestBody JSONObject object) {
return opportunityRadarService.bidSourceList(object); return opportunityRadarService.bidSourceList(object);
} }
/*
* 重点项目清单
*/
@RequestMapping("/importantPage")
public AjaxResult importantPage(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.importantPage(object);
}
} }
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
"vue-meta": "2.4.0", "vue-meta": "2.4.0",
"vue-router": "3.4.9", "vue-router": "3.4.9",
"vuedraggable": "2.24.3", "vuedraggable": "^2.24.3",
"vuex": "3.6.0" "vuex": "3.6.0"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -50,3 +50,20 @@ export function businessList(data) { ...@@ -50,3 +50,20 @@ export function businessList(data) {
data: data data: data
}) })
} }
// 集团招标
export function bidPage(data) {
return request({
url: '/combine/info/bidPage',
method: 'post',
data: data
})
}
// 集团招标导出
export function exportBid(data) {
return request({
url: '/combine/info/export/bid',
method: 'post',
data: data
})
}
...@@ -121,7 +121,7 @@ aside { ...@@ -121,7 +121,7 @@ aside {
//main-container全局样式 //main-container全局样式
.app-container { .app-container {
padding: 16px; //padding: 16px;
//margin-top: 56px; //margin-top: 56px;
} }
...@@ -223,6 +223,7 @@ ul, li { ...@@ -223,6 +223,7 @@ ul, li {
.app-container { .app-container {
margin: 12px 24px; margin: 12px 24px;
background-color: #f5f5f5; background-color: #f5f5f5;
padding-bottom: 16px !important;
.el-input__inner{ .el-input__inner{
border-color: #D9D9D9; border-color: #D9D9D9;
color: #232323; color: #232323;
...@@ -262,6 +263,19 @@ ul, li { ...@@ -262,6 +263,19 @@ ul, li {
} }
} }
.query-ability{ .query-ability{
.total{
display: flex !important;
flex-direction: row;
align-items: center;
&:before {
content: "";
display: inline-block;
width: 2px;
height: 2px;
background: rgba(35, 35, 35, 0.4);
margin-right: 4px;
}
}
span{ span{
font-size: 14px; font-size: 14px;
color: #232323; color: #232323;
......
...@@ -88,7 +88,7 @@ export default { ...@@ -88,7 +88,7 @@ export default {
overflow: inherit; overflow: inherit;
/*position: relative;*/ /*position: relative;*/
background: #fff; background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08); /*box-shadow: 0 1px 4px rgba(0,21,41,.08);*/
position: fixed; position: fixed;
top:0; top:0;
z-index: 999; z-index: 999;
......
<template> <template>
<div id="tags-view-container" class="tags-view-container"> <div id="tags-view-container" class="tags-view-container">
<scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll"> <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
<router-link <draggable v-model="visitedViews" :options="dragOptions" @end="end">
v-for="(tag, index) in visitedViews" <router-link
ref="tag" v-for="(tag, index) in visitedViews"
:key="tag.path" ref="tag"
:class="isActive(tag)?'active':''" :key="tag.path"
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" :class="isActive(tag)?'active':''"
tag="span" :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
class="tags-view-item" tag="span"
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''" class="tags-view-item"
@contextmenu.prevent.native="openMenu(tag,$event)" @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
> @contextmenu.prevent.native="openMenu(tag,$event)"
<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true"> >
<use :xlink:href="iconName(tag)" /> <svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">
</svg> <use :xlink:href="iconName(tag)" />
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span> </svg>
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> <span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span>
<i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" /> <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
</router-link> <i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" />
</router-link>
</draggable>
</scroll-pane> </scroll-pane>
<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu"> <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
<li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li> <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li>
...@@ -60,11 +63,12 @@ ...@@ -60,11 +63,12 @@
</template> </template>
<script> <script>
import ScrollPane from './ScrollPane' import draggable from 'vuedraggable'
import path from 'path' import ScrollPane from './ScrollPane'
import path from 'path'
export default { export default {
components: { ScrollPane }, components: { ScrollPane,draggable },
data() { data() {
return { return {
visible: false, visible: false,
...@@ -73,11 +77,21 @@ export default { ...@@ -73,11 +77,21 @@ export default {
selectedTag: {}, selectedTag: {},
affixTags: [], affixTags: [],
showall:false, showall:false,
dragOptions: {
animation: 200, // 动画时间,单位毫秒
group: 'items', // 分组,同一分组内的元素可以互相拖拽
ghostClass: 'ghost', // 拖拽过程中占位元素的class名称
sort: true, // 是否启用排序功能
draggable: '.tags-view-item', // 可拖拽元素的选择器
}
} }
}, },
computed: { computed: {
visitedViews() { visitedViews:{
return this.$store.state.tagsView.visitedViews get() {
return this.$store.state.tagsView.visitedViews
},
set() {}
}, },
iconName() { iconName() {
return function(val) { return function(val) {
...@@ -292,7 +306,26 @@ export default { ...@@ -292,7 +306,26 @@ export default {
}, },
handleScroll() { handleScroll() {
this.closeMenu() this.closeMenu()
} },
end (event) {
//调换顺序
let oldIndex = event.oldIndex//移动初始位置
let newIndex = event.newIndex//运动终止位置
let diff = Math.abs(newIndex - oldIndex)//插值绝对值
let index = this.visitedViews[oldIndex]
if (eval(oldIndex) > eval(newIndex)) {
for (let i = 0; i < diff; i++) {
this.visitedViews[oldIndex - i] = this.visitedViews[oldIndex - i - 1]
}
this.visitedViews[newIndex] = index
} else {
for (let i = 0; i < diff; i++) {
this.visitedViews[oldIndex + i] = this.visitedViews[oldIndex + i + 1]
}
this.visitedViews[newIndex] = index
}
this.$forceUpdate()
},
} }
} }
</script> </script>
......
...@@ -63,7 +63,7 @@ export default { ...@@ -63,7 +63,7 @@ export default {
saveAs(text, name, opts); saveAs(text, name, opts);
}, },
exportByPost(url, params){ exportByPost(url, params,name){
var url = baseURL + url var url = baseURL + url
axios({ axios({
method: 'post', method: 'post',
...@@ -72,8 +72,12 @@ export default { ...@@ -72,8 +72,12 @@ export default {
data: params, data: params,
headers: { 'Authorization': 'Bearer ' + getToken() } headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(res => { }).then(res => {
const blob = new Blob([res.data], { type: 'application/octet-stream/pdf/doc/xlsx/xls/docx' }) const blob = new Blob([res.data], { type: 'application/octet-stream/pdf/doc/xlsx/xls/docx/excel' })
this.saveAs(blob, decodeURI(res.headers['download-filename'])) if(name){
this.saveAs(blob, name)
}else {
this.saveAs(blob, decodeURI(res.headers['download-filename']))
}
}) })
}, },
async printErrMsg(data) { async printErrMsg(data) {
......
...@@ -36,6 +36,10 @@ service.interceptors.request.use(config => { ...@@ -36,6 +36,10 @@ service.interceptors.request.use(config => {
config.params = {}; config.params = {};
config.url = url; config.url = url;
} }
cancelPending(config)
config.cancelToken = new CancelToken(res => {
pending.push({'UrlPath': config.url, 'Cancel': res})
})
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) { if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
const requestObj = { const requestObj = {
url: config.url, url: config.url,
...@@ -65,6 +69,23 @@ service.interceptors.request.use(config => { ...@@ -65,6 +69,23 @@ service.interceptors.request.use(config => {
Promise.reject(error) Promise.reject(error)
}) })
//频繁发送请求时,返回慢的数据覆盖了返回快的数据
let pending = []
let CancelToken = axios.CancelToken
let cancelPending = (config) => {
pending.forEach((item, index) => {
if (config) {
if (item.UrlPath === config.url) {
item.Cancel() // 取消请求
pending.splice(index, 1) // 移除当前请求记录
};
} else {
item.Cancel() // 取消请求
pending.splice(index, 1) // 移除当前请求记录
}
})
}
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(res => {
const apiList = ['/login', '/system/user/profile/updatePwd'] //需要提示错误的接口 const apiList = ['/login', '/system/user/profile/updatePwd'] //需要提示错误的接口
...@@ -99,6 +120,7 @@ service.interceptors.response.use(res => { ...@@ -99,6 +120,7 @@ service.interceptors.response.use(res => {
Notification.error({ title: msg }) Notification.error({ title: msg })
return Promise.reject('error') return Promise.reject('error')
} else { } else {
cancelPending(res.config)
return res.data return res.data
} }
},error => { },error => {
...@@ -114,7 +136,7 @@ service.interceptors.response.use(res => { ...@@ -114,7 +136,7 @@ service.interceptors.response.use(res => {
if(message=='数据正在处理,请勿重复提交'){ //重复提交,提示样式特殊处理 if(message=='数据正在处理,请勿重复提交'){ //重复提交,提示样式特殊处理
Message({ message: message, type: 'warning', duration: 5 * 1000 }) Message({ message: message, type: 'warning', duration: 5 * 1000 })
}else{ }else{
Message({ message: message, type: 'error', duration: 5 * 1000 }) // Message({ message: message, type: 'error', duration: 5 * 1000 })
} }
return Promise.reject(error) return Promise.reject(error)
} }
......
...@@ -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" class="fixed-table" max-height="640" <el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="'always'" max-height="640"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%"> style="width: 100%">
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
prop="index" prop="index"
label="序号" label="序号"
fixed="left" fixed="left"
width="47"> width="60">
<template slot-scope='scope'> <template slot-scope='scope'>
<span>{{ (searchParam.pageNum - 1) * searchParam.pageSize + scope.$index + 1 }}</span> <span>{{ (searchParam.pageNum - 1) * searchParam.pageSize + scope.$index + 1 }}</span>
</template> </template>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<el-table-column <el-table-column
prop="cooperationProject" prop="cooperationProject"
label="合作项目" label="合作项目"
width="76"> width="90">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.cooperationProject || '--'}} {{scope.row.cooperationProject || '--'}}
</template> </template>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<el-table-column <el-table-column
prop="followProject" prop="followProject"
label="跟进项目" label="跟进项目"
width="76"> width="90">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.followProject || '--'}} {{scope.row.followProject || '--'}}
</template> </template>
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<el-table-column <el-table-column
prop="reserveProject" prop="reserveProject"
label="储备项目" label="储备项目"
width="76"> width="90">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.reserveProject || '--'}} {{scope.row.reserveProject || '--'}}
</template> </template>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<el-table-column <el-table-column
prop="registerCapitalStr" prop="registerCapitalStr"
label="注册资本金(万元)" label="注册资本金(万元)"
width="140"> width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.registerCapital && scope.row.registerCapital>0">{{scope.row.registerCapital}}</span><span v-else>--</span> <span v-if="scope.row.registerCapital && scope.row.registerCapital>0">{{scope.row.registerCapital}}</span><span v-else>--</span>
</template> </template>
......
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
<div class="content_wap3"> <div class="content_wap3">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="title">跟进动态</span> <span class="item_title">跟进动态</span>
</div> </div>
<div class="flex-box time-label"> <div class="flex-box time-label">
<div class="labels"> <div class="labels">
...@@ -689,14 +689,6 @@ ...@@ -689,14 +689,6 @@
border: 1px solid #0081FF; border: 1px solid #0081FF;
color: #ffffff; color: #ffffff;
background: #0081FF; background: #0081FF;
/*.el-button{*/
/*border: 1px solid #0081FF;*/
/*span{*/
/*color: #ffffff;*/
/*background: #0081FF;*/
/*border: 1px solid #0081FF;*/
/*}*/
/*}*/
} }
...@@ -856,7 +848,7 @@ ...@@ -856,7 +848,7 @@
.query-box{ .query-box{
padding:16px; padding:16px;
} }
.title{ .item_title{
font-weight: 700; font-weight: 700;
color: #232323; color: #232323;
font-size: 16px; font-size: 16px;
......
...@@ -53,12 +53,14 @@ export default { ...@@ -53,12 +53,14 @@ export default {
{title: '集团成员', pathName: 'members'}, {title: '集团成员', pathName: 'members'},
{title: '集团资质', pathName: 'qualifications'}, {title: '集团资质', pathName: 'qualifications'},
{title: '集团业绩', pathName: 'performance'}, {title: '集团业绩', pathName: 'performance'},
// {title: '集团招标', pathName: 'zhaobiao'},
], ],
defaultRoute: [], defaultRoute: [],
customer:[ customer:[
'members', 'members',
'qualifications', 'qualifications',
'performance', 'performance',
// 'zhaobiao',
], ],
uniqueOpened:false, uniqueOpened:false,
searchIndex: '' searchIndex: ''
......
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
qyType:[], qyType:[],
cgblList:['100%','50%以上','20%以上','5%以上','1%-5%'], cgblList:['100%','50%以上','20%以上','5%以上','1%-5%'],
cgblName:'', cgblName:'',
paramsData:[], //储存组件筛选的条件 paramsData:{}, //储存组件筛选的条件
} }
}, },
watch:{ watch:{
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
} }
}, },
handleQuery(params){ handleQuery(params){
this.paramsData=params; this.paramsData=params || {};
this.tableLoading=true this.tableLoading=true
let data = this.getAreaList(params || this.queryParams) let data = this.getAreaList(params || this.queryParams)
memberList(data).then(res=>{ memberList(data).then(res=>{
...@@ -400,7 +400,11 @@ ...@@ -400,7 +400,11 @@
}, },
sortChange({ column, prop, order }){ sortChange({ column, prop, order }){
this.queryParams.orderName = prop this.queryParams.orderName = prop
this.paramsData.orderName = prop this.paramsData.orderName = prop;
this.paramsData.combineId = this.customerId;
this.paramsData.pageNum = 1;
this.paramsData.pageSize = 20;
if(column.order === "ascending"){ if(column.order === "ascending"){
this.queryParams.orderType = 'asc' this.queryParams.orderType = 'asc'
this.paramsData.orderType = 'asc' this.paramsData.orderType = 'asc'
......
...@@ -5,8 +5,9 @@ ...@@ -5,8 +5,9 @@
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
:total="tableDataTotal" :total="tableDataTotal"
:isExcel="false" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
@handle-excel="clickEXCEL"
> >
<template slot="slot"> <template slot="slot">
...@@ -57,7 +58,7 @@ ...@@ -57,7 +58,7 @@
import { getDictType } from '@/api/main' import { getDictType } from '@/api/main'
export default { export default {
name: 'qualifications', name: 'qualifications',
props: ['customerId'], props: ['customerId','combineName'],
mixins: [mixin], mixins: [mixin],
components:{}, components:{},
data(){ data(){
...@@ -74,12 +75,12 @@ ...@@ -74,12 +75,12 @@
forData: [ forData: [
{label: '中标时间', prop: 'bidTime',slot: true,minWidth: '80'}, {label: '中标时间', prop: 'bidTime',slot: true,minWidth: '80'},
{label: '中标成员', prop: 'companyName', slot: true,minWidth: '190'}, {label: '中标成员', prop: 'companyName', slot: true,minWidth: '190'},
{label: '持股比例', prop: 'stockPercent',slot: true,minWidth: '95'}, {label: '持股比例', prop: 'stockPercent',slot: true,minWidth: '80'},
{label: '项目名称', prop: 'projectName', slot: true,minWidth: '260'}, {label: '项目名称', prop: 'projectName', slot: true,minWidth: '260'},
{label: '中标金额', prop: 'bidAmount',slot: true,minWidth: '110'}, {label: '中标金额', prop: 'bidAmount',slot: true,minWidth: '110'},
{label: '中标地区', prop: 'address',minWidth: '80'}, {label: '中标地区', prop: 'address',minWidth: '130'},
{label: '业绩类型', prop: 'boundType',minWidth: '100'}, {label: '业绩类型', prop: 'boundType',minWidth: '80'},
{label: '项目类型', prop: 'projectType',minWidth: '100'}, {label: '项目类型', prop: 'projectType',minWidth: '80'},
{label: '业主单位', prop: 'projectUnit', slot: true,minWidth: '190'}, {label: '业主单位', prop: 'projectUnit', slot: true,minWidth: '190'},
], ],
formData: [ formData: [
...@@ -103,6 +104,7 @@ ...@@ -103,6 +104,7 @@
], ],
timeList: ['近三天', '近七天', '近半月', '自定义'], timeList: ['近三天', '近七天', '近半月', '自定义'],
moneyList: ['5000万以下', '5000万-1亿', '1亿-5亿', '5亿-10亿','10亿以上', '自定义'], moneyList: ['5000万以下', '5000万-1亿', '1亿-5亿', '5亿-10亿','10亿以上', '自定义'],
dataEXCEL:{}
} }
}, },
created() { created() {
...@@ -162,6 +164,7 @@ ...@@ -162,6 +164,7 @@
} }
delete data.cgbl delete data.cgbl
} }
this.dataEXCEL=data;
businessList(data).then(res=>{ businessList(data).then(res=>{
this.tableData = res.code == 200 ? res.rows:[] this.tableData = res.code == 200 ? res.rows:[]
this.tableDataTotal = res.total this.tableDataTotal = res.total
...@@ -263,6 +266,16 @@ ...@@ -263,6 +266,16 @@
// this.$children[1].$refs.tableRef.bodyWrapper.scrollTop = 0 // this.$children[1].$refs.tableRef.bodyWrapper.scrollTop = 0
}, 500); }, 500);
}, },
clickEXCEL() {
this.dataEXCEL.combineName=this.combineName;
if(this.tableDataTotal > 2000){
this.dataEXCEL.pageSize=2000;
}else {
this.dataEXCEL.pageSize=this.tableDataTotal;
}
delete this.dataEXCEL.pageNum
this.$download.exportByPost('/combine/info/export/win/bid',this.dataEXCEL,'集团中标.xlsx');
},
} }
} }
</script> </script>
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
import QualificationsDetail from './qualificationsDetail' import QualificationsDetail from './qualificationsDetail'
export default { export default {
name: 'qualifications', name: 'qualifications',
props: ['customerId','name'], props: ['customerId','combineName'],
mixins: [mixin], mixins: [mixin],
components:{ components:{
QualificationsDetail QualificationsDetail
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
title:'', title:'',
rowData:'' rowData:'',
} }
}, },
created() { created() {
...@@ -75,7 +75,8 @@ ...@@ -75,7 +75,8 @@
methods: { methods: {
handleQuery(params){ handleQuery(params){
this.isSkeleton = true this.isSkeleton = true
let data = params ? params : this.queryParams let data = params ? params : this.queryParams;
certificateList(data).then(res=>{ certificateList(data).then(res=>{
this.isSkeleton = false this.isSkeleton = false
if(res.code === 200){ if(res.code === 200){
...@@ -98,10 +99,11 @@ ...@@ -98,10 +99,11 @@
}) })
}, },
handleClick(e, data) { handleClick(e, data) {
this.title=this.name+'-'+data.qualificationName+'(共'+ data.companyCount +'条)' this.title=this.combineName+'-'+data.qualificationName+'(共'+ data.companyCount +'条)'
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
}, },
} }
} }
</script> </script>
......
...@@ -6,11 +6,17 @@ ...@@ -6,11 +6,17 @@
custom-class="client-drawer" custom-class="client-drawer"
:with-header="false" :with-header="false"
@closed="cancel"> @closed="cancel">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton> <div class="head">
<div class="head" v-if="!isSkeleton">
<img class="tip-img" src="@/assets/images/icon.png" /> <img class="tip-img" src="@/assets/images/icon.png" />
<span>{{title}}</span> <span>{{title}}</span>
</div> </div>
<div style="height: 34px;margin: 12px">
<div class="cooperate-name" id="focus01">
<el-input clearable @clear="changeSelect" style="width: 300px;" @focus="clickFocus('focus01')" @blur="clickFocus('focus01')" v-model="queryParams.companyName" placeholder="成员名称查询"></el-input>
<span @click="changeSelect">搜索</span>
</div>
</div>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-if="!isSkeleton" v-if="!isSkeleton"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -18,6 +24,7 @@ ...@@ -18,6 +24,7 @@
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" :queryParams="queryParams"
:MaxPage=500
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;" style="margin: 12px;"
> >
...@@ -50,11 +57,9 @@ export default { ...@@ -50,11 +57,9 @@ export default {
queryParams: { queryParams: {
id: this.data.id, id: this.data.id,
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
companyName:''
}, },
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
],
forData: [ forData: [
{label: '拥有该资质成员', prop: 'companyName', slot: true}, {label: '拥有该资质成员', prop: 'companyName', slot: true},
{label: '成员共有资质(个)', prop: 'certificateCount'}, {label: '成员共有资质(个)', prop: 'certificateCount'},
...@@ -73,7 +78,8 @@ export default { ...@@ -73,7 +78,8 @@ export default {
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true this.isSkeleton = true
let param = params?params:this.queryParams let param = params?params:this.queryParams;
console.log(param)
let res = await memberCertificateList(param) let res = await memberCertificateList(param)
this.isSkeleton = false this.isSkeleton = false
if(res.code==200){ if(res.code==200){
...@@ -94,7 +100,19 @@ export default { ...@@ -94,7 +100,19 @@ export default {
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
} },
changeSelect(){
this.queryParams.pageNum = 1
this.handleQuery()
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
},
//分页
handleCurrentChange(e){
this.queryParams.pageNum = e
this.handleQuery()
},
} }
} }
</script> </script>
...@@ -114,5 +132,47 @@ export default { ...@@ -114,5 +132,47 @@ export default {
height: 17px; height: 17px;
margin: 0 8px -2px 12px; margin: 0 8px -2px 12px;
} }
.cooperate-name {
display: flex;
border-radius: 2px 0px 0px 2px;
border: 1px solid #D9D9D9;
line-height: 34px;
height: 34px;
width: 300px;
float: right;
span {
width: 80px;
height: 32px;
line-height: 32px;
font-size: 14px;
background: #F5F5F5;
text-align: center;
color: #0081FF;
border: 1px solid #EFEFEF;
border-left: 0;
cursor: pointer;
}
&.span-ba{
border: 1px solid #0081FF;
span{
color: #ffffff;
background: #0081FF;
border: 1px solid #0081FF;
}
}
::v-deep .el-input{
flex: 1;
}
::v-deep .el-input__inner {
border: 0;
line-height: 32px;
height: 32px;
position: absolute;
top: 0;
padding-right: 22px;
font-size: 12px;
padding-left: 8px;
}
}
} }
</style> </style>
...@@ -12,9 +12,10 @@ ...@@ -12,9 +12,10 @@
</div> </div>
<div class="group-right"> <div class="group-right">
<div id="groupBox" v-if="customerId"> <div id="groupBox" v-if="customerId">
<Members v-if="currentPath.pathName=='members'" :customer-id="customerId" :isSkeleton="isSkeleton" /> <Members v-if="currentPath.pathName=='members'" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Qualifications v-if="currentPath.pathName=='qualifications'" :customer-id="customerId" :isSkeleton="isSkeleton" :name="name"/> <Qualifications v-if="currentPath.pathName=='qualifications'" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Performance v-if="currentPath.pathName=='performance'" :customer-id="customerId" :isSkeleton="isSkeleton"/> <Performance v-if="currentPath.pathName=='performance'" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Zhaobiao v-if="currentPath.pathName=='zhaobiao'" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
</div> </div>
</div> </div>
</div> </div>
...@@ -27,12 +28,13 @@ ...@@ -27,12 +28,13 @@
import Members from "./component/members" import Members from "./component/members"
import Qualifications from "./component/qualifications" import Qualifications from "./component/qualifications"
import Performance from "./component/performance" import Performance from "./component/performance"
import Zhaobiao from "./component/zhaobiao"
import { infoHeader } from '@/api/detail/party-a/index' import { infoHeader } from '@/api/detail/party-a/index'
import elementResizeDetectorMaker from "element-resize-detector" import elementResizeDetectorMaker from "element-resize-detector"
export default { export default {
name: 'GroupAccount', name: 'GroupAccount',
components:{ components:{
SideBar,Members,Qualifications,Performance SideBar,Members,Qualifications,Performance,Zhaobiao
}, },
data(){ data(){
return{ return{
...@@ -77,6 +79,8 @@ ...@@ -77,6 +79,8 @@
} }
.group-left{ .group-left{
margin-right: 16px; margin-right: 16px;
padding-bottom: 16px;
background: #FFFFFF;
} }
.group-right{ .group-right{
min-width: 1088px; min-width: 1088px;
......
...@@ -272,7 +272,7 @@ export default { ...@@ -272,7 +272,7 @@ export default {
.options-block { .options-block {
position: absolute; position: absolute;
margin-top: 12px; margin-top: 5px;
min-width: 120px; min-width: 120px;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
......
...@@ -7,15 +7,15 @@ ...@@ -7,15 +7,15 @@
<div class="from-item" :key="i" v-for="(form, i) in formData"> <div class="from-item" :key="i" v-for="(form, i) in formData">
<!-- 单选 --> <!-- 单选 -->
<template v-if="form.type==1"> <template v-if="form.type==1">
<el-select <el-select
v-model="form.value" v-model="form.value"
clearable clearable
class="form-content-width" class="form-content-width"
:style="form.width?'width:'+form.width+'px':'max-width: 110px'" :style="form.width?'width:'+form.width+'px':'max-width: 110px'"
:placeholder="form.placeholder" :placeholder="form.placeholder"
@change="changeSelect"> @change="changeSelect">
<el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" :disabled="item.disabled"/> <el-option v-for="(item, index) in form.options" :key="index" :label="item.name" :value="item.value" :disabled="item.disabled"/>
</el-select> </el-select>
</template> </template>
<!-- 年月日 --> <!-- 年月日 -->
<template v-if="form.type==2"> <template v-if="form.type==2">
...@@ -98,10 +98,12 @@ ...@@ -98,10 +98,12 @@
</template> </template>
<div v-else class="flex-box"> <div v-else class="flex-box">
<span class="flex-box ability-total" v-if="isTotal">共{{ total }}条</span> <span class="flex-box ability-total" v-if="isTotal">共{{ total }}条</span>
<span class="flex-box ability-excel" v-if="isExcel" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span> <span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid']" v-if="isExcel && title ==='集团业绩'" @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" v-else @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
...@@ -156,10 +158,14 @@ export default { ...@@ -156,10 +158,14 @@ export default {
this.$emit('handle-search') this.$emit('handle-search')
}, },
clickEXCEL() { clickEXCEL() {
this.$message({ if(this.title==='集团业绩'){
message: '功能正在开发中', this.$emit('handle-excel')
type: 'warning' }else {
}); this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}, },
clickFocus(e){ clickFocus(e){
document.getElementById(e).classList.toggle('span-ba') document.getElementById(e).classList.toggle('span-ba')
...@@ -167,8 +173,15 @@ export default { ...@@ -167,8 +173,15 @@ export default {
} }
} }
</script> </script>
<style lang="scss">
.el-popper[x-placement^=bottom] {
margin-top: 5px !important;
}
</style>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-popper[x-placement^=bottom] {
margin-top: 5px;
}
.headForm{ .headForm{
margin-bottom: 14px; margin-bottom: 14px;
.common-title{ .common-title{
...@@ -219,7 +232,7 @@ export default { ...@@ -219,7 +232,7 @@ export default {
} }
.cooperate-name { .cooperate-name {
display: flex; display: flex;
border-radius: 2px 0px 0px 2px; border-radius: 2px;
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
line-height: 34px; line-height: 34px;
height: 34px; height: 34px;
...@@ -236,7 +249,7 @@ export default { ...@@ -236,7 +249,7 @@ export default {
cursor: pointer; cursor: pointer;
} }
&.span-ba{ &.span-ba{
border: 1px solid #0081FF; /*border: 1px solid #0081FF;*/
span{ span{
color: #ffffff; color: #ffffff;
background: #0081FF; background: #0081FF;
......
...@@ -197,6 +197,12 @@ export default { ...@@ -197,6 +197,12 @@ export default {
} }
} }
} }
.table-item{
::v-deep .el-table td.el-table__cell{
border-bottom: 0;
}
}
::v-deep .el-table th.el-table__cell.is-leaf,::v-deep .el-table td.el-table__cell { ::v-deep .el-table th.el-table__cell.is-leaf,::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #E6EAF1; border-bottom: 1px solid #E6EAF1;
} }
......
...@@ -981,12 +981,15 @@ export default { ...@@ -981,12 +981,15 @@ export default {
}, },
initChart1(list){ initChart1(list){
let data=[] let data=[]
if(list.length > 10){ let arr=list.sort(function(a, b) {
return b.count - a.count;
});
if(arr.length > 10){
for(var i=0;i<10;i++){ for(var i=0;i<10;i++){
data.push(list[i]) data.push(arr[i])
} }
}else { }else {
data=list; data=arr;
} }
var rankPic = [ var rankPic = [
......
...@@ -376,7 +376,7 @@ export default { ...@@ -376,7 +376,7 @@ export default {
top: 46px; top: 46px;
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
border border
v-horizontal-scroll="'always'"
highlight-current-row highlight-current-row
@sort-change="sortChange" @sort-change="sortChange"
:default-sort = "{prop: 'gdp', order: 'descending'}" :default-sort = "{prop: 'gdp', order: 'descending'}"
...@@ -36,7 +37,7 @@ ...@@ -36,7 +37,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="gdpGrowth" label="GDP增速(%)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdpGrowth" label="GDP增速(%)" sortable width="130" :formatter="formatStatus"/>
<el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/> <el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/>
<el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/> <el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/>
...@@ -226,7 +227,6 @@ export default { ...@@ -226,7 +227,6 @@ export default {
overflow-y: clip; overflow-y: clip;
} }
th{ th{
font-size: 12px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -873,7 +873,7 @@ export default { ...@@ -873,7 +873,7 @@ export default {
::v-deep .el-table{ ::v-deep .el-table{
overflow:visible; overflow:visible;
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
collapse-tags collapse-tags
clearable></el-cascader> clearable></el-cascader>
<el-input placeholder="输入关键词查询" v-model="queryParams.ename" clearable @clear="handleSearch()"> <el-input placeholder="输入关键词查询" v-model="queryParams.ename" clearable @clear="handleSearch()">
<i slot="prefix" class="el-icon-search"></i>
<el-button slot="append" @click="handleSearch()">搜索</el-button> <el-button slot="append" @click="handleSearch()">搜索</el-button>
</el-input> </el-input>
<span class="total">{{tableDataTotal}}</span> <span class="total">{{tableDataTotal}}</span>
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
v-loading="tableLoading" v-loading="tableLoading"
border border
fit fit
max-height="640" v-horizontal-scroll="'always'"
@sort-change="sortChange" @sort-change="sortChange"
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0 && !isSkeleton" v-if="tableDataTotal > 0 && !isSkeleton"
...@@ -353,11 +354,13 @@ export default { ...@@ -353,11 +354,13 @@ export default {
width: 180px; width: 180px;
margin-right: 12px; margin-right: 12px;
height: 32px; height: 32px;
line-height: 32px !important;
.el-input{ .el-input{
width: 100%; width: 100%;
height: 32px; height: 32px;
.el-input__inner{ .el-input__inner{
height: 32px !important; height: 32px !important;
line-height: 32px !important;
} }
} }
.el-cascader__tags{ .el-cascader__tags{
...@@ -378,8 +381,20 @@ export default { ...@@ -378,8 +381,20 @@ export default {
.el-input__suffix{ .el-input__suffix{
margin-top: -1px; margin-top: -1px;
} }
.el-icon-search{
font-size: 14px;
line-height: 32px;
color:#0081FF;
margin-left: 6px;
margin-right: 4px;
}
.el-input__inner:focus{ .el-input__inner:focus{
border-color: #e0e0e0; border-color: #0081FF;
}
.el-input__inner:focus ~.el-input-group__append{
border: 1px solid #0081FF;
color: #ffffff;
background: #0081FF;
} }
.el-input-group__append{ .el-input-group__append{
width: 60px; width: 60px;
...@@ -388,8 +403,7 @@ export default { ...@@ -388,8 +403,7 @@ export default {
background: #F5F5F5; background: #F5F5F5;
color:#0081FF; color:#0081FF;
border-left: 0; border-left: 0;
border-radius: 0; border-radius: 2px;
border-right: 0;
} }
} }
.total{ .total{
...@@ -439,7 +453,7 @@ export default { ...@@ -439,7 +453,7 @@ export default {
overflow-y: clip; overflow-y: clip;
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -437,7 +437,6 @@ export default { ...@@ -437,7 +437,6 @@ export default {
.content{ .content{
background: #ffffff; background: #ffffff;
padding: 16px; padding: 16px;
margin-bottom: 16px;
border-radius: 4px; border-radius: 4px;
} }
.common-title{ .common-title{
......
...@@ -866,7 +866,7 @@ ...@@ -866,7 +866,7 @@
} }
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -53,15 +53,15 @@ ...@@ -53,15 +53,15 @@
return { return {
// tablist // tablist
personnelList: [ personnelList: [
{ // {
key: 'MajorProject', // key: 'MajorProject',
status: true, // status: true,
value: '重点项目清单', // value: '重点项目清单',
}, // },
{ {
key: 'debtProject', key: 'debtProject',
status: false, status: true,
value: '政府专项债项目', value: '政府专项债项目',
}, },
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
}, },
], ],
personnelHerf:'MajorProject' personnelHerf:'debtProject'
} }
}, },
created() { created() {
...@@ -129,8 +129,8 @@ ...@@ -129,8 +129,8 @@
} }
.content{ .content{
padding: 0px 16px; padding: 0px 16px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px 4px 0 0;
} }
.app-container .combined-title { .app-container .combined-title {
......
...@@ -192,6 +192,36 @@ public class EnterpriseBussinessService { ...@@ -192,6 +192,36 @@ public class EnterpriseBussinessService {
return new TableDataInfo(new ArrayList<>(), 0); return new TableDataInfo(new ArrayList<>(), 0);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage2", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage2", BeanUtil.beanToMap(body, false, false));
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isEmpty(list)) {
return new TableDataInfo(list, 0);
}
ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) {
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
}
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("ids", cIds);
Map<String, Object> uipIdMap = dskOpenApiUtil.requestBody("/operate/enterprise/getUipIdByCid", paramMap);
Object uipIdData = uipIdMap.get("data");
List<Map<String, Object>> mapList = new ArrayList<>();
if (ObjectUtil.isNotEmpty(uipIdData)) {
mapList = (List<Map<String, Object>>)uipIdData;
}
for (Object dataMap : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(dataMap);
Long cusCompanyId = MapUtils.getLong(companyMap, "companyId", 0L);
companyMap.put("uipId", null);
for (Map<String, Object> m : mapList) {
String uipId = MapUtils.getString(m, "uipId", null);
Long companyId = MapUtils.getLong(m, "companyId", 0L);
if (cusCompanyId.equals(companyId)) {
companyMap.put("uipId", uipId);
}
}
}
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
......
package com.dsk.system.dskService; package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.mail.MailUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.redis.RedisCache;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
...@@ -30,6 +34,9 @@ public class IndexService { ...@@ -30,6 +34,9 @@ public class IndexService {
@Autowired @Autowired
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private RedisCache redisCache;
public AjaxResult bigWinningBidsPage(JSONObject object) { public AjaxResult bigWinningBidsPage(JSONObject object) {
ArrayList recentlyBidQueryDtoList = object.getJSONArray("recentlyBidQueryDto"); ArrayList recentlyBidQueryDtoList = object.getJSONArray("recentlyBidQueryDto");
Map<String,Object> objectMap = new HashMap<>(); Map<String,Object> objectMap = new HashMap<>();
...@@ -91,6 +98,26 @@ public class IndexService { ...@@ -91,6 +98,26 @@ public class IndexService {
} }
public AjaxResult countByCompany(JSONObject object) { public AjaxResult countByCompany(JSONObject object) {
Date startDate = object.getDate("startDate");
Date endDate = object.getDate("endDate");
long l = 0;
long i = 0;
if (startDate!=null&&endDate!=null){
l = DateUtil.betweenDay(startDate, endDate, false);
i = DateUtil.betweenDay(endDate, new Date(), false);
}
if (null!=object&&null==object.get("provinceId")&&null==object.get("type")&&l==3&&i==0){
Map<String, Object> countByCompany = redisCache.getCacheMap("index_countByCompany");
if (null==countByCompany|| MapUtil.isEmpty(countByCompany)){
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/centralEnterprse/countByCompany", object);
redisCache.setCacheMap("index_countByCompany",map);
redisCache.expire("index_countByCompany",7200);
return BeanUtil.toBean(countByCompany, AjaxResult.class);
}else {
log.info("首页集团中标业绩从缓存中取");
return BeanUtil.toBean(countByCompany, AjaxResult.class);
}
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/centralEnterprse/countByCompany", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/centralEnterprse/countByCompany", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
......
...@@ -60,7 +60,7 @@ public class JskCombineInfoService { ...@@ -60,7 +60,7 @@ public class JskCombineInfoService {
} }
public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception { public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/businessList", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/combine/projectList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) { if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) { if (!ObjectUtils.isEmpty(data.get("list"))) {
...@@ -147,8 +147,8 @@ public class JskCombineInfoService { ...@@ -147,8 +147,8 @@ public class JskCombineInfoService {
public List<JskCombineWinBidProjectExportVo> exportWinBid(JskCombineSearchDto dto) { public List<JskCombineWinBidProjectExportVo> exportWinBid(JskCombineSearchDto dto) {
if (ObjectUtils.isEmpty(dto.getPageSize())) throw new ServiceException("导出条数不能为空!"); if (ObjectUtils.isEmpty(dto.getPageSize())) throw new ServiceException("导出条数不能为空!");
if (dto.getPageSize() > 2000) dto.setPageSize(2000); if (dto.getPageSize() > 2000) dto.setPageSize(2000);
dto.setPageNum(1);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/businessList", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/combine/projectList", BeanUtil.beanToMap(dto, false, false));
if (ObjectUtils.isEmpty(map.get("data"))) throw new ServiceException("导出失败,系统错误!"); if (ObjectUtils.isEmpty(map.get("data"))) throw new ServiceException("导出失败,系统错误!");
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (ObjectUtils.isEmpty(data.get("list"))) throw new ServiceException("导出失败,系统错误!"); if (ObjectUtils.isEmpty(data.get("list"))) throw new ServiceException("导出失败,系统错误!");
...@@ -178,7 +178,7 @@ public class JskCombineInfoService { ...@@ -178,7 +178,7 @@ public class JskCombineInfoService {
public List<JskCombineBidProjectExportVo> exportBid(JskCombineBidPageDto dto) { public List<JskCombineBidProjectExportVo> exportBid(JskCombineBidPageDto dto) {
if (ObjectUtils.isEmpty(dto.getPageSize())) throw new ServiceException("导出条数不能为空!"); if (ObjectUtils.isEmpty(dto.getPageSize())) throw new ServiceException("导出条数不能为空!");
if (dto.getPageSize() > 2000) dto.setPageSize(2000); if (dto.getPageSize() > 2000) dto.setPageSize(2000);
dto.setPageNum(1);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/bidPage", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/bidPage", BeanUtil.beanToMap(dto, false, false));
if (ObjectUtils.isEmpty(map.get("data"))) throw new ServiceException("导出失败,系统错误!"); if (ObjectUtils.isEmpty(map.get("data"))) throw new ServiceException("导出失败,系统错误!");
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
......
...@@ -92,4 +92,10 @@ public class BusinessOpportunityRadarService { ...@@ -92,4 +92,10 @@ public class BusinessOpportunityRadarService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult importantPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/importantPage", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
} }
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