Commit af10d468 authored by danfuman's avatar danfuman

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

parents 727e2890 50f592ab
...@@ -4,6 +4,7 @@ package com.dsk.jsk.controller; ...@@ -4,6 +4,7 @@ package com.dsk.jsk.controller;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.jsk.domain.*; import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import com.dsk.jsk.service.EnterpriseProjectService; import com.dsk.jsk.service.EnterpriseProjectService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -163,4 +164,12 @@ public class EnterpriseProjectController { ...@@ -163,4 +164,12 @@ public class EnterpriseProjectController {
return enterpriseProjectService.projectProcess(body); 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; package com.dsk.jsk.service;
import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
...@@ -7,6 +8,7 @@ import com.dsk.common.core.domain.R; ...@@ -7,6 +8,7 @@ import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.jsk.domain.*; import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.EnterpriseProjectImportantListDto;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -217,4 +219,10 @@ public class EnterpriseProjectService { ...@@ -217,4 +219,10 @@ public class EnterpriseProjectService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/recruitmentMarket/projectProcess", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/recruitmentMarket/projectProcess", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class); 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);
}
} }
...@@ -721,6 +721,29 @@ ul, li { ...@@ -721,6 +721,29 @@ ul, li {
} }
} }
} }
//无边框搜索框
.newSearch{
width: 238px;
height: 32px;
border-radius: 4px;
.el_input{
height: 32px !important;
}
.el-input__prefix{
left: 12px;
.el-input__icon{
img{
float: left;
margin-top: 7px;
}
}
}
.el-input__inner{
padding-left: 36px;
border-color: #fff !important;
height: 32px !important;
}
}
//导出EXCEL //导出EXCEL
.btn-export{ .btn-export{
display: inline-block; display: inline-block;
...@@ -766,3 +789,17 @@ ul, li { ...@@ -766,3 +789,17 @@ ul, li {
box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12); box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
-webkit-box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12); -webkit-box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
} }
//下拉选项样式
.el-select-dropdown {
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
border: 0;
.el-select-dropdown__list {
padding: 0;
.el-select-dropdown__item {
padding: 0 16px;
}
}
}
...@@ -836,19 +836,27 @@ ...@@ -836,19 +836,27 @@
} }
//资料文档、相关企业 //资料文档、相关企业
.searchbtns{ .searchbtns{
display: flex;
position: absolute; position: absolute;
right: 16px; left: 100px;
top: 17px; top: 17px;
width: calc(100% - 116px);
.searchInput, .el-select {
float: left;
}
.btn{
float: right;
}
.searchInput{ .searchInput{
position: relative;
&.small{ &.small{
border: 1px solid #d9d9d9; border: 1px solid #fff;
width: 240px; width: 240px;
.el-input{ .el-input{
width: 180px; //width: 180px;
} }
.el-input__inner{ .el-input__inner{
padding-right: 32px; //padding-right: 32px;
} }
.el-input__prefix{ .el-input__prefix{
left: 8px; left: 8px;
...@@ -868,19 +876,25 @@ ...@@ -868,19 +876,25 @@
border-radius: 2px; border-radius: 2px;
} }
.select{ .select{
width: 110px; width: 94px;
.el-input__inner{ .el-input__inner{
width: 110px; //width: 110px;
height: 32px; height: 32px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 2px; border-radius: 4px;
border: 1px solid #D9D9D9; border: 0;
padding:5px 28px 5px 8px;
} }
.el-input--medium .el-input__icon{ .el-input--medium .el-input__icon{
line-height: 32px; line-height: 32px;
} }
margin-right: 10px; margin-right: 10px;
.is-focus{
.el-input__inner{
background: #F4F6F9;
}
}
} }
} }
.document{ .document{
...@@ -1273,3 +1287,6 @@ ...@@ -1273,3 +1287,6 @@
} }
} }
} }
.top12{
margin-top: 12px;
}
...@@ -242,7 +242,11 @@ export default { ...@@ -242,7 +242,11 @@ export default {
width: 120px; width: 120px;
height: 34px; height: 34px;
position: relative; position: relative;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block { .input-block {
margin: 0; margin: 0;
width: 100%; width: 100%;
...@@ -256,6 +260,9 @@ export default { ...@@ -256,6 +260,9 @@ export default {
>.custom-money-input.el-input { >.custom-money-input.el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
.el-input__inner{
border: 0;
}
>input { >input {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -290,10 +297,9 @@ export default { ...@@ -290,10 +297,9 @@ export default {
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
background-color: #fff; background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px; border-radius: 4px;
z-index: 10; z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
// .arrow { // .arrow {
......
...@@ -248,6 +248,11 @@ export default { ...@@ -248,6 +248,11 @@ export default {
width: 120px; width: 120px;
height: 34px; height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block { .input-block {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -261,6 +266,9 @@ export default { ...@@ -261,6 +266,9 @@ export default {
>.custom-time-input.el-input { >.custom-time-input.el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
.el-input__inner{
border: 0;
}
>input { >input {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -295,10 +303,9 @@ export default { ...@@ -295,10 +303,9 @@ export default {
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
background-color: #fff; background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px; border-radius: 4px;
z-index: 10; z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option { .option {
padding: 0 24px 0 16px; padding: 0 24px 0 16px;
......
...@@ -18,10 +18,11 @@ ...@@ -18,10 +18,11 @@
<div> <div>
<el-form ref="queryForm" :model="searchParam" :inline="true" size="small"> <el-form ref="queryForm" :model="searchParam" :inline="true" size="small">
<el-form-item prop="companyName"> <el-form-item prop="companyName">
<div class="searchInput"> <div class="newSearch">
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input> <el-input type="text" v-model="searchParam.companyName" clearable placeholder="输入企业名称查询" @change="clearname" >
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="handleCurrentChange(1)"></i>
</div> </el-input>
</div>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-cascader <el-cascader
...@@ -839,8 +840,5 @@ ...@@ -839,8 +840,5 @@
} }
.searchInput{ .searchInput{
width: 240px; width: 240px;
.el-input{
/*width: 260px;*/
}
} }
</style> </style>
...@@ -9,9 +9,10 @@ ...@@ -9,9 +9,10 @@
<div class="p2">建议调整关键词或筛选条件,重新搜索</div> <div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="searchInput"> <div class="newSearch">
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input> <el-input type="text" v-model="searchParam.companyName" clearable placeholder="输入企业名称查询" @change="clearname" >
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="handleCurrentChange(1)"></i>
</el-input>
</div> </div>
<div class="dc"> <div class="dc">
<div class="total">{{tableData.total}}</div> <div class="total">{{tableData.total}}</div>
......
...@@ -229,7 +229,11 @@ export default { ...@@ -229,7 +229,11 @@ export default {
width: 120px; width: 120px;
height: 34px; height: 34px;
position: relative; position: relative;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block { .input-block {
margin: 0; margin: 0;
width: 100%; width: 100%;
...@@ -243,6 +247,9 @@ export default { ...@@ -243,6 +247,9 @@ export default {
>.custom-money-input.el-input { >.custom-money-input.el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
.el-input__inner{
border: 0;
}
>input { >input {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -277,10 +284,10 @@ export default { ...@@ -277,10 +284,10 @@ export default {
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
background-color: #fff; background-color: #fff;
border: 1px solid #E4E7ED; /*padding: 6px 0;*/
padding: 6px 0;
border-radius: 4px; border-radius: 4px;
z-index: 10; z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
// .arrow { // .arrow {
......
...@@ -241,6 +241,11 @@ export default { ...@@ -241,6 +241,11 @@ export default {
width: 120px; width: 120px;
height: 34px; height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block { .input-block {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -254,13 +259,16 @@ export default { ...@@ -254,13 +259,16 @@ export default {
>.custom-time-input.el-input { >.custom-time-input.el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
.el-input__inner{
border: 0;
}
>input { >input {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
border-radius: 2px; border-radius: 4px;
} }
} }
} }
...@@ -283,15 +291,15 @@ export default { ...@@ -283,15 +291,15 @@ export default {
.options-block { .options-block {
position: absolute; position: absolute;
margin-top: 12px; margin-top: 6px;
min-width: 120px; min-width: 120px;
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
background-color: #fff; background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px; border-radius: 4px;
z-index: 10; z-index: 10;
overflow: hidden;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option { .option {
padding: 0 24px 0 16px; padding: 0 24px 0 16px;
......
...@@ -48,8 +48,9 @@ ...@@ -48,8 +48,9 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name" :id="'focus'+i"> <div class="cooperate-name" :id="'focus'+i">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input> <el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:200px'">
<span @click="changeSelect">搜索</span> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" width="16px" @click="changeSelect"></i>
</el-input>
</div> </div>
</template> </template>
<!-- 多选 --> <!-- 多选 -->
...@@ -300,8 +301,8 @@ export default { ...@@ -300,8 +301,8 @@ export default {
} }
::v-deep .el-input__inner{ ::v-deep .el-input__inner{
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
height: 34px; height: 32px;
line-height: 34px; line-height: 32px;
padding-right: 27px; padding-right: 27px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
...@@ -343,10 +344,18 @@ export default { ...@@ -343,10 +344,18 @@ export default {
} }
.cooperate-name { .cooperate-name {
display: flex; display: flex;
border-radius: 2px; border-radius: 4px;
border: 1px solid #D9D9D9; border: 0;
line-height: 34px; line-height: 32px;
height: 34px; height: 32px;
width: 238px;
.el-input__icon{
>img{
position: absolute;
top: 7px;
left: 5px;
}
}
span { span {
width: 60px; width: 60px;
height: 32px; height: 32px;
...@@ -360,7 +369,7 @@ export default { ...@@ -360,7 +369,7 @@ export default {
cursor: pointer; cursor: pointer;
} }
&.span-ba{ &.span-ba{
border: 1px solid #0081FF; border-color: #0081FF;
span{ span{
color: #ffffff; color: #ffffff;
background: #0081FF; background: #0081FF;
...@@ -368,7 +377,7 @@ export default { ...@@ -368,7 +377,7 @@ export default {
} }
} }
::v-deep .el-input{ ::v-deep .el-input{
flex: 1; width: 100%;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
border: 0; border: 0;
...@@ -376,9 +385,7 @@ export default { ...@@ -376,9 +385,7 @@ export default {
height: 32px; height: 32px;
position: absolute; position: absolute;
top: 0; top: 0;
padding-right: 22px; padding-left: 36px;
font-size: 12px;
padding-left: 8px;
} }
} }
.fromTime{ .fromTime{
...@@ -401,6 +408,25 @@ export default { ...@@ -401,6 +408,25 @@ export default {
} }
::v-deep .form-content-width{ ::v-deep .form-content-width{
width: 170px; width: 170px;
.el_input{
background: #fff;
}
.el-input__inner{
border-color: #fff;
padding:5px 28px 5px 8px;
border-radius: 4px !important;
}
.el-input__suffix{
height: 32px;
.el-input__icon{
line-height: 32px;
}
}
.is-focus{
.el-input__inner{
background: #F4F6F9;
}
}
} }
::v-deep .selectTag{ ::v-deep .selectTag{
.el-select__tags{ .el-select__tags{
......
...@@ -158,9 +158,9 @@ export default { ...@@ -158,9 +158,9 @@ export default {
{label: '项目状态', prop: 'status', width: '90', slot: true} {label: '项目状态', prop: 'status', width: '90', slot: true}
], ],
formData: [ formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []}, { type: 1, fieldName: 'projectStage',width:'94', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []}, { type: 1, fieldName: 'status', width:'94',value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'projectName', width:'200', value: '', placeholder: '输入项目名称关键字搜索'}, { type: 3, fieldName: 'projectName', width:'240', value: '', placeholder: '输入项目名称关键字搜索'},
], ],
stageOptions:[], stageOptions:[],
statusOptions:[], statusOptions:[],
......
...@@ -256,6 +256,11 @@ export default { ...@@ -256,6 +256,11 @@ export default {
width: 120px; width: 120px;
height: 34px; height: 34px;
.rote {
.el-input__inner{
background: #F4F6F9;
}
}
.input-block { .input-block {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -269,6 +274,9 @@ export default { ...@@ -269,6 +274,9 @@ export default {
>.custom-time-input.el-input { >.custom-time-input.el-input {
width: 100%; width: 100%;
height: 100%; height: 100%;
.el-input__inner{
border: 0;
}
>input { >input {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -303,10 +311,9 @@ export default { ...@@ -303,10 +311,9 @@ export default {
font-size: 14px; font-size: 14px;
color: #666666; color: #666666;
background-color: #fff; background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px; border-radius: 4px;
z-index: 10; z-index: 10;
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.08);
.option { .option {
padding: 0 24px 0 16px; padding: 0 24px 0 16px;
......
<template> <template>
<div> <div>
<el-card class="box-card noborder"> <el-card class="box-card noborder" >
<div class="cardtitles">相关企业</div> <div class="cardtitles">相关企业</div>
<div class="searchbtns"> <div class="searchbtns">
<el-select class="select" placeholder="企业类型" clearable v-model="searchParam.companyRole" @change="handleCurrentChange(1)"> <el-select class="select" placeholder="企业类型" clearable v-model="searchParam.companyRole" @change="handleCurrentChange(1)">
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
</el-select> </el-select>
<div class="searchInput small"> <div class="searchInput small">
<el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName"> <el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png"></i></el-input> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" @click="handleCurrentChange(1)"></i></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <!--<div class="btn" @click="handleCurrentChange(1)">搜索</div>-->
</div> </div>
<div class="btn btn_primary h32 b3" @click="opennew" v-if="isDisableds == false"><div class="img img1"></div>添加相关企业</div> <div class="btn btn_primary h32 b3" @click="opennew" v-if="isDisableds == false"><div class="img img1"></div>添加相关企业</div>
</div> </div>
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
<!--<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">--> <!--<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">-->
<div class="searchInput small"> <div class="searchInput small">
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"> <el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png"></i> <i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png" @click="handleCurrentChange(1)"></i>
</el-input> </el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <!--<div class="btn" @click="handleCurrentChange(1)">搜索</div>-->
</div> </div>
<!--<div class="btn btn_primary h32 b2" @click="getUP" v-if="fileDatas.total>0"><div class="img img2"></div>上传</div>--> <!--<div class="btn btn_primary h32 b2" @click="getUP" v-if="fileDatas.total>0"><div class="img img2"></div>上传</div>-->
......
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
</div> </div>
</el-card> </el-card>
<el-card class="box-card noborder"> <el-card class="box-card noborder top12" style="margin-bottom: 12px">
<div class="tabslist"> <div class="tabslist">
<div class="tab" v-for="(item,index) in tabslist" :class="{'on':thistag == item.tag}" @click="getCom(item.tag)"> <div class="tab" v-for="(item,index) in tabslist" :class="{'on':thistag == item.tag}" @click="getCom(item.tag)">
<span>{{item.name}}</span> <span>{{item.name}}</span>
......
...@@ -110,8 +110,8 @@ ...@@ -110,8 +110,8 @@
</el-tabs> </el-tabs>
</el-card> </el-card>
<el-card class="box-card noborder overflows"> <el-card class="box-card noborder overflows top12">
<div class="titles">项目明细 <div class="titles"><!--项目明细-->
<div class="dc"> <div class="dc">
<div class="total">{{total}}</div> <div class="total">{{total}}</div>
<!--<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">--> <!--<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">-->
...@@ -573,8 +573,9 @@ export default { ...@@ -573,8 +573,9 @@ export default {
height: 60px; height: 60px;
line-height: 64px; line-height: 64px;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
padding-left: 26px; padding-left: 2px;
&::after{ padding-right: 24px;
/*&::after{
content: " "; content: " ";
width: 2px; width: 2px;
height: 14px; height: 14px;
...@@ -582,13 +583,13 @@ export default { ...@@ -582,13 +583,13 @@ export default {
float: left; float: left;
margin-left: -10px; margin-left: -10px;
margin-top: 24px; margin-top: 24px;
} }*/
.dc{ .dc{
width: 100%;
float: right; float: right;
font-size: 12px; font-size: 12px;
color: #3D3D3D; color: #3D3D3D;
font-weight: 400; font-weight: 400;
padding-right: 24px;
position: relative; position: relative;
&::after{ &::after{
content: ' '; content: ' ';
...@@ -604,6 +605,10 @@ export default { ...@@ -604,6 +605,10 @@ export default {
display: inline-block; display: inline-block;
margin-left: 20px; margin-left: 20px;
} }
.btn-export{
float: right;
margin-top: 18px;
}
} }
} }
.datalist{ .datalist{
...@@ -641,6 +646,9 @@ export default { ...@@ -641,6 +646,9 @@ export default {
.delform{ .delform{
right: 16px; right: 16px;
top: -94px; top: -94px;
.btnsmall{
margin-top: 0;
}
} }
&:hover{ &:hover{
background-color: #F6F9FC; background-color: #F6F9FC;
......
...@@ -140,7 +140,7 @@ ...@@ -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><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']" > <p v-hasPermi="['radar:export:important']" >
<img src="@/assets/images/EXCEL.png" alt=""> <img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="search('','','export')">导出EXCEL</span> <span class="excel" @click="clickDialog">导出EXCEL</span>
</p> </p>
</div> </div>
...@@ -232,8 +232,54 @@ ...@@ -232,8 +232,54 @@
:total="total>limit*500?501*limit:total"> :total="total>limit*500?501*limit:total">
</el-pagination> </el-pagination>
</div> </div>
</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="buildingProjectType" label="项目类型" width="80"></el-table-column>
<el-table-column prop="projectName" label="项目名称" width="220"></el-table-column>
<el-table-column prop="chargeDepartment" label="主管部门" min-width="170"></el-table-column>
<el-table-column prop="constructUnit" label="项目法人" min-width="170"></el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目投资额" min-width="100"></el-table-column>
<el-table-column prop="domicile" label="项目地区" min-width="80"></el-table-column>
<el-table-column prop="projectScale" label="建设规模" min-width="430"></el-table-column>
<el-table-column prop="fileTitle" label="附件名称" min-width="200"></el-table-column>
<el-table-column prop="fileUrl" label="附件链接" min-width="360"></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> </div>
</template> </template>
...@@ -243,11 +289,36 @@ import {encodeStr} from "@/assets/js/common.js" ...@@ -243,11 +289,36 @@ import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: 'BidRecord', name: 'MajorProject',
components:{skeleton}, components:{skeleton},
data() { data() {
return { return {
encodeStr, encodeStr,
dialogExportVisible1:false,
exportTableData:[
{
"domicile":"江津区",
"chargeDepartment":"兴庆区商合局",
"constructUnit":'鞍钢股份有限公司',
"projectScale":"项目建设规划总面积约3000亩,其中商住用地面积2000亩,文化旅游综合用地约1000亩,打造集“市井民俗文化体验、休闲度假、亲子研学等”为一体的复合型文化旅游目的地,企业已完成项目规划方案。",
"fileTitle":"宁夏回族自治区银川市2023年度重点项目清单.pdf",
"fileUrl":"http://file.jiansheku.com/key_project/b9e22fbf2e409642aa97f8238e934272.pdf",
"buildingProjectType":"房建工程",
"projectTotalInvestment":"70000万元",
"projectName":"'上河堡'文旅综合体项目",
},
{
"domicile":"江津区",
"chargeDepartment":"国网重庆江津区供电公司",
"constructUnit":'国网重庆江津区供电公司',
"projectScale":"新建110kV变电站1座,主变容量2*50MVA,新建110kV线路20km",
"fileTitle":"重庆市江津区2023年度重点项目清单.xlsx",
"fileUrl":"http://file.jiansheku.com/key_project/4080bef69da03056d1db953698f4d807.xlsx",
"buildingProjectType":"电力工程",
"projectTotalInvestment":"5500万元",
"projectName":"重庆江津李市110kV输变电工程",
}],
exportData:{},
fieldshow: false, fieldshow: false,
fieldText: '默认排序', fieldText: '默认排序',
field: 'year', //查询结果排序方式 field: 'year', //查询结果排序方式
...@@ -371,7 +442,9 @@ export default { ...@@ -371,7 +442,9 @@ export default {
total:0, total:0,
page: 1, page: 1,
limit: 20, limit: 20,
dataEXCEL:{} dataEXCEL:{},
dialogExportVisible:false,
value:''
}; };
}, },
mounted() { mounted() {
...@@ -446,17 +519,9 @@ export default { ...@@ -446,17 +519,9 @@ export default {
}, },
importantProjectDto: data, importantProjectDto: data,
}; };
if(exportFlag){
this.dataEXCEL = params 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=>{ api.getImportantPage(params).then(res=>{
this.isSkeleton = false; this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -467,7 +532,7 @@ export default { ...@@ -467,7 +532,7 @@ export default {
}); });
}
}, },
getUipIdByCid(companyId){ getUipIdByCid(companyId){
...@@ -673,6 +738,52 @@ export default { ...@@ -673,6 +738,52 @@ export default {
this.fieldOptions[index].status = true; this.fieldOptions[index].status = true;
this.search(); 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> </script>
...@@ -946,8 +1057,94 @@ export default { ...@@ -946,8 +1057,94 @@ export default {
} }
} }
.jabph_popper_box{ .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> </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