Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ems3.3
Project
Project
Details
Activity
Releases
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
wuhao
ems3.3
Commits
24e9a501
Commit
24e9a501
authored
Sep 14, 2023
by
左玲玲
😬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
租赁合同,租赁台账的跳转,费用分析
parent
39a4ab8a
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
188 additions
and
56 deletions
+188
-56
app.jsx
src/app.jsx
+7
-7
index.jsx
src/components/AutoTable/index.jsx
+1
-12
mtable.jsx
src/components/AutoTable/mtable.jsx
+2
-1
index.jsx
src/components/TagView/Tags/index.jsx
+2
-2
Details.jsx
src/pages/lease/contract/Details.jsx
+8
-8
Devices.jsx
src/pages/lease/contract/Devices.jsx
+8
-3
columns.js
src/pages/lease/contract/columns.js
+4
-4
index.jsx
src/pages/lease/contract/index.jsx
+30
-9
Leaseterminformation.jsx
src/pages/lease/costanalysis/Leaseterminformation.jsx
+12
-4
columns.js
src/pages/lease/costanalysis/columns.js
+6
-0
index.jsx
src/pages/lease/costanalysis/index.jsx
+100
-5
Leaseresume.jsx
src/pages/lease/ledger/Leaseresume.jsx
+8
-1
No files found.
src/app.jsx
View file @
24e9a501
...
@@ -98,11 +98,11 @@ export const layout = ({ initialState, setInitialState }) => {
...
@@ -98,11 +98,11 @@ export const layout = ({ initialState, setInitialState }) => {
},
},
links
:
isDev
links
:
isDev
?
[
?
[
<
Link
key=
"openapi"
to=
"/umi/plugin/openapi"
target=
"_blank"
>
<
Link
key=
"openapi"
to=
"/umi/plugin/openapi"
target=
"_blank"
>
<
LinkOutlined
/>
<
LinkOutlined
/>
<
span
>
OpenAPI 文档
</
span
>
<
span
>
OpenAPI 文档
</
span
>
</
Link
>,
</
Link
>,
]
]
:
[],
:
[],
//接口获取菜单数据
//接口获取菜单数据
menu
:
{
menu
:
{
...
@@ -112,8 +112,8 @@ export const layout = ({ initialState, setInitialState }) => {
...
@@ -112,8 +112,8 @@ export const layout = ({ initialState, setInitialState }) => {
},
},
request
:
(
params
,
defaultMenuData
)
=>
{
request
:
(
params
,
defaultMenuData
)
=>
{
let
lastArr
=
initialState
?.
newMenu
?.
userHavePermList
let
lastArr
=
initialState
?.
newMenu
?.
userHavePermList
?
JSON
.
parse
(
JSON
.
stringify
(
initialState
?.
newMenu
?.
userHavePermList
))
?
JSON
.
parse
(
JSON
.
stringify
(
initialState
?.
newMenu
?.
userHavePermList
))
:
[],
:
[],
newArr
=
[
newArr
=
[
{
{
path
:
'/welcome'
,
path
:
'/welcome'
,
...
...
src/components/AutoTable/index.jsx
View file @
24e9a501
...
@@ -16,19 +16,8 @@ export default (props) => {
...
@@ -16,19 +16,8 @@ export default (props) => {
childposition
=
childposition
??
'left'
;
childposition
=
childposition
??
'left'
;
const
actionbtn
=
{
const
actionbtn
=
{
add
:
<
PremButton
{
...
props
?
.
addconfig
}
>
{
props
?.
addconfig
?.
name
||
'新增'
}
</
PremButton
>,
add
:
<
PremButton
{
...
props
?
.
addconfig
}
>
{
props
?.
addconfig
?.
name
||
'新增'
}
</
PremButton
>,
export
:
(
export
:
<
PremButton
{
...
props
?
.
exportconfig
}
>
{
props
?.
exportconfig
?.
name
||
'导出'
}
</
PremButton
>,
<
PremButton
{
...
props
?
.
exportconfig
}
btn=
{
{
...
props
.
exportconfig
,
icon
:
<
ExportOutlined
/>,
}
}
>
导出
</
PremButton
>
),
};
};
//右上角 pageextra 类型 1.reactDom 2.string 以逗号隔开 为none时不显示
//右上角 pageextra 类型 1.reactDom 2.string 以逗号隔开 为none时不显示
const
renderextra
=
()
=>
{
const
renderextra
=
()
=>
{
if
(
props
.
pageextra
&&
!
isString
(
props
.
pageextra
))
{
if
(
props
.
pageextra
&&
!
isString
(
props
.
pageextra
))
{
...
...
src/components/AutoTable/mtable.jsx
View file @
24e9a501
...
@@ -58,8 +58,8 @@ const Mtable = (props) => {
...
@@ -58,8 +58,8 @@ const Mtable = (props) => {
const
request
=
async
(
params
,
sort
,
filter
)
=>
{
const
request
=
async
(
params
,
sort
,
filter
)
=>
{
if
(
!
path
)
return
;
if
(
!
path
)
return
;
let
newparams
=
{
let
newparams
=
{
...
params
,
...
extraparams
,
//父组件传参
...
extraparams
,
//父组件传参
...
params
,
pageIndex
:
params
.
current
,
pageIndex
:
params
.
current
,
pageSize
:
params
.
pageSize
||
pageSize
,
pageSize
:
params
.
pageSize
||
pageSize
,
};
};
...
@@ -368,6 +368,7 @@ const Mtable = (props) => {
...
@@ -368,6 +368,7 @@ const Mtable = (props) => {
{
...
datas
}
{
...
datas
}
size=
{
size
}
size=
{
size
}
onSubmit=
{
(
params
)
=>
{
onSubmit=
{
(
params
)
=>
{
console
.
log
(
params
);
let
newparams
=
{},
let
newparams
=
{},
curkey
=
Object
.
keys
(
params
)[
Object
.
keys
(
params
).
length
-
1
],
curkey
=
Object
.
keys
(
params
)[
Object
.
keys
(
params
).
length
-
1
],
curval
=
Object
.
values
(
params
)[
Object
.
keys
(
params
).
length
-
1
];
curval
=
Object
.
values
(
params
)[
Object
.
keys
(
params
).
length
-
1
];
...
...
src/components/TagView/Tags/index.jsx
View file @
24e9a501
...
@@ -56,7 +56,7 @@ const Tags = ({ tagList, closeTag, closeAllTag, closeOtherTag, refreshTag, home
...
@@ -56,7 +56,7 @@ const Tags = ({ tagList, closeTag, closeAllTag, closeOtherTag, refreshTag, home
key=
{
item
.
path
}
key=
{
item
.
path
}
className=
{
item
.
active
?
`${styles.item} ${styles.active}`
:
styles
.
item
}
className=
{
item
.
active
?
`${styles.item} ${styles.active}`
:
styles
.
item
}
onClick=
{
()
=>
history
.
push
({
pathname
:
item
.
path
,
query
:
item
.
query
})
}
onClick=
{
()
=>
history
.
push
({
pathname
:
item
.
path
,
query
:
item
.
query
})
}
onContextMenu=
{
(
e
)
=>
openContextMenu
(
e
,
item
)
}
onContextMenu=
{
(
e
)
=>
openContextMenu
(
e
,
{
...
item
,
currentIndex
:
i
}
)
}
>
>
<
span
>
{
item
.
title
}
</
span
>
<
span
>
{
item
.
title
}
</
span
>
{
i
!==
0
&&
(
{
i
!==
0
&&
(
...
@@ -85,7 +85,7 @@ const Tags = ({ tagList, closeTag, closeAllTag, closeOtherTag, refreshTag, home
...
@@ -85,7 +85,7 @@ const Tags = ({ tagList, closeTag, closeAllTag, closeOtherTag, refreshTag, home
>
>
刷新
刷新
</
li
>
</
li
>
{
currentTag
.
path
!=
home
&&
(
{
currentTag
.
path
!=
home
&&
currentTag
.
currentIndex
!=
0
&&
(
<
li
<
li
onClick=
{
()
=>
{
onClick=
{
()
=>
{
setMenuVisible
(
false
);
setMenuVisible
(
false
);
...
...
src/pages/lease/contract/Details.jsx
View file @
24e9a501
...
@@ -3,7 +3,7 @@ import { Tooltip, Tabs } from 'antd';
...
@@ -3,7 +3,7 @@ import { Tooltip, Tabs } from 'antd';
import
Filedetail
from
"@/components/Filedetail"
;
import
Filedetail
from
"@/components/Filedetail"
;
import
DetailPro
from
'@/components/DetailPro'
;
import
DetailPro
from
'@/components/DetailPro'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
{
history
}
from
'@umijs/max'
;
import
{
useNavigate
}
from
'@umijs/max'
;
const
fields
=
[
const
fields
=
[
{
{
title
:
'合同单号'
,
title
:
'合同单号'
,
...
@@ -180,8 +180,10 @@ const fields = [
...
@@ -180,8 +180,10 @@ const fields = [
return
<
Filedetail
files=
{
row
?.[
'refundFileList'
]
}
/>
return
<
Filedetail
files=
{
row
?.[
'refundFileList'
]
}
/>
}
}
},
},
],
];
columns
=
[
const
Details
=
({
drawer
})
=>
{
const
navigator
=
useNavigate
();
const
columns
=
[
{
{
title
:
'设备编号'
,
title
:
'设备编号'
,
dataIndex
:
'equipmentNo'
,
dataIndex
:
'equipmentNo'
,
...
@@ -198,13 +200,12 @@ const fields = [
...
@@ -198,13 +200,12 @@ const fields = [
<
a
<
a
className=
"table-cell"
className=
"table-cell"
onClick=
{
()
=>
{
onClick=
{
()
=>
{
history
.
push
({
navigator
(
'/lease/costanalysis'
,
{
path
:
'/lease/costanalysis'
,
state
:
{
query
:
{
pageStatus
:
row
.
pageStatus
,
pageStatus
:
row
.
pageStatus
,
extraparams
:
{
extraparams
:
{
contractId
:
row
.
contractId
,
contractId
:
row
.
contractId
,
equipmentId
:
row
.
i
d
equipmentId
:
row
.
equipmentI
d
}
}
}
}
})
})
...
@@ -265,7 +266,6 @@ const fields = [
...
@@ -265,7 +266,6 @@ const fields = [
hideInSearch
:
true
hideInSearch
:
true
},
},
];
];
const
Details
=
({
drawer
})
=>
{
const
items
=
useMemo
(()
=>
{
const
items
=
useMemo
(()
=>
{
return
[
return
[
{
{
...
...
src/pages/lease/contract/Devices.jsx
View file @
24e9a501
...
@@ -3,7 +3,6 @@ import { Tooltip, Tabs } from 'antd';
...
@@ -3,7 +3,6 @@ import { Tooltip, Tabs } from 'antd';
import
Filedetail
from
"@/components/Filedetail"
;
import
Filedetail
from
"@/components/Filedetail"
;
import
DetailPro
from
'@/components/DetailPro'
;
import
DetailPro
from
'@/components/DetailPro'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
{
history
}
from
'@umijs/max'
;
const
columns
=
[
const
columns
=
[
{
{
title
:
'设备编号'
,
title
:
'设备编号'
,
...
@@ -52,8 +51,14 @@ const columns = [
...
@@ -52,8 +51,14 @@ const columns = [
{
{
title
:
'采集状态'
,
title
:
'采集状态'
,
dataIndex
:
'collectStatusName'
,
dataIndex
:
'collectStatusName'
,
key
:
'collectStatusName'
,
key
:
'collectStatus'
,
hideInSearch
:
true
valueType
:
'select'
,
options
:
[
{
label
:
'工作'
,
value
:
1
},
{
label
:
'待机'
,
value
:
2
},
{
label
:
'关机'
,
value
:
3
},
{
label
:
'报警'
,
value
:
4
}
]
},
},
];
];
const
Devices
=
({
drawer
})
=>
{
const
Devices
=
({
drawer
})
=>
{
...
...
src/pages/lease/contract/columns.js
View file @
24e9a501
import
{
Tooltip
,
Image
}
from
'antd'
;
import
{
Tooltip
,
Image
}
from
'antd'
;
import
Filedetail
from
"@/components/Filedetail"
;
import
Filedetail
from
"@/components/Filedetail"
;
function
getcolumns
(
setdrawer
,
drawer
)
{
function
getcolumns
(
setdrawer
,
valtype
,
itemId
)
{
let
common
=
[
let
common
=
[
{
{
title
:
'合同单号'
,
title
:
'合同单号'
,
...
@@ -175,7 +175,7 @@ function getcolumns(setdrawer, drawer) {
...
@@ -175,7 +175,7 @@ function getcolumns(setdrawer, drawer) {
},
},
options
:
{
options
:
{
path
:
'/lease/umLeaseLedger/queryLedgerSelectbox'
,
path
:
'/lease/umLeaseLedger/queryLedgerSelectbox'
,
params
:
drawer
?.
val
==
'add'
?
{}
:
{
contractId
:
drawer
?.
item
?.
i
d
},
params
:
valtype
==
'add'
?
{}
:
{
contractId
:
itemI
d
},
},
},
},
},
{
{
...
@@ -302,7 +302,7 @@ function getcolumns(setdrawer, drawer) {
...
@@ -302,7 +302,7 @@ function getcolumns(setdrawer, drawer) {
hideInSearch
:
true
,
hideInSearch
:
true
,
hideInTable
:
true
,
hideInTable
:
true
,
valueType
:
'select'
,
valueType
:
'select'
,
options
:
{
path
:
'/lease/umContract/querySelect'
,
params
:
{}
},
options
:
{
path
:
'/lease/umContract/querySelect'
,
params
:
{
id
:
valtype
==
'edit'
?
itemId
:
''
}
},
},
},
{
{
title
:
'合同负责人'
,
title
:
'合同负责人'
,
...
@@ -325,7 +325,7 @@ function getcolumns(setdrawer, drawer) {
...
@@ -325,7 +325,7 @@ function getcolumns(setdrawer, drawer) {
},
},
colProps
:
{
span
:
24
},
colProps
:
{
span
:
24
},
render
:
(
_
,
row
)
=>
{
render
:
(
_
,
row
)
=>
{
return
<
Filedetail
files
=
{
drawer
?.
val
==
'only'
?
row
?.[
'contractFileList'
]
:
(
row
?.[
'contractFileList'
]?.[
0
]
?
[
row
?.[
'contractFileList'
]?.[
0
]]
:
[])}
/
>
return
<
Filedetail
files
=
{
valtype
==
'only'
?
row
?.[
'contractFileList'
]
:
(
row
?.[
'contractFileList'
]?.[
0
]
?
[
row
?.[
'contractFileList'
]?.[
0
]]
:
[])}
/
>
}
}
}
}
];
];
...
...
src/pages/lease/contract/index.jsx
View file @
24e9a501
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
*/
*/
import
*
as
React
from
'react'
;
import
*
as
React
from
'react'
;
import
{
useState
,
useMemo
,
useRef
}
from
'react'
;
import
{
useState
,
useMemo
,
useRef
,
useEffect
}
from
'react'
;
import
DrawerPro
from
'@/components/DrawerPro'
;
import
DrawerPro
from
'@/components/DrawerPro'
;
import
AutoTable
from
'@/components/AutoTable'
;
import
AutoTable
from
'@/components/AutoTable'
;
import
FormTable
from
"@/components/AutoTable/mtable"
;
import
FormTable
from
"@/components/AutoTable/mtable"
;
...
@@ -19,6 +19,7 @@ import Detail from '@/components/RepaireDetail/Detail';
...
@@ -19,6 +19,7 @@ import Detail from '@/components/RepaireDetail/Detail';
import
dayjs
from
'dayjs'
;
import
dayjs
from
'dayjs'
;
import
Details
from
"./Details"
;
import
Details
from
"./Details"
;
import
Devices
from
"./Devices"
;
import
Devices
from
"./Devices"
;
import
{
useLocation
}
from
'@umijs/max'
;
const
formCommonColumns
=
[
const
formCommonColumns
=
[
{
{
title
:
'是否可操作'
,
title
:
'是否可操作'
,
...
@@ -92,14 +93,17 @@ const formCommonColumns = [
...
@@ -92,14 +93,17 @@ const formCommonColumns = [
}
}
];
];
function
Contract
(
props
)
{
function
Contract
(
props
)
{
const
{
state
}
=
useLocation
();
let
actionRef
=
useRef
(),
let
actionRef
=
useRef
(),
formRef
=
useRef
();
formRef
=
useRef
(),
tableRef
=
useRef
();
const
[
drawer
,
setdrawer
]
=
useState
({
const
[
drawer
,
setdrawer
]
=
useState
({
open
:
false
,
open
:
false
,
}),
}),
[
activeTabKey
,
setactiveTabKey
]
=
useState
(
'1'
),
[
activeTabKey
,
setactiveTabKey
]
=
useState
(
'1'
),
[
amount
,
camount
]
=
useState
(
0
),
[
amount
,
camount
]
=
useState
(
0
),
[
intelligenceList
,
cil
]
=
useState
([]);
[
intelligenceList
,
cil
]
=
useState
([]),
[
flag
,
cflag
]
=
useState
(
false
);
const
{
run
,
loading
,
runAsync
}
=
useRequest
(
doFetch
,
{
const
{
run
,
loading
,
runAsync
}
=
useRequest
(
doFetch
,
{
manual
:
true
,
manual
:
true
,
...
@@ -452,11 +456,13 @@ function Contract(props) {
...
@@ -452,11 +456,13 @@ function Contract(props) {
btn=
{
{
btn=
{
{
size
:
'small'
,
size
:
'small'
,
onClick
:
async
()
=>
{
onClick
:
async
()
=>
{
let
res
=
await
doFetch
({
url
:
'/lease/umContractEquipment/queryBeforeEndOrHandle'
,
params
:
{
contractId
:
row
.
id
}
});
let
res
=
await
doFetch
({
url
:
'/lease/umContractEquipment/queryBeforeEndOrHandle'
,
params
:
{
contractId
:
row
.
id
}
}),
res2
=
await
doFetch
({
url
:
'/lease/umContract/queryBeforeHandle'
,
params
:
{
id
:
row
.
id
}
});
setdrawer
((
s
)
=>
({
setdrawer
((
s
)
=>
({
...
s
,
...
s
,
open
:
true
,
open
:
true
,
item
:
{
...
row
,
deviceList
:
res
?.
data
?.
dataList
??
[]
},
item
:
{
...
row
,
deviceList
:
res
?.
data
?.
dataList
??
[]
,
refund
:
res2
?.
data
?.
data
?.
value
},
val
:
'handle'
,
val
:
'handle'
,
title
:
'处理'
,
title
:
'处理'
,
fields
:
[
fields
:
[
...
@@ -498,10 +504,22 @@ function Contract(props) {
...
@@ -498,10 +504,22 @@ function Contract(props) {
</
PremButton
>
</
PremButton
>
]
]
}
}
useEffect
(()
=>
{
if
(
state
)
{
cflag
(
false
)
if
(
state
.
isFinish
==
1
)
{
setactiveTabKey
(
'1'
)
}
else
{
setactiveTabKey
(
'2'
)
}
setTimeout
(()
=>
{
tableRef
?.
current
?.
setFieldsValue
({
'contractNo'
:
state
.
contractNo
});
},
500
)
}
},
[
state
])
const
columns
=
useMemo
(()
=>
{
const
columns
=
useMemo
(()
=>
{
let
defcolumn
=
getcolumns
(
setdrawer
,
drawer
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
columns
;
let
defcolumn
=
getcolumns
(
setdrawer
,
drawer
?.
val
,
drawer
?.
item
?.
id
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
columns
;
let
defpath
=
getcolumns
(
setdrawer
,
drawer
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
pathconfig
??
{};
let
defpath
=
getcolumns
(
setdrawer
,
drawer
?.
val
,
drawer
?.
item
?.
id
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
pathconfig
??
{};
if
(
activeTabKey
==
1
)
{
if
(
activeTabKey
==
1
)
{
return
defcolumn
.
concat
({
return
defcolumn
.
concat
({
title
:
'操作'
,
title
:
'操作'
,
...
@@ -512,7 +530,7 @@ function Contract(props) {
...
@@ -512,7 +530,7 @@ function Contract(props) {
}
else
{
}
else
{
return
defcolumn
;
return
defcolumn
;
}
}
},
[
activeTabKey
,
drawer
]);
},
[
activeTabKey
,
drawer
?.
val
,
drawer
?.
item
?.
id
]);
const
pathconfig
=
useMemo
(()
=>
{
const
pathconfig
=
useMemo
(()
=>
{
let
defpath
=
getcolumns
(
setdrawer
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
pathconfig
??
{};
let
defpath
=
getcolumns
(
setdrawer
).
filter
((
it
)
=>
it
.
key
==
activeTabKey
)[
0
]?.
pathconfig
??
{};
...
@@ -593,7 +611,10 @@ function Contract(props) {
...
@@ -593,7 +611,10 @@ function Contract(props) {
activeTabKey=
{
activeTabKey
}
activeTabKey=
{
activeTabKey
}
onTabChange=
{
(
key
)
=>
{
onTabChange=
{
(
key
)
=>
{
setactiveTabKey
(
key
);
setactiveTabKey
(
key
);
cflag
(
true
);
}
}
}
}
formRef=
{
tableRef
}
extraparams=
{
state
?.
contractNo
&&
!
flag
?
{
'contractNo'
:
state
?.
contractNo
}
:
{}
}
/>
/>
<
DrawerPro
<
DrawerPro
{
...
drawer
}
{
...
drawer
}
...
...
src/pages/lease/costanalysis/Leaseterminformation.jsx
View file @
24e9a501
...
@@ -6,6 +6,11 @@ import { Tooltip } from "antd";
...
@@ -6,6 +6,11 @@ import { Tooltip } from "antd";
import
Filedetail
from
"@/components/Filedetail"
;
import
Filedetail
from
"@/components/Filedetail"
;
import
{
doFetch
,
exportFetch
}
from
'@/utils/doFetch'
;
import
{
doFetch
,
exportFetch
}
from
'@/utils/doFetch'
;
import
{
message
}
from
"antd"
;
import
{
message
}
from
"antd"
;
const
statusColor
=
{
1
:
'#00bce4'
,
2
:
'#7ac143'
,
3
:
'#6a737b'
}
const
commona
=
[
const
commona
=
[
{
{
title
:
'当期金额'
,
title
:
'当期金额'
,
...
@@ -29,7 +34,10 @@ const commona = [
...
@@ -29,7 +34,10 @@ const commona = [
title
:
'状态'
,
title
:
'状态'
,
dataIndex
:
'statusName'
,
dataIndex
:
'statusName'
,
key
:
'statusName'
,
key
:
'statusName'
,
search
:
false
search
:
false
,
render
:
(
_
,
row
)
=>
{
return
<
span
style=
{
{
color
:
statusColor
[
row
.
status
]
}
}
>
{
row
.
statusName
}
</
span
>
}
}
}
],
],
commonb
=
[
commonb
=
[
...
@@ -114,10 +122,10 @@ const commona = [
...
@@ -114,10 +122,10 @@ const commona = [
},
},
{
{
title
:
'相关文件'
,
title
:
'相关文件'
,
dataIndex
:
'reduceFile
File
List'
,
dataIndex
:
'reduceFileList'
,
key
:
'reduceFile
File
List'
,
key
:
'reduceFileList'
,
render
:
(
_
,
row
)
=>
{
render
:
(
_
,
row
)
=>
{
return
<
Filedetail
files=
{
row
?.[
'reduceFile
File
List'
]
}
/>
return
<
Filedetail
files=
{
row
?.[
'reduceFileList'
]
}
/>
}
}
},
},
{
{
...
...
src/pages/lease/costanalysis/columns.js
View file @
24e9a501
...
@@ -90,6 +90,12 @@ function getcolumns(setdrawer, activeKey) {
...
@@ -90,6 +90,12 @@ function getcolumns(setdrawer, activeKey) {
key
:
'collectionPrice'
,
key
:
'collectionPrice'
,
hideInSearch
:
true
hideInSearch
:
true
},
},
{
title
:
'租金减免金额'
,
dataIndex
:
'reducePrice'
,
key
:
'reducePrice'
,
hideInSearch
:
true
},
{
{
title
:
'逾期次数'
,
title
:
'逾期次数'
,
dataIndex
:
'overdueNum'
,
dataIndex
:
'overdueNum'
,
...
...
src/pages/lease/costanalysis/index.jsx
View file @
24e9a501
...
@@ -3,18 +3,21 @@ import DrawerPro from '@/components/DrawerPro';
...
@@ -3,18 +3,21 @@ import DrawerPro from '@/components/DrawerPro';
import
AutoTable
from
'@/components/AutoTable'
;
import
AutoTable
from
'@/components/AutoTable'
;
import
PremButton
from
'@/components/PremButton'
;
import
PremButton
from
'@/components/PremButton'
;
import
getcolumns
from
'./columns'
;
import
getcolumns
from
'./columns'
;
import
{
doFetch
}
from
'@/utils/doFetch'
;
import
{
doFetch
,
exportFetch
}
from
'@/utils/doFetch'
;
import
{
useRequest
}
from
"ahooks"
;
import
{
useRequest
}
from
"ahooks"
;
import
{
Divider
,
Tabs
,
ProDescriptions
,
message
}
from
"antd"
;
import
{
Divider
,
Tabs
,
ProDescriptions
,
message
}
from
"antd"
;
import
dayjs
from
'dayjs'
;
import
dayjs
from
'dayjs'
;
import
Leaseterminformation
from
"./Leaseterminformation"
;
import
Leaseterminformation
from
"./Leaseterminformation"
;
import
{
useLocation
}
from
'@umijs/max'
;
const
Costanalysis
=
()
=>
{
const
Costanalysis
=
()
=>
{
const
{
pathname
,
state
}
=
useLocation
();
let
actionRef
=
useRef
(),
formRef
=
useRef
(),
boxRef
=
useRef
();
let
actionRef
=
useRef
(),
formRef
=
useRef
(),
boxRef
=
useRef
();
const
[
drawer
,
setdrawer
]
=
useState
({
const
[
drawer
,
setdrawer
]
=
useState
({
open
:
false
,
open
:
false
,
}),
}),
[
extraparams
,
setextraparams
]
=
useState
({}),
[
extraparams
,
setextraparams
]
=
useState
({}),
[
activeKey
,
catk
]
=
useState
(
'item-1'
);
[
activeKey
,
catk
]
=
useState
(
'item-1'
),
[
searchParams
,
csearch
]
=
useState
({});
const
{
run
,
loading
,
runAsync
}
=
useRequest
(
doFetch
,
{
const
{
run
,
loading
,
runAsync
}
=
useRequest
(
doFetch
,
{
manual
:
true
,
manual
:
true
,
onSuccess
:
(
res
,
params
)
=>
{
onSuccess
:
(
res
,
params
)
=>
{
...
@@ -28,6 +31,7 @@ const Costanalysis = () => {
...
@@ -28,6 +31,7 @@ const Costanalysis = () => {
},
},
});
});
const
columns
=
useMemo
(()
=>
{
const
columns
=
useMemo
(()
=>
{
csearch
({});
let
defcolumn
=
getcolumns
(
setdrawer
,
activeKey
)?.
filter
(
it
=>
it
.
key
==
activeKey
)?.[
0
]?.
columns
??
[];
let
defcolumn
=
getcolumns
(
setdrawer
,
activeKey
)?.
filter
(
it
=>
it
.
key
==
activeKey
)?.[
0
]?.
columns
??
[];
return
defcolumn
.
concat
({
return
defcolumn
.
concat
({
title
:
'操作'
,
title
:
'操作'
,
...
@@ -70,6 +74,7 @@ const Costanalysis = () => {
...
@@ -70,6 +74,7 @@ const Costanalysis = () => {
fieldProps
:
{
fieldProps
:
{
disabled
:
true
disabled
:
true
},
},
valueType
:
'digit'
,
colProps
:
{
span
:
8
},
colProps
:
{
span
:
8
},
},
},
{
{
...
@@ -105,8 +110,42 @@ const Costanalysis = () => {
...
@@ -105,8 +110,42 @@ const Costanalysis = () => {
key=
'reduction'
key=
'reduction'
btn=
{
{
btn=
{
{
size
:
'small'
,
size
:
'small'
,
onClick
:
async
()
=>
{
onClick
:
()
=>
{
setdrawer
((
s
)
=>
({
...
s
,
open
:
true
,
item
:
{
...
row
,
reducePrice
:
null
},
val
:
'reduction'
,
title
:
'租金减免'
,
fields
:
[
{
title
:
'当前减免金额(元)'
,
dataIndex
:
'reducePrice'
,
key
:
'reducePrice'
,
valueType
:
'digit'
,
colProps
:
{
span
:
8
},
precision
:
0
,
formItemProps
:
{
rules
:
[{
required
:
true
,
message
:
'此项为必填项'
}]
}
},
{
title
:
'减免情况说明'
,
dataIndex
:
'reduceRemark'
,
key
:
'reduceRemark'
,
valueType
:
'textarea'
,
colProps
:
{
span
:
24
},
},
{
title
:
'附件上传'
,
dataIndex
:
'reduceFileList'
,
key
:
'reduceFileList'
,
valueType
:
'uploadBtn'
,
fieldProps
:
{
limit
:
1
,
},
colProps
:
{
span
:
24
}
}
]
}));
},
},
}
}
}
}
>
>
...
@@ -117,7 +156,29 @@ const Costanalysis = () => {
...
@@ -117,7 +156,29 @@ const Costanalysis = () => {
btn=
{
{
btn=
{
{
size
:
'small'
,
size
:
'small'
,
onClick
:
async
()
=>
{
onClick
:
async
()
=>
{
let
res
=
await
doFetch
({
url
:
'/lease/umContractEquipment/queryBeforeInvoicing'
,
params
:
{
id
:
row
.
id
}
});
if
(
res
?.
data
?.
data
?.
openNum
==
0
)
{
message
.
warning
(
'该设备已无需要开票的租期,无需开票记录!'
)
}
else
{
setdrawer
((
s
)
=>
({
...
s
,
open
:
true
,
item
:
{
...
row
,
openNum
:
null
},
val
:
'invoicing'
,
title
:
'开票记录'
,
fields
:
[
{
title
:
'开票期数'
,
dataIndex
:
'openNum'
,
key
:
'openNum'
,
valueType
:
'digit'
,
colProps
:
{
span
:
8
},
precision
:
0
,
formItemProps
:
{
rules
:
[{
required
:
true
,
message
:
'此项为必填项'
}]
}
}
]
}));
}
},
},
}
}
}
}
>
>
...
@@ -125,6 +186,12 @@ const Costanalysis = () => {
...
@@ -125,6 +186,12 @@ const Costanalysis = () => {
</
PremButton
>
</
PremButton
>
]
]
};
};
useEffect
(()
=>
{
if
(
state
)
{
catk
(
state
.
pageStatus
==
1
?
'item-1'
:
'item-2'
);
setextraparams
(
state
.
extraparams
);
}
},
[
state
])
return
<
div
ref=
{
boxRef
}
>
return
<
div
ref=
{
boxRef
}
>
<
AutoTable
<
AutoTable
...
@@ -138,9 +205,24 @@ const Costanalysis = () => {
...
@@ -138,9 +205,24 @@ const Costanalysis = () => {
extraparams=
{
extraparams
}
extraparams=
{
extraparams
}
onTabChange=
{
(
key
)
=>
{
onTabChange=
{
(
key
)
=>
{
catk
(
key
);
catk
(
key
);
setextraparams
({})
}
}
}
}
activeTabKey=
{
activeKey
}
activeTabKey=
{
activeKey
}
tabList=
{
getcolumns
()
}
tabList=
{
getcolumns
()
}
pageextra=
{
'export'
}
formRef=
{
formRef
}
dataSourceFieldsChange=
{
(
vals
)
=>
{
csearch
(
vals
)
}
}
exportconfig=
{
{
btn
:
{
type
:
'primary'
,
onClick
:
async
()
=>
{
message
.
warning
(
'导出中,请稍后'
);
await
exportFetch
({
url
:
activeKey
==
'item-1'
?
'/lease/umContractEquipment/exportExcelNoAnalysis'
:
'/lease/umContractEquipment/exportExcelYesAnalysis'
,
params
:
{
...
extraparams
,
...
searchParams
}
});
}
}
}
}
/>
/>
...
@@ -156,6 +238,19 @@ const Costanalysis = () => {
...
@@ -156,6 +238,19 @@ const Costanalysis = () => {
open
:
false
,
open
:
false
,
}));
}));
}
}
}
}
onValuesChange=
{
(
changedValues
,
allValues
)
=>
{
}
}
onFinish=
{
async
(
vals
)
=>
{
let
newVals
=
JSON
.
parse
(
JSON
.
stringify
(
vals
));
if
(
drawer
?.
val
==
'confirm'
)
{
await
runAsync
({
url
:
'/lease/umContractEquipment/collection'
,
params
:
{
collNum
:
newVals
.
collNum
,
collType
:
newVals
.
collType
,
id
:
drawer
?.
item
?.
id
}
});
}
else
if
(
drawer
?.
val
==
'reduction'
)
{
await
runAsync
({
url
:
'/lease/umContractEquipment/exemption'
,
params
:
{
...
newVals
,
id
:
drawer
?.
item
?.
id
}
});
}
else
if
(
drawer
?.
val
==
'invoicing'
)
{
await
runAsync
({
url
:
'/lease/umContractEquipment/invoicing'
,
params
:
{
...
newVals
,
id
:
drawer
?.
item
?.
id
}
});
}
}
}
>
>
<
Leaseterminformation
drawer=
{
drawer
}
boxRef=
{
boxRef
}
/>
<
Leaseterminformation
drawer=
{
drawer
}
boxRef=
{
boxRef
}
/>
</
DrawerPro
>
</
DrawerPro
>
...
...
src/pages/lease/ledger/Leaseresume.jsx
View file @
24e9a501
...
@@ -2,7 +2,9 @@ import React, { useMemo } from 'react';
...
@@ -2,7 +2,9 @@ import React, { useMemo } from 'react';
import
DetailPro
from
'@/components/DetailPro'
;
import
DetailPro
from
'@/components/DetailPro'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
AutoTable
from
'@/components/AutoTable/mtable'
;
import
{
Tooltip
}
from
"antd"
;
import
{
Tooltip
}
from
"antd"
;
import
{
useNavigate
,
history
}
from
'@umijs/max'
;
const
Leaseresume
=
({
setdrawer
,
drawer
})
=>
{
const
Leaseresume
=
({
setdrawer
,
drawer
})
=>
{
const
navigator
=
useNavigate
();
const
columns
=
[
const
columns
=
[
{
{
title
:
'客户名称'
,
title
:
'客户名称'
,
...
@@ -31,7 +33,12 @@ const Leaseresume = ({ setdrawer, drawer }) => {
...
@@ -31,7 +33,12 @@ const Leaseresume = ({ setdrawer, drawer }) => {
<
a
<
a
className=
"table-cell"
className=
"table-cell"
onClick=
{
()
=>
{
onClick=
{
()
=>
{
navigator
(
'/lease/contract'
,
{
state
:
{
isFinish
:
row
.
isFinish
,
contractNo
:
row
.
businessNo
}
})
}
}
}
}
>
>
{
row
.
businessNo
}
{
row
.
businessNo
}
...
...
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