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
42ff28d0
Commit
42ff28d0
authored
Mar 18, 2024
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司
parents
3478638a
1548dd20
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
622 additions
and
316 deletions
+622
-316
CbSummaryServiceImpl.java
...java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
+3
-2
index.js
dsk-operate-ui/src/api/projectCostLedger/index.js
+11
-0
index.vue
dsk-operate-ui/src/components/CustomTable/index.vue
+2
-1
decimal.js
dsk-operate-ui/src/utils/decimal.js
+15
-8
MonitorSettings.vue
dsk-operate-ui/src/views/monitoring/MonitorSettings.vue
+11
-5
unitConversion.vue
...tail/components/FeedSummary/components/unitConversion.vue
+314
-0
index.vue
...projectCostLedger/detail/components/FeedSummary/index.vue
+261
-47
index.vue
...ojectCostLedger/detail/components/OtherProjects/index.vue
+3
-249
index.vue
...ectCostLedger/detail/components/ProjectSideMenu/index.vue
+1
-0
index.vue
dsk-operate-ui/src/views/projectCostLedger/detail/index.vue
+0
-2
index.vue
dsk-operate-ui/src/views/projectCostLedger/index.vue
+1
-1
index.vue
dsk-operate-ui/src/views/projectCostLedger/upload/index.vue
+0
-1
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
View file @
42ff28d0
...
...
@@ -3,6 +3,7 @@ package com.dsk.cscec.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.io.file.FileNameUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
...
...
@@ -83,9 +84,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
// cbProjectFileMapper.removeById(cbProjectFile.getId());
// } else {
try
{
if
(
cbProjectFile
.
getFileName
(
).
equals
(
"成本汇总项目结构汇总"
))
{
if
(
FileNameUtil
.
getPrefix
(
cbProjectFile
.
getFileName
()
).
equals
(
"成本汇总项目结构汇总"
))
{
saveCbSummaryProject
(
projectId
,
cbProjectFile
);
}
else
if
(
cbProjectFile
.
getFileName
(
).
equals
(
"成本汇总按成本科目"
))
{
}
else
if
(
FileNameUtil
.
getPrefix
(
cbProjectFile
.
getFileName
()
).
equals
(
"成本汇总按成本科目"
))
{
saveCbSummaryCostAccount
(
projectId
,
cbProjectFile
);
}
else
{
throw
new
ServiceException
(
"文件名错误"
);
...
...
dsk-operate-ui/src/api/projectCostLedger/index.js
View file @
42ff28d0
...
...
@@ -262,6 +262,17 @@ export const updateFeedSummaryRowsApi = (data) => request({
data
});
/**
* 推送工程用量
* @param {*} data
* @returns
*/
export
const
pushFeedSummaryRowsApi
=
(
data
)
=>
request
({
url
:
"/cb/quantity/summary/pushData"
,
method
:
"put"
,
data
});
//工程项目信息
...
...
dsk-operate-ui/src/components/CustomTable/index.vue
View file @
42ff28d0
...
...
@@ -315,10 +315,11 @@ export default {
.el-table__fixed-right-patch
{
width
:
16px
!
important
;
z-index
:
9
;
top
:
0px
;
background
:
#f0f3fa
;
border
:
1px
solid
#e6eaf1
;
border-left
:
unset
;
border-
bottom
:
unset
;
border-
top
:
unset
;
}
// 自动适配下 减去滚动条高度
.el-table__fixed
{
...
...
dsk-operate-ui/src/utils/decimal.js
View file @
42ff28d0
...
...
@@ -6,12 +6,13 @@ import Decimal from "decimal.js";
* @param {*} num2
* @returns
*/
export
const
add
=
(
num1
,
num2
)
=>
{
export
const
add
=
(
num1
,
num2
,
digit
=
9
,
omit
=
false
)
=>
{
const
flag
=
(
!
parseFloat
(
num1
)
&&
parseFloat
(
num1
)
!=
"0"
)
||
(
!
parseFloat
(
num2
)
&&
parseFloat
(
num2
)
!=
"0"
);
if
(
flag
)
throw
new
Error
(
"传入参数错误,参数不为number"
);
const
decimal1
=
new
Decimal
(
num1
);
const
decimal2
=
new
Decimal
(
num2
);
return
decimal1
.
plus
(
decimal2
).
toString
();
const
result
=
decimal1
.
plus
(
decimal2
);
return
omit
?
result
.
toFixed
(
digit
,
Decimal
.
ROUND_UP
)
:
result
.
toDecimalPlaces
(
digit
,
Decimal
.
ROUND_UP
).
toString
();
};
/**
...
...
@@ -20,11 +21,13 @@ export const add = (num1, num2) => {
* @param {*} num2
* @returns
*/
export
const
subtract
=
(
num1
,
num2
)
=>
{
export
const
subtract
=
(
num1
,
num2
,
digit
=
9
,
omit
=
false
)
=>
{
const
flag
=
(
!
parseFloat
(
num1
)
&&
parseFloat
(
num1
)
!=
"0"
)
||
(
!
parseFloat
(
num2
)
&&
parseFloat
(
num2
)
!=
"0"
);
if
(
flag
)
throw
new
Error
(
"传入参数错误,参数不为number"
);
const
decimal1
=
new
Decimal
(
num1
);
const
decimal2
=
new
Decimal
(
num2
);
return
decimal1
.
minus
(
decimal2
).
toString
();
const
result
=
decimal1
.
minus
(
decimal2
);
return
omit
?
result
.
toFixed
(
digit
,
Decimal
.
ROUND_UP
)
:
result
.
toDecimalPlaces
(
digit
,
Decimal
.
ROUND_UP
).
toString
();
};
/**
...
...
@@ -33,11 +36,13 @@ export const subtract = (num1, num2) => {
* @param {*} num2
* @returns
*/
export
const
multiply
=
(
num1
,
num2
)
=>
{
export
const
multiply
=
(
num1
,
num2
,
digit
=
9
,
omit
=
false
)
=>
{
const
flag
=
(
!
parseFloat
(
num1
)
&&
parseFloat
(
num1
)
!=
"0"
)
||
(
!
parseFloat
(
num2
)
&&
parseFloat
(
num2
)
!=
"0"
);
if
(
flag
)
throw
new
Error
(
"传入参数错误,参数不为number"
);
const
decimal1
=
new
Decimal
(
num1
);
const
decimal2
=
new
Decimal
(
num2
);
return
decimal1
.
times
(
decimal2
).
toString
();
const
result
=
decimal1
.
times
(
decimal2
);
return
omit
?
result
.
toFixed
(
digit
,
Decimal
.
ROUND_UP
)
:
result
.
toDecimalPlaces
(
digit
,
Decimal
.
ROUND_UP
).
toString
();
};
/**
...
...
@@ -46,9 +51,11 @@ export const multiply = (num1, num2) => {
* @param {*} num2
* @returns
*/
export
const
divide
=
(
num1
,
num2
)
=>
{
export
const
divide
=
(
num1
,
num2
,
digit
=
9
,
omit
=
false
)
=>
{
const
flag
=
(
!
parseFloat
(
num1
)
&&
parseFloat
(
num1
)
!=
"0"
)
||
(
!
parseFloat
(
num2
)
&&
parseFloat
(
num2
)
!=
"0"
);
if
(
flag
)
throw
new
Error
(
"传入参数错误,参数不为number"
);
const
decimal1
=
new
Decimal
(
num1
);
const
decimal2
=
new
Decimal
(
num2
);
return
decimal1
.
dividedBy
(
decimal2
).
toString
();
const
result
=
decimal1
.
dividedBy
(
decimal2
);
return
omit
?
result
.
toFixed
(
digit
,
Decimal
.
ROUND_UP
)
:
result
.
toDecimalPlaces
(
digit
,
Decimal
.
ROUND_UP
).
toString
();
};
dsk-operate-ui/src/views/monitoring/MonitorSettings.vue
View file @
42ff28d0
...
...
@@ -44,7 +44,6 @@
placeholder=
"起始时间"
v-model=
"startTime"
@
change=
"startChangeTime"
:clearable=
"false"
:picker-options=
"
{
start: '00:00',
step: '01:00',
...
...
@@ -55,7 +54,6 @@
<el-time-select
placeholder=
"结束时间"
v-model=
"endTime"
:clearable=
"false"
:picker-options=
"
{
start: '00:00',
step: '01:00',
...
...
@@ -69,9 +67,11 @@
<div
class=
"m-main"
>
<div
class=
"main-item"
>
<div
class=
"label"
>
接收方式
</div>
<!--
<el-radio
v-model=
"queryParams.radio"
label=
"1"
>
全部
</el-radio>
-->
<el-radio
v-model=
"queryParams.receiveMode"
label=
"0"
>
手机短信
</el-radio>
<!--
<el-radio
v-model=
"queryParams.radio"
label=
"3"
>
PC
</el-radio>
-->
<el-radio-group
v-model=
"queryParams.receiveMode"
>
<!--
<el-radio
v-model=
"queryParams.radio"
label=
"1"
>
全部
</el-radio>
-->
<el-radio
label=
"0"
@
click
.
native
.
prevent=
"clickRadio()"
>
手机短信
</el-radio>
<!--
<el-radio
v-model=
"queryParams.radio"
label=
"3"
>
PC
</el-radio>
-->
</el-radio-group>
</div>
<div
class=
"main-item"
style=
"line-height: 32px;"
>
<div
class=
"label"
>
手机号码
</div>
...
...
@@ -177,6 +177,9 @@
this
.
endTime
=
""
},
handleAdd
(){
if
(
this
.
queryParams
.
receiveMode
===
'0'
&&
!
this
.
queryParams
.
phones
){
return
this
.
$message
.
warning
(
'手机号码不能为空'
);
}
let
params
=
{
pushFrequency
:
Number
(
this
.
queryParams
.
pushFrequency
),
riskType
:
''
,
...
...
@@ -220,6 +223,9 @@
changeTime
(
val
){
console
.
log
(
val
)
},
clickRadio
(){
this
.
queryParams
.
receiveMode
=
this
.
queryParams
.
receiveMode
===
'0'
?
'1'
:
'0'
},
}
}
</
script
>
...
...
dsk-operate-ui/src/views/projectCostLedger/detail/components/FeedSummary/components/unitConversion.vue
0 → 100644
View file @
42ff28d0
<
template
>
<el-dialog
:visible
.
sync=
"dialogVisible"
width=
"720px"
append-to-body
class=
"dialogVisible"
title=
"单位换算"
>
<el-tabs
v-model=
"currentList"
@
tab-click=
"handleClickTab"
>
<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=
"type2"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in typeList"
:label=
"item.dictLabel"
:value=
"item.dictValue"
:key=
"index"
></el-option>
</el-select>
</div>
<el-table
:data=
"tableData"
default-expand-all
border
highlight-current-row
@
selection-change=
"handleSelectionChange"
>
<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=
"cbSubjectName"
></el-table-column>
<el-table-column
label=
"物料验收系统本月用料"
width=
"195"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.quantities"
>
{{
scope
.
row
.
quantities
}}
{{
scope
.
row
.
quantitiesUnit
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</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=
"handleClose()"
>
取消
</el-button>
<el-button
type=
"primary"
>
保存结果
</el-button>
</div>
</el-dialog>
</template>
<
script
>
export
default
{
name
:
"unitConversion"
,
props
:
{
isVisible
:
{
type
:
Boolean
,
default
:
false
},
dataList
:
{
type
:
Array
,
default
:
()
=>
[]
},
},
data
()
{
return
{
dialogVisible
:
this
.
isVisible
,
currentList
:
"type1"
,
toggleTabs
:[
{
value
:
"type1"
,
name
:
"长度"
,
},
{
value
:
"type2"
,
name
:
"面积"
,
},
{
value
:
"type3"
,
name
:
"重量"
,
},
{
value
:
"type4"
,
name
:
"体积"
,
},
// {
// value: "type4",
// name: "质量",
// },
// {
// value: "type5",
// name: "密度",
// },
],
type1
:
''
,
type2
:
''
,
typeList
:[
{
dictLabel
:
'千米'
,
dictValue
:
'km'
},
{
dictLabel
:
'米'
,
dictValue
:
'm'
},
{
dictLabel
:
'分米'
,
dictValue
:
'dm'
},
{
dictLabel
:
'厘米'
,
dictValue
:
'cm'
},
{
dictLabel
:
'毫米'
,
dictValue
:
'mm'
},
{
dictLabel
:
'微米'
,
dictValue
:
'μm'
},
],
tableData
:
this
.
dataList
,
tableList
:[]
};
},
//可访问data属性
created
()
{
console
.
log
(
this
.
dataList
)
},
//计算集
computed
:
{
},
//方法集
methods
:
{
handleClose
()
{
this
.
$emit
(
'refresh'
)
},
handleClickTab
(
v
){
this
.
type1
=
''
;
this
.
type2
=
''
;
if
(
v
.
label
===
'长度'
){
this
.
typeList
=
[
{
dictLabel
:
'千米'
,
dictValue
:
'km'
},
{
dictLabel
:
'米'
,
dictValue
:
'm'
},
{
dictLabel
:
'分米'
,
dictValue
:
'dm'
},
{
dictLabel
:
'厘米'
,
dictValue
:
'cm'
},
{
dictLabel
:
'毫米'
,
dictValue
:
'mm'
},
{
dictLabel
:
'微米'
,
dictValue
:
'μm'
},
]
}
if
(
v
.
label
===
'面积'
){
this
.
typeList
=
[
{
dictLabel
:
'平方千米'
,
dictValue
:
'km²'
},
{
dictLabel
:
'公顷'
,
dictValue
:
'ha'
},
{
dictLabel
:
'公亩'
,
dictValue
:
'a'
},
{
dictLabel
:
'平方米'
,
dictValue
:
'm²'
},
{
dictLabel
:
'平方分米'
,
dictValue
:
'dm²'
},
{
dictLabel
:
'平方厘米'
,
dictValue
:
'cm²'
},
{
dictLabel
:
'平方毫米'
,
dictValue
:
'mm²'
},
]
}
if
(
v
.
label
===
'体积'
){
this
.
typeList
=
[
{
dictLabel
:
'吨'
,
dictValue
:
'T'
},
{
dictLabel
:
'千克'
,
dictValue
:
'kg'
},
{
dictLabel
:
'克'
,
dictValue
:
'g'
},
]
}
if
(
v
.
label
===
'体积'
){
this
.
typeList
=
[
{
dictLabel
:
'立方千米'
,
dictValue
:
'km³'
},
{
dictLabel
:
'立方米'
,
dictValue
:
'm³'
},
{
dictLabel
:
'立方分米'
,
dictValue
:
'dm³'
},
{
dictLabel
:
'立方厘米'
,
dictValue
:
'cm³'
},
{
dictLabel
:
'立方毫米'
,
dictValue
:
'mm³'
},
{
dictLabel
:
'升'
,
dictValue
:
'L'
},
{
dictLabel
:
'分升'
,
dictValue
:
'dL'
},
{
dictLabel
:
'厘升'
,
dictValue
:
'cL'
},
{
dictLabel
:
'毫升'
,
dictValue
:
'mL'
},
{
dictLabel
:
'微升'
,
dictValue
:
'μL'
},
]
}
},
handleSelectionChange
(
val
)
{
console
.
log
(
val
)
this
.
tableList
=
val
;
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.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
>
dsk-operate-ui/src/views/projectCostLedger/detail/components/FeedSummary/index.vue
View file @
42ff28d0
...
...
@@ -24,7 +24,7 @@
</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=
"unit-conversion-btn"
v-if=
"
isEntityMaterials
"
>
单位换算
</el-button>
<!-- 填写实际成本 -->
<el-button
type=
"primary"
size=
"medium"
class=
"actual-cost-btn"
v-else
@
click=
"addActualCostEditStatus ? saveActualCost() : fillActualCost()"
>
{{addActualCostEditStatus ? '保存成本' : '填写实际成本'}}
</el-button>
...
...
@@ -35,7 +35,8 @@
<!-- 数据列表部分 -->
<div
class=
"project-feedsummary-list-container"
>
<dsk-skeleton
v-if=
"tableLoading"
></dsk-skeleton>
<el-form
:model=
"dataForm"
ref=
"feedSummaryForm"
:show-message=
"false"
v-else-if=
"!tableLoading"
class=
"feed-summary-form"
>
<!-- 非实体工程材料列表 -->
<el-form
:model=
"dataForm"
ref=
"feedSummaryForm"
:show-message=
"false"
v-else-if=
"!isEntityMaterials"
class=
"feed-summary-form"
>
<custom-table
:tableData=
"dataForm.tableDataList"
:formColum=
"formColum"
:max-height=
"true"
:tableDataTotal=
"total"
:paging=
"false"
:cell-class-name=
"cellClassName"
>
<
template
slot=
"action-field-bar"
slot-scope=
"scope"
>
...
...
@@ -46,16 +47,34 @@
</
template
>
<!-- 本月工程量 -->
<
template
slot=
"quantities"
slot-scope=
"scope"
>
<!-- 统计行 -->
<template
v-if=
"scope.rowIndex == '0'"
>
</
template
>
<el-form-item
v-else-if=
"addActualCostEditStatus"
>
<!-- 编辑单元格 -->
<el-form-item
:prop=
"`tableDataList.$
{scope.rowIndex}.quantities`" :rules="checkRules.amountCheck"
v-if="scope.rowIndex != '0'
&&
addActualCostEditStatus" class="inner-edit-input-item">
<el-input
placeholder=
"请输入"
v-model=
"scope.row.quantities"
clearable
@
input=
"v => statisticsSum(v,'quantities')"
></el-input>
</el-form-item>
</
template
>
<!-- 本月采购单价 -->
<
template
slot=
"purchaseUnitPrice"
slot-scope=
"scope"
>
<!-- 编辑单元格 -->
<el-form-item
:prop=
"`tableDataList.$
{scope.rowIndex}.purchaseUnitPrice`" :rules="checkRules.amountCheck"
v-if="scope.rowIndex != '0'
&&
addActualCostEditStatus" class="inner-edit-input-item">
<el-input
placeholder=
"请输入"
v-model=
"scope.row.purchaseUnitPrice"
clearable
@
input=
"v => statisticsSum(v,'purchaseUnitPrice')"
></el-input>
</el-form-item>
</
template
>
</custom-table>
</el-form>
<!-- 实体工程材料列表 -->
<entity-materials-table
v-else-if=
"isEntityMaterials"
:tableData=
"dataForm.tableDataList"
:formColum=
"entityMaterialsFormColum"
:max-height=
"true"
:tableDataTotal=
"total"
:paging=
"false"
@
selectionChange=
"selectionChange"
>
<
template
slot=
"action-field-bar"
slot-scope=
"scope"
>
<div
class=
"project-action-field-bar"
>
<span
class=
"push-project"
>
推送工程量
</span>
</div>
</
template
>
</entity-materials-table>
</div>
</div>
</div>
...
...
@@ -63,15 +82,20 @@
<!-- 填写实际成本触发 -->
<add-actual-cost
v-model=
"showAddActualCost"
:project-create-time=
"projectDetailInfo.createTime"
@
timeSelect=
"timeSelect"
></add-actual-cost>
<!-- 单位换算弹窗 -->
<unit-conversion
v-if=
"showUnitConversion"
:isVisible=
"showUnitConversion"
:dataList=
"unitConversionList"
@
refresh=
"handleDialogVisible()"
></unit-conversion>
</div>
</template>
<
script
>
import
ProjectSideMenu
from
"@/views/projectCostLedger/detail/components/ProjectSideMenu"
;
import
{
getFeedSummaryMenuTreeApi
,
getFeedSummaryMonthListApi
,
getFeedSummaryListApi
,
getFeedSummaryConversionNotice
,
updateFeedSummaryRowsApi
}
from
"@/api/projectCostLedger"
;
import
{
getFeedSummaryMenuTreeApi
,
getFeedSummaryMonthListApi
,
getFeedSummaryListApi
,
getFeedSummaryConversionNotice
,
updateFeedSummaryRowsApi
,
pushFeedSummaryRowsApi
}
from
"@/api/projectCostLedger"
;
import
DskTableHeaderSetting
from
"@/components/DskTableHeaderSetting"
;
import
DskSkeleton
from
"@/components/DskSkeleton"
;
import
CustomTable
from
"@/components/CustomTable"
;
import
EntityMaterialsTable
from
"@/components/CustomTable"
;
import
AddActualCost
from
"./components/AddActualCost"
;
import
unitConversion
from
"./components/unitConversion"
;
import
{
v4
}
from
'uuid'
;
import
dayjs
from
"dayjs"
;
import
{
cloneDeep
}
from
"lodash-es"
;
...
...
@@ -93,9 +117,7 @@ const statisticsPropNames = [
// 可编辑字段
const
editPropNames
=
[
"quantities"
,
"totalQuantities"
,
"purchaseUnitPrice"
,
"createTime"
];
export
default
{
...
...
@@ -125,16 +147,31 @@ export default {
handler
(
newValue
)
{
this
.
comProjectId
=
newValue
;
}
},
recordDate
:
{
handler
(
newValue
,
oldValue
)
{
this
.
oldRecordDate
=
newValue
;
}
}
},
components
:
{
ProjectSideMenu
,
DskTableHeaderSetting
,
CustomTable
,
EntityMaterialsTable
,
DskSkeleton
,
AddActualCost
AddActualCost
,
unitConversion
},
data
()
{
const
amountCheckValidator
=
(
rule
,
value
,
callback
)
=>
{
// 有值才进行验证
if
(
value
||
value
==
"0"
)
{
const
reg
=
/^
(?!
0
\d)(?!
0*
\.
0*$
)\d
+
(\.\d
+
)?
$/
;
if
(
!
reg
.
test
(
value
))
return
callback
(
new
Error
(
"请输入正确的数值"
));
}
callback
();
};
return
{
menuOptions
:
{
nodeName
:
"name"
,
...
...
@@ -171,16 +208,21 @@ export default {
},
{
label
:
'实际成本'
,
prop
:
"sjcb"
,
align
:
"center"
,
uid
:
v4
(),
children
:
[
{
label
:
'本月工程量'
,
prop
:
"quantities"
,
minWidth
:
"1
5
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'截止本月工程量'
,
prop
:
"totalQuantities"
,
minWidth
:
"1
5
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'本月采购单价'
,
prop
:
"purchaseUnitPrice"
,
minWidth
:
"1
5
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'填写时间'
,
prop
:
"createTime"
,
minWidth
:
"1
5
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'本月工程量'
,
prop
:
"quantities"
,
minWidth
:
"1
6
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'截止本月工程量'
,
prop
:
"totalQuantities"
,
minWidth
:
"1
6
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'本月采购单价'
,
prop
:
"purchaseUnitPrice"
,
minWidth
:
"1
6
0"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'填写时间'
,
prop
:
"createTime"
,
minWidth
:
"1
6
0"
,
uid
:
v4
(),
slot
:
true
},
]
},
{
label
:
'推送工程量'
,
prop
:
"pushQuantities"
,
width
:
"95"
,
uid
:
v4
()
},
{
label
:
'备注'
,
prop
:
"remark"
,
width
:
"115"
,
uid
:
v4
(),
slot
:
true
},
{
label
:
'操作'
,
prop
:
"action-field-bar"
,
width
:
"99"
,
uid
:
v4
(),
fixed
:
"right"
},
],
// 实体工程材料表头
entityMaterialsFormColum
:
[
{
label
:
'多选'
,
prop
:
"staticSerialNumber"
,
type
:
"selection"
,
lock
:
true
,
width
:
"53"
,
fixed
:
false
,
uid
:
v4
()
},
{
label
:
'操作'
,
prop
:
"action-field-bar"
,
width
:
"99"
,
uid
:
v4
(),
fixed
:
"right"
},
],
// 已记录月份集合
monthList
:
[],
// 源数据月份
...
...
@@ -205,23 +247,41 @@ export default {
// 填写实际成本 编辑状态
addActualCostEditStatus
:
false
,
// 当前选择的成本年份
selectActualCostTime
:
""
selectActualCostTime
:
""
,
checkRules
:
{
amountCheck
:
[
{
trigger
:
[
"change"
],
validator
:
amountCheckValidator
}
]
},
statisticsTimer
:
null
,
// 单位换算弹窗
showUnitConversion
:
false
,
//单位换算数据
unitConversionList
:[]
};
},
//可访问data属性
created
()
{
this
.
init
(
this
.
comProjectDetailInfo
);
},
beforeDestroy
()
{
this
.
clearStatisticsTimer
();
},
//计算集
computed
:
{
hasTarget
()
{
return
this
.
statisticsParentName
.
includes
(
this
.
currentParentName
);
},
// 实体工程材料
isEntityMaterials
()
{
return
this
.
currentParentName
.
indexOf
(
'实体工程材料'
)
!=
-
1
;
}
},
//方法集
methods
:
{
async
init
(
detail
=
{})
{
async
init
(
detail
=
{}
,
resetDate
=
""
)
{
try
{
this
.
resetEditStatus
();
const
{
projectId
,
cbStage
}
=
detail
;
if
(
!
projectId
)
return
;
const
params
=
{
...
...
@@ -230,14 +290,14 @@ export default {
};
await
this
.
getFeedSummaryMenuTree
(
params
);
await
this
.
getFeedSummaryMonthList
(
params
);
await
this
.
initDefaultSetting
();
await
this
.
initDefaultSetting
(
resetDate
);
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
this
.
tableLoading
=
false
;
}
},
async
initDefaultSetting
()
{
async
initDefaultSetting
(
resetDate
=
""
)
{
try
{
await
this
.
$nextTick
();
const
menus
=
this
.
$refs
[
"projectSideMenu"
].
getResultMenuList
();
...
...
@@ -247,7 +307,7 @@ export default {
this
.
currentNodeName
=
defaultCurrent
.
nodeName
;
const
parentName
=
defaultCurrent
.
parent
?
this
.
getCurrentType
(
defaultCurrent
.
parent
)
:
defaultCurrent
.
name
;
if
(
parentName
)
this
.
currentParentName
=
parentName
;
const
params
=
this
.
createRequestConditions
();
const
params
=
this
.
createRequestConditions
(
resetDate
);
await
this
.
getFeedSummaryList
(
params
);
}
}
catch
(
error
)
{
...
...
@@ -257,16 +317,18 @@ export default {
getNowMonth
()
{
return
dayjs
(
new
Date
().
valueOf
()).
format
(
"YYYYMM"
);
},
createRequestConditions
()
{
createRequestConditions
(
resetDate
=
""
)
{
const
{
projectId
,
cbStage
}
=
this
.
comProjectDetailInfo
;
const
params
=
{
projectId
,
cbStage
};
params
[
"cbSubjectName"
]
=
this
.
currentNodeName
;
// 判断当月是否存在于server返回month集合中
// 判断当月是否存在于server返回month集合中
有传入的重置时间 采用重置时间
const
_now
=
this
.
getNowMonth
();
if
(
this
.
includeNowMonth
(
_now
))
{
if
(
resetDate
&&
this
.
includeNowMonth
(
resetDate
))
{
params
[
"recordDate"
]
=
resetDate
;
}
else
if
(
this
.
includeNowMonth
(
_now
))
{
params
[
"recordDate"
]
=
_now
;
}
return
params
;
...
...
@@ -323,11 +385,7 @@ export default {
}
// 循环统计 需要统计的列 总数
for
(
const
prop
of
_statisticsPropNames
)
{
const
sum
=
arraylist
.
reduce
((
pre
,
current
,
index
)
=>
{
const
before
=
Object
.
prototype
.
toString
.
call
(
pre
)
==
"[object Object]"
?
pre
[
prop
]
?
pre
[
prop
]
:
0
:
parseFloat
(
pre
)
?
pre
:
0
;
const
after
=
Object
.
prototype
.
toString
.
call
(
current
)
==
"[object Object]"
?
current
[
prop
]
?
current
[
prop
]
:
0
:
parseFloat
(
current
)
?
current
:
0
;
return
add
(
before
,
after
);
},
0
);
const
sum
=
this
.
sumHandler
(
arraylist
,
prop
);
// 对应key 赋值结果
_template
[
prop
]
=
sum
;
}
...
...
@@ -354,7 +412,7 @@ export default {
this
.
originMonthList
=
cloneDeep
(
data
);
const
_now
=
this
.
getNowMonth
();
this
.
recordDate
=
_now
;
this
.
oldRecordDate
=
_now
;
//
this.oldRecordDate = _now;
// 默认以当前月数据为准 若不包含当前月 需要手动push数据
if
(
!
data
.
includes
(
_now
))
{
data
.
push
(
_now
);
...
...
@@ -386,16 +444,14 @@ export default {
const
_now
=
this
.
getNowMonth
();
// 请求列表参数
const
params
=
this
.
createRequestConditions
();
// 清空了年月默认选中当前月
// 清空了年月
默认选中当前月
if
(
!
month
)
{
this
.
recordDate
=
_now
;
// 如果命中的旧月份 等于当前月 且 不处于编辑状态 说明清空的是
当前
月 不调用接口
// 如果命中的旧月份 等于当前月 且 不处于编辑状态 说明清空的是
默认查询
月 不调用接口
if
(
this
.
oldRecordDate
==
_now
&&
!
this
.
addActualCostEditStatus
)
return
;
}
else
{
// 正常选择
params
[
"recordDate"
]
=
month
;
// 记录历史切换年月
this
.
oldRecordDate
=
month
;
}
this
.
resetEditStatus
();
// 获取列表数据
...
...
@@ -406,10 +462,9 @@ export default {
this
.
currentNodeName
=
currentId
;
const
parentName
=
currentTemp
.
parent
?
this
.
getCurrentType
(
currentTemp
.
parent
)
:
currentId
;
if
(
parentName
)
this
.
currentParentName
=
parentName
;
// 请求数据列表
const
params
=
this
.
createRequestConditions
();
this
.
getFeedSummaryList
(
params
);
if
(
this
.
currentParentName
.
indexOf
(
'实体工程材料'
)
!=
-
1
)
{
this
.
resetTableData
();
// 实体工程材料
if
(
this
.
isEntityMaterials
)
{
const
{
projectId
,
cbStage
}
=
this
.
comProjectDetailInfo
;
const
params
=
{
projectId
,
...
...
@@ -422,24 +477,76 @@ export default {
params
[
"recordDate"
]
=
_now
;
}
this
.
getFeedSummaryConversionNotice
(
params
);
}
else
{
// 非实体工程材料 获取数据
const
params
=
this
.
createRequestConditions
(
this
.
recordDate
);
this
.
getFeedSummaryList
(
params
);
}
},
async
getFeedSummaryConversionNotice
(
params
)
{
const
data
=
await
getFeedSummaryConversionNotice
(
params
);
if
(
data
.
data
==
500
)
{
// const data = {
// "code": 200,
// "msg": "系统检测到您近期未进行物料单位换算,请立即进行换算。",
// "data": [
// {
// "id": "1763389258189500519",
// "cbSubjectName": "钢筋",
// "companyNo": "FG-002-010025",
// "orgNo": "",
// "cbName": "热轧带肋钢筋HRB400E",
// "jobContent": "20mm 定尺12m",
// "calculationRule": "",
// "unit": "吨",
// "materialDescription": "",
// "guidePrice": "",
// "bidUnitPrice": 3513.27,
// "unitPriceDifference": null,
// "quantity": 0.317,
// "combinedPrice": 1113.70659,
// "combinedPriceTax": 1115.154424,
// "brandName": "",
// "bidSource": "请在此处填写",
// "remark": "",
// "quantities": 123123.0,
// "quantitiesUnit": "T",
// "conversionQuantities": null,
// "conversionUnit": null,
// "purchaseUnitPrice": null,
// "createTime": "2024-03-05 16:55:54",
// "totalQuantities": null,
// "actualId": "11111111",
// "pushQuantities": null,
// "ipmProjectCode": null,
// "ipmContractCode": null,
// "ipmJobCode": null
// }
// ]
// };
if
(
data
.
data
)
{
this
.
$confirm
(
'系统检测到您近一月未进行物料单位换算,是否立即进行换算?'
,
'温馨提示'
,
{
confirmButtonText
:
'立即换算'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
unitConversionList
=
data
.
data
;
this
.
showUnitConversion
=
true
;
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消
删除
'
message
:
'已取消
换算
'
});
});
}
else
if
(
data
.
data
instanceof
Array
)
{
const
_temp
=
data
.
data
;
this
.
$set
(
this
.
dataForm
,
"tableDataList"
,
cloneDeep
(
_temp
));
this
.
originTableDataList
=
cloneDeep
(
_temp
);
this
.
total
=
_temp
.
length
;
}
},
// 复选框回调
selectionChange
(
array
)
{
},
getCurrentType
(
parent
)
{
if
(
parent
.
level
==
2
)
{
...
...
@@ -461,9 +568,76 @@ export default {
fillActualCost
()
{
this
.
showAddActualCost
=
true
;
},
clearStatisticsTimer
()
{
clearTimeout
(
this
.
statisticsTimer
);
this
.
statisticsTimer
=
null
;
},
// 实时统计
statisticsSum
(
value
,
prop
)
{
this
.
clearStatisticsTimer
();
// 填写一秒后触发
this
.
statisticsTimer
=
setTimeout
(()
=>
{
const
sum
=
this
.
sumHandler
(
this
.
dataForm
.
tableDataList
,
prop
,
true
);
// 更新统计值
this
.
$set
(
this
.
dataForm
.
tableDataList
[
0
],
prop
,
sum
);
},
500
);
},
sumHandler
(
dataList
,
prop
,
hasTotal
=
false
)
{
const
reg
=
/^
(?!
0
\d)(?!
0*
\.
0*$
)\d
+
(\.\d
+
)?
$/
;
const
sum
=
dataList
.
reduce
((
pre
,
current
,
index
)
=>
{
if
(
hasTotal
&&
index
==
0
)
return
0
;
const
before
=
Object
.
prototype
.
toString
.
call
(
pre
)
==
"[object Object]"
?
reg
.
test
(
pre
[
prop
])
?
pre
[
prop
]
:
0
:
parseFloat
(
pre
)
?
pre
:
0
;
const
after
=
Object
.
prototype
.
toString
.
call
(
current
)
==
"[object Object]"
?
reg
.
test
(
current
[
prop
])
?
current
[
prop
]
:
0
:
parseFloat
(
current
)
?
current
:
0
;
return
add
(
before
,
after
);
},
0
);
return
sum
;
},
// 保存
saveActualCost
()
{
this
.
$refs
[
"feedSummaryForm"
].
validate
(
async
flag
=>
{
if
(
flag
)
{
// 进行差异化对比
let
resultData
=
this
.
differentCompare
();
console
.
log
(
resultData
,
"差异数据"
);
if
(
!
resultData
.
length
)
{
this
.
resetEditStatus
();
const
params
=
this
.
createRequestConditions
();
await
this
.
getFeedSummaryList
(
params
);
return
;
}
// 有差异提交数据
resultData
=
resultData
.
map
(
item
=>
{
return
{
id
:
item
.
actualId
,
cbQuantitySummaryId
:
item
.
id
,
quantities
:
item
.
quantities
?
item
.
quantities
:
0
,
purchaseUnitPrice
:
item
.
purchaseUnitPrice
?
item
.
purchaseUnitPrice
:
0
,
recordDate
:
this
.
recordDate
};
});
const
result
=
await
updateFeedSummaryRowsApi
(
resultData
);
if
(
result
.
code
==
200
)
{
this
.
$message
.
success
(
"保存成功"
);
await
this
.
init
(
this
.
comProjectDetailInfo
,
this
.
selectActualCostTime
);
await
this
.
editRegionToViewPort
();
}
}
});
},
differentCompare
()
{
const
originData
=
this
.
originTableDataList
;
/**
* @type {Array<object>}
*/
let
data
=
cloneDeep
(
this
.
dataForm
.
tableDataList
);
const
different
=
data
.
filter
((
item
,
index
)
=>
{
if
(
index
==
0
)
return
false
;
const
flag
=
editPropNames
.
some
(
prop
=>
{
return
item
[
prop
]
!=
originData
[
index
][
prop
];
});
return
flag
;
});
return
cloneDeep
(
different
);
},
// 编辑状态下 进行了其它操作
resetEditStatus
()
{
...
...
@@ -472,16 +646,24 @@ export default {
this
.
addActualCostEditStatus
=
false
;
this
.
selectActualCostTime
=
""
;
/**
* 判断 当前需要编辑 或者新增的成本年份是否存在于server返回的month数组中
* 判断 当前需要编辑 或者新增的成本年份是否存在于server返回的month数组中
不存在则删除 该月份 然后 选中当前月
* 默认本月
*/
if
(
!
_selectActualCostTime
)
return
;
if
(
!
this
.
originMonthList
.
includes
(
_selectActualCostTime
)
&&
_selectActualCostTime
!=
this
.
getNowMonth
())
{
const
index
=
this
.
monthList
.
findIndex
(
item
=>
item
.
value
==
_selectActualCostTime
);
if
(
index
!=
-
1
)
{
this
.
monthList
.
splice
(
index
,
1
);
this
.
recordDate
=
this
.
getNowMonth
();
}
}
},
// 重置表格数据
resetTableData
()
{
this
.
$set
(
this
.
dataForm
,
"tableDataList"
,
[]);
this
.
originTableDataList
=
[];
this
.
total
=
0
;
},
async
timeSelect
(
selectTime
)
{
// 编辑状态
this
.
addActualCostEditStatus
=
true
;
...
...
@@ -497,11 +679,10 @@ export default {
value
:
selectTime
});
_temp
=
this
.
monthsSort
(
_temp
);
console
.
log
(
_temp
);
//
console.log(_temp);
this
.
monthList
=
_temp
;
}
this
.
recordDate
=
selectTime
;
this
.
oldRecordDate
=
selectTime
;
params
[
"recordDate"
]
=
selectTime
;
// 获取选中月数据
await
this
.
getFeedSummaryList
(
params
);
...
...
@@ -512,7 +693,7 @@ export default {
await
this
.
$nextTick
();
// 获取编辑列所处位置
const
container
=
document
.
querySelector
(
".el-table__body-wrapper"
);
/**
/**
* @type {HTMLTableCellElement}
*/
const
editElement
=
container
.
querySelector
(
".el-table__row [class *= can-edit-column-]"
);
...
...
@@ -532,7 +713,11 @@ export default {
return
`can-edit-column-
${
property
}
`
;
}
return
""
;
}
},
//关闭单位换算弹窗
handleDialogVisible
()
{
this
.
showUnitConversion
=
false
},
},
}
</
script
>
...
...
@@ -640,6 +825,35 @@ export default {
font-size
:
14px
;
font-weight
:
350
;
}
.inner-edit-input-item
{
margin-bottom
:
0px
;
.el-form-item__content
{
line-height
:
32px
;
}
&
.is-error
{
.el-input__inner
{
&
:focus
{
border-color
:
#ff4949
;
}
}
}
.el-input__inner
{
line-height
:
32px
;
height
:
32px
;
border-radius
:
2px
;
padding-left
:
8px
;
&
:focus
{
border-color
:
#0081ff
;
}
}
.el-input__clear
{
line-height
:
32px
;
}
}
}
}
}
...
...
dsk-operate-ui/src/views/projectCostLedger/detail/components/OtherProjects/index.vue
View file @
42ff28d0
...
...
@@ -55,52 +55,7 @@
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogVisible"
width=
"720px"
append-to-body
class=
"dialogVisible"
title=
"单位换算"
>
<el-tabs
v-model=
"currentList"
@
tab-click=
"handleClickTab"
>
<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=
"type2"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in typeList"
: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
>
...
...
@@ -166,60 +121,9 @@ export default {
nodeName
:
"itemContent"
,
nodeValue
:
"menuId"
,
},
dialogVisible
:
false
,
currentList
:
"type1"
,
toggleTabs
:[
{
value
:
"type1"
,
name
:
"长度"
,
},
{
value
:
"type2"
,
name
:
"面积"
,
},
{
value
:
"type3"
,
name
:
"体积"
,
},
// {
// value: "type4",
// name: "质量",
// },
// {
// value: "type5",
// name: "密度",
// },
],
tableData1
:[],
tableDataTotal1
:
0
,
type1
:
''
,
type2
:
''
,
typeList
:[
{
dictLabel
:
'千米'
,
dictValue
:
'千米'
},
{
dictLabel
:
'米'
,
dictValue
:
'米'
},
{
dictLabel
:
'分米'
,
dictValue
:
'分米'
},
{
dictLabel
:
'厘米'
,
dictValue
:
'厘米'
},
{
dictLabel
:
'毫米'
,
dictValue
:
'毫米'
},
{
dictLabel
:
'微米'
,
dictValue
:
'微米'
},
],
};
},
watch
:
{
...
...
@@ -297,118 +201,7 @@ export default {
sortChange
(){
},
handleClickTab
(
v
){
this
.
type1
=
''
;
this
.
type2
=
''
;
if
(
v
.
label
===
'长度'
){
this
.
typeList
=
[
{
dictLabel
:
'千米'
,
dictValue
:
'千米'
},
{
dictLabel
:
'米'
,
dictValue
:
'米'
},
{
dictLabel
:
'分米'
,
dictValue
:
'分米'
},
{
dictLabel
:
'厘米'
,
dictValue
:
'厘米'
},
{
dictLabel
:
'毫米'
,
dictValue
:
'毫米'
},
{
dictLabel
:
'微米'
,
dictValue
:
'微米'
},
]
}
if
(
v
.
label
===
'面积'
){
this
.
typeList
=
[
{
dictLabel
:
'平方千米'
,
dictValue
:
'平方千米'
},
{
dictLabel
:
'公顷'
,
dictValue
:
'公顷'
},
{
dictLabel
:
'公亩'
,
dictValue
:
'公亩'
},
{
dictLabel
:
'平方米'
,
dictValue
:
'平方米'
},
{
dictLabel
:
'平方分米'
,
dictValue
:
'平方分米'
},
{
dictLabel
:
'平方厘米'
,
dictValue
:
'平方厘米'
},
{
dictLabel
:
'平方毫米'
,
dictValue
:
'平方毫米'
},
]
}
if
(
v
.
label
===
'体积'
){
this
.
typeList
=
[
{
dictLabel
:
'立方千米'
,
dictValue
:
'立方千米'
},
{
dictLabel
:
'立方米'
,
dictValue
:
'立方米'
},
{
dictLabel
:
'立方分米'
,
dictValue
:
'立方分米'
},
{
dictLabel
:
'立方厘米'
,
dictValue
:
'立方厘米'
},
{
dictLabel
:
'立方毫米'
,
dictValue
:
'立方毫米'
},
{
dictLabel
:
'升'
,
dictValue
:
'升'
},
{
dictLabel
:
'分升'
,
dictValue
:
'分升'
},
{
dictLabel
:
'毫升'
,
dictValue
:
'毫升'
},
{
dictLabel
:
'微升'
,
dictValue
:
'微升'
},
{
dictLabel
:
'厘升'
,
dictValue
:
'厘升'
},
{
dictLabel
:
'公石'
,
dictValue
:
'公石'
},
]
}
},
},
}
</
script
>
...
...
@@ -436,43 +229,4 @@ export default {
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
>
dsk-operate-ui/src/views/projectCostLedger/detail/components/ProjectSideMenu/index.vue
View file @
42ff28d0
...
...
@@ -142,6 +142,7 @@ export default {
this
.
$emit
(
"close"
,
menuPath
,
menuPathArray
);
},
menuSelect
(
menuPath
)
{
if
(
this
.
comDefaultActive
==
menuPath
)
return
;
const
result
=
this
.
getCurrentData
(
menuPath
);
this
.
$emit
(
"select"
,
menuPath
,
result
);
},
...
...
dsk-operate-ui/src/views/projectCostLedger/detail/index.vue
View file @
42ff28d0
...
...
@@ -198,8 +198,6 @@ export default {
const
detail
=
await
getProjectDetailApi
(
projectId
);
if
(
detail
.
code
==
200
&&
detail
.
data
)
{
if
(
detail
.
data
.
id
)
detail
.
data
[
"projectId"
]
=
detail
.
data
.
id
;
// detail.data["projectId"] = "1754425038355890177";
// detail.data["cbStage"] = 0;
this
.
detailInfo
=
detail
.
data
;
}
}
catch
(
error
)
{
...
...
dsk-operate-ui/src/views/projectCostLedger/index.vue
View file @
42ff28d0
...
...
@@ -390,7 +390,7 @@
//查看进度
detailpro
(
row
){
this
.
uploadData
=
row
this
.
prodetail
=
true
this
.
prodetail
=
false
//状态不管是否查看,目前手动设置为可修改
this
.
isupload
=
true
},
//删除项目
...
...
dsk-operate-ui/src/views/projectCostLedger/upload/index.vue
View file @
42ff28d0
...
...
@@ -290,7 +290,6 @@
this
.
formdata
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
uploadData
))
this
.
formdata
.
cbStage
=
this
.
formdata
.
cbStage
.
toString
()
this
.
getDetail
()
console
.
log
(
this
.
formdata
)
},
methods
:{
importdata
(){
...
...
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