Commit 9f81b37e authored by chenyuefang's avatar chenyuefang

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

parents 959e9cf2 9f042eac
...@@ -319,3 +319,49 @@ export const getProjectOtherList = (params = {}) => request({ ...@@ -319,3 +319,49 @@ export const getProjectOtherList = (params = {}) => request({
method: "get", method: "get",
params params
}); });
// 现场经费
/**
* 获取现场经费左侧菜单
* @param {*} params
* @returns
*/
export const getFieldExpensesMenuTreeApi = (projectId) => request({
url: `/cbSceneExpenseChildren/getMenuList/${projectId}`,
method: "get",
params: {}
});
/**
* 获取现场经费统计月份
* @param {*} params
* @returns
*/
export const getFieldExpensesMonthListApi = (params = {}) => request({
url: ``,
method: "get",
params
});
/**
* 获取现场经费列表
* @param {*} params
* @returns
*/
export const getFieldExpensesListApi = (projectId) => request({
url: `/CbProjectExpenseSummary/getCbSceneExpenseSummaryData/${projectId}`,
method: "get",
params: {}
});
/**
* 获取现场经费 除开现场经费汇总之外的列表
* @param {*} params
* @returns
*/
export const getFieldExpensesOtherListApi = (params = {}) => request({
url: `/cbSceneExpenseChildren/getChildrenData`,
method: "get",
params
});
...@@ -37,13 +37,13 @@ ...@@ -37,13 +37,13 @@
<!-- 有自定义插槽 --> <!-- 有自定义插槽 -->
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :data="item" :row-index="scope.$index"> <slot v-if="item.slot" :name="item.prop" :row="scope.row" :data="item" :row-index="scope.$index">
<!-- 默认取值 --> <!-- 默认取值 -->
{{ scope.row[item.prop] ? scope.row[item.prop] : '-' }} {{ checkEmptyStr(scope.row[item.prop]) ? scope.row[item.prop] : '-' }}
</slot> </slot>
<!-- 操作栏 不需要设置slot--> <!-- 操作栏 不需要设置slot-->
<slot v-else-if="item.prop == 'action-field-bar'" name="action-field-bar" :row="scope.row" :data="item" :row-index="scope.$index"></slot> <slot v-else-if="item.prop == 'action-field-bar'" name="action-field-bar" :row="scope.row" :data="item" :row-index="scope.$index"></slot>
<!-- 没有插槽 --> <!-- 没有插槽 -->
<span v-else> <span v-else>
{{ scope.row[item.prop] ? scope.row[item.prop] : '-' }} {{ checkEmptyStr(scope.row[item.prop]) ? scope.row[item.prop] : '-' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -64,8 +64,8 @@ export default { ...@@ -64,8 +64,8 @@ export default {
type: Array, type: Array,
default: () => [] default: () => []
}, },
columIndex : { columIndex: {
type : Number, type: Number,
} }
}, },
watch: { watch: {
...@@ -98,6 +98,12 @@ export default { ...@@ -98,6 +98,12 @@ export default {
}, },
//方法集 //方法集
methods: { methods: {
checkEmptyStr(prop) {
if (prop && prop.toString().trim() && prop.toString().trim() != "0") {
return true;
}
return false;
},
flexWidth(len = 0, width = 50, hasQueryParams) { flexWidth(len = 0, width = 50, hasQueryParams) {
if (hasQueryParams) { if (hasQueryParams) {
let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + len; let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + len;
......
...@@ -143,6 +143,7 @@ export default { ...@@ -143,6 +143,7 @@ export default {
comMaxHeight: null, comMaxHeight: null,
hasQueryParams: false, hasQueryParams: false,
comMaxBodyHeight: 0, comMaxBodyHeight: 0,
headerLastBlockHeight: 0,
observer: null, observer: null,
resizeTimer: null resizeTimer: null
}; };
...@@ -168,7 +169,8 @@ export default { ...@@ -168,7 +169,8 @@ export default {
computed: { computed: {
maxBodyFixedStyle() { maxBodyFixedStyle() {
return { return {
"--body-max-height": `${this.comMaxBodyHeight}px` "--body-max-height": `${this.comMaxBodyHeight}px`,
"--header-last-block-height": `${this.headerLastBlockHeight}px`
}; };
} }
}, },
...@@ -232,6 +234,13 @@ export default { ...@@ -232,6 +234,13 @@ export default {
const bodyMaxHeight = containerMaxHeight - headerHeight - 16; const bodyMaxHeight = containerMaxHeight - headerHeight - 16;
// console.log(bodyMaxHeight, "bodyMaxHeight"); // console.log(bodyMaxHeight, "bodyMaxHeight");
this.comMaxBodyHeight = bodyMaxHeight; this.comMaxBodyHeight = bodyMaxHeight;
} else {
// 没有固定列 正常情况下 计算默认header高度
const defaultHeader = this.$el.querySelector(".el-table__header-wrapper");
if (defaultHeader) {
const headerHeight = parseInt(window.getComputedStyle(defaultHeader).height);
this.headerLastBlockHeight = headerHeight;
}
} }
} }
} catch (error) { } catch (error) {
...@@ -357,8 +366,10 @@ export default { ...@@ -357,8 +366,10 @@ export default {
display: table-cell !important; display: table-cell !important;
} }
/* header 表头最后一个方块 */
.el-table--border th.gutter:last-of-type { .el-table--border th.gutter:last-of-type {
display: block !important; display: block !important;
height: var(--header-last-block-height) !important;
padding-right: 16px; padding-right: 16px;
} }
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
<template v-for="(index, name) in $slots" :slot="name"> <template v-for="(index, name) in $slots" :slot="name">
<slot :name="name" /> <slot :name="name" />
</template> </template>
<template v-for="(index, name) in $scopedSlots" :slot="name" slot-scope="{row,$index}"> <template v-for="(index, name) in $scopedSlots" :slot="name" slot-scope="{row,index}">
<slot :name="name" :data="child" :row="row" :index="$index"></slot> <slot :name="name" :data="child" :row="row" :index="index"></slot>
</template> </template>
</table-list-column> </table-list-column>
</template> </template>
......
...@@ -108,7 +108,7 @@ service.interceptors.response.use(res => { ...@@ -108,7 +108,7 @@ service.interceptors.response.use(res => {
isRelogin.show = false; isRelogin.show = false;
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
sessionStorage.removeItem('views') sessionStorage.removeItem('views')
location.href = '/index'; location.href = '/index/gys';
}) })
}).catch(() => { }).catch(() => {
isRelogin.show = false; isRelogin.show = false;
......
...@@ -158,7 +158,7 @@ export default { ...@@ -158,7 +158,7 @@ export default {
menuDetails:{}, menuDetails:{},
menuOptions: { menuOptions: {
nodeName: "menuName", nodeName: "menuName",
nodeValue: "menuName", nodeValue: "menuId",
children : "childrenList" children : "childrenList"
}, },
detailsId:'', detailsId:'',
...@@ -206,7 +206,7 @@ export default { ...@@ -206,7 +206,7 @@ export default {
this.menuTreeList.push(_tempArray); this.menuTreeList.push(_tempArray);
const defaultCurrent = this.findMenuNode(this.menuTreeList, "土石方部分"); const defaultCurrent = this.findMenuNode(this.menuTreeList, "土石方部分");
if (defaultCurrent) { if (defaultCurrent) {
this.defaultActive = defaultCurrent.menuName; this.defaultActive = defaultCurrent.menuId;
this.menuId = defaultCurrent.menuId; this.menuId = defaultCurrent.menuId;
} }
this.getCbDirectExpenseList(defaultCurrent.menuId) this.getCbDirectExpenseList(defaultCurrent.menuId)
...@@ -233,8 +233,8 @@ export default { ...@@ -233,8 +233,8 @@ export default {
}, },
handleSelect(menuPath, menuPathArray){ handleSelect(menuPath, menuPathArray){
this.defaultActive=menuPath; this.defaultActive=menuPath;
this.menuId=menuPathArray.originData.menuId this.menuId=menuPath
this.getCbDirectExpenseList(menuPathArray.originData.menuId) this.getCbDirectExpenseList(menuPath)
}, },
tableRowClassName({row, rowIndex}) { tableRowClassName({row, rowIndex}) {
if (row.expenseCategoryTag === '清') { if (row.expenseCategoryTag === '清') {
...@@ -286,7 +286,7 @@ export default { ...@@ -286,7 +286,7 @@ export default {
}); });
}, },
findMenuNode(tree, nodeName) { findMenuNode(tree, nodeName) {
console.log(tree) // console.log(tree)
for (const item of tree) { for (const item of tree) {
if (item.menuName == nodeName) return item; if (item.menuName == nodeName) return item;
if (item.childrenList instanceof Array) { if (item.childrenList instanceof Array) {
......
...@@ -41,13 +41,18 @@ ...@@ -41,13 +41,18 @@
<template slot="action-field-bar" slot-scope="scope"> <template slot="action-field-bar" slot-scope="scope">
<div class="project-action-field-bar" v-if="scope.row.id != '0'"> <div class="project-action-field-bar" v-if="scope.row.id != '0'">
<span class="push-project">推送工程量</span> <span class="push-project">推送工程量</span>
{{scope}}
</div> </div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 本月工程量 --> <!-- 本月工程量 -->
<template slot="quantities" slot-scope="scope"> <template slot="quantities" slot-scope="scope">
<!-- 统计行 -->
<template v-if="scope.rowIndex == '0'">
</template>
<el-form-item v-else-if="addActualCostEditStatus">
</el-form-item>
</template> </template>
</custom-table> </custom-table>
</el-form> </el-form>
...@@ -143,7 +148,7 @@ export default { ...@@ -143,7 +148,7 @@ export default {
total: 0, total: 0,
// 列表表头 // 列表表头
formColum: [ formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, width: "53", fixed: "left", uid: v4() }, { label: '序号', prop: "staticSerialNumber", type: "index", lock: true, width: "53", fixed: false, uid: v4() },
{ label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4(), slot: true }, { label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4(), slot: true },
{ label: '公司编码', prop: "companyNo", width: "137", uid: v4() }, { label: '公司编码', prop: "companyNo", width: "137", uid: v4() },
{ label: '集团编码', prop: "orgNo", width: "137", uid: v4() }, { label: '集团编码', prop: "orgNo", width: "137", uid: v4() },
......
...@@ -164,7 +164,7 @@ export default { ...@@ -164,7 +164,7 @@ export default {
], ],
menuOptions: { menuOptions: {
nodeName: "itemContent", nodeName: "itemContent",
nodeValue: "itemContent", nodeValue: "menuId",
}, },
dialogVisible:false, dialogVisible:false,
currentList: "type1", currentList: "type1",
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
: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">
<!-- 预留插槽 --> <!-- 预留插槽 -->
<div class="project-sub-menu-title" :class="{'project-sub-menu-title-next' : menuItem.level !== 1}" :style="menuStyles(menuItem)"> <div class="project-sub-menu-title" :class="{'project-sub-menu-title-next' : menuItem.level !== 1}" :style="menuStyles(menuItem)" :title="menuItem.nodeName">
<slot :name="`${menuItem.nodeName}-${menuItem.level}`" :data="menuItem"> <slot :name="`${menuItem.nodeName}-${menuItem.level}`" :data="menuItem">
<img src="" alt="" v-if="menuItem.originData && menuItem.originData.icon"> <img src="" alt="" v-if="menuItem.originData && menuItem.originData.icon">
<div class="project-sub-menu-title-text">{{menuItem.nodeName}}</div> <div class="project-sub-menu-title-text">{{menuItem.nodeName}}</div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<template slot="title"> <template slot="title">
<div class="project-only-menu-title-container"> <div class="project-only-menu-title-container">
<!-- 预留插槽 --> <!-- 预留插槽 -->
<div class="project-only-menu-title" :class="{'project-only-menu-title-next' : menuItem.level !== 1}" :style="menuStyles(menuItem)"> <div class="project-only-menu-title" :class="{'project-only-menu-title-next' : menuItem.level !== 1}" :style="menuStyles(menuItem)" :title="menuItem.nodeName">
<slot :name="`${menuItem.nodeName}-${menuItem.level}`" :data="menuItem"> <slot :name="`${menuItem.nodeName}-${menuItem.level}`" :data="menuItem">
<img src="" alt="" v-if="menuItem.originData && menuItem.originData.icon"> <img src="" alt="" v-if="menuItem.originData && menuItem.originData.icon">
<div class="project-only-menu-title-text">{{menuItem.nodeName}}</div> <div class="project-only-menu-title-text">{{menuItem.nodeName}}</div>
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
//计算集 //计算集
computed: { computed: {
checkHasChidren() { checkHasChidren() {
return !!(this.menuItem && this.menuItem?.children && this.menuItem.children.length); return !!(this.menuItem && this.menuItem?.children?.length);
}, },
}, },
//方法集 //方法集
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
<!-- 盈亏分析对比 --> <!-- 盈亏分析对比 -->
<profit-Loss v-if="current == 'profitAndLoss'" :project-id="projectId" :project-detail-info="detailInfo"></profit-Loss> <profit-Loss v-if="current == 'profitAndLoss'" :project-id="projectId" :project-detail-info="detailInfo"></profit-Loss>
<!-- 现场经费 -->
<field-expenses v-if="current == 'fieldExpenses'" :project-id="projectId" :project-detail-info="detailInfo"></field-expenses>
</div> </div>
</div> </div>
</div> </div>
...@@ -46,6 +48,8 @@ import MeasureItems from "@/views/projectCostLedger/detail/components/MeasureIte ...@@ -46,6 +48,8 @@ import MeasureItems from "@/views/projectCostLedger/detail/components/MeasureIte
import OtherProjects from "@/views/projectCostLedger/detail/components/OtherProjects"; import OtherProjects from "@/views/projectCostLedger/detail/components/OtherProjects";
// 盈亏分析对比 // 盈亏分析对比
import ProfitLoss from "@/views/projectCostLedger/detail/components/ProfitLoss"; import ProfitLoss from "@/views/projectCostLedger/detail/components/ProfitLoss";
// 现场经费
import FieldExpenses from "@/views/projectCostLedger/detail/components/FieldExpenses";
import { v4 } from "uuid"; import { v4 } from "uuid";
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
import { getProjectDetailApi } from "@/api/projectCostLedger"; import { getProjectDetailApi } from "@/api/projectCostLedger";
...@@ -59,7 +63,8 @@ export default { ...@@ -59,7 +63,8 @@ export default {
DirectCost, DirectCost,
OtherProjects, OtherProjects,
ProfitLoss, ProfitLoss,
MeasureItems MeasureItems,
FieldExpenses
}, },
data() { data() {
return { return {
......
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