Commit 9b1c297b authored by danfuman's avatar danfuman
parents 78f79904 9124a0ec
......@@ -145,7 +145,7 @@ public class CustomerController extends BaseController {
if (!ObjectUtils.isEmpty(obj)) {
customer.setCompanyId(MapUtil.getInt(obj, "jskEid"));
customer.setLegalPerson(MapUtil.getStr(obj, "legalPerson"));
customer.setRegisterCapital(MapUtil.getStr(obj, "registeredCapital"));
customer.setRegisterCapital(MapUtil.getStr(obj, "registeredCapitalStr"));
customer.setProvinceId(MapUtil.getInt(obj, "provinceId"));
customer.setCityId(MapUtil.getInt(obj, "cityId"));
customer.setDistrictId(MapUtil.getInt(obj, "countyId"));
......
......@@ -35,7 +35,7 @@ public class EnterpriseBussinessController {
@ApiOperation(value = "客户项目列表(openApi)")
@RequestMapping(value = "/clientProjectPage", method = RequestMethod.POST)
public TableDataInfo clientProjectPage(@RequestBody EnterpriseBussinessClientProjectPageBody paramMap) throws Exception {
public Map<String, Object> clientProjectPage(@RequestBody EnterpriseBussinessClientProjectPageBody paramMap) throws Exception {
return enterpriseBussinessService.clientProjectPage(paramMap);
}
......@@ -59,7 +59,7 @@ public class EnterpriseBussinessController {
@ApiOperation(value = "供应商项目列表(openApi)")
@RequestMapping(value = "/supplierProjectPage",method = RequestMethod.POST)
public TableDataInfo supplierProjectPage(@RequestBody EnterpriseBussinessSupplierProjectPageBody paramMap) throws Exception {
public Map<String, Object> supplierProjectPage(@RequestBody EnterpriseBussinessSupplierProjectPageBody paramMap) throws Exception {
return enterpriseBussinessService.supplierProjectPage(paramMap);
}
......
......@@ -44,6 +44,8 @@ public class CompanySearchController {
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
return opportunityRadarService.enterprisePage(compose);
}
}
......@@ -74,7 +74,6 @@ public class RegionalEconomicDataController {
public AjaxResult location(@RequestBody OpRegionalLocalDto vo, HttpServletRequest request){
String ip = IpUtil.getIpAddr(request);
vo.setIp(ip);
log.info("location====================================>" +ip);
return economicService.location(vo);
}
......
......@@ -157,7 +157,7 @@ token:
# 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期(默认30分钟)
expireTime: 30
expireTime: 240
#mybatis:
......
......@@ -34,6 +34,10 @@ public class BasePage {
*/
private Integer pageMaxSize;
private String field;
private String order;
public Integer getPageIndex() {
return pageNum;
......@@ -74,6 +78,22 @@ public class BasePage {
this.pageIndex = pageNum;
}
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
......
......@@ -18,6 +18,11 @@ public class EnterpriseBussinessHistorySendPageBody extends BasePage {
@NotNull(message = "企业id不能为空")
private Integer cid;
/**
* 查询关键字
*/
private String keys;
/*
* 排序条件:1金额倒序,2金额正序,3时间倒序,4时间正序,7下浮率倒序,8下浮率正序,9工期倒序,10工期正序
*/
......
......@@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectLandDetailBody {
/**
* 企业id
* id
*/
@NotNull(message = "id不能为空")
private Integer id;
......
......@@ -17,7 +17,7 @@ public class EnterpriseUipSearchBody extends BasePage {
/**
* 查询关键字
*/
private String keys;
private List<String> keys;
/*
......
......@@ -41,4 +41,9 @@ public class SpecialPurposeBondsDto {
* 排序 (降序desc 升序asc)
*/
private String order;
/**
* 是否为历史(1是,0否)
*/
private Integer isHistory;
}
......@@ -5,7 +5,7 @@ import lombok.Data;
/**
* @ClassName SpecialPurposeBonds
* @Description 专项债-项目类别统计
* @Description 专项债-项目分页列表
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
......@@ -16,4 +16,18 @@ public class SpecialPurposeBondsPageDto extends BasePage {
* 省Id
*/
private Integer provinceId;
/**
* 排序字段 默认-投资金额
*/
private String field;
/**
* 排序 (降序desc 升序asc)
*/
private String order;
/**
* 是否为历史(1是,0否)
*/
private Integer isHistory;
}
......@@ -51,7 +51,17 @@ let claim= function claim(param) {
data: param
})
}
// 查建筑企业
let enterprisePage= function enterprisePage(param) {
return request({
url: '/enterprise/page',
method: 'post',
data: param
})
}
export default {aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach,claim}
\ No newline at end of file
export default {aptitudeCode,personCert,searchDic,regionWebList,uipGroupData,uipSerach,claim,enterprisePage}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -28,7 +28,7 @@
width: 200px;
height: 114px;
background: #FFFFFF;
box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.1608);
box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.12);
border-radius: 2px;
position: absolute;
z-index: 3;
......@@ -279,12 +279,15 @@
//表格样式
.tables{
padding: 0 16px 24px;
.el-table .el-table__header-wrapper th{
.el-table .el-table__header-wrapper th,.el-table th.el-table__cell.is-leaf{
color: #4f4f4f;
background: #F0F3FA;
font-size: 12px;
font-weight: 400;
}
.el-table__fixed::before{
background: none;
}
.is-sortable .sort-caret.ascending{
border-bottom-color: #0081FF;
opacity: 0.4;
......@@ -315,6 +318,9 @@
.el-table th.el-table__cell.is-leaf{
border-bottom: 0;
}
.el-table__body tr.hover-row > td.el-table__cell,.el-table__body tr.el-table__row--striped.hover-row > td.el-table__cell{
background: #DCEBFF;
}
.has-gutter{
th{
height: 40px;
......@@ -339,7 +345,7 @@
font-weight: 400;
color: #333333;
line-height: 21px;
margin-bottom: 4px;
margin-bottom: 8px;
}
.p2{
height: 18px;
......@@ -1130,3 +1136,30 @@
padding-top: 14px;
padding-bottom: 18px;
}
.tables{
::-webkit-scrollbar-track-piece {
//滚动条凹槽的颜色,还可以设置边框属性
background-color: #F3F4F5;
height: 16px;
padding: 0 4px;
}
//滚动条的宽度
::-webkit-scrollbar {
width: 8px;
height: 16px;
background-color: #F3F4F5;
border-radius: 6px;
}
//滚动条的滑块
::-webkit-scrollbar-thumb {
border-radius: 8px;
height: 8px;
margin: 0 4px;
background: rgba(98,110,126,0.2);
border: 4px solid #F3F4F5;
&:hover{
background: #566380;
}
}
}
......@@ -270,6 +270,9 @@ select {
cursor: pointer;
position: relative;
}
.select-popper .select-active{
color: #0381fa;
}
.content_item .select-popper:hover .select-caret {
color: #0074E5;
......@@ -463,21 +466,6 @@ select {
display: inline-block;
}
.viewlist-el-popover .pup_list li .VIP {
width: 24px;
height: 12px;
top: 0px;
right: -8px;
position: absolute;
}
.viewlist-el-popover .pup_list li .SVIP {
width: 24px;
height: 12px;
top: 0px;
right: -10px;
position: absolute;
}
.viewlist-el-popover .pup_list li:hover {
color: #0081FF;
......@@ -725,3 +713,365 @@ select {
.checkbox .checkbox-content .checkbox-content-qx{
margin-right: 30px;
}
.toolbar-right-search {
margin-left: 16px;
}
.bottomlist-title-left{
display: inline-flex;
align-items: center;
}
.toolbar-right-search .toolbar-right_input {
width: 228px;
display: inline-flex;
align-items: center;
}
.toolbar-right-search .el-input__inner {
width: 228px;
height: 32px;
line-height: 32px;
}
.toolbar-right-search .el-input .el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: none;
height: 32px;
line-height: 32px;
}
.toolbar-right-search .el-input-group__append{
padding: 0;
}
.toolbar-right-search .result-search {
height: 32px;
line-height: 32px;
}
.toolbar-right-search .toolbar-right-search .el-input .el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: none;
height: 32px;
line-height: 32px;
}
.toolbar-right-search .result-search {
width: 80px;
height: 32px;
background: #0081FF;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
text-align: center;
line-height: 32px;
padding: 0;
cursor: pointer;
color: #fff;
}
.toolbar-right-search .result-search:hover {
background: #0074E5;
}
.info-list {
display: flex;
/* width: 1200px; */
margin: auto;
background: #fff;
padding: 24px 0px;
border-bottom: 1px solid #EFEFEF;
/* cursor: pointer; */
}
.info-list:hover {
background: #F5FAFF;
}
.info-list .info-list-left {
width: 128px;
display: flex;
justify-content: center;
align-items: flex-start;
}
.info-list .info-list-right {
width: auto;
}
.info-list-left img {
width: 96px;
height: 96px;
}
.info-list-left .list-left-titel {
width: 78px;
height: 78px;
line-height: 78px;
border-radius: 4px 4px 4px 4px;
text-align: center;
color: #fff;
font-size: 32px;
}
.info-list-right .card-right-title {
display: flex;
align-items: center;
line-height: 18px;
/* cursor: pointer; */
}
.info-list-right .card-right-title .card-right-img {
width: 14px;
height: 14px;
margin-right: 2px;
margin-top: 2px;
}
.info-list-right .card-right-title .right-title-black {
display: inline-block;
font-weight: 400;
color: #333333;
margin-right: 24px;
}
.info-list-right .card-right-title .right-title-black-640 {
max-width: 640px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.info-list-right .card-right-title .right-title-blue {
font-weight: 400;
color: #0081FF;
margin-right: 24px;
cursor: pointer;
}
.info-list-right .card-right-title .right-title-grey {
font-weight: 400;
color: #999999;
}
.info-list-right .card-right-title .right-title-blue .blue {
color: #0081FF;
margin-right: 12px;
}
.info-list-right .card-right-title .right-title-blue .black {
color: #333333;
margin-right: 12px;
}
.info-list-right .card-right-title .right-title-blue .grey {
color: #999999;
margin-right: 12px;
}
/* 标题 */
.info-list-right .card-right-title .title {
font-size: 18px;
font-weight: bold;
color: #333333;
margin-right: 12px;
line-height: 24px;
cursor: pointer;
padding: 0;
}
.info-list-right .card-right-title .right-title-caption {
font-size: 18px;
font-weight: bold;
color: #333333;
margin-right: 12px;
line-height: 24px;
cursor: pointer;
/* height: 24px; */
}
/* 地区标签 */
.info-list-right .card-right-title .region {
display: inline-block;
border-radius: 2px 2px 2px 2px;
border: 1px solid #099D4B;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #F3F3FF;
color: #8491E8;
margin-right: 8px;
}
/* 曾用名 */
.info-list-right .card-right-title .formername {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #EEEEEE;
color: #838383;
margin-right: 8px;
}
/* 正向标签 */
.info-list-right .card-right-title .positive {
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
height: 22px;
padding: 0 16px;
color: #54BC7E;
background-color: #ECF6E7;
margin-right: 8px;
}
/* 中性标签 */
.info-list-right .card-right-title .neutral {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #E4F3FD;
color: #41A1FD;
margin-right: 8px;
}
.info-list-right .card-right-title .neutral1 {
margin-bottom: 8px;
}
/* 警示标签 */
.info-list-right .card-right-title .warning {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #FFF3F3;
color: #FD5757;
margin-right: 8px;
}
/* 其它紫色 */
.info-list-right .card-right-title .purple {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #FCF3FF;
color: #B589DB;
margin-right: 8px;
}
/*地区淡蓝色 */
.info-list-right .card-right-title .cityblue {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #F3F3FF;
color: #8491E8;
margin-right: 8px;
}
/* 工程用途 */
.info-list-right .card-right-title .purposeStr {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #E3F6F8;
color: #44BCC4;
margin-right: 8px;
}
/* 荣誉奖项 */
.info-list-right .card-right-title .honoraryaward {
display: inline-block;
border-radius: 2px 2px 2px 2px;
display: inline-block;
text-align: center;
font-size: 12px;
line-height: 22px;
padding: 0 16px;
background: #FFF1DC;
color: #BFA061;
margin-right: 8px;
}
.info-list-right .card-right-title .honoraryaward .color-0 {
background: #E4F3FD;
color: #41A1FD;
}
.info-list-right .card-right-title .honoraryaward .color-1 {
background: #FFF1DC;
color: #BFA061;
}
.info-list-right .card-right-title .honoraryaward .color-2 {
background: #E3F6F8;
color: #44BCC4;
}
.info-list-right .card-right-title .honoraryaward .color-3 {
background: #F3F3FF;
color: #8491E8;
}
.info-list-right .card-right-title .honoraryaward .color-4 {
background: #FCF3FF;
color: #B589DB;
}
.info-list-right .card-right-title .honoraryaward .color-5 {
background: #E4F3FD;
color: #41A1FD;
}
.info-list-right .card-right-title .honoraryaward .color-6 {
background: #FFF1DC;
color: #BFA061;
}
.info-list-right .card-right-title .honoraryaward .color-7 {
background: #E3F6F8;
color: #44BCC4;
}
.info-list-right .card-right-title .honoraryaward .color-8 {
background: #F3F3FF;
color: #8491E8;
}
.info-list-right .card-right-title .honoraryaward .color-9 {
background: #FCF3FF;
color: #B589DB;
}
......@@ -58,7 +58,7 @@ export default {
},
methods: {
async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
this.$confirm('确定退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
......
......@@ -99,7 +99,7 @@ export const constantRoutes = [
path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'),
name: 'PartyA',
meta: { title: '甲方详情' },
meta: { title: '甲方详情', icon: 'enterprise' },
}
]
},
......@@ -107,14 +107,27 @@ export const constantRoutes = [
path: '/company',
component: Layout,
hidden: true,
name: 'Company',
redirect: 'noredirect',
children: [
{
path: '/company/:id',
component: () => import('@/views/detail/party-b/index'),
name: 'PartyB',
meta: { title: '已方详情' }
name: 'Company',
meta: { title: '乙方详情' }
}
]
},
{
path: '/personnel',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/personnel/:id',
component: () => import('@/views/detail/party-b/index'),
name: 'Personnel',
meta: { title: '已方人员详情' }
}
]
},
......
......@@ -16,7 +16,7 @@
</div>
<div class="table_search">
<div class="searchInput">
<el-input type="text" v-model="searchParam.companyName" placeholder="输入企业名称查询"></el-input>
<el-input type="text" clearable v-model="searchParam.companyName" placeholder="输入企业名称查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="dc">
......@@ -34,6 +34,7 @@
<el-table-column
prop="index"
label="序号"
fixed="left"
width="47">
<template slot-scope='scope'>
<span>{{ (searchParam.pageNum - 1) * searchParam.pageSize + scope.$index + 1 }}</span>
......@@ -42,6 +43,7 @@
<el-table-column
prop="date"
label="企业名称"
fixed="left"
width="441">
<template slot-scope="scope">
<div class="ps1">
......@@ -120,7 +122,10 @@
prop="isMajor"
label="局级大客户" width="88">
<template slot-scope="scope">
<span v-if="scope.row.isMajor">
{{scope.row.isMajor == 1?"是":"否"}}
</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column
......@@ -219,7 +224,7 @@
<el-input type="text" placeholder="请输入" v-model="queryParam.creditCode"></el-input>
</el-form-item>
<div class="popbot">
<div class="wordprimary">前往城投平台寻找客户线索></div>
<div class="wordprimary" @click="toct">前往城投平台寻找客户线索></div>
<div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">添加</div>
</div>
......@@ -297,6 +302,9 @@ export default {
this.prvinceTree()
},
methods:{
toct(){
this.$router.push({path:'/macro/urban'})
},
getDictType(){
//获取客户等级
getDictType('customer_level_type').then(result=>{
......@@ -509,7 +517,7 @@ export default {
transform: translate(-50%,-50%);
.btn{
margin-right: 8px;
margin-top: 12px;
margin-top: 16px;
}
}
}
......@@ -543,4 +551,7 @@ export default {
padding-right: 26px;
}
}
.app-container{
height: auto;
}
</style>
......@@ -54,12 +54,12 @@
label="名称">
</el-table-column>
<el-table-column
prop="name"
label="数量(家)">
prop="sum"
label="数量(家)" align="right">
</el-table-column>
<el-table-column
prop="point"
label="占比">
label="占比" align="right">
</el-table-column>
</el-table>
</div>
......@@ -333,6 +333,12 @@ export default {
axisTick: {
show: false
},
boundaryGap: false,
nameLocation:'end',
nameTextStyle: {
fontSize:12,
padding: [0, 0, 0, -30]
},
},
yAxis: {
type: 'value',
......
......@@ -45,7 +45,7 @@
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span :id="'detailFocus'+i" @click="changeSelect">搜索</span>
</div>
</template>
......@@ -197,7 +197,6 @@ export default {
::v-deep .el-input__inner {
border-right: 0;
border-radius: 2px 0 2px 0;
width: 180px;
}
}
.fromTime{
......
......@@ -28,14 +28,14 @@
prefix-icon="fromTime-icon"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</template>
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></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:180px'"></el-input>
<span :id="'focus'+i" @click="changeSelect">搜索</span>
</div>
</template>
......@@ -230,7 +230,6 @@ export default {
}
::v-deep .el-input__inner {
border-radius: 2px 0 2px 0;
width: 180px;
border: 1px solid #D9D9D9;
border-right: 0;
}
......
......@@ -2,8 +2,9 @@
<div class="header-container">
<div class="bread-crumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/enterpriseData' }">企业数据</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: fromPath }" v-if="fromName">{{fromName}}</el-breadcrumb-item>
<!-- <el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item>-->
<el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '--'}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
......@@ -17,7 +18,7 @@
<script>
export default {
name: 'Header',
props: ['companyId', 'companyInfo'],
props: ['companyId', 'companyInfo', 'fromPath', 'fromName'],
data() {
return {
}
......
......@@ -9,6 +9,7 @@
</el-input>
<el-menu
ref="sideMenu"
:unique-opened="true"
:default-active="routeIndex"
class="detail-menu"
@open="handleOpen">
......@@ -76,7 +77,7 @@ export default {
]},
{title: '城投分析', pathName: '', children: [
{title: '区域经济', pathName: 'regionalEconomies'},
{title: '城投地', pathName: 'landAcquisition'},
{title: '城投地', pathName: 'landAcquisition'},
{title: '同地区城投', pathName: 'sameRegion'}
]},
{title: '风险信息', pathName: '', children: [
......
......@@ -14,7 +14,7 @@
<el-table-column
v-if="isIndex"
label="序号"
width="50"
:width="flexWidth(tableData)"
align="left"
:fixed="indexFixed"
:resizable="false">
......@@ -112,7 +112,6 @@ export default {
},
data() {
return {
}
},
methods:{
......@@ -124,6 +123,14 @@ export default {
},
sortChange(e){
this.$emit('sort-change',e)
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 50
// return currentMax.toString().length*25 + 'px'
if(currentMax.toString().length>3){
wdth = wdth + (currentMax.toString().length-3)*10
}
return wdth+'px'
}
}
}
......@@ -136,4 +143,36 @@ export default {
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
::v-deep .el-table__row{
&:nth-child(even){
background-color: #F9FCFF;
.more{
background: #F8FBFF;
span{
color: #0081FF;
}
}
}
&:nth-child(odd){
.more{
span{
color: #0081FF;
}
}
}
}
::v-deep .el-table th.el-table__cell.is-leaf,::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #E6EAF1;
}
::v-deep .el-table--border .el-table__cell {
border-right: 1px solid #E6EAF1;
}
::v-deep .el-table__body tr.hover-row.current-row>td,::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row>td,::v-deep .el-table__body tr.hover-row.el-table__row--striped>td,::v-deep .el-table__body tr.hover-row>td{
background-color:#DCEBFF;
.more{
background: #DCEBFF;
}
}
</style>
......@@ -46,7 +46,7 @@
<!-- 弹窗关联项目 -->
<el-drawer
title="添加合作情况"
size="40%"
size="45%"
:visible.sync="drawer"
:direction="direction"
:with-header="false"
......@@ -55,19 +55,19 @@
<div class="addhzqk_top">
<div class="addhzqk_top_t">
<div class="top_t_h1">
<img src="@/assets/images/economies/icon.png" />{{ info.companyName }}
<img src="@/assets/images/economies/icon.png" />{{ companyInfo.companyName }}
</div>
<div class="top_t_close"><i class="el-icon-close" @click="handleClose"></i></div>
</div>
<div class="addhzqk_top_d">
<div class="top_d_item">
法定代表人:<span>{{ info.legalPerson }}</span>
法定代表人:<span>{{ companyInfo.corporatePerson }}</span>
</div>
<div class="top_d_item">
注册资本:<span>{{ info.registerCapital }}万</span>
注册资本:<span>{{ companyInfo.regCapital }}</span>
</div>
<div class="top_d_item">
注册地址:<span>{{ info.registerAddress }}</span>
注册地址:<span>{{ companyInfo.addressDetail }}</span>
</div>
</div>
</div>
......@@ -86,17 +86,17 @@
</div>
</el-form-item>
<el-form-item label="项目阶段:" prop="projectStage">
<el-select v-model="addParam.projectStage" style="width: 100%" class="form-content-width" placeholder="请选择项目状态">
<el-select v-model="addParam.projectStage" style="width: 100%" class="form-content-width" placeholder="请选择项目阶段">
<el-option v-for="(item, index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="项目类型:" prop="projectType">
<el-select v-model="addParam.projectType" style="width: 100%" class="form-content-width" placeholder="请选择项目阶段">
<el-select v-model="addParam.projectType" style="width: 100%" class="form-content-width" placeholder="请选择项目类型">
<el-option v-for="(item, index) in projectType" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="项目类别:" prop="projectCategory">
<el-select v-model="addParam.projectCategory" style="width: 100%" class="form-content-width" placeholder="请选择项目阶段">
<el-select v-model="addParam.projectCategory" style="width: 100%" class="form-content-width" placeholder="请选择项目类别">
<el-option v-for="(item, index) in projectCategory" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
......@@ -143,7 +143,7 @@ export default {
components: {
Detail
},
props: ['customerIds'],
props: ['customerIds','companyInfo'],
data() {
return {
ifEmpty:false,
......@@ -161,7 +161,7 @@ export default {
formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目阶段', options: []},
{ type: 1, fieldName: 'status', value: '', placeholder: '项目状态', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询'},
{ type: 3, fieldName: 'projectName', value: '', placeholder: '输入项目名称关键字搜索'},
],
stageOptions:[],
statusOptions:[],
......@@ -352,7 +352,7 @@ export default {
},
//输入数字
number(value){
this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')//输入2位小数
this.addParam.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入2位小数
},
//打开详情
clickDetail(id){
......
......@@ -63,7 +63,7 @@ export default {
pageSize: 20
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
],
forData: [
{label: '合作项目/工程名称', prop: 'dealTitle', width: '720', slot: true},
......
......@@ -26,7 +26,7 @@
>
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/>
<div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span>
......@@ -35,6 +35,9 @@
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
<template slot="lowerRate" slot-scope="scope">
<span>{{scope.row.lowerRate ? scope.row.lowerRate+'%' : '--'}}</span>
</template>
</tables>
</el-drawer>
</div>
......@@ -74,7 +77,7 @@ export default {
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90'}
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
],
//列表
tableLoading:false,
......@@ -99,7 +102,8 @@ export default {
this.tableDataTotal = res.total
this.amountTotal = res.totalAmount
},
handlePic(url){
handlePic(url, isPic){
isPic ? url = 'https://imgs.jiansheku.com/'+url : ''
if(url){
window.open(url, "_blank")
}
......
......@@ -26,7 +26,7 @@
>
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/>
<div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span>
......@@ -35,6 +35,9 @@
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
<template slot="lowerRate" slot-scope="scope">
<span>{{scope.row.lowerRate ? scope.row.lowerRate+'%' : '--'}}</span>
</template>
</tables>
</el-drawer>
</div>
......@@ -65,7 +68,7 @@ export default {
pageSize: 20
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
],
forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true},
......@@ -74,7 +77,7 @@ export default {
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90'}
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
],
//列表
tableLoading:false,
......@@ -99,7 +102,8 @@ export default {
this.tableDataTotal = res.total
this.amountTotal = res.totalAmount
},
handlePic(url){
handlePic(url, isPic){
isPic ? url = 'https://imgs.jiansheku.com/'+url : ''
if(url){
window.open(url, "_blank")
}
......
......@@ -44,6 +44,7 @@
import mixin from '../mixins/mixin'
import { clientPage } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/customDetail'
import auth from "@/plugins/auth";
export default {
name: 'Custom',
props: ['companyId'],
......@@ -90,6 +91,12 @@ export default {
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
typeof item.projectInfo=='string' ? item.projectInfo = JSON.parse(item.projectInfo) : ''
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : ''
})
}
}
this.tableDataTotal = res.total
},
......
......@@ -90,6 +90,12 @@ export default {
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
typeof item.projectInfo=='string' ? item.projectInfo = JSON.parse(item.projectInfo) : ''
item.amount ? item.amount = parseFloat(item.amount.toFixed(4)) : ''
})
}
}
this.tableDataTotal = res.total
},
......
<template>
<div class="app-container part-container">
<Header :company-id="companyId" :companyInfo="companyInfo" v-if="companyId" />
<Header :company-id="companyId" :companyInfo="companyInfo" :fromPath="fromPath" :fromName="fromName" v-if="companyId" />
<div class="flex-box part-main">
<div class="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" />
......@@ -46,7 +46,7 @@
<!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" />
<!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" />
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 跟进记录 -->
......@@ -147,9 +147,17 @@ export default {
currentPath: {
pathName: 'overview' //默认展示页
},
partBoxHeight: null
partBoxHeight: null,
fromPath: '',
fromName: ''
}
},
beforeRouteEnter(to, from, next) {
next(vm => {
vm.fromPath = from.path
vm.fromName = from.meta.title
})
},
created() {
if (this.$route.params.id) { // 获取companyId
let companyId = this.$route.params.id
......
......@@ -54,7 +54,7 @@ export default {
{label: '专项债用作资本金(亿元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
],
//列表
tableLoading:false,
......
......@@ -60,7 +60,7 @@ export default {
],
formData: [
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []}
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220}
],
//列表
tableLoading:false,
......
......@@ -60,7 +60,7 @@ export default {
{label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
],
//列表
tableLoading:false,
......
......@@ -56,6 +56,7 @@ export default {
},
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '320', slot: true},
{label: '发布日期', prop: 'pubdate', width: '110'},
{label: '金额(万元)', prop: '', children: [
{ label: '建安费暂估', prop: 'projectSafeAmount', width: '88px'},
{ label: '勘察费暂估', prop: 'projectSurveyAmount', width: '88px'},
......@@ -74,8 +75,7 @@ export default {
{label: '分部分项', prop: 'projectSub', width: '130'},
{label: '项目级别', prop: 'projectLevel', width: '130'},
{label: '评标办法', prop: 'bidAssessmentWay', width: '130'},
{label: '项目属地', prop: 'province', width: '130', slot: true},
{label: '发布日期', prop: 'pubdate', width: '130'}
{label: '项目属地', prop: 'province', width: '130', slot: true}
],
formData: [
{ type: 1, fieldName: 'projectType', value: '', placeholder: '项目类别', options: []},
......@@ -131,6 +131,13 @@ export default {
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
item.projectSafeAmount ? item.projectSafeAmount = parseFloat(parseFloat(item.projectSafeAmount).toFixed(4)) : ''
item.projectSurveyAmount ? item.projectSurveyAmount = parseFloat(parseFloat(item.projectSurveyAmount).toFixed(4)) : ''
item.projectEnsureAmount ? item.projectEnsureAmount = parseFloat(parseFloat(item.projectEnsureAmount).toFixed(4)) : ''
})
}
}
this.tableDataTotal = res.total
}
......
......@@ -23,7 +23,7 @@
<div v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span>
<span class="tag style1" v-if="scope.row.biddingAnnouncement">招标数{{scope.row.biddingAnnouncement}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标数{{scope.row.biddingCount}}</span>
</div>
</template>
</tables>
......@@ -51,7 +51,7 @@ export default {
],
formData: [
{ type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{name:'不限',value:''},
{name:'不限',value:'noLimit'},
{name:'有招标公告',value:1},
{name:'无招标公告',value:0}
]
......@@ -70,6 +70,9 @@ export default {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
if(param.hasBid=='noLimit'){
delete param.hasBid
}
let res = await affiliates(param)
this.tableLoading = false
if(res.code==200){
......
<template>
<template xmlns="http://www.w3.org/1999/html">
<div class="app-container detail-container">
<el-tabs v-model="activeName" @tab-click="handleClick" class="detail-tab">
<el-tab-pane label="工商信息" name="first"></el-tab-pane>
......@@ -10,6 +10,22 @@
<template slot="provinceCode" slot-scope="scope">
<span>{{showRegion(scope.data.provinceCode)}}</span>
</template>
<template slot="term" slot-scope="scope">
<span v-if="scope.data.termStart&&scope.data.termEnd">{{ scope.data.termStart }} ~ {{ scope.data.termEnd }}</span>
<span v-else-if="scope.data.termStart&&!scope.data.termEnd">{{ scope.data.termStart }}</span>
<span v-else-if="!scope.data.termStart&&scope.data.termEnd">{{ scope.data.termEnd }}</span>
<span v-else>--</span>
</template>
<template slot="actualCapi" slot-scope="scope">
<span>
{{ scope.data.actualCapi?scope.data.actualCapi+'万元人民币':'--' }}
</span>
</template>
<template slot="colleguesNum" slot-scope="scope">
<span>
{{ scope.data.colleguesNum?scope.data.colleguesNum+'人':'--' }}
</span>
</template>
</info-table>
<tables
:tableLoading="tableLoading"
......@@ -53,18 +69,18 @@ export default {
{ name: '登记状态', prop: 'status' },
{ name: '成立日期', prop: 'startDate' },
{ name: '注册资本', prop: 'registCapi' },
{ name: '实缴资本', prop: 'actualCapi' },
{ name: '实缴资本', prop: 'actualCapi', slot: true },
{ name: '核准日期', prop: 'checkDate' },
{ name: '组织机构代码', prop: 'orgNo' },
{ name: '工商注册号', prop: 'regNo' },
{ name: '纳税人识别号', prop: 'creditNo' },
{ name: '企业类型', prop: 'econKind' },
{ name: '营业期限', prop: 'termEnd' },
{ name: '营业期限', prop: 'term', slot: true },
{ name: '纳税人资质', prop: 'qualification' },
{ name: '所属地区', prop: 'provinceCode', slot: true },
{ name: '登记机关', prop: 'belongOrg' },
{ name: '人员规模', prop: 'colleguesNum' },
{ name: '参保人数', prop: 'colleguesNum' },
{ name: '人员规模', prop: 'colleguesNum', slot: true },
{ name: '参保人数', prop: 'colleguesNum', slot: true },
{ name: '经营范围', prop: 'scope', style: true }
],
forData: [
......
......@@ -185,7 +185,7 @@ export default {
this.tableLoading = false
if(res.code==200){
this.dialogVisible=true
this.ifClaim = true
this.ifClaim = 1
}
}else{
this.$message.warning('对不起,当前不能认领')
......@@ -226,7 +226,7 @@ export default {
},
//获取认领状态
getClaimStatus(){
this.ifClaim = this.companyInfo.regCapital
this.ifClaim = this.companyInfo.claimStatus
},
handleWidth(){
if(this.companyInfo.introduction){
......
......@@ -9,7 +9,7 @@
<div class="operations-title">{{item.bratingSubjectLevel}}-<span>{{item.ratingDate}}</span></div>
<div class="flex-box operations-info">
<div>{{item.bondType || '--'}}</div>
<span class="text-cl1"><img src="@/assets/images/detail/overview/oper_source.png">{{item.creditRatingAgency || '--'}}</span>
<span class="text-cl1" :title="item.creditRatingAgency"><img src="@/assets/images/detail/overview/oper_source.png">{{item.creditRatingAgency || '--'}}</span>
</div>
</div>
</li>
......
<template>
<div class="app-container rela-container">
<div class="common-title">关系企业</div>
<el-tabs v-model="activeName" @tab-click="handleQuery" class="tabpane selfTab">
<el-tabs v-model="activeName" @tab-click="handleClick" class="tabpane selfTab">
<el-tab-pane label="股东" name="first"></el-tab-pane>
<el-tab-pane label="对外投资" name="second"></el-tab-pane>
</el-tabs>
<div class="table-item">
<div class="rela-person" v-if="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'">
<el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ holderParams.pageNum * holderParams.pageSize - holderParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="stockName" min-width="140" label="股东名称"></el-table-column>
<el-table-column prop="shouldCapiConv" label="持股数量(亿)"></el-table-column>
<el-table-column label="持股比例">
<el-table-column min-width="140" label="股东名称">
<template slot-scope="scope">
<span>{{scope.row.stockPercent?parseFloat(Number(scope.row.stockPercent*100).toFixed(4))+'%':'--'}}</span>
<router-link :to="`/enterprise/${encodeStr(scope.row.stockId)}`" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName" v-html="scope.row.stockName"></router-link>
<div v-else v-html="scope.row.stockName || '--'"></div>
</template>
</el-table-column>
<el-table-column label="法定代表人">
<el-table-column prop="shouldCapiConv" label="应缴金额"></el-table-column>
<el-table-column prop="stockPercent" label="持股比例"></el-table-column>
<el-table-column prop="" label="法定代表人">
<template slot-scope="scope">
<span>{{scope.row.corporatePerson || '--'}}</span>
</template>
</el-table-column>
<el-table-column label="成立日期">
<el-table-column prop="" label="成立日期">
<template slot-scope="scope">
<span>{{scope.row.registeredDate || '--'}}</span>
</template>
</el-table-column>
<el-table-column prop="" label="企业状态">
<template slot-scope="scope">
<span>{{scope.row.businessStatus || '--'}}</span>
</template>
</el-table-column>
</el-table>
<el-table :data="shipData" border style="width: 100%" v-show="activeName=='second'">
<el-table-column label="序号" width="55" align="left" fixed>
......@@ -39,21 +45,21 @@
<div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
<span class="tag style1" v-if="scope.row.biddingAnnouncement">招标数{{scope.row.biddingAnnouncement}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标数{{scope.row.biddingCount}}</span>
</div>
</template>
</el-table-column>
<el-table-column prop="investOperName" label="法定代表人"></el-table-column>
<el-table-column prop="investRegistCapi" label="注册资本(万元)"></el-table-column>
<el-table-column prop="investStartDate" label="成立日期"></el-table-column>
<el-table-column prop="stockPercentage" label="股权占比">
<el-table-column label="注册资本">
<template slot-scope="scope">
<span>{{scope.row.stockPercentage?parseFloat(Number(scope.row.stockPercentage*100).toFixed(4))+'%':'--'}}</span>
<span>{{scope.row.investRegistCapi || '--'}}</span>
</template>
</el-table-column>
<el-table-column prop="investStartDate" label="成立日期"></el-table-column>
<el-table-column prop="stockPercentage" label="股权占比"></el-table-column>
<el-table-column prop="shouldCapi" label="认缴出资额(万元)"></el-table-column>
</el-table>
<div class="rela-more" v-if="activeName=='second'&& shipTotal>shipParams.pageSize"><span class="a-link" @click="handlePath">查看更多数据 ></span></div>
<div class="rela-more" v-show="activeName=='second'&& shipTotal>shipParams.pageSize"><span class="a-link" @click="handlePath">查看更多数据 ></span></div>
</div>
</div>
</template>
......@@ -87,16 +93,35 @@ export default {
},
created() {
this.handleQuery()
this.handleInvest()
},
mounted() {
},
methods: {
async handleQuery(){
let res = this.activeName=='first'?await bestStockPage(this.holderParams):await investment(this.shipParams)
let res = await bestStockPage(this.holderParams)
if(res.code==200){
this.activeName=='first'?this.holderData = res.rows:this.shipData = res.rows
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.stockPercent?item.stockPercent = parseFloat(Number(item.stockPercent*100).toFixed(4))+'%':''
})
}
this.holderData = res.rows
}
this.activeName=='second'?this.shipTotal = res.total:''
},
async handleInvest(){
let res = await investment(this.shipParams)
if(res.code==200){
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.stockPercentage?item.stockPercentage = parseFloat(Number(item.stockPercentage*100).toFixed(4))+'%':''
})
}
this.shipData = res.rows
this.shipTotal = res.total
}
},
handleClick(){
},
handlePath(){
changePath(this, 'overseas')
......
......@@ -5,7 +5,7 @@
<template v-if="zbggList.length>0">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Bidding/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.tenderStage}}</span></div>
<span class="tender-time">{{item.contact}} {{item.issueTime}}</span>
<span class="tender-time">{{item.issueTime}}</span>
</div>
</template>
<div class="tender-no-data" v-else>
......
......@@ -24,6 +24,9 @@
<div v-else v-html="scope.row.stockName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标{{scope.row.biddingCount}}</span>
<span class="tag style1" v-if="scope.row.landInfoCount">土地{{scope.row.landInfoCount}}</span>
<span class="tag style1" v-if="scope.row.proposedProjectCount">拟建{{scope.row.proposedProjectCount}}</span>
</div>
</template>
<template slot="stockPercent" slot-scope="scope">
......@@ -52,7 +55,7 @@ export default {
forData: [
{label: '发起人/股东', prop: 'stockName', minWidth: '230', slot: true},
{label: '持股比例', prop: 'stockPercent', slot: true},
{label: '认缴出资(万)', prop: 'shouldCapiConv'},
{label: '认缴出资', prop: 'shouldCapiConv'},
{label: '实缴出资额', prop: 'realCapi'},
{label: '认缴出资日期', prop: 'conDate'},
{label: '参股日期', prop: 'realCapiDate', width: '150'}
......
......@@ -23,7 +23,7 @@
<div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
<span class="tag style1" v-if="scope.row.biddingAnnouncement">招标数{{scope.row.biddingAnnouncement}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标数{{scope.row.biddingCount}}</span>
</div>
</template>
<template slot="proportion">
......@@ -59,25 +59,25 @@ export default {
forData: [
{label: '被投资企业名称', prop: 'investName', minWidth: '180', slot: true},
{label: '法定代表人', prop: 'investOperName'},
{label: '注册资本(万元)', prop: 'investRegistCapi'},
{label: '注册资本', prop: 'investRegistCapi'},
{label: '成立日期', prop: 'investStartDate'},
{label: '股权占比', prop: 'stockPercentage', slot: true, slotHeader: true, slotName: 'proportion'},
{label: '认缴出资额(万元)', prop: 'shouldCapi'}
],
formData: [
{ type: 1, fieldName: 'hasBid', value: '', placeholder: '招标公告', options: [
{name:'不限',value:''},
{name:'不限',value:'noLimit'},
{name:'有招标公告',value:1},
{name:'无招标公告',value:0}
]
},
{ type: 1, fieldName: 'proportion', value: '', placeholder: '股权占比', options: [
{name:'不限',value:''},
{name:'不限',value:'noLimit'},
{name:'100%',value:'1~1'},
{name:'66.66%以上',value:'0.6666~1'},
{name:'50%以上',value:'0.4~1'},
{name:'50%以上',value:'0.5~1'},
{name:'33.33%以上',value:'0.3333~1'},
{name:'25%以上',value:'0.05~0.25'},
{name:'25%以上',value:'0.25~1'},
{name:'不到5%',value:'0~0.05'}
]
}
......@@ -105,10 +105,15 @@ export default {
handleSearch(){
let params = this.formParams()
if(params.proportion){
params.stockPercentageMin = parseFloat(params.proportion.split('~')[0])
params.stockPercentageMax = parseFloat(params.proportion.split('~')[1])
if(params.proportion!='noLimit'){
params.stockPercentageMin = parseFloat(params.proportion.split('~')[0])
params.stockPercentageMax = parseFloat(params.proportion.split('~')[1])
}
delete params.proportion
}
if(params.hasBid=='noLimit'){
delete params.hasBid
}
params.pageNum = 1
this.queryParams.pageNum = 1
this.handleQuery(params)
......
......@@ -46,8 +46,8 @@ export default {
{label: '列入日期', prop: 'inDate', width: '95'},
{label: '做出决定机关(移入)', prop: 'department', width: '264'},
{label: '移出经营异常名录原因', prop: 'outReason', width: '320'},
{label: '移日期', prop: 'outDate', width: '95'},
{label: '做出决定机关(移)', prop: 'outDepartment', width: '264'}
{label: '移日期', prop: 'outDate', width: '95'},
{label: '做出决定机关(移)', prop: 'outDepartment', width: '264'}
],
formData: [
{ type: 4, fieldName: 'years', value: '', placeholder: '列入时间', options: []}
......
......@@ -21,7 +21,7 @@
<template slot="punishReason" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}">
<div v-html="scope.row.punishReason"></div>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)" class="more">...<span>更多</span></span>
</span>
</template>
</tables>
......
......@@ -94,6 +94,10 @@ export default {
prop: 'industryTotalValue',
label: '工业总产值(亿元)',
},
{
prop: 'fixedInvestment',
label: '固定资产投资(亿元)',
},
{
prop: 'realEstateInvestment',
label: '房地产开发投资(亿元)',
......@@ -291,9 +295,9 @@ export default {
}
}
::v-deep .el-table__body-wrapper tr:nth-child(2) td:first-child,
::v-deep .el-table__body-wrapper tr:nth-child(16) td:first-child,
::v-deep .el-table__body-wrapper tr:nth-child(28) td:first-child{
::v-deep .el-table__body-wrapper tr:nth-child(2) td,
::v-deep .el-table__body-wrapper tr:nth-child(17) td,
::v-deep .el-table__body-wrapper tr:nth-child(29) td{
font-weight: bold;
color: #232323;
}
......
......@@ -24,7 +24,7 @@
<span class="wrap_label">行政等级</span>
<div class="item_ckquery">
<span :class="{color_text:queryParams.uipExecutiveLevel == ''}" @click="changeXZDJ('')">全部</span>
<template v-for="(item,index) in xzdj">
<template v-for="(item,index) in uipGroupDatalist.uipExecutiveLevel">
<span :class="{color_text:item == queryParams.uipExecutiveLevel}" @click="changeXZDJ(item)">{{item}}</span>
</template>
</div>
......@@ -101,6 +101,16 @@
<router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName " v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<template slot="area" slot-scope="scope">
<template v-if="scope.row.province || scope.row.city || scope.row.area">
<span v-if="scope.row.province"> {{ scope.row.province }}</span>
<span v-if="scope.row.city"> <span v-if="scope.row.province">-</span>{{ scope.row.city }}</span>
<span v-if="scope.row.area"> <span v-if="scope.row.city">-</span>{{ scope.row.area }}</span>
</template>
<template v-else>
--
</template>
</template>
</tables>
</div>
......@@ -137,7 +147,7 @@ export default {
},
forData: [
{label: '企业名称', prop: 'companyName', width: '369', slot: true},
{label: '区域', prop: 'area', width: '100'},
{label: '区域', prop: 'area', width: '120', slot: true},
{label: '招标数量', prop: 'biddingCount', width: '100', sortable: true},
{label: '城投拿地', prop: 'landInfoCount', width: '100', sortable: true},
{label: '供应商', prop: 'supplierCount', width: '100', sortable: true},
......
......@@ -15,14 +15,21 @@ export default {
loading: false, // 是否加载中
iframeHight: window.innerHeight, // iframe高度
scrollTop: 0, // 滚动条距离内部页面顶部距离
// domain: 'https://pre-plug.jiansheku.com',
domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId
}
},
created() {
if (this.$route.params.id) { // 获取companyId
this.loading = true
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?ak=${this.ak}`
// this.src = `http://192.168.60.30:3300/enterprise/${this.$route.params.id}?ak=aec7b3ff2y2q8x6t49a7e2c463ce21912`
// this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?ak=${this.ak}`
if(this.$route.name=='Company'){ //企业详情
this.src = `${this.domain}/enterprise/${this.$route.params.id}?ak=${this.ak}`
}
if(this.$route.name=='Personnel'){ //人员详情
this.src = `${this.domain}/personnel/${this.$route.params.id}.html?ak=${this.ak}&referrer=true`
}
}
},
mounted() {
......
......@@ -168,7 +168,6 @@
</el-table-column>
<el-table-column label="区域" width="120">
<template slot-scope="scope">
<router-link :to="'/radar/bxprozbgg/details/'+ 1" tag="a" class="list-titel-a" >
{{scope.row.province}}
<template v-if="scope.row.city">
-
......@@ -178,8 +177,6 @@
-
</template>
{{scope.row.area}}
</router-link>
</template>
</el-table-column>
......@@ -591,7 +588,7 @@ export default {
},
mounted() {
this.addressListfn();
this.init();
},
methods: {
domicileChange() {
......@@ -675,7 +672,7 @@ export default {
},
init(){
// this.search();
this.search();
this.addressListfn();
},
......
......@@ -317,6 +317,7 @@ export default {
//客户跟进动态
this.option = {
xAxis: {
boundaryGap: false,
type: 'category',
data: labels,
axisTick: {
......@@ -334,7 +335,7 @@ export default {
},
grid:{
left:'4%',
top:'20%',
top:'21%',
right:'2%',
bottom:'15%',
},
......@@ -345,8 +346,8 @@ export default {
// trigger: 'axis'
},
legend: {
left: '12px',
top:"15px",
right: '20px',
top:"30px",
data: ['成交金额', '储备项目', '跟进动态'],
itemHeight: 8, // 修改icon图形大小
itemGap: 20
......
......@@ -44,7 +44,7 @@
</el-select>
</el-form-item>
<div class="popbot">
<div class="wordprimary">前往商机雷达寻找项目线索></div>
<div class="wordprimary" @click="toradar">前往商机雷达寻找项目线索></div>
<div class="btn btn_cancel h32" @click="resetForm('ruleForm')">返回</div>
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div>
......@@ -109,6 +109,9 @@
})
},
methods:{
toradar(){
this.$router.push({path:'/radar'})
},
handleALL(event){
var one = document.getElementById("box");
if(one){
......
......@@ -42,7 +42,8 @@
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">导入成功,已为您去掉重复{{titletext}}{{successCount}}</div>
<!--<div class="p2">导入成功,已为您去掉重复{{titletext}}{{successCount}}</div>-->
<div class="p2">{{messages}}</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
......@@ -74,6 +75,7 @@
downloadhref:'',//样例地址
titletext:'',
successCount:0,//成功条数
messages:'',
}
},
created(){
......@@ -120,6 +122,14 @@
onSuccess(res, file, fileList) {
if (res.code == 200) {
this.successCount = res.successCount
if(this.importtype == 'project'){//项目管理
this.messages = res.msg
}
if(this.importtype == 'custom'){//客户管理
let str = '成功导入客户条数'+res.successCount+',客户去重条数'+res.data?res.data.length:0
this.messages = str
}
this.addsuccess = true
}else {
this.importCancel()
......
......@@ -57,6 +57,9 @@
prop="accendant"
label="内部维护人"
width="146">
<template slot-scope="scope">
{{scope.row.accendant || '--'}}
</template>
</el-table-column>
</el-table>
<div class="bottems">
......
......@@ -368,7 +368,7 @@ export default {
this.$router.push({ path: '/project/projectList/detail', query: {id:id,tag:tag} });
},
handleClick(){
this.getList(1)
},
handleChange(value) {
// console.log(value);
......
......@@ -56,7 +56,7 @@
<el-table-column label="项目名称" >
<template slot-scope="scope">
{{ scope.row.name||'--'}}
<router-link v-if="scope.row.companyId" :to="'/company/' + encodeStr(scope.row.companyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="scope.row.name"></router-link>
</template>
</el-table-column>
......@@ -100,14 +100,14 @@
<script>
import "@/assets/styles/public.css";
import {
encodeStr
} from "@/assets/js/common.js"
import {encodeStr} from "@/assets/js/common.js"
import api from '@/api/radar/radar.js';
export default {
name: 'BidRecordDetails',
data() {
return {
encodeStr,
id: '',
tableData: [],
"pageNum": 1,
......
......@@ -10,7 +10,8 @@
<div class="list-content">
<p class="list-content-text">
<span>受让人:</span>
<span class="blue">{{textList.company||"--"}}</span>
<router-link v-if="textList.company" :to="'/company/' + encodeStr(textList.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="textList.company"></router-link>
<span v-else class="blue">{{textList.company||"--"}}</span>
</p>
<p class="list-content-text">
<span>成交金额:</span>
......@@ -192,12 +193,14 @@
<script>
import api from '@/api/radar/radar.js';
import {encodeStr} from "@/assets/js/common.js"
export default {
name: 'LandDetails',
data() {
return {
id: '',
encodeStr,
textList: {}
}
......
......@@ -25,13 +25,17 @@
</div>
<div class="list-content">
<p class="list-content-text">
<p class="list-content-text" v-if="textList.tenderee">
<span>招采单位:</span>
<span class="blue"> {{textList.tenderee||'--'}}</span>
<router-link v-if="textList.projectUnitId" :to="'/company/' + encodeStr(textList.projectUnitId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="textList.tenderee"></router-link>
<span v-else class="blue"> {{textList.tenderee||'--'}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="textList.agency">
<span>代理单位:</span>
<span class="blue">{{textList.agency||'--'}}</span>
<router-link v-if="textList.agencyId" :to="'/company/' + encodeStr(textList.agencyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="textList.agency"></router-link>
<span v-else class="blue"> {{textList.agency||'--'}}</span>
</p>
</div>
......@@ -89,11 +93,13 @@
<script>
import "@/assets/styles/public.css";
import api from '@/api/radar/radar.js';
import {encodeStr} from "@/assets/js/common.js"
export default {
name: 'TenderDetails',
data() {
return {
encodeStr,
id: '',
textList:{},
showimg:true
......
......@@ -173,10 +173,13 @@
<div class="main3-box">
<p>
<label class="label">招标人</label>
<span class="color2">{{textList.tenderee||'--'}}</span>
<router-link v-if="textList.tendereeId" :to="'/company/' + encodeStr(textList.tendereeId) + '/?index=true'" tag="a" class="list-titel-a color2" v-html="textList.tenderee"></router-link>
<span v-else class="color2">{{textList.tenderee||'--'}}</span>
<label class="label">代理机构</label>
<span class="color2">{{textList.agency||'--'}}</span>
<router-link v-if="textList.agencyId" :to="'/company/' + encodeStr(textList.agencyId) + '/?index=true'" tag="a" class="list-titel-a color2" v-html="textList.agency"></router-link>
<span v-else class="color2">{{textList.agency||'--'}}</span>
</p>
<p>
<label class="label">招标人联系方式</label>
<span>{{textList.tendereeTel||'--'}}</span>
......@@ -199,11 +202,13 @@
<script>
import "@/assets/styles/public.css";
import api from '@/api/radar/radar.js';
import {encodeStr} from "@/assets/js/common.js"
export default {
name: 'bxprozbggDetails',
data() {
return {
encodeStr,
id: '',
textList: {},
showimg:true,
......@@ -512,6 +517,11 @@
.color2{
color: #0081FF;
cursor: pointer;
display: flex;
align-items: center;
width: 40%;
padding: 12px;
font-size: 12px;
}
}
......
......@@ -164,7 +164,8 @@
<div class="list-content">
<p class="list-content-text">
<span>招采单位:</span>
<span class="blue">{{item.tenderee||'--'}}</span>
<router-link v-if="item.tendereeId" :to="'/company/' + encodeStr(item.tendereeId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.tenderee"></router-link>
<span v-else>{{item.tenderee||'--'}}</span>
</p>
<p class="list-content-text">
<span>合同预估金额(万元):</span>
......@@ -184,11 +185,11 @@
</p>
<p class="list-content-text">
<span>预计招标时间:</span>
<span>{{item.issueTimestamp||'--'}}</span>
<span>{{item.planTenderDateStart||'--'}}</span>
</p>
<p class="list-content-text">
<span>来源网站:</span>
<span >{{item.issueTimestamp||'--'}}</span>
<span >{{item.sourceName||'--'}}</span>
</p>
......
......@@ -1057,8 +1057,6 @@
reset() {
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
this.$emit("reset");
this.token = getCookie("tokenNew");
},
init() {
this.search();
......
......@@ -234,15 +234,19 @@
<div class="list-content">
<p class="list-content-text">
<span>受让人:</span>
<span class="blue">{{item.companyName||'--'}}</span>
<span v-if="item.companyName">
<router-link :to="'/company/' + encodeStr(item.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
</span>
<span v-else>--</span>
</p>
<p class="list-content-text">
<span>成交金额:</span>
<span>{{item.transactionPrice||'--'}}</span>
<span>{{item.transactionPrice||'--'}}万元</span>
</p>
<p class="list-content-text">
<span>总面积:</span>
<span>{{item.acreage||'--'}}</span>
<span>{{item.acreage||'--'}}</span>
</p>
<p class="list-content-text">
<span>合同签订:</span>
......@@ -254,6 +258,10 @@
<span>土地用途:</span>
<span >{{item.landUse||'--'}}</span>
</p>
<p class="list-content-text">
<span>行业分类:</span>
<span >{{item.industry||'--'}}</span>
</p>
<p class="list-content-text">
<span>供应方式:</span>
<span >{{item.supplyLandWay||'--'}}</span>
......@@ -275,7 +283,8 @@
</p>
<p class="list-content-text">
<span>土地坐落:</span>
<span >{{item.landAddr||'--'}}</span>
<span v-if="item.landAddr" v-html="item.landAddr"></span>
<span v-else>--</span>
</p>
</div>
</li>
......@@ -562,7 +571,7 @@
searchDic(){
api.searchDic().then(res=>{
this.landMarketIndustryList = res.landMarketIndustry;
this.landUseOptions = res.data.landUse
this.landUseOptions = res.landUse
}).catch(error=>{
});
......@@ -1127,7 +1136,7 @@
}
.bottomlist-list:hover{
background: #F6F9FC;
cursor: pointer;
}
.pagination{
padding: 14px ;
......
......@@ -207,11 +207,13 @@
<div class="list-content" v-if="item.companyName||item.agency">
<p class="list-content-text" v-if="item.companyName">
<span>招采单位:</span>
<span class="blue">{{item.companyName||'--'}}</span>
<router-link v-if="item.jskEid" :to="'/company/' + encodeStr(item.jskEid) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
<span v-else class="blue">{{item.companyName||'--'}}</span>
</p>
<p class="list-content-text" v-if="item.agency">
<span>代理单位:</span>
<span class="blue">{{item.agency||'--'}}</span>
<router-link v-if="item.agencyId" :to="'/company/' + encodeStr(item.agencyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.agency"></router-link>
<span v-else class="blue">{{item.agency||'--'}}</span>
</p>
</div>
......@@ -275,6 +277,7 @@
data() {
return {
//有无联系方式
encodeStr,
phonePointType: [{
value: '',
label: '不限'
......
......@@ -63,7 +63,7 @@
工程类型{{jskBidNewsDto.projectType.length? jskBidNewsDto.projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="jskBidNewsDto.projectType" class="select-multiple" multipleplaceholder="请选择">
<el-select v-model="jskBidNewsDto.projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in projectTypeList" :key="i":label="item" :value="item">
</el-option>
</el-select>
......@@ -283,7 +283,7 @@
<div class="label">人员要求</div>
<div class="content_right">
<el-input class="ename_input"
placeholder="请输入关键词句,如:建筑工程" v-model="jskBidNewsDto.personLimit" ></el-input>
placeholder="请输入关键词句,如:一级建造师" v-model="jskBidNewsDto.personLimit" ></el-input>
<span class="land_content_wrap_label_tipspan">
<el-tooltip popper-class="explain_tooltip" content="根据输入的关键词全称进行匹配"
placement="bottom" effect="light">
......@@ -882,7 +882,8 @@
created() {
this.searchDic();
this.clickProvince(0,1);
this.bxproggSearch();
this.search();
this.changeDown(false)
},
mounted() {
},
......@@ -1002,7 +1003,7 @@
}
this.fieldText = this.fieldOptions[index].value;
this.fieldOptions[index].status = true;
this.bxproggSearch();
this.search();
},
//项目级别
addressListfn() {
......@@ -1431,12 +1432,12 @@
handleCurrentChange(e){
this.page = e;
this.jump1();
this.bxproggSearch(e, this.limit);
this.search(e, this.limit);
},
handleSizeChange(e){
this.limit = e;
this.jump1();
this.bxproggSearch(this.page, e);
this.search(this.page, e);
},
jump1() {
// 用 class="d_jump" 添加锚点
......@@ -1489,10 +1490,10 @@
},
lowerRateClick() {
this.bxproggSearch();
this.search();
},
bxproggSearch(page, limit,exportFlag){
search(page, limit,exportFlag){
// return false;
if (!page) {
this.page = 1;
......@@ -1504,6 +1505,7 @@
this.reloadPage();
}
var data = JSON.parse(JSON.stringify(this.jskBidNewsDto));
console.log(data);
if(this.projectTerritoryId.length >0){
for (var i=0;i<this.projectTerritoryId.length;i++){
......@@ -1561,8 +1563,17 @@
reset(){
Object.assign(this.$data, this.$options.data.call(this)); //重置data
// this.clickProvince(0,1);
this.bxproggSearch();
this.search();
},
changeDown(isHeight){
if(isHeight){
this.isHeight = false
this.maxHeight = 'auto'
}else{
this.isHeight = true
this.maxHeight = '36px'
}
},
provinceChange(e){
let obj=''
......
......@@ -7,8 +7,8 @@
<el-input class="ename_input"
placeholder="请输入项目名称关键字" v-model="projectName" ></el-input>
<template v-if="projectName">
<span v-for=" (item,k) in enameQueryTypeList" :key="k" style="margin-right: 24px;">
<el-radio v-model="enameQueryType" :label="item.key">{{item.value}}</el-radio>
<span v-for=" (item,k) in nameTypeList" :key="k" style="margin-right: 24px;">
<el-radio v-model="nameType" :label="item.key">{{item.value}}</el-radio>
</span>
</template>
</div>
......@@ -66,7 +66,7 @@
项目类型{{projectType.length? projectType.length + "项": ""}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-model="projectType" class="select-multiple" multipleplaceholder="请选择">
<el-select v-model="projectType" class="select-multiple" multiple placeholder="请选择">
<el-option v-for="(item, i) in specialBondProjectType" :key="i":label="item" :value="item">
</el-option>
</el-select>
......@@ -103,40 +103,40 @@
<router-link :to="'/radar/debtProject/details/'+item.uuid " tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
</p>
<div class="content-label">
<div class="content-label" v-if="item.domicile">
<span class="list-label">{{item.domicile}}</span>
</div>
<div class="list-content">
<p class="list-content-text">
<p class="list-content-text" v-if="item.projectType&&item.projectType!='空白'">
<span>项目类型:</span>
<span>{{item.projectType}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text"v-if="item.projectTotalInvestment">
<span>项目总投资(亿):</span>
<span>{{item.projectTotalInvestment}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.projectCapital">
<span>项目资本金(亿):</span>
<span>{{item.projectCapital}}</span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.specialBondCapital">
<span>专项债金额(亿):</span>
<span>{{item.specialCapital}}</span>
<span>{{item.specialBondCapital}}</span>
</p>
</div>
<div class="list-content">
<p class="list-content-text">
<p class="list-content-text" v-if="item.projectEntity">
<span>项目主体:</span>
<span class="blue">{{item.projectEntity}}</span>
<span v-html="item.projectEntity"></span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.chargeDepartment">
<span>主管部门:</span>
<span class="blue">{{item.chargeDepartment}}</span>
<span v-html="item.chargeDepartment"></span>
</p>
<p class="list-content-text">
<p class="list-content-text" v-if="item.piu">
<span>实施单位:</span>
<span class="blue">{{item.piu}}</span>
<span v-html="item.piu"></span>
</p>
</div>
</li>
......@@ -171,20 +171,18 @@
return {
encodeStr,
projectName:'',
enameQueryTypeList: [{
key: 'and',
nameTypeList: [{
key: 'like',
status: false,
value: '模糊搜索',
keyid: 'businessScope'
},
{
key: 'or',
key: 'match',
status: true,
value: '精准匹配',
keyid: 'businessScope'
},
],
enameQueryType: 'or',
nameType: 'match',
projectEntity:'',
countTypelist: [{
key: '1',
......@@ -201,7 +199,7 @@
],
chargeDepartment: {
key: '3',
value: '实施单位'
value: '项目主体'
},
addressList: [],
addressType: [],
......@@ -213,7 +211,7 @@
specialBondProjectType: [
],
projectTypeText: ['不限'],
projectType:['不限'],
projectType:[],
arrList:[],
pageFlag:true,
......@@ -226,10 +224,14 @@
}
},
created() {
this.addressListfn();
this.searchDic();
this.init();
},
methods: {
init(){
this.addressListfn();
this.searchDic();
this.search();
},
searchDic(){
api.searchDic().then(res=>{
this.specialBondProjectType=res.specialBondProjectType;
......@@ -319,16 +321,16 @@
let arr = (this.$refs.address.getCheckedNodes())
let provinceCode = [],
cityCode = [],
countyCode = [];
areaCode = [];
let province = [],
city = [],
county = [];
area = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
!arr[i].hasChildren && areaCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
......@@ -360,12 +362,12 @@
}
}
if (countyCode.length > 0) {
for (let i = 0; i < countyCode.length; i++) {
if (countyCode[i] == jsk_data[j].id) {
county.push({
if (areaCode.length > 0) {
for (let i = 0; i < areaCode.length; i++) {
if (areaCode[i] == jsk_data[j].id) {
area.push({
value: jsk_data[j].regionName,
key: countyCode[i]
key: areaCode[i]
})
}
......@@ -373,7 +375,7 @@
}
}
if (province.length > 0 || city.length > 0 || county.length > 0) {
if (province.length > 0 || city.length > 0 || area.length > 0) {
let arrlist = [];
if (province.length > 0) {
for (let i in province) {
......@@ -385,9 +387,9 @@
arrlist.push(city[i].value)
}
}
if (county.length > 0) {
for (let i in county) {
arrlist.push(county[i].value)
if (area.length > 0) {
for (let i in area) {
arrlist.push(area[i].value)
}
}
console.log(this.addressType);
......@@ -396,7 +398,7 @@
keyid: 'address',
provinceCode: provinceCode,
cityCode: cityCode,
countyCode: countyCode,
areaCode: areaCode,
title: '项目属地:',
key: '',
addressType:this.addressType
......@@ -443,7 +445,7 @@
if(this.projectName){
params.specialBondProjectDto['projectName']=this.projectName;
params.specialBondProjectDto['enameQueryType']=this.enameQueryType;
params.specialBondProjectDto['nameType']=this.nameType;
}
if(this.projectEntity){
......@@ -464,17 +466,14 @@
if (this.arrList[i].keyid == "address") {
params.specialBondProjectDto['province'] = this.arrList[i].provinceCode.join(',');
params.specialBondProjectDto['city'] = this.arrList[i].cityCode.join(',');
params.specialBondProjectDto['county'] = this.arrList[i].countyCode.join(',');
params.specialBondProjectDto['area'] = this.arrList[i].areaCode.join(',');
}
}
}
if(this.projectType.length>0&&this.projectType[0]!='不限'){
params.specialBondProjectDto['projectType'] = this.projectType.join(',');
}
if(!this.ckhasValue(params.specialBondProjectDto)){
this.$message.warning("请选择筛选条件后添加多组业绩!");
return
}
api.bondProjectPage(params).then(res=>{
if (res.code==200) {
this.tableData=res.data.list;
......@@ -536,7 +535,8 @@
return this.hasValue;
},
reset(){
Object.assign(this.$data, this.$options.data.call(this)); //重置data
this.init();
}
}
}
......
......@@ -43,7 +43,7 @@
import "@/assets/styles/public.css";
export default {
name: 'radar',
name: 'Radar',
components: { debtProject,Land,Establishment,bxprozbgg,Tender,BidRecord,Bidding },
data() {
return {
......@@ -95,7 +95,9 @@
personnelHerf:'debtProject'
}
},
created() {},
created() {
// console.log(this.$route.name)
},
methods: {
personnelListbtn(index) {
for (var i = 0; i < this.personnelList.length; i++) {
......
......@@ -22,9 +22,9 @@ public class BusinessListDto {
private Integer userId;
/**
* 部门id
* 用户查看全部他人可见项目标示
*/
private Integer deptId;
private Integer others;
/**
* 省id
......
......@@ -19,6 +19,10 @@ public class CustomerBusinessSearchDto implements Serializable {
* 企业id
*/
private Long userId;
/**
* 项目名称
*/
private String projectName;
/**
* 项目阶段
*/
......
......@@ -130,5 +130,10 @@ public class BusinessBrowseVo {
*/
private Integer fileCount;
/**
* 是否创建人(1 是,0 否)
*/
private Integer isFounder;
}
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
......@@ -27,9 +32,17 @@ public class EnterpriseBussinessService {
}
public TableDataInfo clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception {
public Map<String, Object> clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
Integer code = MapUtils.getInteger(map, "code", 300);
Map data = MapUtils.getMap(map, "data", null);
if (200 != code) throw new RuntimeException();
Integer count = MapUtils.getInteger(data, "totalCount", 0);
Object list = MapUtils.getObject(data, "list", "");
TableDataInfo tableDataInfo = new TableDataInfo((List<?>) list, count);
Map<String, Object> resMap = BeanUtil.beanToMap(tableDataInfo);
resMap.put("totalAmount", MapUtils.getDouble(data, "totalAmount", 0.0));
return resMap;
}
......@@ -41,6 +54,30 @@ public class EnterpriseBussinessService {
public R tenderDetail(EnterpriseBussinessTenderDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/tenderDetail", BeanUtil.beanToMap(body, false, false));
Map data = MapUtils.getMap(map, "data", null);
String mongoContentId = MapUtils.getString(data, "mongoContentId");
if (ObjectUtil.isEmpty(mongoContentId)) {
return BeanUtil.toBean(map, R.class);
}
HashMap<String, Object> contentParam = new HashMap<>();
contentParam.put("data_type", "kaibiao");
contentParam.put("filter_type", 2);
contentParam.put("strategy_id", mongoContentId);
Map<String, Object> contentMap = dskOpenApiUtil.requestBody("/mongocontent/v1/cjb/mongo_content", contentParam);
Map contentData = MapUtils.getMap(contentMap, "data", null);
log.info("contentData:{}", JSONUtil.toJsonStr(contentData));
if (200 != MapUtils.getInteger(contentMap, "code", 300)) {
return BeanUtil.toBean(map, R.class);
}
String htmlContent = MapUtils.getString(contentData, "htmlContent");
data.put("content", htmlContent);
map.put("data", data);
return BeanUtil.toBean(map, R.class);
}
......@@ -51,9 +88,18 @@ public class EnterpriseBussinessService {
}
public TableDataInfo supplierProjectPage(EnterpriseBussinessSupplierProjectPageBody body) throws Exception {
public Map<String, Object> supplierProjectPage(EnterpriseBussinessSupplierProjectPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
log.info(JSONUtil.toJsonStr(map));
Integer code = MapUtils.getInteger(map, "code", 300);
Map data = MapUtils.getMap(map, "data", null);
if (200 != code) throw new RuntimeException();
Integer count = MapUtils.getInteger(data, "totalCount", 0);
Object list = MapUtils.getObject(data, "list", "");
TableDataInfo tableDataInfo = new TableDataInfo((List<?>) list, count);
Map<String, Object> resMap = BeanUtil.beanToMap(tableDataInfo);
resMap.put("totalAmount", MapUtils.getDouble(data, "totalAmount", 0.0));
return resMap;
}
......
......@@ -2,6 +2,7 @@ package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
......@@ -124,9 +125,10 @@ public class EnterpriseProjectService {
contentParam.put("data_type", "bid_plan");
contentParam.put("filter_type", 2);
contentParam.put("strategy_id", contentId);
Map<String, Object> contentMap = dskOpenApiUtil.requestBody("/mongocontent/v1/cjb/mongo_content", BeanUtil.beanToMap(contentParam, false, false));
Map<String, Object> contentMap = dskOpenApiUtil.requestBody("/mongocontent/v1/cjb/mongo_content", contentParam);
Map contentData = MapUtils.getMap(contentMap, "data", null);
log.info("contentData:{}", JSONUtil.toJsonStr(contentData));
if (200 != MapUtils.getInteger(contentMap, "code", 300)) {
return BeanUtil.toBean(map, R.class);
......@@ -134,7 +136,8 @@ public class EnterpriseProjectService {
String htmlContent = MapUtils.getString(contentData, "htmlContent");
map.put("content", htmlContent);
data.put("content", htmlContent);
map.put("data", data);
return BeanUtil.toBean(map, R.class);
}
......
......@@ -56,7 +56,10 @@ public class EnterpriseService {
companyData.put("claimStatus", 0);
companyData.put("uipId", null);
Map<String, Object> uipMap = dskOpenApiUtil.requestBody("/operate/enterprise/financial", BeanUtil.beanToMap(body, false, false));
Map<String, Object> map = BeanUtil.beanToMap(body, false, false);
map.put("cid", body.getCompanyId());
Map<String, Object> uipMap = dskOpenApiUtil.requestBody("/operate/enterprise/financial", map);
Integer uipCode = MapUtils.getInteger(uipMap, "code", 300);
if (200 != uipCode) return R.ok(companyData);
......
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
......@@ -65,4 +67,11 @@ public interface BusinessUserMapper
* @return
*/
String selectCreatorByBusinessId(Integer businessId);
/**
* 查询是否为项目的创建人
* @param businessId
* @return
*/
Integer selectFounder(@Param("businessId") Integer businessId,@Param("userId") Long userId);
}
package com.dsk.system.service.impl;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
......@@ -47,12 +45,12 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
@Override
public List<BusinessFollowRecord> allFollow(BusinessListDto dto) {
//userId不传值,就查询全部门项目
if (dto.getUserId() == null) {
Long deptId = SecurityUtils.getLoginUser().getDeptId();
if (deptId == null) throw new BaseException("请登录");
dto.setDeptId(deptId.intValue());
}
//userId不传值,就查询全部
// if (dto.getUserId() == null) {
// Long deptId = SecurityUtils.getLoginUser().getDeptId();
// if (deptId == null) throw new BaseException("请登录");
// dto.setDeptId(deptId.intValue());
// }
return businessFollowRecordMapper.allFollow(dto);
}
......
......@@ -2,6 +2,7 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult;
......@@ -32,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -69,7 +71,8 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override
public BusinessInfo getConstruction(Integer id) {
return businessInfoMapper.getConstruction(id);
BusinessInfo businessInfo =businessInfoMapper.getConstruction(id);
return ObjectUtil.isEmpty(businessInfo) ? new BusinessInfo() : businessInfo;
}
/**
......@@ -80,13 +83,20 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
*/
@Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
//userId不传值,就查询全部门项目
List<BusinessListVo> othersList = new ArrayList<>();
//userId不传值,就查询全部他人可见项目+自己的
if (dto.getUserId() == null) {
Long deptId = SecurityUtils.getLoginUser().getDeptId();
if (deptId == null) throw new BaseException("请登录");
dto.setDeptId(deptId.intValue());
Long userId = SecurityUtils.getLoginUser().getUserId();
if (userId == null) throw new BaseException("请登录");
dto.setOthers(userId.intValue());
//查询他人可见项目
othersList = businessInfoMapper.selectBusinessInfoList(dto);
}
return businessInfoMapper.selectBusinessInfoList(dto);
dto.setOthers(null);
//查询自己参与的项目
List<BusinessListVo> businessList = businessInfoMapper.selectBusinessInfoList(dto);
businessList.addAll(othersList);
return businessList;
}
@Override
......@@ -94,9 +104,14 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
BusinessBrowseVo businessBrowseVo = new BusinessBrowseVo();
//查询项目基本信息
BusinessInfo businessInfo = businessInfoMapper.selectBusinessInfoById(businessId);
BeanUtil.copyProperties(businessInfo, businessBrowseVo);
if(ObjectUtil.isNotEmpty(businessInfo)) BeanUtil.copyProperties(businessInfo, businessBrowseVo);
//商务团队
businessBrowseVo.setTeam(businessUserMapper.selectCreatorByBusinessId(businessId));
//查询是否是项目创建人
Long userId = SecurityUtils.getLoginUser().getUserId();
if (userId == null) throw new BaseException("请登录");
Integer founder = businessUserMapper.selectFounder(businessId, userId);
businessBrowseVo.setIsFounder(founder == null ? 0 : founder);
//查询项目标签
businessBrowseVo.setLabelList(businessLabelMapper.selectBusinessLabelList(new BusinessLabel(businessId)).stream().map(p -> p.getLabel()).collect(Collectors.toList()));
//相关数据统计
......@@ -146,7 +161,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
}
}
result.add("导入项目成功条数" + rowSuccess);
result.add("导入项目失败条数" + errorCount);
result.add("导入项目去重条数" + errorCount);
AjaxResult success = AjaxResult.success(String.join(",", result));
success.put("successCount",rowSuccess);
return success;
......
......@@ -72,9 +72,6 @@
<if test="userId != null">
and f.user_id = #{userId}
</if>
<if test="deptId != null">
and u.dept_id = #{deptId}
</if>
</where>
ORDER BY f.creat_time DESC
</select>
......
......@@ -131,8 +131,8 @@
<if test="userId != null">
and bu.user_id = #{userId}
</if>
<if test="deptId != null">
and bu.dept_id = #{deptId} and i.is_private = 1
<if test="others != null">
and bu.user_id != #{others} and i.is_private = 1
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId == null and districtId == null">
......@@ -388,6 +388,7 @@
from business_info bi
left join business_user bu on bi.id = bu.business_id
where bi.customer_id = #{customerId} and (bu.user_id = #{userId} or bi.is_private = 1)
<if test="projectName != null and projectName != '' "> and bi.project_name like concat('%',#{projectName},'%') </if>
<if test="projectStage != null and projectStage != '' "> and bi.project_stage = #{projectStage}</if>
<if test="status != null "> and bi.status = #{status}</if>
order by bi.create_time desc
......
......@@ -41,6 +41,12 @@
where bu.is_founder = 1
and i.id = #{BusinessId}
</select>
<select id="selectFounder" resultType="java.lang.Integer">
select is_founder
from business_user
where business_id = #{businessId}
and user_id = #{userId}
</select>
<insert id="insertBusinessUser" parameterType="com.dsk.common.core.domain.entity.BusinessUser" useGeneratedKeys="true" keyProperty="id">
insert into business_user
......
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