Commit abbc1fda authored by huangjie's avatar huangjie

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

parents f8c7335f b327a977
......@@ -4,6 +4,7 @@ package com.dsk.jsk.controller;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import com.dsk.jsk.service.EnterpriseProjectService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -163,4 +164,12 @@ public class EnterpriseProjectController {
return enterpriseProjectService.projectProcess(body);
}
/**
* 企业重点项目列表
*/
@RequestMapping(value = "/importantList", method = RequestMethod.POST)
public TableDataInfo importantList(@RequestBody EnterpriseProjectImportantListDto dto) throws Exception {
return enterpriseProjectService.importantList(dto);
}
}
package com.dsk.jsk.domain.bo;
import com.dsk.jsk.domain.BasePage;
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 EnterpriseProjectImportantListDto extends BasePage {
private Integer companyId;
private String keys;
private String projectLevel;
private String projectType;
}
package com.dsk.jsk.service;
import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
......@@ -7,6 +8,7 @@ import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -217,4 +219,10 @@ public class EnterpriseProjectService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/recruitmentMarket/projectProcess", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo importantList(EnterpriseProjectImportantListDto dto) throws Exception{
if(ObjectUtil.isEmpty(dto.getCompanyId())) throw new BeanException("企业id不能为空!");
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/importantList", BeanUtil.beanToMap(dto, false, false));
return dskOpenApiUtil.responsePage(map);
}
}
......@@ -140,7 +140,7 @@
<p><span style="margin-right:4;color:rgba(35, 35, 35, 0.40);font-size: 18px;position: relative;top:2px;">·</span>共有{{total}}条</p>
<p v-hasPermi="['radar:export:important']" >
<img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="search('','','export')">导出EXCEL</span>
<span class="excel" @click="clickDialog">导出EXCEL</span>
</p>
</div>
......@@ -232,8 +232,54 @@
:total="total>limit*500?501*limit:total">
</el-pagination>
</div>
</div>
<el-dialog :visible.sync="dialogExportVisible" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />数据导出
</template>
<div class="table-item">
<el-table :data="exportTableData">
<el-table-column prop="issueTime" label="招标发布时间" width="110"></el-table-column>
<el-table-column prop="tenderee" label="招标成员" width="200"></el-table-column>
<el-table-column prop="stockPercent" label="持股比例" min-width="100"></el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="220"></el-table-column>
<el-table-column prop="bidAmount" label="预算金额" min-width="100"></el-table-column>
<el-table-column prop="address" label="项目地区" min-width="110"></el-table-column>
<el-table-column prop="subjectMatter" label="招标采购分类" min-width="130"></el-table-column>
<el-table-column prop="projectType" label="项目类型" min-width="100"></el-table-column>
<el-table-column prop="agency" label="代理单位" min-width="160"></el-table-column>
</el-table>
</div>
<div class="input">
导出数量:
<el-input placeholder="" v-model="value" oninput="value=value.replace(/[^\d]/g,'')">
<template slot="append"></template>
</el-input>
<p v-if="value > 2000"><i class="el-icon-error"></i>最多支持导出2000条,如需更多联系大司空客服人员</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="clickEXCEL">确认导出</el-button>
<el-button @click="cancel">取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogExportVisible1" width="640px" append-to-body class="dialogExport">
<template slot="title">
<img class="tip-img" src="@/assets/images/icon.png" />
数据导出
</template>
<div class="content">
<img class="success" src="@/assets/images/success.png" />
<p class="p1">导出成功</p>
<p class="p2">
可在个人中心查看导出表格
<span @click="toUrl">前往个人中心</span>
</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="downloadFile(exportData.url,exportData.originalName)">下载表格</el-button>
<el-button @click="dialogExportVisible1 = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -243,11 +289,37 @@ import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js';
export default {
name: 'BidRecord',
name: 'MajorProject',
components:{skeleton},
data() {
return {
encodeStr,
dialogExportVisible1:false,
exportTableData:[{
"address":"四川省-成都市",
"stockPercent":"18.43%",
"agency":'鞍钢股份有限公司',
"issueTime":"2023-09-22",
"subjectMatter":"其他",
"memberLevel":"二级企业",
"tenderee":"鞍钢冷轧钢板(莆田)有限公司综合部",
"projectType":"其他",
"bidAmount":"202万元",
"projectName":"2023年中铁一局集团第二工程有限公司江浙区域项目自购物资集中招标采购文件(一)(钢材)招标公告",
},
{
"address":"四川省-成都市",
"stockPercent":"18.43%",
"agency":'鞍钢股份有限公司',
"issueTime":"2023-09-22",
"subjectMatter":"其他",
"memberLevel":"二级企业",
"tenderee":"鞍钢股份有限公司",
"projectType":"其他",
"bidAmount":"202万元",
"projectName":"太极集团四川太极制药有限公司转让持有的成都市4套住宅-高新区玉虹巷2号1栋6单元7层13号",
}],
exportData:{},
fieldshow: false,
fieldText: '默认排序',
field: 'year', //查询结果排序方式
......@@ -371,7 +443,9 @@ export default {
total:0,
page: 1,
limit: 20,
dataEXCEL:{}
dataEXCEL:{},
dialogExportVisible:false,
value:''
};
},
mounted() {
......@@ -446,17 +520,9 @@ export default {
},
importantProjectDto: data,
};
if(exportFlag){
this.dataEXCEL = params
if(this.total > 2000){
this.dataEXCEL.page.limit = 2000;
}else {
this.dataEXCEL.page.limit = this.total;
}
this.$download.exportByPost('/radar/export/important',this.dataEXCEL,'重点项目清单.xlsx');
}else{
api.getImportantPage(params).then(res=>{
this.isSkeleton = false;
this.isSkeleton = false;
if (res.code==200) {
this.tableData=res.data.list;
this.total=res.data.total;
......@@ -467,7 +533,7 @@ export default {
});
}
},
getUipIdByCid(companyId){
......@@ -673,6 +739,52 @@ export default {
this.fieldOptions[index].status = true;
this.search();
},
clickDialog(){
this.dialogExportVisible=true;
},
clickEXCEL() {
if(this.value > 2000){
return
}
this.dialogExportVisible=false;
if(this.value){
this.dataEXCEL.page.limit=this.value
}else {
this.dataEXCEL.page.limit=this.total > 2000 ? 2000 : this.total;
}
delete this.dataEXCEL.page.page
api.radarExport(this.dataEXCEL).then(res=>{
if(res.code === 200){
this.dialogExportVisible1=true;
this.value=''
this.exportData=res.data;
}
})
},
cancel(){
this.dialogExportVisible=false
this.value=''
},
downloadFile(url, fileName) {
const x = new XMLHttpRequest()
x.open("GET", url, true)
x.responseType = 'blob'
x.onload=function(e) {
const url = window.URL.createObjectURL(x.response)
const a = document.createElement('a')
a.href = url
a.download = fileName
a.click()
a.remove()
}
x.send()
},
toUrl(){
this.dialogExportVisible1=false;
this.$router.push({
path: '/user/profile',
})
},
},
};
</script>
......@@ -946,8 +1058,94 @@ export default {
}
}
.jabph_popper_box{
left: 101px;
left: 101px;
}
.dialogExport{
::v-deep .el-dialog{
.el-dialog__header{
height: 48px;
line-height: 48px;
padding: 0 16px;
border-bottom: 1px solid #E1E1E1;
font-weight: bold;
color: #1D2129;
font-size: 16px;
.tip-img{
width: 18px;
height: 18px;
margin-right: 7px;
margin-bottom: -3px;
}
.el-dialog__headerbtn{
font-size: 20px;
font-weight: bold;
top: 15px;
.el-dialog__close{
color:#999999;
}
}
}
.el-dialog__body{
padding: 16px;
.input{
margin-top: 16px;
.el-input{
width: 160px;
border-radius: 2px;
height: 32px;
.el-input__inner{
height: 32px;
line-height: 32px;
}
}
.el-input-group__append{
padding: 0 14px;
}
p{
color: #FF3C3C;
font-size: 12px;
margin-left: 12px;
display: inline-block;
i{
font-size: 14px;
margin-right: 4px;
}
}
}
.content{
text-align: center;
margin-top: 36px;
.success{
width: 64px;
height: 64px;
margin-bottom: 16px;
}
p{
padding: 0;
margin: 0;
}
.p1{
color: #232323;
font-size: 16px;
margin-bottom: 8px;
}
.p2{
color: rgba(35,35,35,0.4);
font-size: 14px;
span{
color:#0081FF;
cursor: pointer;
}
}
}
}
.el-dialog__footer{
text-align: center;
padding-bottom: 24px;
}
}
}
</style>
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