Commit 9fd654c2 authored by Administrator's avatar Administrator

Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司

parents 9dc2e729 8375f351
......@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -51,7 +52,7 @@ public class AdvisoryBodyProject extends BaseEntity implements Serializable {
/**
* 结算金额(万元)
*/
private Double settleAmount;
private BigDecimal settleAmount;
/**
* 结算开始时间
*/
......
......@@ -79,6 +79,10 @@ public class CustomerApproveVo {
* 业主性质
*/
private String ownerKind;
/**
* 企业性质
*/
private String customerProperty;
/**
* 资质等级
*/
......@@ -132,10 +136,6 @@ public class CustomerApproveVo {
* 税号
*/
private String taxNumber;
/**
* 企业性质
*/
private String customerProperty;
//证书信息
/**
......@@ -167,6 +167,10 @@ public class CustomerApproveVo {
*/
private String expireDate7;
//审批意见
/**
* 是否同意准入/准入情况
*/
private String isagree;
/**
* 经办人
*/
......
......@@ -17,7 +17,7 @@ public class DCustomerListVo implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "序号", width = 6)
@Excel(name = "序号", width = 6)
private Integer num;
/**
* jsk企业id
......@@ -38,136 +38,135 @@ public class DCustomerListVo implements Serializable {
/**
* 供应商名称
*/
@Excel(name = "供应商名称", width = 30)
@Excel(name = "供应商名称", width = 30)
private String customerName;
/**
* 供应商编号
*/
@Excel(name = "供应商编号", width = 15)
@Excel(name = "供应商编号", width = 15)
private String customerCode;
/**
* 推荐公司
*/
@Excel(name = "推荐单位", width = 30)
@Excel(name = "推荐单位", width = 30)
private String recommendOrg;
/**
* 注册地区域
*/
@Excel(name = "公司注册区域", width = 10)
@Excel(name = "公司注册区域", width = 10)
private String registerRegion;
/**
* 省份
*/
@Excel(name = "公司注册省", width = 10)
@Excel(name = "公司注册省", width = 10)
private String registerProvince;
/**
* 城市
*/
@Excel(name = "公司注册市", width = 10)
@Excel(name = "公司注册市", width = 10)
private String registerCity;
/**
* 供应商类别
*/
@Excel(name = "供应商类别", width = 10)
@Excel(name = "供应商类别", width = 10)
private String customerClass;
/**
* 集团专业类别
*/
@Excel(name = "专业类别", width = 20)
@Excel(name = "专业类别", width = 20)
private String groupSpecialty;
/**
* 纳税人身份
*/
@Excel(name = "纳税人身份", width = 10)
@Excel(name = "纳税人身份", width = 10)
private String paytaxType;
/**
* 纳税人税率
*/
@Excel(name = "纳税人税率", width = 10)
@Excel(name = "纳税人税率", width = 10)
private String taxRate;
/**
* 供应商状态
*/
@Excel(name = "状态", width = 10)
@Excel(name = "状态", width = 10)
private String customerState;
/**
* 限用/禁用状态
*/
@Excel(name = "限用/禁用状态", width = 10)
@Excel(name = "限用/禁用状态", width = 10)
private String badnessState;
/**
* 队长名称
*/
@Excel(name = "劳务队长", width = 10)
@Excel(name = "劳务队长", width = 10)
private String leaderName;
/**
* 劳务队长联系电话
*/
@Excel(name = "队长联系电话", width = 10)
@Excel(name = "队长联系电话", width = 10)
private String laborCaptainPhone;
/**
* 劳务队长身份证号
*/
@Excel(name = "队长身份证号", width = 10)
@Excel(name = "队长身份证号", width = 10)
private String laborCaptainIdcard;
/**
* 队伍规模人数
*/
@Excel(name = "队伍规模", width = 10)
@Excel(name = "队伍规模", cellType = Excel.ColumnType.NUMERIC, width = 10)
private Double serviceTeamPersonnum;
/**
* 专业特长
*/
@Excel(name = "专业特长", width = 10)
@Excel(name = "专业特长", width = 10)
private String serviceTeamSpeciality;
/**
* 施工承包范围
*/
@Excel(name = "施工承包范围", width = 25)
@Excel(name = "施工承包范围", width = 25)
private String constructJobScope;
/**
* 资质等级
*/
@Excel(name = "资质等级", width = 10)
@Excel(name = "资质等级", width = 10)
private String credential;
/**
* 注册资金
*/
@Excel(name = "注册资金(万元)", width = 10)
@Excel(name = "注册资金(万元)", cellType = Excel.ColumnType.NUMERIC, width = 10)
private Double registerCapital;
/**
* 联系人
*/
@Excel(name = "公司联系人", width = 10)
@Excel(name = "公司联系人", width = 10)
private String contactPerson;
/**
* 电话
*/
@Excel(name = "联系人电话", width = 10)
@Excel(name = "联系人电话", width = 10)
private String contactPhone;
/**
* 准入时间
*/
@Excel(name = "准入时间", width = 10 , dateFormat = "yyyy-MM-dd")
@Excel(name = "准入时间", width = 10, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approveDate2;
/**
* 企业合作数量
*/
@Excel(name = "公司合作数量", width = 10 )
@Excel(name = "公司合作数量", width = 10)
private Integer enterpriseCooperationCount;
/**
* 项目合作数量
*/
@Excel(name = "合作项目数量", width = 10 )
@Excel(name = "合作项目数量", width = 10)
private Integer projectCooperationCount;
/**
* 考评等级
*/
@Excel(name = "分包商等级", width = 10)
@Excel(name = "分包商等级", width = 10)
private String creditLevel;
}
......@@ -42,7 +42,7 @@ import java.util.Map;
/**
* 咨询机构管理
*
* @author makejava
* @author sxk
* @since 2023-12-10 15:34:51
*/
@Slf4j
......@@ -148,11 +148,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
public TableDataInfo<CooperateProjectDetailSearchVo> queryCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
//先根据咨询机构CID查出所有该咨询机构下的项目主键keys
List<Long> projectKeys = advisoryBodyProjectMapper.selectProjectKeysByAdvisoryBodyCids(Collections.singletonList(cooperateProjectDetailSearchBo.getAdvisoryBodyCid()));
if (projectKeys.isEmpty()) {
return TableDataInfo.build();
}
//再根据记录终改的项目主键查询项目详情
QueryWrapper<DProject> wrapper = Wrappers.query();
wrapper
//项目主键
.in(!projectKeys.isEmpty(), "project_key", projectKeys)
.in("project_key", projectKeys)
//项目名称
.like(StringUtils.isNotBlank(cooperateProjectDetailSearchBo.getProjectName()), "project_name", cooperateProjectDetailSearchBo.getProjectName())
//项目承接类型
......@@ -175,9 +178,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
if (ObjectUtil.isNotNull(advisoryBodyProject)) {
Date settleStartTime = advisoryBodyProject.getSettleStartTime();
Date settleFinishTime = advisoryBodyProject.getSettleFinishTime();
if (ObjectUtil.isNotNull(settleStartTime)&& ObjectUtil.isNotNull(settleFinishTime)) {
if (ObjectUtil.isNotNull(settleStartTime) && ObjectUtil.isNotNull(settleFinishTime)) {
cooperateProjectDetailSearchVo.setSettlementDays(DateUtil.between(settleStartTime, settleFinishTime, DateUnit.DAY));
}else {
} else {
cooperateProjectDetailSearchVo.setSettlementDays(0L);
}
}
......
......@@ -9,7 +9,10 @@
from advisory_body_project abp
<where>
<if test="advisoryBodyCids != null">
abp.advisory_body_cid = #{advisoryBodyCids}
abp.advisory_body_cid in
<foreach collection="advisoryBodyCids" item="advisoryBodyCids" open="(" close=")" separator=",">
#{advisoryBodyCids}
</foreach>
</if>
</where>
</select>
......
......@@ -31,4 +31,27 @@ export const getCooperativeOwnerUnitsOptionsApi = (data) => request({
url: "/consultancy/pageSelect",
method: "post",
data
});
/**
* 当前页列表 amount 总数
* @param {*} data
* @returns
*/
export const getCooperativeOwnerUnitsCountAmountApi = (data) => request({
url: "/consultancy/statistics",
method: "post",
data
});
/**
* 常合作集团详情 合作成员列表
* @param {*} data
* @returns
*/
export const getCooperativeGroupMemberApi = (data) => request({
url: "/consultancy/combinePage",
method: "post",
data
});
\ No newline at end of file
......@@ -453,8 +453,6 @@ li {
// 封装组件样式
.table-list-com-ins {
.table-item {
width: 100%;
max-height: 100%;
.el-table {
width: 100%;
height: auto;
......
<template>
<div class="table-list-com-ins">
<div class="table-list-com-ins" :class="{'is-empty-table' : !tableDataTotal}">
<div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
element-loading-text="Loading" ref="tableRef" border fit highlight-current-row :default-sort="defaultSort?defaultSort:{}"
......@@ -188,7 +188,7 @@ export default {
/**
* @type {HTMLDivElement}
*/
const container = document.querySelector(".table-list-com-ins .table-item");
const container = this.$el.querySelector(".table-item");
if (container) {
this.comMaxHeight = `${container.offsetHeight}px`;
}
......@@ -230,7 +230,15 @@ export default {
<style lang="scss" scoped>
.table-list-com-ins {
&.is-empty-table {
.table-item {
max-height: unset;
height: 100%;
}
}
::v-deep .table-item {
width: 100%;
max-height: calc(100% - 40px);
.no-line-feed {
display: block;
color: #0081ff;
......@@ -270,11 +278,15 @@ export default {
.table-empty-container {
width: 100%;
height: 100%;
padding: 30px 0;
min-height: 360px;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
.no-data {
min-height: unset;
}
}
.el-table {
......
......@@ -25,6 +25,266 @@
</tr>
</table>
</div>
<!-- 工程概况 -->
<div class="project-overview">
<div class="info-module-title"><span>工程概况</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">国内外</td>
<td>{{"-"}}</td>
<td class="table-key">省市</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">投资来源</td>
<td>{{"-"}}</td>
<td class="table-key">项目承接类型</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">投资来源</td>
<td>{{"-"}}</td>
<td class="table-key">项目承接类型</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">合同签订日期</td>
<td>{{"-"}}</td>
<td class="table-key">合同总工期</td>
<td>{{comProjectDetailInfo.contractWorkDays ? `${comProjectDetailInfo.contractWorkDays}天` : "-"}}</td>
</tr>
<tr>
<td class="table-key">开工日期方式</td>
<td>{{"-"}}</td>
<td class="table-key">开工具体时间</td>
<td>{{comProjectDetailInfo.actualStartDate ? comProjectDetailInfo.actualStartDate : "-"}}</td>
</tr>
<tr>
<td class="table-key">竣工具体方式</td>
<td>{{"-"}}</td>
<td class="table-key">竣工具体时间</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">工程类型大类</td>
<td>{{"-"}}</td>
<td class="table-key">工程类型明细</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">建筑高度</td>
<td>{{comProjectDetailInfo.constructHeight ? `${comProjectDetailInfo.constructHeight }m`: "-"}}</td>
<td class="table-key">建筑面积</td>
<td>{{comProjectDetailInfo.buildingArea ? `${comProjectDetailInfo.buildingArea}㎡` : "-"}}</td>
</tr>
<tr>
<td class="table-key">地上层数</td>
<td>{{comProjectDetailInfo.noOfOverfloor ? `${comProjectDetailInfo.noOfOverfloor}层` : "-"}}</td>
<td class="table-key">地下层数</td>
<td>{{comProjectDetailInfo.noOfUnderfloor ? `${comProjectDetailInfo.noOfUnderfloor}层` : "-"}}</td>
</tr>
</table>
</div>
<!-- 目标责任书 -->
<div class="target-responsibility-letter">
<div class="info-module-title"><span>目标责任书</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">预收益率</td>
<td>{{comProjectDetailInfo.estiProfitRate ? `${comProjectDetailInfo.estiProfitRate}%` : "-"}}</td>
<td class="table-key">预收益额</td>
<td>{{comProjectDetailInfo.estiTtlProfit ? `${comProjectDetailInfo.estiTtlProfit}元` : "-"}}</td>
</tr>
</table>
</div>
<!-- 条款内容 -->
<div class="clause-content">
<div class="info-module-title"><span>条款内容</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">合同金额</td>
<td>{{"-"}}</td>
<td class="table-key">自施部分</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">计价依据</td>
<td>{{"-"}}</td>
<td class="table-key">预收益率</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">业主批量申报日期</td>
<td>{{"-"}}</td>
<td class="table-key">批量时限</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">付款时限</td>
<td colspan="3">{{"-"}}</td>
</tr>
</table>
</div>
<!-- 工程预付款 -->
<div class="advance-payment-for-construction">
<div class="info-module-title"><span>工程预付款</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">工程预付款</td>
<td>{{"-"}}</td>
<td class="table-key">支付比例</td>
<td>{{"-"}}</td>
</tr>
</table>
</div>
<!-- 工程款项 -->
<div class="advance-payment-for-construction">
<div class="info-module-title"><span>工程款项</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">支付方式</td>
<td>{{"-"}}</td>
<td class="table-key">按节点支付比例</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">按月度支付比例</td>
<td>{{"-"}}</td>
<td class="table-key">审核期限</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">支付期限</td>
<td>{{"-"}}</td>
<td class="table-key">竣工累计支付</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">工程结算后累计支付</td>
<td>{{"-"}}</td>
<td class="table-key">保修金预留比例</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key lot">工程结算后累计支付</td>
<td colspan="3">{{"-"}}</td>
</tr>
</table>
</div>
<!-- 履约担保 -->
<div class="performance-guarantee">
<div class="info-module-title"><span>履约担保</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">担保形式</td>
<td>{{"-"}}</td>
<td class="table-key">担保额度</td>
<td>{{"-"}}</td>
</tr>
</table>
</div>
<!-- 竣工结算 -->
<div class="completion-settlement">
<div class="info-module-title"><span>竣工结算</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">竣工结算审核期限</td>
<td>{{"-"}}</td>
<td class="table-key">是否承诺放弃工程价款优先受偿权</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">是否以行为事实放弃工程价款优先受偿权</td>
<td>{{"-"}}</td>
<td class="table-key">工程拖期违约金比例</td>
<td>{{"-"}}</td>
</tr>
</table>
</div>
<!-- 工期拖期违约金上线 -->
<div class="delay-period">
<div class="info-module-title"><span>工期拖期违约金上线</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">/</td>
<td>{{"-"}}</td>
<td class="table-key">上线比例</td>
<td>{{"-"}}</td>
</tr>
</table>
</div>
<!-- 其它信息 -->
<div class="other-information">
<div class="info-module-title"><span>其它信息</span></div>
<table>
<colgroup>
<col>
<col :style="{width : tableKeyWidth}">
<col>
<col :style="{width : tableKeyWidth}">
</colgroup>
<tr>
<td class="table-key">是否分别签订执行和备案合同</td>
<td>{{"-"}}</td>
<td class="table-key">承包单位</td>
<td>{{"-"}}</td>
</tr>
<tr>
<td class="table-key">评审级别</td>
<td>{{"-"}}</td>
<td class="table-key">创建日期</td>
<td>{{"-"}}</td>
</tr>
</table>
</div>
</div>
</div>
</template>
......@@ -89,7 +349,6 @@ export default {
.basic-engineering-information-inner {
width: 100%;
height: 100%;
.info-module-title {
line-height: 24px;
color: #232323;
......@@ -145,6 +404,17 @@ export default {
width: calc(100% - 140px);
}
}
.project-overview,
.target-responsibility-letter,
.clause-content,
.advance-payment-for-construction,
.performance-guarantee,
.completion-settlement,
.delay-period,
.other-information {
margin-top: 24px;
}
}
}
</style>
<template>
<div class="consulting-agency-container">
</div>
</template>
<script>
export default {
name: "consultingAgency",
data() {
return {
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.consulting-agency-container {
width: 100%;
height: 100%;
background: #fff;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
padding: 16px;
box-sizing: border-box;
overflow: auto;
}
</style>
......@@ -56,7 +56,19 @@
v-else-if="!tableLoading" :maxHeight="true" @handle-current-change="handleCurrentChange">
<!-- 项目列表 -->
<template slot="projectName" slot-scope="{data,row}">
<div v-if="row.projectName" class="no-line-feed ">{{row.projectName}}</div>
<div v-if="row.projectName" class="no-line-feed">{{row.projectName}}</div>
<span v-else>-</span>
</template>
<template slot="projectLeader" slot-scope="{data,row}">
<div v-if="row.advisoryBodyProject && row.advisoryBodyProject.projectLeader">{{row.advisoryBodyProject.projectLeader}}</div>
<span v-else>-</span>
</template>
<template slot="projectLeaderMajor" slot-scope="{data,row}">
<div v-if="row.advisoryBodyProject && row.advisoryBodyProject.projectLeaderMajor">{{row.advisoryBodyProject.projectLeaderMajor}}</div>
<span v-else>-</span>
</template>
<template slot="projectLeaderPhone" slot-scope="{data,row}">
<div v-if="row.advisoryBodyProject && row.advisoryBodyProject.projectLeaderPhone">{{row.advisoryBodyProject.projectLeaderPhone}}</div>
<span v-else>-</span>
</template>
</table-list-com>
......@@ -102,9 +114,9 @@ export default {
{ label: '项目承接类型', prop: 'isinvestproject', minWidth: "102px", uid: v4() },
{ label: '工程基础大类', prop: 'projectType1', width: "98px", uid: v4() },
{ label: '工程类别明细', prop: 'projectType', width: "98px", uid: v4() },
{ label: '项目负责人姓名', prop: 'projectLeader', width: "110px", uid: v4() },
{ label: '项目负责人专业', prop: 'projectLeaderMajor', width: "110px", uid: v4() },
{ label: '项目负责人联系电话', prop: 'projectLeaderPhone', width: "134px", uid: v4() },
{ label: '项目负责人姓名', prop: 'projectLeader', width: "110px", slot: true, uid: v4() },
{ label: '项目负责人专业', prop: 'projectLeaderMajor', width: "110px", slot: true, uid: v4() },
{ label: '项目负责人联系电话', prop: 'projectLeaderPhone', width: "134px", slot: true, uid: v4() },
],
queryParams: {
pageSize: 20,
......@@ -197,7 +209,7 @@ export default {
resetForm() {
const defaultValue = this.$options.data.call(this);
this.form = defaultValue.form;
this.queryParams = defaultValue.queryParams;
this.queryParams = { ...defaultValue.queryParams, advisoryBodyCid: this.queryParams.advisoryBodyCid };
this.getList(this.queryParams);
},
async getList(params) {
......@@ -326,7 +338,7 @@ export default {
@import "@/assets/styles/search-result-list-public.scss";
::v-deep .table-list-com-ins {
height: calc(100% - 80px);
height: calc(100% - 40px);
margin-top: 16px;
.pagination-box {
......
......@@ -24,6 +24,7 @@
<!-- 工程基本信息 -->
<basic-engineering-information v-if="currentList === 'project'" :projectDetailInfo="projectDetailInfo"></basic-engineering-information>
<!-- 咨询机构结算信息 -->
<consulting-agency v-if="currentList === 'consultingAgency'" :projectDetailInfo="projectDetailInfo"></consulting-agency>
</div>
</div>
......@@ -36,11 +37,13 @@ import DskTabToggle from "@/components/DskTabToggle";
import { getgetConsultingOrgProjectDetailApi } from "@/api/consultingOrgManagement/index";
import { v4 } from 'uuid';
import BasicEngineeringInformation from "@/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation";
import consultingAgency from "@/views/consultingOrgManagement/components/EnterpriseList/detail/consultingAgency";
export default {
name: "projectDetail",
components: {
DskTabToggle,
BasicEngineeringInformation
BasicEngineeringInformation,
consultingAgency
},
data() {
return {
......
......@@ -39,7 +39,7 @@
v-else-if="!tableLoading" :maxHeight="true" @handle-current-change="handleCurrentChange">
<!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="{data,row}">
<div v-if="row.advisoryBodyName" class="no-line-feed ">{{row.advisoryBodyName}}</div>
<div v-if="row.advisoryBodyName" class="no-line-feed" @click="viewEnterprise(row)">{{row.advisoryBodyName}}</div>
<span v-else>-</span>
</template>
<!-- 合作项目数量 -->
......@@ -70,6 +70,7 @@ import Skeleton from "@/components/Skeleton";
import { getConsultingOrgEenterpriseListWithSearchApi } from "@/api/consultingOrgManagement";
import { queryConditionFiltering } from "@/utils";
import { v4 } from 'uuid';
import { encodeStr } from "@/assets/js/common";
export default {
name: "cooperationDeskAccountEnterprise",
components: {
......@@ -140,6 +141,10 @@ export default {
if (!row.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(`${row.advisoryBodyName}合作明细`, `/consultingOrgManagement/detailsOfCooperation/${row.advisoryBodyCid}`);
},
// 跳转到企业详情
viewEnterprise(row) {
this.$tab.openPage(row.advisoryBodyName ? row.advisoryBodyName : "咨询机构详情", `/enterprise/${encodeStr(row.advisoryBodyCid)}`);
},
// 创建最终查询条件
mergeCondition() {
const _queryParams = JSON.parse(JSON.stringify(this.queryParams));
......@@ -147,8 +152,8 @@ export default {
const _form = queryConditionFiltering(this.form);
// 处理时间
if (_form?.cooperationTime?.length) {
_form.projectStartTime = _form?.projectCreateTime[0];
_form.projectEndTime = _form?.projectCreateTime[1];
_form.projectStartTime = _form?.cooperationTime[0];
_form.projectEndTime = _form?.cooperationTime[1];
}
delete _form.cooperationTime;
......@@ -277,7 +282,7 @@ export default {
@import "@/assets/styles/search-result-list-public.scss";
::v-deep .table-list-com-ins {
height: calc(100% - 80px);
height: calc(100% - 40px);
margin-top: 16px;
.pagination-box {
......
......@@ -78,18 +78,19 @@
<span v-else>-</span>
</template>
<!-- 业主单位 -->
<template slot="ownerName" slot-scope="{data,row}">
<!-- <template slot="ownerName" slot-scope="{data,row}">
<div v-if="row.ownerName" class="no-line-feed">{{row.ownerName}}</div>
<span v-else>-</span>
</template>
</template> -->
<!-- 项目承接单位 -->
<template slot="contractOrgName" slot-scope="{data,row}">
<!-- <template slot="contractOrgName" slot-scope="{data,row}">
<div v-if="row.contractOrgName" class="no-line-feed">{{row.contractOrgName}}</div>
<span v-else>-</span>
</template>
</template> -->
<!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="{data,row}">
<div v-if="row.advisoryBodyName" class="no-line-feed">{{row.advisoryBodyName}}</div>
<div v-if="row.advisoryBody && row.advisoryBody.advisoryBodyName" class="no-line-feed" @click="viewEnterprise(row)">
{{row.advisoryBody.advisoryBodyName}}</div>
<span v-else>-</span>
</template>
</table-list-com>
......@@ -105,6 +106,7 @@ import Skeleton from "@/components/Skeleton";
import { getConsultingOrgProjectListWithSearchApi } from "@/api/consultingOrgManagement";
import { queryConditionFiltering } from "@/utils";
import { v4 } from 'uuid';
import { encodeStr } from "@/assets/js/common.js";
export default {
name: "cooperationDeskAccountProject",
components: {
......@@ -318,7 +320,11 @@ export default {
},
// 查看项目详情
viewProjectDetail(row) {
// this.$tab.openPage(row.projectName,`/consultingOrgManagement/projectDetail/${row.advisoryBodyCid}?projectKey=${row.projectKey}`)
this.$tab.openPage(row.projectName, `/consultingOrgManagement/projectDetail/${row.advisoryBody?.advisoryBodyCid}?projectKey=${row.projectKey}`);
},
// 跳转到企业详情
viewEnterprise(row) {
this.$tab.openPage(row.advisoryBody.advisoryBodyName ? row.advisoryBody.advisoryBodyName : "咨询机构详情", `/enterprise/${encodeStr(row.advisoryBody.advisoryBodyCid)}`);
}
},
}
......@@ -371,7 +377,7 @@ export default {
@import "@/assets/styles/search-result-list-public.scss";
::v-deep .table-list-com-ins {
height: calc(100% - 80px);
height: calc(100% - 40px);
margin-top: 16px;
.pagination-box {
......
......@@ -27,7 +27,7 @@
<transition name="fade-position" appear mode="out-in">
<span v-if="!form.hover && !form.value">搜索</span>
<el-input v-model="form.value" :placeholder="form.placeholder ? form.placeholder : '输入关键词查询'"
:style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)" @blur="searchBlur($event,form)"
:style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)"
@input="value => searchInput(value,form)" v-else @keydown.native.enter="changeSelect">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
......
......@@ -333,8 +333,8 @@ export default {
getFinancial(id) {
financial({ cid: String(id) }).then(res => {
if ((res.code == 200 && !res.data) || !res.data?.totalAssets) {
this.$set(this.sideRoute[0], "disabled", true);
this.$set(this.sideRoute[1], "disabled", true);
// 禁用商务信息
this.$set(this.findNodeIndex(this.sideRoute, "business"), "disabled", true);
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute));
}
});
......
<template>
<div class="Tables">
<div class="Tables" :class="{'is-empty-table' : !tableDataTotal}">
<div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
element-loading-text="Loading" ref="tableRef" v-horizontal-scroll="'hover'" border fit highlight-current-row
:default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange">
element-loading-text="Loading" ref="tableRef" v-horizontal-scroll="'hover'" border fit highlight-current-row :height="height"
:maxHeight="comMaxHeight" :default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange">
<el-table-column v-if="isIndex" label="序号" :width="flexWidth(tableData)" align="left" :fixed="indexFixed" :resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
......@@ -56,6 +56,12 @@ import NoData from '../component/noData';
export default {
name: "Tables",
props: {
height: {
type: [String, Number]
},
maxHeight: {
type: Boolean
},
isIndex: {
type: Boolean,
default: true
......@@ -107,7 +113,8 @@ export default {
data() {
return {
current_page: this.queryParams.pageNum,
show_page: this.paging
show_page: this.paging,
comMaxHeight: null
};
},
watch: {
......@@ -116,9 +123,24 @@ export default {
}
},
created() {
this.maxHeight ? this.maxHeightInit() : null;
},
methods: {
// 自适应当前容器
async maxHeightInit() {
try {
await this.$nextTick();
/**
* @type {HTMLDivElement}
*/
const container = this.$el.querySelector(".table-item");
if (container) {
this.comMaxHeight = `${container.offsetHeight}px`;
}
} catch (error) {
}
},
handleCurrentChange(e) {
if (this.MaxPage < e) {
this.show_page = false;
......@@ -173,18 +195,29 @@ export default {
}
}
}
&.is-empty-table {
.table-item {
max-height: unset;
height: 100%;
}
}
::v-deep .table-item {
position: relative;
/* 留高度给骨架屏 */
min-height: 360px;
max-height: calc(100% - 56px);
.table-empty-container {
position: absolute;
min-height: 360px;
display: flex;
height: 100%;
width: 100%;
align-items: center;
justify-content: center;
box-sizing: border-box;
.no-data {
min-height: unset;
}
}
.el-table td.el-table__cell {
border-bottom: 0;
......@@ -194,6 +227,11 @@ export default {
font-size: 12px;
}
}
.el-table--border th.gutter:last-of-type {
display: block !important;
padding-right: 16px;
height: 55px;
}
}
::v-deep .el-table th.el-table__cell.is-leaf,
::v-deep .el-table td.el-table__cell {
......
......@@ -19,7 +19,7 @@
</tables>
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen"
class="cooperation-record-dialog-container" custom-class="cooperation-record-dialog" :destroy-on-close="true">
class="cooperation-record-dialog-container" custom-class="cooperation-record-dialog" :destroy-on-close="true" :close-on-click-modal="false">
<div class="cooperation-record-dialog-innner">
<dialog-head-form-new title="" :form-data="dialogFormData" :query-params="dialogQueryParams" :total="dialogtableDataTotal" :isExcel="false"
@handle-search="dialogHandleSearch" ref="dialogSearchFormNew" />
......@@ -29,7 +29,7 @@
<!-- 列表 -->
<dialog-tables v-if="!dialogIsSkeleton" :indexFixed="true" :tableData="dialogTableData" :forData="dialogForData"
:tableDataTotal="dialogtableDataTotal" :queryParams="dialogQueryParams" @handle-current-change="dialogCurrentChange"
@sort-change="dialogSortChange">
@sort-change="dialogSortChange" :maxHeight="true">
<!-- 合作项目/工程名称-->
<template slot="projectName" slot-scope="scope">
<span v-if="scope.row.projectName" style="color: #0081FF;cursor: pointer;" v-html="scope.row.projectName">{{scope.row.projectName}}</span>
......@@ -48,7 +48,7 @@
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { getCooperativeOwnerUnitsListApi, getCooperativeOwnerUnitsDetailApi, getCooperativeOwnerUnitsOptionsApi } from "@/api/consultingTransaction";
import { getCooperativeOwnerUnitsListApi, getCooperativeOwnerUnitsDetailApi, getCooperativeOwnerUnitsOptionsApi, getCooperativeOwnerUnitsCountAmountApi } from "@/api/consultingTransaction";
import DialogHeadFormNew from "../component/HeadFormNew";
import DialogTables from "../component/Tables";
export default {
......@@ -118,6 +118,7 @@ export default {
dialogIsSkeleton: true,
dialogtableDataTotal: 0,
dialogTableData: [],
statisticsData: {}
};
},
//可访问data属性
......@@ -250,6 +251,10 @@ export default {
const res = await getCooperativeOwnerUnitsDetailApi(data);
this.dialogTableData = res.rows ? res.rows : [];
this.dialogtableDataTotal = res.total ? res.total : 0;
const count = await getCooperativeOwnerUnitsCountAmountApi(data);
if (count.code == 200 && count.data) {
this.statisticsData = count.data;
}
} catch (error) {
console.log(error);
} finally {
......@@ -284,12 +289,19 @@ export default {
const res = await getCooperativeOwnerUnitsDetailApi(data);
this.dialogTableData = res.rows ? res.rows : [];
this.dialogtableDataTotal = res.total ? res.total : 0;
const count = await getCooperativeOwnerUnitsCountAmountApi(data);
if (count.code == 200 && count.data) {
this.statisticsData = count.data;
}
} catch (error) {
console.log(error);
}
},
dialogCurrentChange(page) {
this.dialogQueryParams.pageNum = page;
const params = this.createQueryCondition(this.dialogFormData);
const searchParams = JSON.parse(JSON.stringify({ ...params, ...this.dialogQueryParams }));
this.dialogHandleQurey(searchParams);
},
async dialogOPen() {
await this.setOptions();
......@@ -344,12 +356,15 @@ export default {
::v-deep .cooperation-record-dialog-container {
.cooperation-record-dialog {
height: 60%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 4px;
margin: 0px !important;
display: flex;
flex-direction: column;
.el-dialog__header {
padding: 20px;
......@@ -374,14 +389,23 @@ export default {
}
.el-dialog__body {
height: calc(100% - 56px);
padding: 24px 20px;
box-sizing: border-box;
.cooperation-record-dialog-innner {
width: 100%;
height: 100%;
.Tables {
height: calc(100% - 40px);
}
}
}
.el-table-horizontal-scrollbar {
display: none !important;
}
}
}
}
......
......@@ -35,6 +35,11 @@
<!-- 咨询业务往来 -->
<!-- 1.常合作业主单位 -->
<cooperative-owner-units v-if="currentPath.pathName=='cooperativeOwnerUnits'" :company-id="companyId"></cooperative-owner-units>
<!-- 2、常合作施工单位 -->
<cooperative-construction-unit v-if="currentPath.pathName=='cooperativeConstructionUnit'"
:company-id="companyId"></cooperative-construction-unit>
<!-- 3、常合作集团 -->
<cooperative-group v-if="currentPath.pathName=='cooperativeGroup'" :company-id="companyId"></cooperative-group>
<!-- 投诚分析 -->
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" :companyInfo="companyInfo" />
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
......@@ -111,6 +116,8 @@ import Bidagency from "./dealings/bidagency"; //业务往来-招标代理
import Hiscontract from "./dealings/hiscontract"; //业务往来-历史发包
import Bidrecords from "./dealings/bidrecords"; //业务往来-开标记录
import CooperativeOwnerUnits from "@/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits"; //咨询业务往来 常合作业主单位
import CooperativeConstructionUnit from "@/views/detail/party-a/consultingTransaction/cooperativeConstructionUnit"; //咨询业务往来 常合作施工单位
import CooperativeGroup from "@/views/detail/party-a/consultingTransaction/cooperativeGroup"; //咨询业务往来 常合作集团
import LandAcquisition from "./urbanLnvestment/landAcquisition"; //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies"; //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion"; //投诚分析-同地区城投
......@@ -180,7 +187,9 @@ export default {
CooperativeOwnerUnits,
ConsultingAgencyCooperation,
AccessCondition,
CooperationRecord
CooperationRecord,
CooperativeConstructionUnit,
CooperativeGroup
},
data() {
return {
......@@ -281,7 +290,7 @@ export default {
this.companyId = data;
await this.$nextTick();
this.listenSider();
// await this.getStatistic();
await this.getStatistic();
await this.handleQuery();
await this.association(this.$route.query.customerId);
this.$refs.sidebar.getFinancial(data);
......
......@@ -136,7 +136,7 @@
</el-upload>
</div>
<div slot="footer" class="dialog-footer">
<el-button class="download" icon="el-icon-download">下载模版</el-button>
<el-button class="download" icon="el-icon-download" @click="downloadClick">下载模版</el-button>
<el-button @click="handleUploadCancel1">取消</el-button>
<el-button type="primary" @click="submitUpload">确定</el-button>
</div>
......@@ -207,10 +207,12 @@
headers: {
Authorization: "Bearer " + getToken(),
},
companyId:''
companyId:'',
downloadhref: '',//样例地址
}
},
created() {
this.downloadhref = '/file/Template.xlsx';
this.querySubmit()
},
methods: {
......@@ -369,6 +371,14 @@
this.fileList=[]
this.pldrVisible=false;
},
downloadClick() {
let a = document.createElement("a");
a.setAttribute("href", this.downloadhref);
a.setAttribute("download", "批量导入模版.xlsx");
document.body.appendChild(a);
a.click();
a.remove();
},
submitUpload() {
this.$refs.upload.submit();
},
......
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