Commit c8d3f6cc 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 d4eed9f8 9486abba
......@@ -177,7 +177,9 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
for (CbProjectRecordSearchVo searchVo : page.getRecords()) {
//判断是否有历史阶段
searchVo.setHasChildren(baseMapper.selectCount(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getRelatedId, searchVo.getRelatedId())) > 1);
.eq(CbProjectRecord::getRelatedId, searchVo.getRelatedId())
.ne(CbProjectRecord::getProjectFileStatus,CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)) > 1
);
//关键字标红
if (StringUtils.isNotBlank(searchBo.getProjectName())) {
......
......@@ -168,4 +168,16 @@ export const getFeedSummaryMenuTreeApi = (params = {}) => request({
params
})
// 其他项目
//其他项目左侧菜单
export const getProjectOtherMenuTreeApi = (relatedId) => request({
url: '/cb/projectOther/type/' + relatedId,
method: "get",
})
//其他费用-费用汇总
export const getProjectOtherStatistics = (relatedId) => request({
url: '/cb/projectOther/statistics/' + relatedId,
method: "get",
})
......@@ -2,42 +2,20 @@
<div class="directCost-container">
<div class="directCost-main">
<div class="search">
<el-select v-model="date" placeholder="请选择" clearable>
<el-select v-model="date" placeholder="请选择">
<el-option v-for="(item,index) in datelist" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</div>
<div class="directCost-cont">
<div class="left">
<!--<div class="left-menu">-->
<!--<el-menu class="project-menu-instance">-->
<!--&lt;!&ndash;<el-submenu index="1" class="project-sub-menu-item">&ndash;&gt;-->
<!--&lt;!&ndash;<template slot="title">&ndash;&gt;-->
<!--&lt;!&ndash;<i class="el-icon-location icon"></i>&ndash;&gt;-->
<!--&lt;!&ndash;<span>宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程</span>&ndash;&gt;-->
<!--&lt;!&ndash;</template>&ndash;&gt;-->
<!--&lt;!&ndash;</el-submenu>&ndash;&gt;-->
<!--<template v-for="(el,index) in menuList">-->
<!--&lt;!&ndash; 一级标题无子菜单 &ndash;&gt;-->
<!--<el-menu-item v-if="!el.children" :index="el.path" :key="el.id">-->
<!--<template slot="title">-->
<!--<i class="el-icon-location icon"></i>-->
<!--<span>{{el.name}}</span>-->
<!--</template>-->
<!--</el-menu-item>-->
<!--&lt;!&ndash; 一级标题有子菜单 &ndash;&gt;-->
<!--<el-submenu v-else :index="'index' + index" :key="el.id" class="project-sub-menu-item">-->
<!--<template slot="title">-->
<!--<i class="el-icon-location icon"></i>-->
<!--<span>{{el.name}}</span>-->
<!--</template>-->
<!--&lt;!&ndash; 二级标题 &ndash;&gt;-->
<!--<el-menu-item :index="children.path" v-for="children in el.children" :key="children.id">-->
<!--{{children.name}}-->
<!--</el-menu-item>-->
<!--</el-submenu>-->
<!--</template>-->
<!--</el-menu>-->
<!--</div>-->
<div class="left-side-menu">
<project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive">
<template slot="宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_1.svg" alt="">
<div class="project-sub-menu-title-text">宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程</div>
</template>
</project-side-menu>
</div>
</div>
<div class="right-table">
<div class="table-item">
......@@ -114,9 +92,10 @@
</div>
</template>
<script>
import ProjectSideMenu from "@/views/projectCostLedger/detail/components/ProjectSideMenu";
export default {
name: "directCost",
components: {},
components: {ProjectSideMenu},
data() {
return {
date:'2023年11月',
......@@ -201,38 +180,55 @@ export default {
dj:{ required: true, message: '单价不能为空', trigger: 'blur' }, // 限制必填
},
dialogVisible:false,
menuList:[
defaultActive: "",
menuTreeList: [
{
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
id: "1",
children: [
{
href: "暂无",
id: "2",
name: "测试2",
parentId: "1",
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
id: "1-1",
children: [
{
href: "暂无",
id: "3",
name: "测试3",
parentId: "2",
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程劳务",
id: "1-1-1",
},
{
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程劳务",
id: "1-2-1",
},
{
nodeName: "拆除、修缮、清理、改造劳...",
id: "1-3-1",
children: [
{
href: "暂无",
id: "4",
name: "测试4",
parentId: "3",
children: [],
nodeName: "拆除、修缮、清理、改造劳...",
id: "1-3-1",
}
]
}
]
},
{
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
id: "2-1",
},
],
{
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
id: "3-1",
},
],
{
nodeName: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
id: "4-1",
},
],
id: "1",
name: "宝安中学(集团)初中部改扩建工程施工总承包-加固修缮工程",
parentId: "0",
]
},
],
menuOptions: {
nodeName: "nodeName",
nodeValue: "nodeName",
},
};
},
//可访问data属性
......@@ -310,50 +306,10 @@ export default {
height: 100%;
}
.left{
.left-side-menu {
width: 220px;
min-width: 220px;
height: 100%;
.left-menu{
width: 100%;
height: 100%;
overflow: auto;
::v-deep .project-menu-instance {
width: 100%;
height: 100%;
padding-top: 16px;
border-right: 1px solid #eeeeee;
overflow: auto;
.project-sub-menu-item {
& > .el-submenu__title,.el-menu-item {
height: 32px;
line-height: 32px;
&:hover {
background-color: unset;
background: linear-gradient( 91deg, rgba(0, 129, 255, 0.1) 0%, rgba(0, 129, 255, 0) 100%);
}
}
}
.is-opened{
.el-submenu__title{
color:#0081FF;
}
}
.el-submenu__title{
padding: 0 14px !important;
span{
width: 160px;
display: inline-block;
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 超出部分隐藏 */
text-overflow: ellipsis; /* 显示省略号 */
}
.icon{
width: 16px;
}
}
.el-submenu__icon-arrow{
right: 14px;
}
}
}
}
.right-table{
......@@ -373,7 +329,14 @@ export default {
}
.dialogVisible{
::v-deep .el-dialog {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
margin-top:0 !important;
.el-dialog__body{
flex:1;
overflow: auto;
padding:24px 20px 0 20px;
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
......
......@@ -2,17 +2,22 @@
<div class="otherProjects-container">
<div class="otherProjects-cont">
<div class="left">
<div class="left-menu">
<div class="left-side-menu">
<project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive">
<template slot="其他费-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_5.svg" alt="">
<div class="project-sub-menu-title-text">其他费</div>
</template>
</project-side-menu>
</div>
</div>
<div class="right-table">
<div class="table-item">
<div class="table-item" v-if="defaultActive ==='费用汇总'">
<tables
v-if="!isSkeleton"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData1"
:forData="forData"
:MaxPage=500
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
......@@ -27,34 +32,102 @@
</template>
</tables>
</div>
<div class="table-item" v-else>
<tables
v-if="!isSkeleton"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData1"
:MaxPage=500
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="number" slot-scope="scope">
<div>{{scope.row.number || '--'}}</div>
</template>
<template slot="proportion" slot-scope="scope">
<div>{{scope.row.proportion || '--'}}</div>
</template>
</tables>
</div>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="720px" append-to-body class="dialogVisible" title="单位换算">
<el-tabs v-model="currentList">
<el-tab-pane
:key="index"
v-for="(item, index) in toggleTabs"
:label="item.name"
:name="item.value"
>
{{item.content}}
</el-tab-pane>
<div class="detail-cont-tab">
<div class="select">
<el-select v-model="type1" placeholder="请选择">
<el-option v-for="(item,index) in typeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
<i class="el-icon-sort icon"></i>
<el-select v-model="type1" placeholder="请选择">
<el-option v-for="(item,index) in typeList1" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
</el-select>
</div>
<el-table
:data="tableData1"
default-expand-all
border
highlight-current-row
>
<el-table-column
type="selection"
width="50">
</el-table-column>
<el-table-column label="序号" width="50" align="left">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="成本科目" width="190" prop="cbkm"></el-table-column>
<el-table-column label="物料验收系统本月用料" width="195" prop="wlyl"></el-table-column>
<el-table-column label="换算后本月用料" prop="hsyl"></el-table-column>
</el-table>
</div>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary">保存结果</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Tables from "../../../../component/Tables"
import ProjectSideMenu from "@/views/projectCostLedger/detail/components/ProjectSideMenu";
import { getProjectOtherMenuTreeApi,getProjectOtherStatistics } from "@/api/projectCostLedger";
export default {
name: "directCost",
components: {
Tables,
Tables,ProjectSideMenu
},
props: {
// // 项目ID
// projectId: {
// type: String,
// required: true,
// default: ""
// },
// // 详情信息
// projectDetailInfo: {
// type: Object,
// default: () => ({})
// }
},
data() {
return {
data:[
{
label: '一级 1',
children: [{
label: '二级 1-1',
children: [{
label: '三级 1-1-1'
}]
}]
}
],
defaultProps: {
children: 'children',
label: 'label'
},
comProjectId:'',
isSkeleton:false,
tableLoading:false,
tableData:[
......@@ -70,8 +143,8 @@ export default {
},
],
forData: [
{label: '其他项目费用', prop: 'name'},
{label: '数量', prop: 'number',slot: true},
{label: '其他项目费用', prop: 'expenseName'},
{label: '数量', prop: 'expenseValue'},
{label: '占比', prop: 'proportion', slot: true},
],
forData1: [
......@@ -92,11 +165,90 @@ export default {
pageSize:10,
},
tableDataTotal:2,
defaultActive: "费用汇总",
menuTreeList: [
{
id: "1",
itemContent:"其他费",
children: []
}
],
menuOptions: {
nodeName: "itemContent",
nodeValue: "itemContent",
},
dialogVisible:false,
currentList: "type1",
toggleTabs:[
{
value: "type1",
name: "长度",
},
{
value: "type2",
name: "面积",
},
{
value: "type3",
name: "体积",
},
{
value: "type4",
name: "质量",
},
{
value: "type5",
name: "密度",
},
],
tableData1:[
{
cbkm:'标前成本',
wlyl:'42000KG',
hsyl:'42T'
},
{
cbkm:'标前成本',
wlyl:'42000KG',
hsyl:'42T'
},
{
cbkm:'标前成本',
wlyl:'42000KG',
hsyl:'42T'
},
{
cbkm:'标前成本',
wlyl:'42000KG',
hsyl:'42T'
},
],
type1:'',
type2:'',
typeList:[],
typeList1:[],
};
},
watch: {
// projectDetailInfo: {
// handler(newValue) {
// this.comProjectDetailInfo = newValue ? newValue : {};
// // this.init(this.comProjectDetailInfo);
// },
// deep: true,
// immediate: true
// },
// projectId: {
// handler(newValue) {
// this.comProjectId = newValue;
// },
// immediate: true
// }
},
//可访问data属性
created() {
this.getProjectOtherMenuTreeApi('1762014527685136385')
this.getProjectOtherStatistics('1762014527685136385')
},
//计算集
computed: {
......@@ -104,14 +256,33 @@ export default {
},
//方法集
methods: {
handleNodeClick(data) {
console.log(data);
async getProjectOtherStatistics(params) {
try {
const result = await getProjectOtherStatistics(params);
if (result.code == 200) {
const _dataArray = result.data;
this.tableData = _dataArray;
}
} catch (error) {
}
},
handleOpen(key, keyPath) {
console.log(key, keyPath);
async getProjectOtherMenuTreeApi(params) {
try {
const result = await getProjectOtherMenuTreeApi(params);
if (result.code == 200) {
const _tempArray = result.data;
_tempArray.unshift({id:"11",itemContent:"费用汇总"});
this.menuTreeList[0].children = _tempArray;
}
} catch (error) {
}
},
handleClose(key, keyPath) {
console.log(key, keyPath);
open(menuPath, menuPathArray){
console.log(menuPath)
console.log(menuPathArray)
},
//分页
handleCurrentChange(e){
......@@ -139,21 +310,54 @@ export default {
height: 100%;
}
.left{
.left-side-menu {
width: 220px;
min-width: 220px;
height: 100%;
.left-menu{
width: 100%;
height: 100%;
border-right: 1px solid #eeeeee;
overflow: auto;
}
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 超出部分隐藏 */
text-overflow: ellipsis; /* 显示省略号 */
}
.right-table{
width: calc(100% - 220px);
padding: 16px;
}
}
.dialogVisible{
::v-deep .el-dialog {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
margin-top:0 !important;
.el-dialog__body{
flex:1;
overflow: auto;
padding:0;
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
.select{
margin-bottom: 16px;
}
.el-input{
width: 316px !important;
}
.el-tabs__nav-wrap{
padding: 0 16px;
}
.el-tabs__header{
margin: 0;
}
.detail-cont-tab{
padding: 24px 20px;
.icon{
transform: rotate(90deg);
color:#0081FF;
margin: 0 16px;
}
}
}
.el-dialog__footer{
padding: 16px 20px;
}
}
}
</style>
......@@ -35,7 +35,6 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `http://47.104.91.229:9099/prod-api`,//测试-旧
target: `http://111.204.34.146:9099/prod-api`,//测试
// target: `http://192.168.60.5:9098`,//陈跃方
// target: `http://192.168.60.27:9098`,//邓
......
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