Commit 3de6f9f4 authored by chenyuefang's avatar chenyuefang

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

parents 10cbbca3 8a431344
......@@ -108,6 +108,12 @@ public class CbQuantitySummaryServiceImpl extends ServiceImpl<CbQuantitySummaryM
@Override
public List<CbQuantitySummaryListVo> subjectList(CbQuantitySummaryListBo bo) {
if(ObjectUtils.isEmpty(bo.getRecordDate())){
//默认当前月
bo.setRecordDate(DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()));
}
if (ObjectUtils.isEmpty(bo.getProjectId())) throw new BeanException("项目id不能为空!");
if (ObjectUtils.isEmpty(bo.getCbStage())) throw new BeanException("成本阶段不能为空!");
return baseMapper.selectListBySubject(bo);
}
......
......@@ -52,28 +52,26 @@
</select>
<select id="selectListBySubject" resultType="com.dsk.cscec.domain.vo.CbQuantitySummaryListVo">
select a.*, ifnull(sum(a.quantities),0) totalQuantities from (
select
cqs.id, cqs.cb_subject_name, cqs.company_no, cqs.org_no, cqs.cb_name, cqs.job_content, cqs.calculation_rule,
cqs.unit, cqs.material_description, cqs.guide_price, cqs.bid_unit_price, cqs.unit_price_difference, cqs.quantity,
cqs.combined_price, cqs.combined_price_tax, cqs.brand_name, cqs.bid_source, cqs.remark, cqs.`number`, cqsa.quantities,
cqsa.quantities_unit, cqsa.conversion_quantities, cqsa.conversion_unit, cqsa.purchase_unit_price, cqsa.create_time,
cqsa.id actualId, cqsa.ipm_project_code, cqsa.ipm_contract_code, cqsa.ipm_biz_code, cqsa.push_quantities
from cb_quantity_summary cqs
left join cb_quantity_summary_actual cqsa on cqs.id = cqsa.cb_quantity_summary_id
left join cb_subject cs1 on cqs.cb_subject_name = cs1.cb_subject_name
where cqs.del_falg = 0 and cqs.project_id = #{projectId} and cqs.cb_stage = #{cbStage}
<if test="recordDate != null and recordDate != ''"> and cqsa.record_date &lt;= #{recordDate} </if>
<if test="cbSubjectName != null and cbSubjectName !=''">
<choose>
<when test="cbSubjectName == '未归类项目'"> and cs1.id is null </when>
<otherwise> and cqs.cb_subject_name = #{cbSubjectName} </otherwise>
</choose>
</if>
order by cqsa.record_date desc
) a
group by a.id
order by a.`number` asc
select
cqs.id, cqs.cb_subject_name, cqs.company_no, cqs.org_no, cqs.cb_name, cqs.job_content, cqs.calculation_rule,
cqs.unit, cqs.material_description, cqs.guide_price, cqs.bid_unit_price, cqs.unit_price_difference, cqs.quantity,
cqs.combined_price, cqs.combined_price_tax, cqs.brand_name, cqs.bid_source, cqs.remark, cqs.`number`, cqsa.quantities,
cqsa.quantities_unit, cqsa.conversion_quantities, cqsa.conversion_unit, cqsa.purchase_unit_price, cqsa.create_time,
cqsa.id actualId, cqsa.ipm_project_code, cqsa.ipm_contract_code, cqsa.ipm_biz_code, cqsa.push_quantities,
ifnull(sum(cqsa1.quantities),0) totalQuantities
from cb_quantity_summary cqs
left join cb_quantity_summary_actual cqsa on (cqs.id = cqsa.cb_quantity_summary_id and cqsa.record_date = #{recordDate} )
left join cb_quantity_summary_actual cqsa1 on (cqs.id = cqsa1.cb_quantity_summary_id and cqsa1.record_date &lt;= #{recordDate} )
left join cb_subject cs1 on cqs.cb_subject_name = cs1.cb_subject_name
where cqs.del_falg = 0 and cqs.project_id = #{projectId} and cqs.cb_stage = #{cbStage}
<if test="cbSubjectName != null and cbSubjectName !=''">
<choose>
<when test="cbSubjectName == '未归类项目'"> and cs1.id is null </when>
<otherwise> and cs1.id is not null and cqs.cb_subject_name = #{cbSubjectName} </otherwise>
</choose>
</if>
group by cqs.id
order by cs1.sort asc, cs1.cb_subject_no asc, cqs.`number` asc
</select>
<select id="unconvertedList" resultType="com.dsk.cscec.domain.vo.CbQuantitySummaryListVo">
......
......@@ -73,7 +73,7 @@
<label class="label label1">招标代理机构</label>
<span class="span1">{{info.agency||"--"}}</span>
</p>
</div>
<div class="tip">
<span>温馨提示:</span>本栏信息全部来自政府建设主管单位,可作为该公司资质电报、招标投标业绩核实、优质工程(奖杯)申请、信用评估等用途使用。
......@@ -81,7 +81,7 @@
</div>
<div class="content main3">
<div class="common-title">信息快照</div>
<div class="main3-box" >
<img class="tip-img" :src="'https://imgs.jiansheku.com/'+info.snapshootPic" v-if="info.snapshootPic" />
<div v-else class="no-data">
......@@ -92,8 +92,8 @@
</div>
</div>
</div>
</div>
</template>
......@@ -125,7 +125,7 @@ export default {
this.info = res.data
}
}).catch(error => {
});
}
}
......@@ -184,6 +184,7 @@ export default {
font-size: 14px;
border-bottom: 1px solid #EFEFEF;
padding-bottom: 14px;
position: relative;
.list-titel {
font-size: 16px;
......@@ -324,7 +325,7 @@ export default {
}
.app-container {
padding: 0;
/*padding: 0;*/
}
.qyzx-details {
......@@ -428,7 +429,7 @@ export default {
.blue {
color: #0081FF !important;
cursor: pointer;
}
}
......@@ -439,4 +440,4 @@ export default {
}
</style>
\ No newline at end of file
</style>
......@@ -296,6 +296,7 @@ export default {
},
pathName: {
handler(newValue) {
console.log(newValue,"|||||||")
this.searchIndex = this.findNodeIndex(this.sideRoute, newValue).index;
}
}
......@@ -349,7 +350,7 @@ export default {
const _sideBarData = JSON.parse(JSON.stringify(value));
// {basic,behavior,business,combineMember,credit,evaluation,global,performance,personnel,qualification}
/**
/**
* @type {Map<string,string>}
*/
const _tempMap = detailSideBar;
......
......@@ -11,6 +11,11 @@
v-html="scope.row.counterpartCompanyName">{{scope.row.counterpartCompanyName}}</span>
<span v-else>-</span>
</template>
<!-- 合作总金额-->
<template slot="amount" slot-scope="scope">
<span v-if="scope.row.amount">{{scope.row.amount.toFixed(2)}}</span>
<span v-else>-</span>
</template>
<!-- 合作项目数量 -->
<template slot="count" slot-scope="scope">
<span v-if="scope.row.count" style="color: #0081FF;cursor: pointer;" @click="viewProject(scope.row)">{{scope.row.count}}</span>
......@@ -18,7 +23,7 @@
</template>
</tables>
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen"
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen" :modal-append-to-body="false"
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"
......@@ -32,7 +37,18 @@
@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>
<template v-if="scope.row.dataSource ==='中标业绩'">
<router-link :to="`/biddetail/${scope.row.sourceId}`" tag="a" class="a-link" v-if="scope.row.sourceId" v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template>
<span @click="linkTo1(scope.row.sourceId)" v-if="scope.row.projectName" style="color: #0081FF;cursor: pointer;" v-html="scope.row.projectName">{{scope.row.projectName}}</span>
<span v-else>-</span>
</template>
</template>
<!-- 合作总金额-->
<template slot="amount" slot-scope="scope">
<span v-if="scope.row.amount">{{scope.row.amount.toFixed(2)}}</span>
<span v-else>-</span>
</template>
<!-- 省市区 -->
......@@ -53,6 +69,7 @@ import DialogHeadFormNew from "../component/HeadFormNew";
import DialogTables from "../component/Tables";
import { replaceDomTags } from "@/utils";
import { encodeStr } from "@/assets/js/common";
import {skyProjectDetail} from '@/api/detail/party-a/dealings'
export default {
name: "cooperativeConstructionUnit",
mixins: [mixin],
......@@ -76,7 +93,7 @@ export default {
{ label: '施工单位名称', prop: 'counterpartCompanyName', width: '295', slot: true, showOverflowTooltip: true },
{ label: '合作项目数量', prop: 'count', minWidth: '190', align: "right", slot: true, sortable: "custom" },
{ label: '最近一次合作时间', prop: 'time', minWidth: '214', sortable: "custom" },
{ label: '合作总金额(万元)', prop: 'amount', minWidth: '226', align: "right", sortable: "custom" },
{ label: '合作总金额(万元)', prop: 'amount', slot: true, minWidth: '226', align: "right", sortable: "custom" },
],
formData: [
{ type: 4, fieldName: 'businessTypes', value: '', placeholder: '咨询机构业务', options: [], uid: this.getUid() },
......@@ -105,9 +122,9 @@ export default {
{ label: '合作项目/工程名称', prop: 'projectName', width: '260', slot: true, showOverflowTooltip: true },
{ label: '合作时间', prop: 'time', width: '140', sortable: "custom" },
{ label: '咨询机构承担角色', prop: 'agencyBusinessType', width: '140' },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '90' },
{ label: '工程类型', prop: 'projectType', minWidth: '90' },
{ label: '项目/工程金额(万元)', prop: 'amount', width: '190', sortable: "custom", align: "right", },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '105' },
{ label: '工程类型', prop: 'projectType', minWidth: '100' },
{ label: '项目/工程金额(万元)', prop: 'amount', slot: true, width: '190', sortable: "custom", align: "right", },
{ label: '项目地区', prop: 'area', width: '245', slot: true },
{ label: '数据来源', prop: 'dataSource', width: '90' },
],
......@@ -181,7 +198,7 @@ export default {
},
// 创建列表查询条件
createQueryCondition(form) {
/**
/**
* @type {Array<{
* fieldName : string;
* value : any
......@@ -347,6 +364,15 @@ export default {
this.dialogFormData = data.dialogFormData;
this.dialogtableDataTotal = data.dialogtableDataTotal;
this.dialogTableData = data.dialogTableData;
},
linkTo1(id){
let url = ""
skyProjectDetail({sourceId:id}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
}
},
}
......
......@@ -7,7 +7,7 @@
:queryParams="queryParams" @handle-current-change="handleCurrentChange" @sort-change="sortChange">
<!-- 业主名称 -->
<template slot="combineName" slot-scope="scope">
<span v-if="scope.row.combineName" style="color: #0081FF;cursor: pointer;" @click="viewEnterprise(scope.row)"
<span v-if="scope.row.combineName" @click="viewEnterprise(scope.row)"
v-html="scope.row.combineName">{{scope.row.combineName}}</span>
<span v-else>-</span>
</template>
......@@ -18,7 +18,7 @@
</template>
</tables>
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen"
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen" :modal-append-to-body="false"
class="cooperation-record-dialog-container" custom-class="cooperation-record-dialog" :destroy-on-close="true" :close-on-click-modal="false">
<!-- tab切换栏 -->
......@@ -64,8 +64,18 @@
@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>
<template v-if="scope.row.dataSource ==='中标业绩'">
<router-link :to="`/biddetail/${scope.row.sourceId}`" tag="a" class="a-link" v-if="scope.row.sourceId" v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template>
<span @click="linkTo1(scope.row.sourceId)" v-if="scope.row.projectName" style="color: #0081FF;cursor: pointer;" v-html="scope.row.projectName">{{scope.row.projectName}}</span>
<span v-else>-</span>
</template>
</template>
<!-- 合作总金额-->
<template slot="amount" slot-scope="scope">
<span v-if="scope.row.amount">{{scope.row.amount.toFixed(2)}}</span>
<span v-else>-</span>
</template>
<!-- 合作成员 -->
......@@ -95,6 +105,7 @@ import DialogTables from "../component/Tables";
import DskTabToggle from "@/components/DskTabToggle";
import { replaceDomTags } from "@/utils";
import { encodeStr } from "@/assets/js/common";
import {skyProjectDetail} from '@/api/detail/party-a/dealings'
export default {
name: "cooperativeGroup",
mixins: [mixin],
......@@ -140,7 +151,7 @@ export default {
// { type: 4, fieldName: 'projectTypes', value: '', placeholder: '合作工程类型', options: [], uid: this.getUid() },
// { type: 5, fieldName: 'time', value: '', placeholder: '合作频率', startTime: 'beginTime', endTime: 'endTime', uid: this.getUid() },
// { type: 6, fieldName: 'money', value: '', placeholder: '合作金额', uid: this.getUid() },
{ type: 3, fieldName: 'keyword', value: '', placeholder: '请输入', uid: this.getUid() },
{ type: 3, fieldName: 'keyword', value: '', placeholder: '请输入集团名称', uid: this.getUid() },
],
//列表
tableLoading: false,
......@@ -170,9 +181,9 @@ export default {
{ label: '合作时间', prop: 'time', width: '140', sortable: "custom" },
{ label: '集团成员身份', prop: 'role', width: '140' },
{ label: '咨询机构承担角色', prop: 'agencyBusinessType', width: '140' },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '90' },
{ label: '工程类型', prop: 'projectType', minWidth: '90' },
{ label: '项目/工程金额(万元)', prop: 'amount', width: '190', sortable: "custom", align: "right", },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '105' },
{ label: '工程类型', prop: 'projectType', minWidth: '100' },
{ label: '项目/工程金额(万元)', slot: true, prop: 'amount', width: '190', sortable: "custom", align: "right", },
{ label: '项目地区', prop: 'area', width: '245', slot: true },
],
dialogFormData: [
......@@ -249,7 +260,7 @@ export default {
},
// 创建列表查询条件
createQueryCondition(form) {
/**
/**
* @type {Array<{
* fieldName : string;
* value : any
......@@ -440,6 +451,15 @@ export default {
async tabToggle() {
await this.resetDialogQuery();
await this.dialogHandleQurey();
},
linkTo1(id){
let url = ""
skyProjectDetail({sourceId:id}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
}
},
}
......
......@@ -11,6 +11,11 @@
v-html="scope.row.companyName">{{scope.row.companyName}}</span>
<span v-else>-</span>
</template>
<!-- 合作总金额-->
<template slot="amount" slot-scope="scope">
<span v-if="scope.row.amount">{{scope.row.amount.toFixed(2)}}</span>
<span v-else>-</span>
</template>
<!-- 合作项目数量 -->
<template slot="count" slot-scope="scope">
<span v-if="scope.row.count" style="color: #0081FF;cursor: pointer;" @click="viewProject(scope.row)">{{scope.row.count}}</span>
......@@ -18,7 +23,7 @@
</template>
</tables>
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen"
<el-dialog title="合作项目/工程明细" :visible.sync="cooperationRecordDialog" width="1100px" @close="dialogClose" @open="dialogOPen" :modal-append-to-body="false"
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"
......@@ -32,7 +37,18 @@
@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>
<template v-if="scope.row.dataSource ==='中标业绩'">
<router-link :to="`/biddetail/${scope.row.sourceId}`" tag="a" class="a-link" v-if="scope.row.sourceId" v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template>
<span @click="linkTo1(scope.row.sourceId)" v-if="scope.row.projectName" style="color: #0081FF;cursor: pointer;" v-html="scope.row.projectName">{{scope.row.projectName}}</span>
<span v-else>-</span>
</template>
</template>
<!-- 合作总金额-->
<template slot="amount" slot-scope="scope">
<span v-if="scope.row.amount">{{parseFloat(Number(scope.row.amount).toFixed(2))}}</span>
<span v-else>-</span>
</template>
<!-- 省市区 -->
......@@ -53,6 +69,7 @@ import DialogHeadFormNew from "../component/HeadFormNew";
import DialogTables from "../component/Tables";
import { replaceDomTags } from "@/utils";
import { encodeStr } from "@/assets/js/common";
import {skyProjectDetail} from '@/api/detail/party-a/dealings'
export default {
name: "cooperativeOwnerUnits",
mixins: [mixin],
......@@ -67,7 +84,7 @@ export default {
queryParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 10,
pageSize: 50,
companyType: 1,
sort: ""
},
......@@ -76,7 +93,7 @@ export default {
{ label: '业主名称', prop: 'companyName', width: '295', slot: true, showOverflowTooltip: true },
{ label: '合作项目数量', prop: 'count', minWidth: '190', align: "right", slot: true, sortable: "custom" },
{ label: '最近一次合作时间', prop: 'time', minWidth: '214', sortable: "custom" },
{ label: '合作总金额(万元)', prop: 'amount', minWidth: '226', align: "right", sortable: "custom" },
{ label: '合作总金额(万元)', prop: 'amount', slot: true, minWidth: '226', align: "right", sortable: "custom" },
],
formData: [
{ type: 4, fieldName: 'businessTypes', value: '', placeholder: '咨询机构业务', options: [], uid: this.getUid() },
......@@ -105,9 +122,9 @@ export default {
{ label: '合作项目/工程名称', prop: 'projectName', width: '260', slot: true, showOverflowTooltip: true },
{ label: '合作时间', prop: 'time', width: '140', sortable: "custom" },
{ label: '咨询机构承担角色', prop: 'agencyBusinessType', width: '140' },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '90' },
{ label: '工程类型', prop: 'projectType', minWidth: '90' },
{ label: '项目/工程金额(万元)', prop: 'amount', width: '190', sortable: "custom", align: "right", },
{ label: '项目类型', prop: 'counterpartRole', minWidth: '105' },
{ label: '工程类型', prop: 'projectType', minWidth: '100' },
{ label: '项目/工程金额(万元)', prop: 'amount', slot: true, width: '190', sortable: "custom", align: "right", },
{ label: '项目地区', prop: 'area', width: '245', slot: true },
{ label: '数据来源', prop: 'dataSource', width: '90' },
],
......@@ -181,7 +198,7 @@ export default {
},
// 创建列表查询条件
createQueryCondition(form) {
/**
/**
* @type {Array<{
* fieldName : string;
* value : any
......@@ -348,6 +365,15 @@ export default {
this.dialogFormData = data.dialogFormData;
this.dialogtableDataTotal = data.dialogtableDataTotal;
this.dialogTableData = data.dialogTableData;
},
linkTo1(id){
let url = ""
skyProjectDetail({sourceId:id}).then(res=>{
if(res.data&&res.data.sourceUrl){
url = res.data.sourceUrl
window.open(url, "_blank")
}
})
}
},
}
......
<template>
<div class="app-container part-container details-of-party">
<div style="height: 100%;" v-if="!isCompany">
<skeleton style="padding-top: 16px"></skeleton>
</div>
<Header :company-id="companyId" :companyInfo="companyInfo" :cooDetail="cooDetail" v-if="companyId" @close-detail="closeDetail" />
<div class="part-main">
<div class="part-left">
<side-bar :statisticObj="statisticObj" ref="sidebar" @currentPath="showPartPage" :pathName="currentPath.pathName"
:partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
:partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
</div>
<div class="part-right">
<div id="partBox" v-if="companyId" class="part-common-container-style">
......@@ -37,7 +40,7 @@
<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>
:company-id="companyId"></cooperative-construction-unit>
<!-- 3、常合作集团 -->
<cooperative-group v-if="currentPath.pathName=='cooperativeGroup'" :company-id="companyId"></cooperative-group>
<!-- 投诚分析 -->
......@@ -60,12 +63,12 @@
<!-- 内部合作 -->
<!-- 1、咨询机构合作 -->
<consulting-agency-cooperation v-if="currentPath.pathName=='consultingAgencyCooperation'"
:company-id="companyId"></consulting-agency-cooperation>
:company-id="companyId"></consulting-agency-cooperation>
<!-- 2、准入情况 -->
<access-condition v-if="currentPath.pathName=='accessCondition'" :company-id="companyId" :companyInfo="companyInfo"></access-condition>
<!-- 3、供应商合作记录 -->
<cooperation-record v-if="currentPath.pathName=='cooperationRecord'" :company-id="companyId"
:company-name="companyName"></cooperation-record>
:company-name="companyName"></cooperation-record>
<!-- 4、施工业绩 -->
<construction-performance v-if="currentPath.pathName=='constructionPerformance'" :company-id="companyId"></construction-performance>
<!-- 5、在施工程情况 -->
......@@ -78,10 +81,10 @@
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" :customerInfo="customerInfo" />
<!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" :cooDetail="cooDetail"
:customerInfo="customerInfo" @detail="cooperateDetail" />
:customerInfo="customerInfo" @detail="cooperateDetail" />
<!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo"
:customerInfo="customerInfo" />
:customerInfo="customerInfo" />
<!-- 跟进记录 -->
<Gjjl v-if="currentPath.pathName=='gjjl'" :isDisabled='false' types="gjdt" :customer-ids="customerId" />
</template>
......@@ -148,6 +151,7 @@ import ConstructionSituation from "@/views/detail/party-a/internalCooperation/co
import {
urbanInvestmentPage,
} from '@/api/detail/party-a/urbanLnvestment';
import skeleton from './component/skeleton'
export default {
name: 'PartyA',
components: {
......@@ -198,11 +202,13 @@ export default {
CooperativeConstructionUnit,
CooperativeGroup,
ConstructionPerformance,
ConstructionSituation
ConstructionSituation,
skeleton
},
data() {
return {
isSkeleton: true,
isSkeleton1: true,
companyInfo: {},
customerInfo: {},
// 企业名称
......@@ -309,13 +315,15 @@ export default {
this.companyId = data;
await this.$nextTick();
this.listenSider();
await this.getStatistic(this.companyName);
await this.handleQuery();
await this.getStatistic(this.companyName);
await this.association(this.$route.query.customerId);
this.$refs.sidebar.getFinancial(data);
}
},
async getStatistic(companyName) {
let params = {
companyId: this.companyId
};
......
......@@ -17,19 +17,20 @@
</template>
<!-- 业主单位 -->
<template slot="ownerName" slot-scope="scope">
<span v-if="scope.row.ownerName" style="color: #0081FF;cursor: pointer;" @click="viewEnterprise(scope.row)">{{scope.row.ownerName}}</span>
<!--<span v-if="scope.row.ownerName" style="color: #0081FF;cursor: pointer;" @click="viewEnterprise(scope.row)">{{scope.row.ownerName}}</span>-->
<!--<span v-if="scope.row.ownerName" @click="viewEnterprise(scope.row)">{{scope.row.ownerName}}</span>-->
<router-link :to="`/enterprise/${encodeStr(scope.row.ownerCid)}}`" tag="a" class="a-link" v-if="scope.row.ownerCid" v-html="scope.row.ownerName"></router-link>
<span v-else>-</span>
</template>
<!-- 项目承接单位 -->
<template slot="contractOrgName" slot-scope="scope">
<span v-if="scope.row.contractOrgName" style="color: #0081FF;cursor: pointer;"
@click="viewEnterprise(scope.row)">{{scope.row.contractOrgName}}</span>
<!--<span v-if="scope.row.contractOrgName" @click="viewEnterprise(scope.row)">{{scope.row.contractOrgName}}</span>-->
<router-link :to="`/enterprise/${encodeStr(scope.row.contractOrgCid)}}`" tag="a" class="a-link" v-if="scope.row.contractOrgCid" v-html="scope.row.contractOrgName"></router-link>
<span v-else>-</span>
</template>
<!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="scope">
<span v-if="scope.row.advisoryBodyName" style="color: #0081FF;cursor: pointer;"
@click="viewEnterprise(scope.row)">{{scope.row.advisoryBodyName}}</span>
<router-link :to="`/enterprise/${encodeStr(scope.row.advisoryBodyCid)}}`" tag="a" class="a-link" v-if="scope.row.advisoryBodyCid" v-html="scope.row.advisoryBodyName"></router-link>
<span v-else>-</span>
</template>
</tables>
......@@ -41,6 +42,7 @@ import mixin from '@/views/detail/party-a/mixins/mixin';
import { getConsultingAgencyCooperationListApi, getConsultingAgencyCooperationTypesApi, exportRecordOfCooperationExcelApi } from "@/api/internalCooperation";
import { getAllAreaApi } from "@/api/common";
import { getTreeSelectAreaList } from "@/utils";
import { encodeStr } from "@/assets/js/common";
export default {
name: "consultingAgencyCooperation",
mixins: [mixin],
......@@ -50,6 +52,7 @@ export default {
props: ['companyId'],
data() {
return {
encodeStr,
queryParams: {
advisoryBodyCid: this.companyId,
pageNum: 1,
......
......@@ -158,7 +158,7 @@ export default {
menuDetails:{},
menuOptions: {
nodeName: "menuName",
nodeValue: "menuId",
nodeValue: "menuName",
children : "childrenList"
},
detailsId:'',
......
<template>
<el-dialog title="填写实际成本" :visible="comDialogStatus" class="add-actual-cost-container">
<el-dialog title="填写实际成本" :visible="comDialogStatus" class="add-actual-cost-container" @close="dialogClose">
<div class="dialog-content-inner">
<!-- 成本年份 -->
<div class="cost-year-container">
<span>成本年份</span>
<el-date-picker v-model="time" type="month" placeholder="请选择所需要添加的成本月份" format="yyyy年MM月" value-format="yyyy-MM" class="project-record-date"
@change="timeChange" :picker-options="pickerOptions"></el-date-picker>
</div>
</div>
<!-- 底部按钮 -->
<div class="dialog-content-footer">
<div class="cancel-or-ok">
<el-button size="medium" @click="cancel" class="cancel-select-year">取消</el-button>
<el-button type="primary" size="medium" @click="ok" class="ok-select-year">确定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import dayjs from "dayjs";
export default {
name: "AddActualCost",
props: {
dialogStatus: {
type: Boolean,
default: false
},
projectCreateTime: {
type: String,
default: ""
}
},
model: {
......@@ -23,7 +44,11 @@ export default {
},
data() {
return {
comDialogStatus: this.dialogStatus
comDialogStatus: this.dialogStatus,
time: "",
pickerOptions: {
disabledDate: this.disabledDateHandler
}
};
},
//可访问data属性
......@@ -36,7 +61,44 @@ export default {
},
//方法集
methods: {
// 时间选择变化
timeChange(time) {
// console.log(time);
},
cancel() {
this.comDialogStatus = false;
},
ok() {
if (!this.time) {
return this.$message.error("请选择成本年份");
}
// 发布事件
this.$emit("timeSelect", dayjs(this.time).format("YYYYMM"));
this.comDialogStatus = false;
},
reset() {
this.time = "";
},
dialogClose() {
this.$emit("dialogStatusChange", false);
this.reset();
},
disabledDateHandler(optionTime) {
// 选项年月
const _optionTime = dayjs(optionTime).format("YYYYMM");
// 当前项目年月
const _thresholdTime = dayjs(this.projectCreateTime).format("YYYYMM");
// 当前项目年
const _thresholdYear = _thresholdTime.slice(0, 4);
// 当前项目月份 补0
const _thresholdMonth = _thresholdTime.slice(4);
// 是否小于当前项目年月 或 大于 当前项目年月 往后推五年
const lastYearMonth = parseInt(`${parseInt(_thresholdYear) + 5}${_thresholdMonth}`);;
if (parseInt(_optionTime) < parseInt(_thresholdTime) || parseInt(_optionTime) > lastYearMonth) {
return true;
}
return false;
}
},
}
</script>
......@@ -58,6 +120,7 @@ export default {
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #eeeeee;
box-sizing: border-box;
.el-dialog__title {
font-size: 16px;
......@@ -78,9 +141,84 @@ export default {
.el-dialog__body {
padding: 0px;
min-height: 120px;
padding: 24px 20px;
box-sizing: border-box;
.dialog-content-inner {
min-height: 120px;
padding: 24px 20px;
}
.cost-year-container {
display: flex;
align-items: center;
& > span {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
margin-right: 16px;
white-space: nowrap;
}
.project-record-date {
width: 100%;
.el-input__inner {
height: 30px;
line-height: 30px;
padding: 0px 12px;
border-radius: 2px;
border-color: #dcdfe6;
font-size: 14px;
color: #232323;
font-weight: 350;
}
.el-input__suffix {
right: 12px;
.el-input__icon {
line-height: 30px;
width: auto;
}
}
.el-input__prefix {
display: none;
}
}
}
.dialog-content-footer {
height: 64px;
padding: 0px 20px;
display: flex;
justify-content: flex-end;
align-items: center;
border-top: 1px solid #eeeeee;
box-sizing: border-box;
.cancel-or-ok {
display: flex;
height: 100%;
align-items: center;
.el-button {
padding: 0px 16px;
display: flex;
align-items: center;
justify-content: center;
height: 32px;
font-size: 14px;
&.cancel-select-year {
color: rgba(35, 35, 35, 0.8);
border: 1px solid #dcdfe6;
background: #fff;
}
&.ok-select-year {
background: #0081ff;
border-color: #0081ff;
}
}
}
}
}
}
}
......
......@@ -17,8 +17,6 @@
<div class="right-table-list-container">
<div class="project-table-list-header">
<div class="project-table-list-haeder-left">
<!-- <el-date-picker v-model="recordDate" type="month" placeholder="选择月" format="yyyy年MM月" value-format="yyyy-MM"
class="project-record-date" @change="timeChange"></el-date-picker> -->
<el-select v-model="recordDate" placeholder="请选择年月" class="project-month-select-options" clearable @change="monthChange">
<el-option v-for="item in monthList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
......@@ -28,7 +26,8 @@
<!-- 实体工程材料单位换算 -->
<el-button type="primary" size="medium" class="unit-conversion-btn" v-if="currentParentName.indexOf('实体工程材料') != -1">单位换算</el-button>
<!-- 填写实际成本 -->
<el-button type="primary" size="medium" class="actual-cost-btn" v-else @click="fillActualCost">填写实际成本</el-button>
<el-button type="primary" size="medium" class="actual-cost-btn" v-else
@click="fillActualCost">{{addActualCostEditStatus ? '保存成本' : '填写实际成本'}}</el-button>
<!-- 表头设置组件 -->
<dsk-table-header-setting :settingList="formColum" @settingChange="settingChange"></dsk-table-header-setting>
</div>
......@@ -50,7 +49,7 @@
</div>
<!-- 填写实际成本触发 -->
<add-actual-cost v-model="showAddActualCost"></add-actual-cost>
<add-actual-cost v-model="showAddActualCost" :project-create-time="projectDetailInfo.createTime" @timeSelect="timeSelect"></add-actual-cost>
</div>
</template>
......@@ -178,7 +177,11 @@ export default {
tableDataList: [],
statisticsParentName: ["劳务分包工程", "专业分包工程"],
// 填写实际成本弹窗
showAddActualCost: false
showAddActualCost: false,
// 填写实际成本 编辑状态
addActualCostEditStatus: false,
// 当前选择的成本年份
selectActualCostTime: ""
};
},
//可访问data属性
......@@ -345,6 +348,7 @@ export default {
}
},
monthChange(month) {
this.resetEditStatus();
// 当前月
const _now = dayjs(new Date().valueOf()).format("YYYYMM");
// 请求列表参数
......@@ -364,6 +368,7 @@ export default {
this.getFeedSummaryList(params);
},
menuSelect(currentId, currentTemp) {
this.resetEditStatus();
this.currentNodeName = currentId;
const parentName = currentTemp.parent ? this.getCurrentType(currentTemp.parent) : currentId;
if (parentName) this.currentParentName = parentName;
......@@ -379,10 +384,6 @@ export default {
return this.getCurrentType(parent.parent);
}
},
// 时间选择变化
timeChange(time) {
console.log(time);
},
// 表头设置变化
async settingChange(use) {
try {
......@@ -394,6 +395,28 @@ export default {
// 填写或修改新的 成本月份
fillActualCost() {
this.showAddActualCost = true;
},
resetEditStatus() {
this.addActualCostEditStatus = false;
this.selectActualCostTime = "";
},
async timeSelect(selectTime) {
// 编辑状态
this.addActualCostEditStatus = true;
this.selectActualCostTime = selectTime;
// 判断是否包含 选择的年月 包含则修改 未包含则新增
const findReslut = this.originMonthList.includes(selectTime);
// 包含所选月
if (findReslut) {
this.recordDate = selectTime;
const params = this.createRequestConditions();
params["recordDate"] = selectTime;
// 获取选中月数据
await this.getFeedSummaryList(params);
} else {
// 不包含当前所选月 新增数据
}
}
},
}
......@@ -430,29 +453,6 @@ export default {
.project-table-list-haeder-left {
display: flex;
align-items: center;
.project-record-date {
width: 140px;
.el-input__inner {
height: 32px;
line-height: 32px;
padding: 0px 12px;
border-radius: 2px;
border-color: #dcdfe6;
font-size: 14px;
color: #232323;
font-weight: 350;
}
.el-input__suffix {
right: 12px;
.el-input__icon {
line-height: 32px;
width: auto;
}
}
.el-input__prefix {
display: none;
}
}
.project-month-select-options {
width: 140px;
.el-input__inner {
......
......@@ -193,8 +193,8 @@ export default {
const detail = await getProjectDetailApi(projectId);
if (detail.code == 200 && detail.data) {
if (detail.data.id) detail.data["projectId"] = detail.data.id;
// detail.data["projectId"] = "1754425038355890177";
// detail.data["cbStage"] = 0;
detail.data["projectId"] = "1754425038355890177";
detail.data["cbStage"] = 0;
this.detailInfo = detail.data;
}
} catch (error) {
......
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