Commit 610010ea authored by huangjie's avatar huangjie

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys...

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys into V20231129-中建一局二公司
parents bbe323ec 4ebe0436
package com.dsk.cscec.domain; package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -48,6 +49,7 @@ public class CbSummaryActual implements Serializable { ...@@ -48,6 +49,7 @@ public class CbSummaryActual implements Serializable {
/** /**
* 删除状态(0:否、2:是) * 删除状态(0:否、2:是)
*/ */
@TableLogic
private Integer delFlag; private Integer delFlag;
} }
...@@ -49,15 +49,17 @@ public class CbSummaryCostAccountImportListener extends AnalysisEventListener<Cb ...@@ -49,15 +49,17 @@ public class CbSummaryCostAccountImportListener extends AnalysisEventListener<Cb
int count = StringUtil.count(importVo.getNumber(), "-"); int count = StringUtil.count(importVo.getNumber(), "-");
importVo.setLevel(count + 1); importVo.setLevel(count + 1);
} else { } else {
failureNum++; // failureNum++;
failureMsg.append("<br/>").append("第" + sort + "条数据序号为空"); // failureMsg.append("<br/>").append("第" + sort + "条数据序号为空");
return; // return;
throw new ServiceException("表格中存在'序号'列为空数据!");
} }
//成本科目不能为空 //成本科目不能为空
if (StringUtil.isBlank(importVo.getCbName())) { if (StringUtil.isBlank(importVo.getCbName())) {
failureNum++; // failureNum++;
failureMsg.append("<br/>").append("第" + sort + "条数据成本科目为空"); // failureMsg.append("<br/>").append("第" + sort + "条数据成本科目为空");
return; // return;
throw new ServiceException("表格中存在'成本科目'列为空数据!");
} }
//父级数据处理 //父级数据处理
......
...@@ -45,9 +45,10 @@ public class CbSummaryProjectImportListener extends AnalysisEventListener<CbSumm ...@@ -45,9 +45,10 @@ public class CbSummaryProjectImportListener extends AnalysisEventListener<CbSumm
public void invoke(CbSummaryProjectImportVo importVo, AnalysisContext context) { public void invoke(CbSummaryProjectImportVo importVo, AnalysisContext context) {
//名称不能为空 //名称不能为空
if (StringUtil.isBlank(importVo.getCbName())) { if (StringUtil.isBlank(importVo.getCbName())) {
failureNum++; // failureNum++;
failureMsg.append("<br/>").append("第" + sort + "条数据名称为空"); // failureMsg.append("<br/>").append("第" + sort + "条数据名称为空");
return; // return;
throw new ServiceException("表格中存在'名称'列为空数据!");
} }
//添加父级数据 //添加父级数据
if (sort == 0) { if (sort == 0) {
...@@ -70,9 +71,10 @@ public class CbSummaryProjectImportListener extends AnalysisEventListener<CbSumm ...@@ -70,9 +71,10 @@ public class CbSummaryProjectImportListener extends AnalysisEventListener<CbSumm
.filter(vo -> StringUtil.isNotBlank(vo.getNumber())).limit(1).map(CbSummaryProjectImportVo::getLevel).toArray(); .filter(vo -> StringUtil.isNotBlank(vo.getNumber())).limit(1).map(CbSummaryProjectImportVo::getLevel).toArray();
//数据序号错误 //数据序号错误
if (ObjectUtil.isEmpty(objects)) { if (ObjectUtil.isEmpty(objects)) {
failureNum++; // failureNum++;
failureMsg.append("<br/>").append("第" + sort + "条数据序号错误"); // failureMsg.append("<br/>").append("第" + sort + "条数据序号错误");
return; // return;
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
} }
Integer lastLevel = (Integer) objects[0]; Integer lastLevel = (Integer) objects[0];
......
...@@ -71,16 +71,16 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -71,16 +71,16 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
@Override @Override
public void importCbSummary(Long projectId) { public void importCbSummary(Long projectId) {
//获取待解析和待删除文件信息 //获取待解析和解析失败文件信息
List<CbProjectFile> cbProjectFiles = cbProjectFileMapper.selectAnalysisList(projectId, CbProjectConstants.CB_TYPE_SUMMARY, null); List<CbProjectFile> cbProjectFiles = cbProjectFileMapper.selectAnalysisList(projectId, CbProjectConstants.CB_TYPE_SUMMARY, null);
//解析数据 //解析数据
cbProjectFiles.forEach(cbProjectFile -> { cbProjectFiles.forEach(cbProjectFile -> {
if (cbProjectFile.getDelFlag() == 1) { // if (cbProjectFile.getDelFlag() == 1) {
//根据fileId删除相关基础数据,并删除文件 // //根据fileId删除相关基础数据,并删除文件
baseMapper.delete(new LambdaQueryWrapper<CbSummary>().eq(CbSummary::getCbProjectFileId, cbProjectFile.getId())); // baseMapper.delete(new LambdaQueryWrapper<CbSummary>().eq(CbSummary::getCbProjectFileId, cbProjectFile.getId()));
cbProjectFileMapper.removeById(cbProjectFile.getId()); // cbProjectFileMapper.removeById(cbProjectFile.getId());
} else { // } else {
try { try {
if (cbProjectFile.getFileName().contains("项目")) { if (cbProjectFile.getFileName().contains("项目")) {
saveCbSummaryProject(projectId, cbProjectFile); saveCbSummaryProject(projectId, cbProjectFile);
...@@ -96,7 +96,7 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -96,7 +96,7 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
cbProjectFile.setFailRemark("失败原因:" + e.getMessage()); cbProjectFile.setFailRemark("失败原因:" + e.getMessage());
cbProjectFileMapper.updateById(cbProjectFile); cbProjectFileMapper.updateById(cbProjectFile);
} }
} // }
}); });
...@@ -152,6 +152,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -152,6 +152,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel) CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort)).get(); .max(Comparator.comparing(CbSummary::getSort)).get();
if(ObjectUtil.isNull(parent)){
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
cbSummary.setParentId(parent.getId()); cbSummary.setParentId(parent.getId());
} }
...@@ -224,7 +227,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -224,7 +227,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
Integer parentLevel = cbSummary.getLevel() - 1; Integer parentLevel = cbSummary.getLevel() - 1;
CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel) CbSummary parent = cbSummaryList.stream().filter(summary -> summary.getSort() < cbSummary.getSort() && summary.getLevel() == parentLevel)
.max(Comparator.comparing(CbSummary::getSort)).get(); .max(Comparator.comparing(CbSummary::getSort)).get();
if(ObjectUtil.isNull(parent)){
throw new ServiceException("'序号'列数据错误,无法匹配层级!");
}
cbSummary.setParentId(parent.getId()); cbSummary.setParentId(parent.getId());
} }
...@@ -290,6 +295,11 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -290,6 +295,11 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
children.setTaxExclusiveExpenseTotal(total.get("taxExclusiveExpenseTotal")); children.setTaxExclusiveExpenseTotal(total.get("taxExclusiveExpenseTotal"));
children.setTaxInclusiveExpenseTotal(total.get("taxInclusiveExpenseTotal")); children.setTaxInclusiveExpenseTotal(total.get("taxInclusiveExpenseTotal"));
}); });
if (CollectionUtil.isNotEmpty(childrenList)) {
cbSummaryActualListVo.setHasChildren(1);
} else {
cbSummaryActualListVo.setHasChildren(0);
}
if (0 == cbSummaryActualListVo.getLevel() && 1 == bo.getCbType()) { if (0 == cbSummaryActualListVo.getLevel() && 1 == bo.getCbType()) {
//项目汇总一级列表 //项目汇总一级列表
......
...@@ -2,13 +2,24 @@ import request from '@/utils/request'; ...@@ -2,13 +2,24 @@ import request from '@/utils/request';
/** /**
* 获取咨询机构合作列表 * 获取咨询机构合作列表
* @param {*} data * @param {*} params
* @returns * @returns
*/ */
export const getConsultingAgencyCooperationListApi = (data) => request({ export const getConsultingAgencyCooperationListApi = (params) => request({
url: "/customerInfo/advisoryList", url: "/customerInfo/advisoryList",
method: "get", method: "get",
data params
});
/**
* 获取咨询机构合作工程类型
* @param {*} params
* @returns
*/
export const getConsultingAgencyCooperationTypesApi = (params) => request({
url: "/dProjectType/getAll",
method: "get",
params
}); });
/** /**
......
...@@ -37,7 +37,7 @@ export function editProjectInfo(data) { ...@@ -37,7 +37,7 @@ export function editProjectInfo(data) {
//删除项目 //删除项目
export function batchDeleteProject(ids) { export function batchDeleteProject(ids) {
return request({ return request({
url: '/cbProjectRecord/batchDeleteProject/'+ids, url: '/cbProjectRecord/batchDeleteProject/' + ids,
method: 'Delete', method: 'Delete',
}); });
} }
...@@ -103,7 +103,7 @@ export function getProjectList(data) { ...@@ -103,7 +103,7 @@ export function getProjectList(data) {
return request({ return request({
url: '/cbProjectRecord/getProjectList', url: '/cbProjectRecord/getProjectList',
method: 'get', method: 'get',
params:data params: data
}); });
} }
...@@ -112,7 +112,7 @@ export function getProjectHistoryInfo(data) { ...@@ -112,7 +112,7 @@ export function getProjectHistoryInfo(data) {
return request({ return request({
url: '/cbProjectRecord/getProjectHistoryInfo', url: '/cbProjectRecord/getProjectHistoryInfo',
method: 'get', method: 'get',
params:data params: data
}); });
} }
...@@ -121,19 +121,20 @@ export const getProfitLossMenuTreeApi = (params = {}) => request({ ...@@ -121,19 +121,20 @@ export const getProfitLossMenuTreeApi = (params = {}) => request({
url: "/cbSummary/cbNameList", url: "/cbSummary/cbNameList",
method: "get", method: "get",
params params
}) });
//盈亏分析对比 数据列表 //盈亏分析对比 数据列表
export function getAnalysislist(data) { export function getAnalysislist(data) {
return request({ return request({
url: '/cb/gain/loss/analysis/list', url: '/cb/gain/loss/analysis/list',
method: 'get', method: 'get',
params:data params: data
}); });
} }
// 措施项目 左侧菜单 // 措施项目 左侧菜单
export function getMeasureslist(projectId) { export function getMeasureslist(projectId) {
return request({ return request({
url: '/cb/cost/measures/type/'+projectId, url: '/cb/cost/measures/type/' + projectId,
method: 'get', method: 'get',
}); });
} }
...@@ -142,7 +143,7 @@ export function getCostMeasureslist(data) { ...@@ -142,7 +143,7 @@ export function getCostMeasureslist(data) {
return request({ return request({
url: '/cb/cost/measures/list', url: '/cb/cost/measures/list',
method: 'get', method: 'get',
params:data params: data
}); });
} }
...@@ -151,7 +152,7 @@ export function getSummarydata(data) { ...@@ -151,7 +152,7 @@ export function getSummarydata(data) {
return request({ return request({
url: '/cb/cost/measures/summary/data', url: '/cb/cost/measures/summary/data',
method: 'post', method: 'post',
data:data data: data
}); });
} }
//措施费推送工程量 //措施费推送工程量
...@@ -175,7 +176,7 @@ export function projectVolume(data) { ...@@ -175,7 +176,7 @@ export function projectVolume(data) {
// 工料汇总 // 工料汇总
/** /**
* 获取料汇总左侧菜单 * 获取料汇总左侧菜单
* @param {*} params * @param {*} params
* @returns * @returns
*/ */
...@@ -183,7 +184,23 @@ export const getFeedSummaryMenuTreeApi = (params = {}) => request({ ...@@ -183,7 +184,23 @@ export const getFeedSummaryMenuTreeApi = (params = {}) => request({
url: "/cb/quantity/summary/subjectTree", url: "/cb/quantity/summary/subjectTree",
method: "get", method: "get",
params params
}) });
/**
* 获取科目月份列表
* @param {{
* cbSubjectName : string;
* recordDate : string;
* projectId : number;
* cbStage : number
* }} params
* @returns
*/
export const getFeedSummaryListApi = (params = {}) => request({
url: "/cb/quantity/summary/subjectList",
method: "get",
params
});
// 其他项目 // 其他项目
...@@ -191,10 +208,10 @@ export const getFeedSummaryMenuTreeApi = (params = {}) => request({ ...@@ -191,10 +208,10 @@ export const getFeedSummaryMenuTreeApi = (params = {}) => request({
export const getProjectOtherMenuTreeApi = (relatedId) => request({ export const getProjectOtherMenuTreeApi = (relatedId) => request({
url: '/cb/projectOther/type/' + relatedId, url: '/cb/projectOther/type/' + relatedId,
method: "get", method: "get",
}) });
//其他费用-费用汇总 //其他费用-费用汇总
export const getProjectOtherStatistics = (relatedId) => request({ export const getProjectOtherStatistics = (relatedId) => request({
url: '/cb/projectOther/statistics/' + relatedId, url: '/cb/projectOther/statistics/' + relatedId,
method: "get", method: "get",
}) });
<template> <template>
<div class="dsk-table-header-setting" @click="showHeaderSetting"> <div class="dsk-table-header-setting">
<div class="event-target-container" @click="showHeaderSetting">
<svg-icons :icon-class="'table-header-setting-icon'" :class-name="'table-header-setting-icon'"></svg-icons> <svg-icons :icon-class="'table-header-setting-icon'" :class-name="'table-header-setting-icon'"></svg-icons>
<div class="table-header-setting-text">表头设置</div> <div class="table-header-setting-text">表头设置</div>
</div>
<transition appear name="head" mode="out-in"> <transition appear name="head" mode="out-in">
<setting-bar v-if="showHeaderSettingStatus" :settingList="settingList" @settingChange="settingChange" <setting-bar v-if="showHeaderSettingStatus" :settingList="settingList" @settingChange="settingChange"
@settingClose="showHeaderSettingStatus = false"></setting-bar> @settingClose="showHeaderSettingStatus = false"></setting-bar>
...@@ -39,6 +41,10 @@ export default { ...@@ -39,6 +41,10 @@ export default {
//方法集 //方法集
methods: { methods: {
showHeaderSetting() { showHeaderSetting() {
if (this.showHeaderSettingStatus) {
this.showHeaderSettingStatus = false;
return;
};
this.showHeaderSettingStatus = true; this.showHeaderSettingStatus = true;
}, },
settingChange(use) { settingChange(use) {
...@@ -62,6 +68,11 @@ export default { ...@@ -62,6 +68,11 @@ export default {
} }
} }
.event-target-container {
display: flex;
align-items: center;
}
.table-header-setting-icon { .table-header-setting-icon {
cursor: pointer; cursor: pointer;
} }
......
...@@ -139,7 +139,7 @@ export default { ...@@ -139,7 +139,7 @@ export default {
}, },
toCooperateDetail(row) { toCooperateDetail(row) {
if (!row.advisoryBodyCid) return this.$message.warning("缺少咨询机构id"); if (!row.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(`${row.advisoryBodyName}合作明细`, `/enterprise/${encodeStr(row.advisoryBodyCid)}?path=cooperationRecord&companyName=${replaceDomTags(row.advisoryBodyName)}`); this.$tab.openPage(`${row.advisoryBodyName}合作明细`, `/enterprise/${encodeStr(row.advisoryBodyCid)}?path=consultingAgencyCooperation&companyName=${replaceDomTags(row.advisoryBodyName)}`);
}, },
// 跳转到企业详情 // 跳转到企业详情
viewEnterprise(row) { viewEnterprise(row) {
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="head-form-new" :class="headerFixed ? 'headerFixed':''"> <div class="head-form-new" :class="headerFixed ? 'headerFixed':''">
<div class="common-title" v-if="title && title !='集团招标'">{{ title }}</div> <div class="common-title" v-if="title && title !='集团招标'">{{ title }}</div>
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params" v-if="comFormData && comFormData.length">
<div class="headForm-from"> <div class="headForm-from">
<div class="from-item" :key="i" v-for="(form, i) in comFormData"> <div class="from-item" :key="i" v-for="(form, i) in comFormData">
<!-- 单选 --> <!-- 单选 -->
......
...@@ -550,6 +550,14 @@ export default { ...@@ -550,6 +550,14 @@ export default {
margin-top: -5px; margin-top: -5px;
} }
} }
/* 禁用时 不需要选中文字颜色 */
::v-deep .el-menu-item {
&.is-disabled {
&:focus {
color: unset !important;
}
}
}
.is-disabled:hover { .is-disabled:hover {
color: rgba(35, 35, 35, 0.8) !important; color: rgba(35, 35, 35, 0.8) !important;
&:before { &:before {
......
...@@ -224,7 +224,7 @@ export default { ...@@ -224,7 +224,7 @@ export default {
} }
.el-table { .el-table {
.cell { .cell {
font-size: 14px; font-size: 12px;
} }
.el-table__header-wrapper { .el-table__header-wrapper {
min-height: 40px; min-height: 40px;
......
...@@ -64,7 +64,12 @@ ...@@ -64,7 +64,12 @@
<!-- 2、准入情况 --> <!-- 2、准入情况 -->
<access-condition v-if="currentPath.pathName=='accessCondition'" :company-id="companyId" :companyInfo="companyInfo"></access-condition> <access-condition v-if="currentPath.pathName=='accessCondition'" :company-id="companyId" :companyInfo="companyInfo"></access-condition>
<!-- 3、供应商合作记录 --> <!-- 3、供应商合作记录 -->
<cooperation-record v-if="currentPath.pathName=='cooperationRecord'" :company-id="companyId" :company-name="companyName"></cooperation-record> <cooperation-record v-if="currentPath.pathName=='cooperationRecord'" :company-id="companyId"
:company-name="companyName"></cooperation-record>
<!-- 4、施工业绩 -->
<construction-performance v-if="currentPath.pathName=='constructionPerformance'" :company-id="companyId"></construction-performance>
<!-- 5、在施工程情况 -->
<construction-situation v-if="currentPath.pathName=='constructionSituation'" :company-id="companyId"></construction-situation>
</template> </template>
<template v-if="customerId && isCustomer"> <template v-if="customerId && isCustomer">
<!-- 商务信息 --> <!-- 商务信息 -->
...@@ -138,6 +143,8 @@ import Gjjl from "../../project/projectList/component/gjjl"; //跟进记录 ...@@ -138,6 +143,8 @@ import Gjjl from "../../project/projectList/component/gjjl"; //跟进记录
import ConsultingAgencyCooperation from "@/views/detail/party-a/internalCooperation/consultingAgencyCooperation"; //内部合作 咨询机构合作 import ConsultingAgencyCooperation from "@/views/detail/party-a/internalCooperation/consultingAgencyCooperation"; //内部合作 咨询机构合作
import AccessCondition from "@/views/detail/party-a/internalCooperation/accessCondition"; //内部合作 准入情况 import AccessCondition from "@/views/detail/party-a/internalCooperation/accessCondition"; //内部合作 准入情况
import CooperationRecord from "@/views/detail/party-a/internalCooperation/cooperationRecord"; //内部合作 准入情况 import CooperationRecord from "@/views/detail/party-a/internalCooperation/cooperationRecord"; //内部合作 准入情况
import ConstructionPerformance from "@/views/detail/party-a/internalCooperation/constructionPerformance"; //内部合作 施工业绩
import ConstructionSituation from "@/views/detail/party-a/internalCooperation/constructionSituation"; //内部合作 在施工程情况
import { import {
urbanInvestmentPage, urbanInvestmentPage,
} from '@/api/detail/party-a/urbanLnvestment'; } from '@/api/detail/party-a/urbanLnvestment';
...@@ -189,7 +196,9 @@ export default { ...@@ -189,7 +196,9 @@ export default {
AccessCondition, AccessCondition,
CooperationRecord, CooperationRecord,
CooperativeConstructionUnit, CooperativeConstructionUnit,
CooperativeGroup CooperativeGroup,
ConstructionPerformance,
ConstructionSituation
}, },
data() { data() {
return { return {
......
<template>
<div class="construction-performance-container">
<head-form-new title="施工业绩" :query-params="queryParams" :total="tableDataTotal" :isExcel="false" @handle-search="handleSearch"
ref="searchFormNew" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { } from "@/api/internalCooperation";
import { } from "@/api/common";
export default {
name: "constructionPerformance",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
advisoryBodyCid: this.companyId,
pageNum: 1,
pageSize: 10,
},
forData: [
{ label: '标志性工程', prop: 'bzxgc', width: '245', showOverflowTooltip: true },
{ label: '年度', prop: 'nd', width: '122' },
{ label: '所在区域', prop: 'szqy', width: '101' },
{ label: '所属省份', prop: 'sssf', width: '101' },
{ label: '施工面积(㎡)', prop: 'sgmj', width: '109' },
{ label: '年施工产值(亿)', prop: 'nsgcz', width: '121' },
{ label: '所获荣誉', prop: 'shry', width: '73' },
{ label: '备注说明', prop: 'bzsm', minWidth: '121' },
{ label: '考察项目', prop: 'kcxm', minWidth: '245', showOverflowTooltip: true },
{ label: '考察公司', prop: 'kcgs', minWidth: '192', showOverflowTooltip: true },
],
//列表
tableLoading: false,
tableData: [
{
bzxgc: "黄阁水厂二期扩建工程设计咨询服务项目",
nd: "2023年",
szqy: "华北地区",
sssf: "河北省",
sgmj: "231.25",
nsgcz: "12",
shry: "优质工程",
bzsm: "",
kcxm : "黄阁水厂二期扩建工程设计咨询服务项目",
kcgs : "中国建筑一局第二建筑有限公司"
},
{
bzxgc: "黄阁水厂二期扩建工程设计咨询服务项目",
nd: "2023年",
szqy: "华北地区",
sssf: "河北省",
sgmj: "231.25",
nsgcz: "23",
shry: "优质工程",
bzsm: "",
kcxm : "黄阁水厂二期扩建工程设计咨询服务项目",
kcgs : "中国建筑一局第二建筑有限公司"
},
],
tableDataTotal: 2,
isSkeleton: true,
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
} catch (error) {
}
},
async handleQuery(params) {
try {
// let data = params ? params : this.queryParams;
// this.isSkeleton = true;
// const res = await getConsultingAgencyCooperationListApi(data);
// this.tableData = res.rows ? res.rows : [];
// this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
async handleSearch() {
try {
} catch (error) {
}
}
},
}
</script>
<style lang="scss" scoped>
.construction-performance-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="construction-situation-container">
<head-form-new title="在施工程情况" :query-params="queryParams" :total="tableDataTotal" :isExcel="false" @handle-search="handleSearch"
ref="searchFormNew" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { } from "@/api/internalCooperation";
import { } from "@/api/common";
export default {
name: "constructionSituation",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
advisoryBodyCid: this.companyId,
pageNum: 1,
pageSize: 10,
},
forData: [
{ label: '工程名称', prop: 'gcmc', width: '245', showOverflowTooltip: true },
{ label: '施工承包范围', prop: 'sgcbfw', width: '101' },
{ label: '建筑平面(㎡)', prop: 'szqy', width: '109' },
{ label: '队长名称', prop: 'dzmc', width: '73' },
{ label: '管理人员数量(人)', prop: 'glrysl', width: '130' },
{ label: '施工人员数量(人)', prop: 'sgrysl', width: '130' },
{ label: '质量目标', prop: 'zlmb', width: '121' },
{ label: '考察项目', prop: 'kcxm', minWidth: '245', showOverflowTooltip: true },
{ label: '考察公司', prop: 'kcgs', minWidth: '192', showOverflowTooltip: true },
],
//列表
tableLoading: false,
tableData: [
{
gcmc: "黄阁水厂二期扩建工程设计咨询服务项目",
sgcbfw: "2023年",
szqy: "233.33",
dzmc: "张林",
glrysl: "32",
sgrysl: "21233",
zlmb: "优质工程",
kcxm: "黄阁水厂二期扩建工程设计咨询服务项目",
kcgs: "中国建筑一局第二建筑有限公司"
},
{
gcmc: "黄阁水厂二期扩建工程设计咨询服务项目",
sgcbfw: "2023年",
szqy: "233.33",
dzmc: "张林",
glrysl: "32",
sgrysl: "21233",
zlmb: "优质工程",
kcxm: "黄阁水厂二期扩建工程设计咨询服务项目",
kcgs: "中国建筑一局第二建筑有限公司"
},
],
tableDataTotal: 2,
isSkeleton: true,
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
} catch (error) {
}
},
async handleQuery(params) {
try {
// let data = params ? params : this.queryParams;
// this.isSkeleton = true;
// const res = await getConsultingAgencyCooperationListApi(data);
// this.tableData = res.rows ? res.rows : [];
// this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
async handleSearch() {
try {
} catch (error) {
}
}
},
}
</script>
<style lang="scss" scoped>
.construction-situation-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<script> <script>
import skeleton from '../component/skeleton'; import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin'; import mixin from '@/views/detail/party-a/mixins/mixin';
import { getConsultingAgencyCooperationListApi, exportRecordOfCooperationExcelApi } from "@/api/internalCooperation"; import { getConsultingAgencyCooperationListApi, getConsultingAgencyCooperationTypesApi, exportRecordOfCooperationExcelApi } from "@/api/internalCooperation";
import { getAllAreaApi } from "@/api/common"; import { getAllAreaApi } from "@/api/common";
import { getTreeSelectAreaList } from "@/utils"; import { getTreeSelectAreaList } from "@/utils";
export default { export default {
...@@ -73,15 +73,15 @@ export default { ...@@ -73,15 +73,15 @@ export default {
], ],
formData: [ formData: [
{ {
type: 7, fieldName: 'businessTypes', value: '', placeholder: '项目省市', uid: this.getUid(), options: [], props: { type: 7, fieldName: 'projectProvince', value: '', placeholder: '项目省市', uid: this.getUid(), options: [], props: {
multiple: true, multiple: true,
value: "value", value: "value",
label: "value", label: "value",
// checkStrictly: true // checkStrictly: true
} }
}, },
{ type: 4, fieldName: 'causeAction', value: '', placeholder: '项目承接类型', options: [], uid: this.getUid() }, { type: 4, fieldName: 'projectUndertakingType', value: '', placeholder: '项目承接类型', options: [], uid: this.getUid() },
{ type: 4, fieldName: 'causeAction', value: '', placeholder: '工程类别明细', options: [], uid: this.getUid() }, { type: 4, fieldName: 'detailOfWorksCategory', value: '', placeholder: '工程类别明细', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'advisoryBodyName', value: '', placeholder: '请输入', uid: this.getUid() }, { type: 3, fieldName: 'advisoryBodyName', value: '', placeholder: '请输入', uid: this.getUid() },
], ],
//列表 //列表
...@@ -106,6 +106,7 @@ export default { ...@@ -106,6 +106,7 @@ export default {
try { try {
await this.handleQuery(); await this.handleQuery();
await this.getAllArea(); await this.getAllArea();
await this.getConsultingAgencyCooperationTypes();
} catch (error) { } catch (error) {
} }
...@@ -122,6 +123,23 @@ export default { ...@@ -122,6 +123,23 @@ export default {
} }
}, },
async getConsultingAgencyCooperationTypes(projectTypeId) {
try {
const params = {};
if (projectTypeId) params["projectTypeId"] = projectTypeId;
const types = await getConsultingAgencyCooperationTypesApi(params);
// if (types.code == 200 && types.data instanceof Array) {
// const _temp = types.data.map(item => {
// item.name = item.projectTypeName;
// item.value = item.projectTypeId;
// return item;
// });
// this.$set(this.formData[1], "options", _temp);
// }
} catch (error) {
}
},
async handleQuery(params) { async handleQuery(params) {
try { try {
let data = params ? params : this.queryParams; let data = params ? params : this.queryParams;
...@@ -135,14 +153,11 @@ export default { ...@@ -135,14 +153,11 @@ export default {
this.isSkeleton = false; this.isSkeleton = false;
} }
}, },
async handleSearch() { async handleSearch(params) {
try { try {
console.log(params);
const areaSearchList = this.$refs["searchFormNew"].$refs["cascader"][0].getCheckedNodes(); const areaSearchList = this.$refs["searchFormNew"].$refs["cascader"][0].getCheckedNodes();
if (areaSearchList?.length) { console.log(areaSearchList);
const valueList = areaSearchList.map(item => item.value);
const result = getTreeSelectAreaList(valueList, this.areaList, "value");
console.log(result);
}
} catch (error) { } catch (error) {
} }
......
...@@ -52,7 +52,7 @@ export default { ...@@ -52,7 +52,7 @@ export default {
return { return {
queryParams: { queryParams: {
customerId: this.companyId, customerId: this.companyId,
companyName: this.companyName, customerName: this.companyName,
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
...@@ -134,7 +134,6 @@ export default { ...@@ -134,7 +134,6 @@ export default {
if (area.code == 200) { if (area.code == 200) {
this.areaList = area.data; this.areaList = area.data;
this.$set(this.formData[0], "options", this.areaList); this.$set(this.formData[0], "options", this.areaList);
console.log();
} }
} catch (error) { } catch (error) {
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<div class="feed-summary-container"> <div class="feed-summary-container">
<div class="feed-summary-inner"> <div class="feed-summary-inner">
<div class="left-side-menu"> <div class="left-side-menu">
<project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive"> <project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive"
@select="menuSelect">
<template slot="房建类成本科目-1"> <template slot="房建类成本科目-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_2.svg" alt=""> <img src="@/assets/images/projectCostLedger/icon_cost_detail_2.svg" alt="">
<div class="project-sub-menu-title-text">房建类成本科目</div> <div class="project-sub-menu-title-text">房建类成本科目</div>
...@@ -13,12 +14,31 @@ ...@@ -13,12 +14,31 @@
</template> </template>
</project-side-menu> </project-side-menu>
</div> </div>
<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>
</div>
<div class="project-table-list-haeder-right">
<!-- 实体工程材料单位换算 -->
<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>填写实际成本</el-button>
<!-- 表头设置组件 -->
<dsk-table-header-setting :settingList="formColum" @settingChange="settingChange"></dsk-table-header-setting>
</div>
</div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import ProjectSideMenu from "@/views/projectCostLedger/detail/components/ProjectSideMenu"; import ProjectSideMenu from "@/views/projectCostLedger/detail/components/ProjectSideMenu";
import { getFeedSummaryMenuTreeApi } from "@/api/projectCostLedger"; import { getFeedSummaryMenuTreeApi, getFeedSummaryListApi } from "@/api/projectCostLedger";
import DskTableHeaderSetting from "@/components/DskTableHeaderSetting";
import TableListCom from "@/components/TableListCom";
import { v4 } from 'uuid';
export default { export default {
name: "feedSummary", name: "feedSummary",
props: { props: {
...@@ -51,7 +71,9 @@ export default { ...@@ -51,7 +71,9 @@ export default {
} }
}, },
components: { components: {
ProjectSideMenu ProjectSideMenu,
DskTableHeaderSetting,
TableListCom
}, },
data() { data() {
return { return {
...@@ -62,7 +84,15 @@ export default { ...@@ -62,7 +84,15 @@ export default {
comProjectDetailInfo: {}, comProjectDetailInfo: {},
comProjectId: "", comProjectId: "",
defaultActive: "", defaultActive: "",
menuTreeList: [] menuTreeList: [],
// 列表表头
formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() },
],
// 当前查询的数据月份
recordDate: "",
// 当前选中子菜单的父类名称
currentParentName: ""
}; };
}, },
//可访问data属性 //可访问data属性
...@@ -97,8 +127,42 @@ export default { ...@@ -97,8 +127,42 @@ export default {
} catch (error) { } catch (error) {
} }
},
async getFeedSummaryList(params = {}) {
try {
const list = await getFeedSummaryListApi(params);
if (list.code == 200 && list.data instanceof Array) {
}
} catch (error) {
}
},
menuSelect(currentId, currentTemp) {
const parentName = currentTemp.parent ? this.getCurrentType(currentTemp.parent) : currentId;
if (parentName) this.currentParentName = parentName;
},
getCurrentType(parent) {
if (parent.level == 2) {
return parent.nodeName;
}
if (parent.parent) {
return this.getCurrentType(parent.parent);
} }
}, },
// 时间选择变化
timeChange(time) {
console.log(time);
},
// 表头设置变化
async settingChange(use) {
try {
this.formColum = use;
} catch (error) {
}
},
},
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -117,6 +181,69 @@ export default { ...@@ -117,6 +181,69 @@ export default {
min-width: 220px; min-width: 220px;
height: 100%; height: 100%;
} }
.right-table-list-container {
width: calc(100% - 220px);
height: 100%;
box-sizing: border-box;
background: #fff;
padding: 16px;
::v-deep .project-table-list-header {
margin-bottom: 16px;
display: flex;
align-items: center;
justify-content: space-between;
.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-table-list-haeder-right {
display: flex;
align-items: center;
.actual-cost-btn,
.unit-conversion-btn {
height: 32px;
display: flex;
align-items: center;
justify-content: center;
padding: 0px 12px;
background-color: #0081ff;
border-color: #0081ff;
border-radius: 4px;
color: #fff;
font-size: 14px;
font-weight: 350;
margin-right: 16px;
}
}
}
}
} }
} }
</style> </style>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<div>{{scope.row.number || '--'}}</div> <div>{{scope.row.number || '--'}}</div>
</template> </template>
<template slot="proportion" slot-scope="scope"> <template slot="proportion" slot-scope="scope">
<div>{{scope.row.proportion || '--'}}{{scope.row.proportion ? '%':''}}</div> <div>{{scope.row.proportion || '--'}}</div>
</template> </template>
</tables> </tables>
</div> </div>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<template> <template>
<!-- 有下级菜单 --> <!-- 有下级菜单 -->
<template v-if="checkHasChidren"> <template v-if="checkHasChidren">
<el-submenu :index="menuItem.nodeValue" ref="projectSubMenuItem" class="project-sub-menu-item" <el-submenu :index="createMenuIndex(menuItem.nodeValue)" ref="projectSubMenuItem" class="project-sub-menu-item"
:class="`project-sub-menu-item-level-${menuItem.level}`" :disabled="menuItem.originData && menuItem.originData.disabled"> :class="`project-sub-menu-item-level-${menuItem.level}`" :disabled="menuItem.originData && menuItem.originData.disabled">
<template slot="title"> <template slot="title">
<!-- 预留插槽 --> <!-- 预留插槽 -->
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
</template> </template>
<!-- 无子集菜单 --> <!-- 无子集菜单 -->
<template v-else> <template v-else>
<el-menu-item :index="menuItem.nodeValue" class="project-only-menu-item" :class="`project-only-menu-item-level-${menuItem.level}`" <el-menu-item :index="createMenuIndex(menuItem.nodeValue)" class="project-only-menu-item"
:disabled="menuItem.originData && menuItem.originData.disabled"> :class="`project-only-menu-item-level-${menuItem.level}`" :disabled="menuItem.originData && menuItem.originData.disabled">
<template slot="title"> <template slot="title">
<div class="project-only-menu-title-container"> <div class="project-only-menu-title-container">
<!-- 预留插槽 --> <!-- 预留插槽 -->
...@@ -79,6 +79,11 @@ export default { ...@@ -79,6 +79,11 @@ export default {
} }
styles["padding-left"] = `${paddingLeft}px`; styles["padding-left"] = `${paddingLeft}px`;
return styles; return styles;
},
createMenuIndex(index) {
if (index || index == "0") {
return index.toString();
}
} }
}, },
} }
......
<template> <template>
<div class="project-side-menu-container"> <div class="project-side-menu-container">
<el-menu mode="vertical" class="project-side-menu-instance" :unique-opened="uniqueOpened" :default-active="comDefaultActive" @select="menuSelect" <el-menu mode="vertical" class="project-side-menu-instance" :unique-opened="uniqueOpened" :default-active="createMenuIndex(comDefaultActive)"
@open="subMenuOpen" @close="subMenuClose" ref="customElMenu"> @select="menuSelect" @open="subMenuOpen" @close="subMenuClose" ref="customElMenu">
<template v-for="(item,index) of tempMenuTree"> <template v-for="(item,index) of tempMenuTree">
<project-menu-item :menuItem="item" :key="item.nodeValue"> <project-menu-item :menuItem="item" :key="item.nodeValue">
<template :slot="`${item.nodeName}-${item.level}`" slot-scope="scope"> <template :slot="`${item.nodeName}-${item.level}`" slot-scope="scope">
...@@ -101,6 +101,11 @@ export default { ...@@ -101,6 +101,11 @@ export default {
const result = this.getCurrentData(menuPath); const result = this.getCurrentData(menuPath);
this.$emit("select", menuPath, result); this.$emit("select", menuPath, result);
}, },
createMenuIndex(index) {
if (index || index == "0") {
return index.toString();
}
},
getCurrentData(only) { getCurrentData(only) {
const _tempTree = JSON.parse(JSON.stringify(this.tempMenuTree)); const _tempTree = JSON.parse(JSON.stringify(this.tempMenuTree));
if (_tempTree) { if (_tempTree) {
...@@ -299,6 +304,13 @@ export default { ...@@ -299,6 +304,13 @@ export default {
} }
} }
/* 禁用状态不触发 焦点 */
&.is-disabled {
&:focus {
color: unset !important;
}
}
.project-only-menu-title-container { .project-only-menu-title-container {
height: 32px; height: 32px;
line-height: unset; line-height: unset;
......
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