Commit 5071c614 authored by huangjie's avatar huangjie

*

parent c303d8bd
...@@ -106,6 +106,15 @@ export function getProjectList(data) { ...@@ -106,6 +106,15 @@ export function getProjectList(data) {
}); });
} }
//查询当前项目可删除成本阶段
export function getProjectHistoryInfo(data) {
return request({
url: '/cbProjectRecord/getProjectHistoryInfo',
method: 'get',
params:data
});
}
//盈亏分析对比 左侧菜单 //盈亏分析对比 左侧菜单
export const getProfitLossMenuTreeApi = (params = {}) => request({ export const getProfitLossMenuTreeApi = (params = {}) => request({
url: "/cbSummary/cbNameList", url: "/cbSummary/cbNameList",
...@@ -120,6 +129,30 @@ export function getAnalysislist(data) { ...@@ -120,6 +129,30 @@ export function getAnalysislist(data) {
params:data params:data
}); });
} }
// 措施项目 左侧菜单
export function getMeasureslist(projectId) {
return request({
url: '/cb/cost/measures/type/'+projectId,
method: 'get',
});
}
//措施费列表
export function getCostMeasureslist(data) {
return request({
url: '/cb/cost/measures/list',
method: 'get',
params:data
});
}
//措施费汇总
export function getSummarydata(data) {
return request({
url: '/cb/cost/measures/summary/data',
method: 'post',
data:data
});
}
// 工料汇总 // 工料汇总
......
<template>
<div class="feed-summary-container">
<div class="feed-summary-inner">
<div class="left-side-menu">
<project-side-menu ref="profitloss" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive" @select="select">
<template slot="措施费-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_4.svg" alt="">
<div class="project-sub-menu-title-text">措施费</div>
</template>
</project-side-menu>
</div>
<div class="profitloss">
<div class="search">
<el-date-picker size="small" style="width: 140px"
v-model="expenseDate"
type="month"
placeholder="选择月" @change="changetime"
:picker-options="pickerOptions">
</el-date-picker>
</div>
<div class="table-item">
<el-table
element-loading-text="Loading"
:data="tableData"
:row-class-name="tableRowClassName"
row-key="id"
v-horizontal-scroll="'hover'"
default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
border
highlight-current-row
>
<el-table-column label="序号" width="60" align="left" prop="index" fixed="left"></el-table-column>
<el-table-column label="清单内容" width="130" prop="itemContent" fixed="left">
<template slot-scope="scope">{{scope.row.itemContent || '--'}}</template>
</el-table-column>
<el-table-column label="工作内容、做法/规格型号/施工现场配置说明" width="300" prop="workContent">
<template slot-scope="scope">{{scope.row.workContent || '--'}}</template>
</el-table-column>
<el-table-column label="单位" width="130" prop="unit">
<template slot-scope="scope">{{scope.row.unit || '--'}}</template>
</el-table-column>
<el-table-column label="工程量" width="130" prop="quantity">
<template slot-scope="scope">{{scope.row.quantity || '--'}}</template>
</el-table-column>
<el-table-column label="不含税单价" width="130" prop="unitPriceExcludingTax">
<template slot-scope="scope">{{scope.row.unitPriceExcludingTax || '--'}}</template>
</el-table-column>
<el-table-column label="使用时间" width="130" prop="usageTime">
<template slot-scope="scope">{{scope.row.usageTime || '--'}}</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
</template>
<script>
import ProjectSideMenu from "@/views/projectCostLedger/detail/components/ProjectSideMenu";
import { getMeasureslist,getCostMeasureslist ,getSummarydata} from "@/api/projectCostLedger";
export default {
name: "MeasureItems",
props: {
// 项目ID
projectId: {
type: String,
required: true,
default: ""
},
// 详情信息
projectDetailInfo: {
type: Object,
default: () => ({})
}
},
watch: {
projectDetailInfo: {
handler(newValue) {
this.comProjectDetailInfo = newValue ? newValue : {};
this.init(this.projectId);
},
deep: true,
immediate: true
},
projectId: {
handler(newValue) {
this.comProjectId = newValue;
},
immediate: true
}
},
components: {
ProjectSideMenu
},
data() {
return {
pickerOptions: {
disabledDate(time) {
let istrue = true
let month = new Date().getMonth()+1
let year = new Date().getFullYear()
let times = (year+5)+'-'+ month + '-01 ' + '00:00:00'
istrue = new Date().getTime() < time.getTime() && time.getTime() < new Date(times).getTime()
return !istrue
},
},
menuOptions: {
nodeName: "itemContent",
nodeValue: "id",
},
comProjectDetailInfo: {},
comProjectId: "",
defaultActive: "",
menuTreeList: [
],
id: 0,
expenseDate:'',
tableData:[],
};
},
//可访问data属性
created() {
let month = new Date().getMonth() +1
let year = new Date().getFullYear()
this.expenseDate = year + '-' + (month>= 9? month:'0'+ month)
},
//计算集
computed: {
},
//方法集
methods: {
select(menuPath){
this.id = menuPath
let month = this.expenseDate.replace(/-/ig, "");
let param = {
projectId:this.projectId,
id:this.id,
month:month
}
getCostMeasureslist(param).then(res=>{
this.tableData = res.data
})
},
async init(detail = '') {
try {
const projectId = detail;
if (!projectId) return;
await this.getFeedSummaryMenuTree(projectId);
} catch (error) {
}
},
async getFeedSummaryMenuTree(params) {
try {
const result = await getMeasureslist(params);
if (result.code == 200) {
let arr = {}
arr.itemContent = '措施费'
arr.id = 0
arr.children = result.data
const _tempArray = [arr];
this.menuTreeList = _tempArray;
await this.$nextTick()
this.$refs['profitloss'].$refs['customElMenu'].open(_tempArray[0].id)
this.defaultActive = result.data[0].id
this.select(result.data[0].id)
}
} catch (error) {
console.log(error)
}
},
changetime(){
this.select(this.id)
},
},
}
</script>
<style lang="scss" scoped>
.feed-summary-container {
width: 100%;
height: 100%;
.feed-summary-inner {
width: 100%;
height: 100%;
display: flex;
align-items: center;
.left-side-menu {
width: 220px;
min-width: 220px;
height: 100%;
}
.profitloss{
width: calc(100% - 220px);
height: 100%;
background: #fff;
padding: 16px;
.table-item{
margin-top: 16px;
}
}
}
}
</style>
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<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 ref="profitloss" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive" > <project-side-menu ref="profitloss" :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive" @select="select">
<template slot="盈亏分析对比-1"> <template slot="盈亏分析对比-1">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_7.svg" alt=""> <img src="@/assets/images/projectCostLedger/icon_cost_detail_7.svg" alt="">
<div class="project-sub-menu-title-text">盈亏分析对比</div> <div class="project-sub-menu-title-text">盈亏分析对比</div>
...@@ -11,13 +11,66 @@ ...@@ -11,13 +11,66 @@
</div> </div>
<div class="profitloss"> <div class="profitloss">
<div class="search"> <div class="search">
<el-date-picker <el-date-picker size="small" style="width: 140px"
v-model="expenseDate" v-model="expenseDate"
type="month" type="month"
placeholder="选择月" placeholder="选择月" @change="changetime"
:picker-options="pickerOptions"> :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="table-item">
<el-table
element-loading-text="Loading"
:data="tableData"
:row-class-name="tableRowClassName"
row-key="id"
v-horizontal-scroll="'hover'"
default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
border
highlight-current-row
>
<el-table-column label="序号" width="60" align="left" prop="index"></el-table-column>
<el-table-column label="名称" width="300" prop="cbName">
<template slot-scope="scope">{{scope.row.cbName || '--'}}</template>
</el-table-column>
<el-table-column label="招标控制价" align="center">
<el-table-column label="招标控制价合价" width="180" prop="tenderSumPrice"><template slot-scope="scope">{{scope.row.tenderSumPrice || '--'}}</template></el-table-column>
<el-table-column label="不含税招标合价" width="180" prop="tenderSumPrice"><template slot-scope="scope">{{scope.row.tenderSumPrice || '--'}}</template></el-table-column>
<el-table-column label="含税招标合价" width="180" prop="taxIncludeTenderSumPrice"><template slot-scope="scope">{{scope.row.taxIncludeTenderSumPrice || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="投标报价" align="center">
<el-table-column label="投标控制价合价" width="180" prop="bidSumPrice"><template slot-scope="scope">{{scope.row.bidSumPrice || '--'}}</template></el-table-column>
<el-table-column label="不含税投标合价" width="180" prop="taxExcludeBidSumPrice"><template slot-scope="scope">{{scope.row.taxExcludeBidSumPrice || '--'}}</template></el-table-column>
<el-table-column label="含税投标合价" width="180" prop="taxIncludebBidSumPrice"><template slot-scope="scope">{{scope.row.taxIncludebBidSumPrice || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="成本汇总" align="center">
<el-table-column label="不含税成本合价" width="180" prop="taxExclusiveTotal"><template slot-scope="scope">{{scope.row.taxExclusiveTotal || '--'}}</template></el-table-column>
<el-table-column label="成本税金合价" width="180" prop="cbTaxesTotal"><template slot-scope="scope">{{scope.row.cbTaxesTotal || '--'}}</template></el-table-column>
<el-table-column label="含税成本合价" width="180" prop="taxInclusiveTotal"><template slot-scope="scope">{{scope.row.taxInclusiveTotal || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="造价指标(元/㎡)" align="center">
<el-table-column label="招标控制价" width="180" prop="costTender"><template slot-scope="scope">{{scope.row.costTender || '--'}}</template></el-table-column>
<el-table-column label="投标报价" width="180" prop="costBid"><template slot-scope="scope">{{scope.row.costBid || '--'}}</template></el-table-column>
<el-table-column label="成本" width="180" prop="costExpense"><template slot-scope="scope">{{scope.row.costExpense || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="含税成本占比" width="180" prop="taxInclusiveExpenseProportion"><template slot-scope="scope">{{scope.row.taxInclusiveExpenseProportion || '--'}}</template></el-table-column>
<el-table-column label="控制价盈亏对比情况" align="center">
<el-table-column label="含税合价偏差" width="180" prop="tenderSumPriceDeviation"><template slot-scope="scope">{{scope.row.tenderSumPriceDeviation || '--'}}</template></el-table-column>
<el-table-column label="含税盈亏率" width="180" prop="tenderProfitLossRatio"><template slot-scope="scope">{{scope.row.tenderProfitLossRatio || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="投标报价盈亏对比情况" align="center">
<el-table-column label="含税合价偏差" width="180" prop="bidSumPriceDeviation"><template slot-scope="scope">{{scope.row.bidSumPriceDeviation || '--'}}</template></el-table-column>
<el-table-column label="含税盈亏率" width="180" prop="bidProfitLossRatio"><template slot-scope="scope">{{scope.row.bidProfitLossRatio || '--'}}</template></el-table-column>
</el-table-column>
<el-table-column label="实际成本费用" align="center">
<el-table-column label="本月费用(含税)" width="180" prop="taxInclusiveExpense"><template slot-scope="scope">{{scope.row.taxInclusiveExpense || '--'}}</template></el-table-column>
<el-table-column label="本月费用(不含税)" width="180" prop="taxExclusiveExpense"><template slot-scope="scope">{{scope.row.taxExclusiveExpense || '--'}}</template></el-table-column>
<el-table-column label="截至本月费用(含税)" width="180" prop="sumTaxInclusiveExpense"><template slot-scope="scope">{{scope.row.sumTaxInclusiveExpense || '--'}}</template></el-table-column>
<el-table-column label="截至本月费用(不含税)" width="180" prop="sumTaxExclusiveExpense"><template slot-scope="scope">{{scope.row.sumTaxExclusiveExpense || '--'}}</template></el-table-column>
</el-table-column>
</el-table>
</div>
</div> </div>
</div> </div>
...@@ -142,6 +195,7 @@ ...@@ -142,6 +195,7 @@
], ],
id: 0, id: 0,
expenseDate:'', expenseDate:'',
tableData:[],
}; };
}, },
//可访问data属性 //可访问data属性
...@@ -164,7 +218,7 @@ ...@@ -164,7 +218,7 @@
expenseDate:this.expenseDate expenseDate:this.expenseDate
} }
getAnalysislist(param).then(res=>{ getAnalysislist(param).then(res=>{
this.tableData = res.data
}) })
}, },
async init(detail = {}) { async init(detail = {}) {
...@@ -198,7 +252,10 @@ ...@@ -198,7 +252,10 @@
} catch (error) { } catch (error) {
console.log(error) console.log(error)
} }
} },
changetime(){
this.select(this.id)
},
}, },
} }
</script> </script>
...@@ -222,6 +279,10 @@ ...@@ -222,6 +279,10 @@
width: calc(100% - 220px); width: calc(100% - 220px);
height: 100%; height: 100%;
background: #fff; background: #fff;
padding: 16px;
.table-item{
margin-top: 16px;
}
} }
} }
} }
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
<!-- 工料汇总 --> <!-- 工料汇总 -->
<feed-summary v-if="current == 'feedSummary'" :project-id="projectID" :project-detail-info="detailInfo"></feed-summary> <feed-summary v-if="current == 'feedSummary'" :project-id="projectID" :project-detail-info="detailInfo"></feed-summary>
<!--措施项目-->
<measure-items v-if="current == 'measureItem'" :project-id="projectID" :project-detail-info="detailInfo"></measure-items>
<!-- 其他项目 --> <!-- 其他项目 -->
<other-projects v-if="current == 'otherItems'"></other-projects> <other-projects v-if="current == 'otherItems'"></other-projects>
...@@ -36,6 +39,8 @@ import EngineeringInformation from "@/views/projectCostLedger/detail/components/ ...@@ -36,6 +39,8 @@ import EngineeringInformation from "@/views/projectCostLedger/detail/components/
import DirectCost from "@/views/projectCostLedger/detail/components/DirectCost"; import DirectCost from "@/views/projectCostLedger/detail/components/DirectCost";
// 工料汇总 // 工料汇总
import FeedSummary from "@/views/projectCostLedger/detail/components/FeedSummary"; import FeedSummary from "@/views/projectCostLedger/detail/components/FeedSummary";
// 措施费用
import MeasureItems from "@/views/projectCostLedger/detail/components/MeasureItems";
// 其他项目 // 其他项目
import OtherProjects from "@/views/projectCostLedger/detail/components/OtherProjects"; import OtherProjects from "@/views/projectCostLedger/detail/components/OtherProjects";
// 盈亏分析对比 // 盈亏分析对比
...@@ -52,7 +57,8 @@ export default { ...@@ -52,7 +57,8 @@ export default {
EngineeringInformation, EngineeringInformation,
DirectCost, DirectCost,
OtherProjects, OtherProjects,
ProfitLoss ProfitLoss,
MeasureItems
}, },
data() { data() {
return { return {
......
...@@ -53,9 +53,13 @@ ...@@ -53,9 +53,13 @@
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" <el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}"
v-sticky-header.always="{offsetTop : '-16px',offsetBottom : '10px'}" class="table-item1 fixed-table" border highlight-current-row v-sticky-header.always="{offsetTop : '-16px',offsetBottom : '10px'}" class="table-item1 fixed-table" border highlight-current-row
:header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" :row-class-name="setRowClass" :header-cell-class-name="setCellClass" :header-row-class-name="setHeaderRow" :cell-class-name="setCellClass" :row-class-name="setRowClass" :header-cell-class-name="setCellClass"
ref="theOwnerListTable" :row-key="'customerKey'"> ref="theOwnerListTable" :row-key="'customerKey'"
lazy
row-key="id"
:load="load"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column type="index" label="序号" width="60" :resizable="false"> <el-table-column type="index" label="序号" width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{(formdata.pageNum - 1) *formdata.pageSize + scope.$index + 1}}</span> <span>{{(formdata.pageNum - 1) *formdata.pageSize + scope.$index + 1}}</span>
</template> </template>
...@@ -246,7 +250,7 @@ ...@@ -246,7 +250,7 @@
checkProjectCodeExist, checkProjectCodeExist,
deleteDraft, deleteDraft,
editProjectInfo, editProjectInfo,
getDraftDialogList,getProjectCbStageNotDraft,getProjectList,batchDeleteProject getDraftDialogList,getProjectCbStageNotDraft,getProjectList,batchDeleteProject,getProjectHistoryInfo
} from '@/api/projectCostLedger/index' } from '@/api/projectCostLedger/index'
import { getDicts } from '@/api/system/dict/data' import { getDicts } from '@/api/system/dict/data'
import proupload from '@/views/projectCostLedger/upload/index' import proupload from '@/views/projectCostLedger/upload/index'
...@@ -302,7 +306,6 @@ ...@@ -302,7 +306,6 @@
}, },
//可访问data属性 //可访问data属性
created() { created() {
// this.isupload = true
//成本阶段 //成本阶段
getDicts('pro_cbstage').then(res=>{ getDicts('pro_cbstage').then(res=>{
this.cbStagelist = res.data this.cbStagelist = res.data
...@@ -322,6 +325,16 @@ ...@@ -322,6 +325,16 @@
}, },
//方法集 //方法集
methods: { methods: {
//树形懒加载
load(tree, treeNode, resolve) {
let param = JSON.parse(JSON.stringify(this.formdata))
param.projectId = tree.id
setTimeout(() => {
getProjectHistoryInfo(param).then(res => {
resolve(res.data)
})
}, 1000)
},
//获取台账列表 //获取台账列表
getlist(){ getlist(){
getProjectList(this.formdata).then(res=>{ getProjectList(this.formdata).then(res=>{
...@@ -555,6 +568,9 @@ ...@@ -555,6 +568,9 @@
box-sizing: border-box; box-sizing: border-box;
padding: 16px 24px; padding: 16px 24px;
overflow: auto; overflow: auto;
::v-deep .table-item .el-table td .cell{
display: flex;
}
.project-cost-ledger-inner { .project-cost-ledger-inner {
width: 100%; width: 100%;
/*height: 100%;*/ /*height: 100%;*/
......
...@@ -42,7 +42,7 @@ module.exports = { ...@@ -42,7 +42,7 @@ module.exports = {
// target: `http://122.9.160.122:9011`, //线上 // target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施-无线 // target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线 // target: `http://192.168.60.46:9098`,//施-有线
// target: `http://192.168.60.6:9098`,//谭 // target: `http://192.168.60.90:9098`,//谭
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
......
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