Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
a5b80ac0
Commit
a5b80ac0
authored
Feb 29, 2024
by
tianhongyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge
parent
61c79e19
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
355 additions
and
380 deletions
+355
-380
index.js
dsk-operate-ui/src/api/projectCostLedger/index.js
+6
-7
index.vue
...projectCostLedger/detail/components/FeedSummary/index.vue
+5
-7
index.vue
...rojectCostLedger/detail/components/MeasureItems/index.vue
+334
-357
index.vue
dsk-operate-ui/src/views/projectCostLedger/detail/index.vue
+10
-9
No files found.
dsk-operate-ui/src/api/projectCostLedger/index.js
View file @
a5b80ac0
...
@@ -173,13 +173,12 @@ export function projectVolume(data) {
...
@@ -173,13 +173,12 @@ export function projectVolume(data) {
}
}
//措施费-获取实际成本月份列表
//措施费-获取实际成本月份列表
export
function
actualMonths
(
params
)
{
export
const
getActualMonthsApi
=
(
params
=
{})
=>
request
({
return
request
({
url
:
'/cb/cost/measures/actual/months'
,
url
:
'/cb/cost/measures/actual/months'
,
method
:
'get'
,
method
:
'GET'
,
params
params
});
});
}
// 工料汇总
// 工料汇总
...
...
dsk-operate-ui/src/views/projectCostLedger/detail/components/FeedSummary/index.vue
View file @
a5b80ac0
...
@@ -69,17 +69,15 @@ export default {
...
@@ -69,17 +69,15 @@ export default {
watch
:
{
watch
:
{
projectDetailInfo
:
{
projectDetailInfo
:
{
handler
(
newValue
)
{
handler
(
newValue
)
{
this
.
comProjectDetailInfo
=
newValue
?
newValue
:
{};
this
.
comProjectDetailInfo
=
newValue
?
cloneDeep
(
newValue
)
:
{};
this
.
init
(
this
.
comProjectDetailInfo
);
this
.
init
(
this
.
comProjectDetailInfo
);
},
},
deep
:
true
,
deep
:
true
,
immediate
:
true
},
},
projectId
:
{
projectId
:
{
handler
(
newValue
)
{
handler
(
newValue
)
{
this
.
comProjectId
=
newValue
;
this
.
comProjectId
=
newValue
;
},
}
immediate
:
true
}
}
},
},
components
:
{
components
:
{
...
@@ -94,8 +92,8 @@ export default {
...
@@ -94,8 +92,8 @@ export default {
nodeName
:
"name"
,
nodeName
:
"name"
,
nodeValue
:
"name"
,
nodeValue
:
"name"
,
},
},
comProjectDetailInfo
:
{},
comProjectDetailInfo
:
this
.
projectDetailInfo
?
cloneDeep
(
this
.
projectDetailInfo
)
:
{},
comProjectId
:
""
,
comProjectId
:
this
.
projectId
,
menuTreeList
:
[],
menuTreeList
:
[],
// 加载数据列表
// 加载数据列表
tableLoading
:
false
,
tableLoading
:
false
,
...
@@ -122,7 +120,7 @@ export default {
...
@@ -122,7 +120,7 @@ export default {
},
},
//可访问data属性
//可访问data属性
created
()
{
created
()
{
this
.
init
(
this
.
comProjectDetailInfo
);
},
},
//计算集
//计算集
computed
:
{
computed
:
{
...
...
dsk-operate-ui/src/views/projectCostLedger/detail/components/MeasureItems/index.vue
View file @
a5b80ac0
...
@@ -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
ref=
"profitloss"
:menuTree=
"menuTreeList"
:menuOptions=
"menuOptions"
:unique-opened=
"false"
:default-active=
"defaultActive"
@
select=
"select"
>
<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_4.svg"
alt=
""
>
<img
src=
"@/assets/images/projectCostLedger/icon_cost_detail_4.svg"
alt=
""
>
<div
class=
"project-sub-menu-title-text"
>
措施费
</div>
<div
class=
"project-sub-menu-title-text"
>
措施费
</div>
...
@@ -12,34 +13,22 @@
...
@@ -12,34 +13,22 @@
<div
class=
"profitloss"
>
<div
class=
"profitloss"
>
<div
class=
"search"
>
<div
class=
"search"
>
<!--<el-date-picker size="small" style="width: 140px"-->
<!--<el-date-picker size="small" style="width: 140px"-->
<!--v-model="expenseDate"-->
<!--v-model="expenseDate"-->
<!--type="month"-->
<!--type="month"-->
<!--placeholder="选择月" @change="changetime"-->
<!--placeholder="选择月" @change="changetime"-->
<!--value-format="yyyy-MM"-->
<!--value-format="yyyy-MM"-->
<!--:picker-options="pickerOptions">-->
<!--:picker-options="pickerOptions">-->
<!--</el-date-picker>-->
<!--</el-date-picker>-->
<el-select
v-model=
"expenseDate"
>
<el-select
v-model=
"expenseDate"
>
<el-option
<el-option
v-for=
"item in dateoptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
v-for=
"item in dateoptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-option>
</el-select>
</el-select>
<el-button
v-if=
"!isall"
type=
"primary"
size=
"small"
@
click=
"addcost"
>
添加实际成本
</el-button>
<el-button
v-if=
"!isall"
type=
"primary"
size=
"small"
@
click=
"addcost"
>
添加实际成本
</el-button>
</div>
</div>
<!--汇总-->
<!--汇总-->
<div
class=
"table-item"
v-if=
"isall"
>
<div
class=
"table-item"
v-if=
"isall"
>
<el-table
<el-table
element-loading-text=
"Loading"
:data=
"tableData"
row-key=
"id"
v-horizontal-scroll=
"'hover'"
default-expand-all
element-loading-text=
"Loading"
:tree-props=
"{children: 'children', hasChildren: 'hasChildren'}"
border
highlight-current-row
>
:data=
"tableData"
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"
type=
"index"
></el-table-column>
<el-table-column
label=
"序号"
width=
"60"
align=
"left"
type=
"index"
></el-table-column>
<el-table-column
label=
"名称"
width=
"220"
prop=
"expenseName"
>
<el-table-column
label=
"名称"
width=
"220"
prop=
"expenseName"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
expenseName
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
expenseName
||
'--'
}}
</
template
>
...
@@ -57,16 +46,8 @@
...
@@ -57,16 +46,8 @@
</div>
</div>
<!--单条-->
<!--单条-->
<div
class=
"table-item"
v-else
>
<div
class=
"table-item"
v-else
>
<el-table
<el-table
element-loading-text=
"Loading"
:data=
"tableData"
row-key=
"id"
v-horizontal-scroll=
"'hover'"
default-expand-all
element-loading-text=
"Loading"
:tree-props=
"{children: 'children', hasChildren: 'hasChildren'}"
border
highlight-current-row
>
:data=
"tableData"
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"
type=
"index"
fixed=
"left"
></el-table-column>
<el-table-column
label=
"序号"
width=
"60"
align=
"left"
type=
"index"
fixed=
"left"
></el-table-column>
<el-table-column
label=
"清单内容"
width=
"130"
prop=
"itemContent"
fixed=
"left"
>
<el-table-column
label=
"清单内容"
width=
"130"
prop=
"itemContent"
fixed=
"left"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
itemContent
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
itemContent
||
'--'
}}
</
template
>
...
@@ -114,7 +95,6 @@
...
@@ -114,7 +95,6 @@
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
taxType
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
taxType
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"本月发生成本比例"
width=
"150"
prop=
"monthCostRate"
>
<el-table-column
label=
"本月发生成本比例"
width=
"150"
prop=
"monthCostRate"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
monthCostRate
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
monthCostRate
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
...
@@ -131,7 +111,6 @@
...
@@ -131,7 +111,6 @@
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
submitProjectVolume
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
submitProjectVolume
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"备注"
width=
"130"
prop=
"remarks"
>
<el-table-column
label=
"备注"
width=
"130"
prop=
"remarks"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
remarks
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
remarks
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
...
@@ -140,7 +119,7 @@
...
@@ -140,7 +119,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
width=
"130"
fixed=
"right"
>
<el-table-column
label=
"操作"
width=
"130"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
class=
"wordprimary"
@
click=
"pushwork(scope.row)"
>
推送工程量
</span>
<span
class=
"wordprimary"
@
click=
"pushwork(scope.row)"
>
推送工程量
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -148,10 +127,7 @@
...
@@ -148,10 +127,7 @@
</div>
</div>
<!--推送工程量-->
<!--推送工程量-->
<el-dialog
<el-dialog
class=
"pro-news"
:visible
.
sync=
"dialogVisible"
width=
"480px"
>
class=
"pro-news"
:visible
.
sync=
"dialogVisible"
width=
"480px"
>
<div
class=
"poptitle"
>
<div
class=
"poptitle"
>
<span>
推送工程量
</span>
<span>
推送工程量
</span>
</div>
</div>
...
@@ -164,7 +140,9 @@
...
@@ -164,7 +140,9 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"需推送工程量"
class=
"row"
>
<el-form-item
label=
"需推送工程量"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入需推送工程量"
v-model=
"queryParam.submitProjectVolume"
></el-input>
<el-input
type=
"text"
placeholder=
"请输入需推送工程量"
v-model=
"queryParam.submitProjectVolume"
></el-input>
<span
class=
"msgs"
v-if=
"queryParam.submitProjectVolume>queryParam.currentProjectVolume"
><font
color=
"#FF3C3C"
>
注:推送工程量不得大于实际产生的总工程量
</font></span>
<span
class=
"msgs"
v-if=
"queryParam.submitProjectVolume>queryParam.currentProjectVolume"
>
<font
color=
"#FF3C3C"
>
注:推送工程量不得大于实际产生的总工程量
</font>
</span>
</el-form-item>
</el-form-item>
<el-form-item
label=
"IPM项目编码"
class=
"row"
>
<el-form-item
label=
"IPM项目编码"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入IPM项目编码"
v-model=
"queryParam.ipmProjectCode"
></el-input>
<el-input
type=
"text"
placeholder=
"请输入IPM项目编码"
v-model=
"queryParam.ipmProjectCode"
></el-input>
...
@@ -175,7 +153,7 @@
...
@@ -175,7 +153,7 @@
<el-form-item
label=
"IPM作业编码"
class=
"row"
>
<el-form-item
label=
"IPM作业编码"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入IPM作业编码"
v-model=
"queryParam.ipmBizCode"
></el-input>
<el-input
type=
"text"
placeholder=
"请输入IPM作业编码"
v-model=
"queryParam.ipmBizCode"
></el-input>
</el-form-item>
</el-form-item>
</el-form
>
</el-form>
<div
class=
"popbot"
>
<div
class=
"popbot"
>
<div
class=
"btn btn_cancel h32"
@
click=
"dialogVisible = false"
>
取消
</div>
<div
class=
"btn btn_cancel h32"
@
click=
"dialogVisible = false"
>
取消
</div>
<div
class=
"btn btn_primary h32"
@
click=
"savepro"
>
确定推送
</div>
<div
class=
"btn btn_primary h32"
@
click=
"savepro"
>
确定推送
</div>
...
@@ -186,371 +164,370 @@
...
@@ -186,371 +164,370 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
ProjectSideMenu
from
'@/views/projectCostLedger/detail/components/ProjectSideMenu'
import
ProjectSideMenu
from
'@/views/projectCostLedger/detail/components/ProjectSideMenu'
;
import
{
import
{
getCostMeasureslist
,
getCostMeasureslist
,
getMeasureslist
,
getMeasureslist
,
getSummarydata
,
getSummarydata
,
projectVolume
,
projectVolume
,
pushProjectvolume
,
actualMonths
pushProjectvolume
,
}
from
'@/api/projectCostLedger'
getActualMonthsApi
}
from
'@/api/projectCostLedger'
;
import
{
cloneDeep
}
from
"lodash-es"
;
export
default
{
export
default
{
name
:
"MeasureItems"
,
name
:
"MeasureItems"
,
props
:
{
props
:
{
// 项目ID
// 项目ID
projectId
:
{
projectId
:
{
type
:
String
,
type
:
String
,
required
:
true
,
required
:
true
,
default
:
""
default
:
""
},
// 详情信息
projectDetailInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
watch
:
{
projectDetailInfo
:
{
handler
(
newValue
)
{
this
.
comProjectDetailInfo
=
newValue
?
cloneDeep
(
newValue
)
:
{};
this
.
init
(
newValue
.
projectId
);
},
},
// 详情信息
deep
:
true
projectDetailInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
},
watch
:
{
projectId
:
{
projectDetailInfo
:
{
handler
(
newValue
)
{
handler
(
newValue
)
{
this
.
comProjectId
=
newValue
;
this
.
comProjectDetailInfo
=
newValue
?
newValue
:
{};
}
this
.
init
(
this
.
projectId
);
}
},
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
;
},
},
deep
:
true
,
immediate
:
true
},
},
projectId
:
{
menuOptions
:
{
handler
(
newValue
)
{
nodeName
:
"itemContent"
,
this
.
comProjectId
=
newValue
;
nodeValue
:
"id"
,
},
},
immediate
:
true
comProjectDetailInfo
:
this
.
projectDetailInfo
?
cloneDeep
(
this
.
projectDetailInfo
)
:
{},
comProjectId
:
this
.
projectId
,
defaultActive
:
""
,
menuTreeList
:
[
],
id
:
0
,
expenseDate
:
''
,
tableData
:
[],
isall
:
true
,
//是否汇总
dialogVisible
:
false
,
queryParam
:
{},
//推送工程量数据
dateoptions
:
[],
};
},
//可访问data属性
created
()
{
// let month = new Date().getMonth() +1
// let year = new Date().getFullYear()
// this.expenseDate = year + (month>= 9? month:'0'+ month)
this
.
init
(
this
.
comProjectId
);
},
//计算集
computed
:
{
},
//方法集
methods
:
{
async
getactualMonths
()
{
try
{
const
formData
=
new
FormData
();
formData
.
append
(
"projectId"
,
this
.
comProjectId
);
formData
.
append
(
"id"
,
this
.
id
);
let
data
=
await
getActualMonthsApi
(
formData
);
data
.
forEach
(
item
=>
{
item
.
value
=
item
;
item
.
label
=
item
.
substring
(
1
,
4
)
+
'-'
+
item
.
substring
(
5
,
6
);
});
if
(
data
&&
data
.
length
>
0
)
{
this
.
expenseDate
=
data
[
0
].
value
;
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
},
},
components
:
{
async
select
(
menuPath
)
{
ProjectSideMenu
this
.
id
=
menuPath
;
},
// let month = this.expenseDate.replace('-', "");
data
()
{
let
param
=
{
return
{
projectId
:
this
.
projectId
,
pickerOptions
:
{
id
:
this
.
id
,
disabledDate
(
time
)
{
month
:
this
.
expenseDate
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
:[],
isall
:
true
,
//是否汇总
dialogVisible
:
false
,
queryParam
:{},
//推送工程量数据
dateoptions
:[],
};
};
if
(
menuPath
==
0
)
{
//费用汇总
this
.
isall
=
true
;
const
formData
=
new
FormData
();
formData
.
append
(
"projectId"
,
this
.
projectId
);
const
res
=
await
getSummarydata
(
formData
);
this
.
tableData
=
res
.
data
;
}
else
{
//各个子项
this
.
isall
=
false
;
const
res
=
await
getCostMeasureslist
(
param
);
this
.
tableData
=
res
.
data
;
}
this
.
getactualMonths
();
},
},
//可访问data属性
async
init
(
detail
=
''
)
{
created
()
{
try
{
// let month = new Date().getMonth() +1
const
projectId
=
detail
;
// let year = new Date().getFullYear()
if
(
!
projectId
)
return
;
// this.expenseDate = year + (month>= 9? month:'0'+ month)
await
this
.
getFeedSummaryMenuTree
(
projectId
);
this
.
getactualMonths
()
}
catch
(
error
)
{
},
//计算集
computed
:
{
}
},
},
//方法集
async
getFeedSummaryMenuTree
(
params
)
{
methods
:
{
try
{
getactualMonths
(){
const
result
=
await
getMeasureslist
(
params
);
const
formDatas
=
new
FormData
();
if
(
result
.
code
==
200
)
{
formDatas
.
append
(
"projectId"
,
this
.
projectId
);
let
arr
=
{};
formDatas
.
append
(
"id"
,
this
.
id
);
arr
.
itemContent
=
'措施费'
;
console
.
log
(
formDatas
.
get
(
'projectId'
))
arr
.
id
=
0
;
console
.
log
(
formDatas
.
get
(
'id'
))
let
child
=
result
.
data
;
actualMonths
(
formDatas
).
then
(
res
=>
{
let
li
=
{};
let
data
=
res
.
data
li
.
itemContent
=
'费用汇总'
;
data
.
forEach
(
item
=>
{
li
.
id
=
0
;
item
.
value
=
item
child
.
unshift
(
li
);
item
.
label
=
item
.
substring
(
1
,
4
)
+
'-'
+
item
.
substring
(
5
,
6
)
arr
.
children
=
child
;
})
const
_tempArray
=
[
arr
];
if
(
data
&&
data
.
length
>
0
)
this
.
menuTreeList
=
_tempArray
;
this
.
expenseDate
=
data
[
0
].
value
await
this
.
$nextTick
();
})
this
.
$refs
[
'profitloss'
].
$refs
[
'customElMenu'
].
open
(
_tempArray
[
0
].
id
);
},
this
.
defaultActive
=
child
[
0
].
id
;
select
(
menuPath
){
this
.
select
(
child
[
0
].
id
);
this
.
id
=
menuPath
// let month = this.expenseDate.replace('-', "");
let
param
=
{
projectId
:
this
.
projectId
,
id
:
this
.
id
,
month
:
this
.
expenseDate
}
if
(
menuPath
==
0
){
//费用汇总
this
.
isall
=
true
const
formData
=
new
FormData
();
formData
.
append
(
"projectId"
,
this
.
projectId
);
getSummarydata
(
formData
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
})
}
else
{
//各个子项
this
.
isall
=
false
getCostMeasureslist
(
param
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
})
}
}
this
.
getactualMonths
()
}
catch
(
error
)
{
},
console
.
log
(
error
);
async
init
(
detail
=
''
)
{
}
try
{
},
const
projectId
=
detail
;
changetime
(
val
)
{
if
(
!
projectId
)
return
;
this
.
select
(
this
.
id
);
await
this
.
getFeedSummaryMenuTree
(
projectId
);
},
}
catch
(
error
)
{
//推送工作量
pushwork
(
row
)
{
}
this
.
queryParam
=
{
},
id
:
row
.
id
,
async
getFeedSummaryMenuTree
(
params
)
{
projectName
:
''
,
try
{
submitProjectVolume
:
''
,
const
result
=
await
getMeasureslist
(
params
);
ipmProjectCode
:
''
,
if
(
result
.
code
==
200
)
{
ipmContractCode
:
''
,
let
arr
=
{}
ipmBizCode
:
''
,
arr
.
itemContent
=
'措施费'
};
arr
.
id
=
0
projectVolume
(
row
.
id
).
then
(
res
=>
{
let
child
=
result
.
data
if
(
res
.
data
)
{
let
li
=
{}
let
datas
=
res
.
data
;
li
.
itemContent
=
'费用汇总'
this
.
queryParam
.
currentProjectVolume
=
datas
.
currentProjectVolume
;
li
.
id
=
0
this
.
queryParam
.
ipmProjectCode
=
datas
.
ipmProjectCode
;
child
.
unshift
(
li
)
this
.
queryParam
.
ipmContractCode
=
datas
.
ipmContractCode
;
arr
.
children
=
child
this
.
queryParam
.
ipmBizCode
=
datas
.
ipmBizCode
;
const
_tempArray
=
[
arr
];
this
.
menuTreeList
=
_tempArray
;
await
this
.
$nextTick
()
this
.
$refs
[
'profitloss'
].
$refs
[
'customElMenu'
].
open
(
_tempArray
[
0
].
id
)
this
.
defaultActive
=
child
[
0
].
id
this
.
select
(
child
[
0
].
id
)
}
}
catch
(
error
)
{
console
.
log
(
error
)
}
}
},
});
changetime
(
val
){
this
.
dialogVisible
=
true
;
this
.
select
(
this
.
id
)
},
},
//确认推送
//推送工作量
savepro
()
{
pushwork
(
row
){
pushProjectvolume
(
this
.
queryParam
).
then
(
res
=>
{
this
.
queryParam
=
{
if
(
res
.
code
==
200
)
{
id
:
row
.
id
,
this
.
$message
.
success
(
res
.
msg
);
projectName
:
''
,
this
.
dialogVisible
=
false
;
submitProjectVolume
:
''
,
this
.
select
(
this
.
id
);
ipmProjectCode
:
''
,
}
else
{
ipmContractCode
:
''
,
this
.
$message
.
error
(
res
.
msg
);
ipmBizCode
:
''
,
}
}
projectVolume
(
row
.
id
).
then
(
res
=>
{
});
if
(
res
.
data
){
let
datas
=
res
.
data
this
.
queryParam
.
currentProjectVolume
=
datas
.
currentProjectVolume
this
.
queryParam
.
ipmProjectCode
=
datas
.
ipmProjectCode
this
.
queryParam
.
ipmContractCode
=
datas
.
ipmContractCode
this
.
queryParam
.
ipmBizCode
=
datas
.
ipmBizCode
}
})
this
.
dialogVisible
=
true
},
//确认推送
savepro
(){
pushProjectvolume
(
this
.
queryParam
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
res
.
msg
)
this
.
dialogVisible
=
false
this
.
select
(
this
.
id
)
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
},
},
addcost
()
{
addcost
()
{
},
},
},
}
},
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.feed-summary-container
{
.feed-summary-container
{
width
:
100%
;
height
:
100%
;
.feed-summary-inner
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
display
:
flex
;
align-items
:
center
;
.feed-summary-inner
{
.left-side-menu
{
width
:
100%
;
width
:
220px
;
min-width
:
220px
;
height
:
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
;
}
}
}
}
.search
{
.profitloss
{
display
:
flex
;
width
:
calc
(
100%
-
220px
)
;
justify-content
:
space-between
;
height
:
100%
;
}
background
:
#fff
;
::v-deep
.pro-news
{
padding
:
16px
;
.
el-dialog__body
{
.
table-item
{
padding
:
24px
0
0
;
margin-top
:
16px
;
}
}
}
}
.search
{
display
:
flex
;
justify-content
:
space-between
;
}
::v-deep
.pro-news
{
.el-dialog__body
{
padding
:
24px
0
0
;
}
.el-dialog__headerbtn
{
.el-dialog__headerbtn
{
top
:
20px
;
top
:
20px
;
right
:
20px
;
right
:
20px
;
z-index
:
3
;
z-index
:
3
;
}
}
.poptitle
{
.poptitle
{
line-height
:
56px
;
line-height
:
56px
;
border-bottom
:
1px
solid
#eee
;
border-bottom
:
1px
solid
#eee
;
height
:
56px
;
height
:
56px
;
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
0
;
width
:
100%
;
width
:
100%
;
>
span
{
>
span
{
padding-left
:
20px
;
padding-left
:
20px
;
font-weight
:
bold
;
font-weight
:
bold
;
font-size
:
16px
;
font-size
:
16px
;
color
:
#232323
;
color
:
#232323
;
font-family
:
Microsoft
YaHei-Bold
,
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei-Bold
,
Microsoft
YaHei
;
width
:
385px
;
width
:
385px
;
display
:
block
;
display
:
block
;
overflow
:
hidden
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
}
}
}
}
.popform
{
.popform
{
padding
:
24px
20px
0
;
padding
:
24px
20px
0
;
.row
{
margin-bottom
:
16px
;
position
:
relative
;
.checkcb
{
position
:
absolute
;
left
:
-100px
;
}
.el-form-item__label
{
font-weight
:
400
;
opacity
:
0
.8
;
padding
:
0
;
font-size
:
14px
;
color
:
#232323
;
padding-right
:
16px
;
}
.el-input
,
.row
{
.el-textarea
,
margin-bottom
:
16px
;
.el-select
{
position
:
relative
;
display
:
inline-block
;
.checkcb
{
width
:
320px
;
position
:
absolute
;
left
:
-100px
;
}
.el-form-item__label
{
font-weight
:
400
;
opacity
:
0
.8
;
padding
:
0
;
font-size
:
14px
;
color
:
#232323
;
padding-right
:
16px
;
}
.el-input__inner
,
.el-input
,
.el-textarea__inner
{
.el-textarea
,
width
:
100%
;
.el-select
{
height
:
32px
;
display
:
inline-block
;
border-radius
:
0px
;
width
:
32
0px
;
&
:hover
{
.el-input__inner
,
border-color
:
#0081ff
;
.el-textarea__inner
{
}
width
:
100%
;
}
height
:
32px
;
border-radius
:
0px
;
.el-textarea__inner
{
&
:hover
{
height
:
90px
;
border-color
:
#0081ff
;
font-family
:
inherit
;
color
:
#000
;
}
}
}
.el-input__suffix
{
.el-textarea__inner
{
height
:
32px
;
height
:
90px
;
}
font-family
:
inherit
;
color
:
#000
;
}
.el-input__icon
{
.el-input__suffix
{
line-height
:
32px
;
height
:
32px
;
}
}
}
.el-
form-item__error
{
.el-
input__icon
{
padding-top
:
2px
;
line-height
:
3
2px
;
}
}
}
}
.el-input-group--append
{
position
:
relative
;
.el-form-item__error
{
.el-input-group__append
{
padding-top
:
2px
;
position
:
absolute
;
}
right
:
0
;
}
width
:
76px
;
.el-input-group--append
{
top
:
0
;
position
:
relative
;
border
:
0
;
.el-input-group__append
{
background
:
none
;
position
:
absolute
;
&
:hover
{
right
:
0
;
background
:
none
!
important
;
width
:
76px
;
}
top
:
0
;
.pro-getbtn
{
border
:
0
;
border-left
:
1px
solid
#DCDFE6
;
background
:
none
;
height
:
32px
;
&
:hover
{
color
:
#0081FF
;
background
:
none
!
important
;
line-height
:
32px
;
}
text-align
:
center
;
.pro-getbtn
{
}
border-left
:
1px
solid
#dcdfe6
;
height
:
32px
;
color
:
#0081ff
;
line-height
:
32px
;
text-align
:
center
;
}
}
}
}
}
}
}
.popbot
{
.popbot
{
border-top
:
1px
solid
#EEEEEE
;
border-top
:
1px
solid
#eeeeee
;
text-align
:
right
;
text-align
:
right
;
margin-top
:
24px
;
margin-top
:
24px
;
padding
:
16px
20px
;
padding
:
16px
20px
;
.btn
{
.btn
{
border-radius
:
2px
;
border-radius
:
2px
;
margin-left
:
12px
;
margin-left
:
12px
;
padding
:
0
24px
;
padding
:
0
24px
;
&
.btn_disabled
{
&
.btn_disabled
{
background
:
#8BD1FF
;
background
:
#8bd1ff
;
}
}
}
}
}
.msgs
{
}
font-size
:
12px
;
.msgs
{
line-height
:
17
px
;
font-size
:
12
px
;
height
:
17px
;
line-
height
:
17px
;
display
:
block
;
height
:
17px
;
margin
:
0
0
-4px
;
display
:
block
;
}
margin
:
0
0
-4px
;
}
}
}
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/projectCostLedger/detail/index.vue
View file @
a5b80ac0
...
@@ -15,16 +15,16 @@
...
@@ -15,16 +15,16 @@
<direct-cost
v-if=
"current == 'directCost'"
></direct-cost>
<direct-cost
v-if=
"current == 'directCost'"
></direct-cost>
<!-- 工料汇总 -->
<!-- 工料汇总 -->
<feed-summary
v-if=
"current == 'feedSummary'"
:project-id=
"projectI
D
"
:project-detail-info=
"detailInfo"
></feed-summary>
<feed-summary
v-if=
"current == 'feedSummary'"
:project-id=
"projectI
d
"
:project-detail-info=
"detailInfo"
></feed-summary>
<!--措施项目-->
<!--措施项目-->
<measure-items
v-if=
"current == 'measureItem'"
:project-id=
"projectI
D
"
:project-detail-info=
"detailInfo"
></measure-items>
<measure-items
v-if=
"current == 'measureItem'"
:project-id=
"projectI
d
"
:project-detail-info=
"detailInfo"
></measure-items>
<!-- 其他项目 -->
<!-- 其他项目 -->
<other-projects
v-if=
"current == 'otherItems'"
></other-projects>
<other-projects
v-if=
"current == 'otherItems'"
></other-projects>
<!-- 盈亏分析对比 -->
<!-- 盈亏分析对比 -->
<profit-Loss
v-if=
"current == 'profitAndLoss'"
:project-id=
"projectI
D
"
:project-detail-info=
"detailInfo"
></profit-Loss>
<profit-Loss
v-if=
"current == 'profitAndLoss'"
:project-id=
"projectI
d
"
:project-detail-info=
"detailInfo"
></profit-Loss>
</div>
</div>
</div>
</div>
...
@@ -62,13 +62,13 @@ export default {
...
@@ -62,13 +62,13 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
projectI
D
:
""
,
projectI
d
:
""
,
current
:
""
,
current
:
""
,
// 详情信息变量
// 详情信息变量
detailInfo
:
{
detailInfo
:
{
projectId
:
"1754425038355890177"
,
projectId
:
"1754425038355890177"
,
cbStage
:
0
,
cbStage
:
0
,
cbType
:
1
cbType
:
1
},
},
toggleTabs
:
[
toggleTabs
:
[
{
{
...
@@ -162,20 +162,21 @@ export default {
...
@@ -162,20 +162,21 @@ export default {
async
getProjectQuery
()
{
async
getProjectQuery
()
{
try
{
try
{
const
{
query
}
=
this
.
$route
;
const
{
query
}
=
this
.
$route
;
// if (!query.projectID) return this.$message.error("缺少项目id");
// if (!query.projectId) return this.$message.error("缺少项目id");
this
.
projectID
=
query
.
projectID
;
this
.
projectId
=
query
.
projectId
;
// 获取详情 保证详情获取完毕 再执行tab命中 进行生命周期
await
this
.
getProjectDetail
(
query
.
projectId
);
if
(
query
.
current
)
{
if
(
query
.
current
)
{
this
.
current
=
query
.
current
;
this
.
current
=
query
.
current
;
}
else
{
}
else
{
// 默认命中工程项目信息
// 默认命中工程项目信息
this
.
current
=
"basicEngineeringInformation"
;
this
.
current
=
"basicEngineeringInformation"
;
};
};
await
this
.
getProjectDetail
(
query
.
projectID
);
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
);
console
.
log
(
error
);
}
}
},
},
async
getProjectDetail
(
projectI
D
)
{
async
getProjectDetail
(
projectI
d
)
{
try
{
try
{
}
catch
(
error
)
{
}
catch
(
error
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment