Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
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
陈智峰
jinfa-platform
Commits
df468bf6
Commit
df468bf6
authored
Oct 30, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
859068e4
7f749d46
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
477 additions
and
191 deletions
+477
-191
index.tsx
src/pages/balance/accountsPayable/settlementList/index.tsx
+3
-6
index.less
src/pages/balance/accountsReceivable/invoice/index.less
+5
-0
index.tsx
src/pages/balance/accountsReceivable/invoice/index.tsx
+33
-10
index.tsx
...pages/balance/accountsReceivable/invoice/schema/index.tsx
+8
-4
index.tsx
...pages/balance/accountsReceivable/settlementList/index.tsx
+2
-6
index.tsx
src/pages/balance/common/index.tsx
+11
-0
type.d.ts
src/pages/balance/common/type.d.ts
+68
-2
InvoiceArray.tsx
src/pages/balance/components/InvoiceCreate/InvoiceArray.tsx
+0
-1
InvoiceDrawer.tsx
src/pages/balance/components/InvoiceCreate/InvoiceDrawer.tsx
+117
-43
InvoiceInfo.tsx
src/pages/balance/components/InvoiceCreate/InvoiceInfo.tsx
+5
-3
index.less
src/pages/balance/components/InvoiceCreate/index.less
+28
-0
index.tsx
src/pages/balance/components/StatusActions/index.tsx
+1
-2
index.less
src/pages/balance/components/StatusTag/index.less
+4
-0
index.tsx
src/pages/balance/components/StatusTag/index.tsx
+52
-5
index.tsx
src/pages/balance/components/UploadPayVoucher/index.tsx
+1
-1
index.tsx
...es/balance/platformSettlement/accountReceivable/index.tsx
+70
-22
index.tsx
...nce/platformSettlement/accountReceivable/schema/index.tsx
+20
-13
index.tsx
src/pages/balance/platformSettlement/integral/index.tsx
+27
-56
info.tsx
src/pages/balance/platformSettlement/integral/info.tsx
+0
-1
info.tsx
src/pages/balance/settleRules/memberSettle/info.tsx
+22
-16
No files found.
src/pages/balance/accountsPayable/settlementList/index.tsx
View file @
df468bf6
...
...
@@ -19,6 +19,8 @@ import StatusActions from '../../components/StatusActions';
import
{
PublicApi
}
from
'@/services/api'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
Moment
}
from
'moment'
;
import
{
payStatus
}
from
'../../common'
;
const
formActions
=
createFormActions
();
interface
SearchParams
{
...
...
@@ -75,12 +77,7 @@ const SettlementList = () => {
{
title
:
'支付方式'
,
dataIndex
:
'payWayName'
},
{
title
:
'结算状态'
,
dataIndex
:
'status'
,
filters
:
[
{
text
:
'待对账'
,
value
:
1
},
{
text
:
'待付款'
,
value
:
2
},
{
text
:
'待收款'
,
value
:
3
},
{
text
:
'以完成'
,
value
:
4
},
],
filters
:
payStatus
,
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
status
==
value
,
render
:
(
text
:
string
,
record
:
any
)
=>
{
return
(
...
...
src/pages/balance/accountsReceivable/invoice/index.less
0 → 100644
View file @
df468bf6
.text {
color: @main-color;
cursor: pointer;
}
\ No newline at end of file
src/pages/balance/accountsReceivable/invoice/index.tsx
View file @
df468bf6
...
...
@@ -17,7 +17,8 @@ import { schema } from './schema';
import
ModalContainer
from
'../../components/ModalContainer'
import
InvoiceCreate
from
'../../components/InvoiceCreate'
import
{
PublicApi
}
from
'@/services/api'
import
PayStatusTag
from
'@/components/StatusTag'
;
import
StatusTag
from
'../../components/StatusTag'
;
import
styles
from
'./index.less'
const
RangePicker
=
DatePicker
.
RangePicker
;
const
formActions
=
createFormActions
();
...
...
@@ -29,7 +30,7 @@ const columns = [
return
(
<
div
>
<
p
>
{
record
.
orderNo
}
</
p
>
<
Tag
>
{
record
.
settlementOrderTypeName
}
</
Tag
>
<
StatusTag
text=
{
record
.
settlementOrderTypeName
}
/
>
</
div
>
)
}
...
...
@@ -55,7 +56,7 @@ const columns = [
return
(
<
div
>
<
p
>
第
{
record
.
batch
}
次
</
p
>
<
p
>
{
record
.
payNode
}
</
p
>
<
p
>
{
record
.
payNode
}
</
p
>
</
div
>
)
}
...
...
@@ -65,11 +66,15 @@ const columns = [
{
title
:
'开票状态'
,
dataIndex
:
'invoiceStatus'
,
filters
:
[
{
text
:
'未开票'
,
value
:
0
},
{
text
:
'已开票'
,
value
:
1
},
],
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
invoiceStatus
==
value
,
render
:
(
text
,
record
)
=>
{
const
color
=
record
.
status
?
'green'
:
'blue'
return
(
<
div
>
<
Tag
color=
{
color
}
>
{
record
.
invoiceStatusName
}
</
Tag
>
<
StatusTag
text=
{
record
.
invoiceStatusName
}
/
>
</
div
>
)
}
...
...
@@ -77,6 +82,11 @@ const columns = [
{
title
:
'支付状态'
,
dataIndex
:
'status'
,
filters
:
[
{
text
:
'未支付'
,
value
:
'未支付'
},
{
text
:
'已支付'
,
value
:
'已支付'
},
],
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
payStatusName
==
value
,
render
:
(
text
,
record
)
=>
{
const
color
=
record
.
payStatusName
==
'已支付'
?
'green'
:
'#C0C4CC'
;
return
(
...
...
@@ -94,8 +104,16 @@ const columns = [
({
visible
,
show
,
cancel
})
=>
{
return
(
<>
<
InvoiceCreate
id=
{
record
.
id
}
title=
"开具发票"
width=
{
800
}
visible=
{
visible
}
onCancel=
{
cancel
}
/>
<
div
onClick=
{
show
}
>
{
record
.
invoiceStatus
==
1
?
'查看'
:
'开票'
}
</
div
>
<
InvoiceCreate
id=
{
record
.
id
}
type=
{
record
.
invoiceStatus
}
title=
"开具发票"
width=
{
800
}
visible=
{
visible
}
onCancel=
{
cancel
}
refresh=
{
()
=>
formActions
.
submit
()
}
/>
<
div
className=
{
styles
.
text
}
onClick=
{
show
}
>
{
record
.
invoiceStatus
==
1
?
'查看'
:
'开票'
}
</
div
>
</>
)
}
...
...
@@ -118,12 +136,17 @@ const SettlementList = () => {
// /settle/accounts/member/settlement/pageReceiptInvoice
const
searchParams
=
{
...
params
,
invoiceStatus
:
params
.
orderType
||
2
,
payStatus
:
params
.
status
||
2
,
invoiceStatus
:
typeof
params
.
invoiceStatus
==
'undefined'
?
2
:
params
.
invoiceStatus
,
payStatus
:
typeof
params
.
payStatus
==
'undefined'
?
2
:
params
.
payStatus
,
}
const
{
data
}
=
await
PublicApi
.
getSettleAccountsMemberSettlementPageReceiptInvoice
(
searchParams
);
return
data
}
const
reload
=
(
values
)
=>
{
ref
.
current
.
reload
(
values
);
}
return
(
<
PageHeaderWrapper
>
<
Card
>
...
...
@@ -153,7 +176,7 @@ const SettlementList = () => {
// );
}
}
schema=
{
schema
}
onSubmit=
{
values
=>
ref
.
current
.
reload
(
values
)
}
onSubmit=
{
reload
}
/>
}
/>
...
...
src/pages/balance/accountsReceivable/invoice/schema/index.tsx
View file @
df468bf6
...
...
@@ -69,9 +69,11 @@ export const schema: ISchema = {
},
invoiceStatus
:
{
type
:
'string'
,
default
:
0
,
default
:
2
,
enum
:
[
{
label
:
'开票状态(全部)'
,
value
:
0
}
{
label
:
'开票状态(全部)'
,
value
:
2
},
{
label
:
'未开票'
,
value
:
0
},
{
label
:
'已开票'
,
value
:
1
}
],
'x-component-props'
:
{
placeholder
:
'开票状态(全部)'
,
...
...
@@ -80,9 +82,11 @@ export const schema: ISchema = {
},
payStatus
:
{
type
:
'string'
,
default
:
0
,
default
:
2
,
enum
:
[
{
label
:
'支付状态(全部)'
,
value
:
0
}
{
label
:
'支付状态(全部)'
,
value
:
2
},
{
label
:
'未支付'
,
value
:
0
},
{
label
:
'已支付'
,
value
:
1
}
],
'x-component-props'
:
{
placeholder
:
'支付状态(全部)'
,
...
...
src/pages/balance/accountsReceivable/settlementList/index.tsx
View file @
df468bf6
...
...
@@ -18,6 +18,7 @@ import { PublicApi } from '@/services/api';
import
StatusActions
from
'../../components/StatusActions'
;
import
StatusTag
from
'../../components/StatusTag'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
payStatus
}
from
'../../common'
;
const
formActions
=
createFormActions
();
...
...
@@ -57,12 +58,7 @@ const SettlementList = () => {
{
title
:
'支付方式'
,
dataIndex
:
'payWayName'
},
{
title
:
'结算状态'
,
dataIndex
:
'status'
,
filters
:
[
{
text
:
'待对账'
,
value
:
1
},
{
text
:
'待付款'
,
value
:
2
},
{
text
:
'待收款'
,
value
:
3
},
{
text
:
'以完成'
,
value
:
4
},
],
filters
:
payStatus
,
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
status
==
value
,
render
:
(
text
,
record
)
=>
{
return
(
...
...
src/pages/balance/common/index.tsx
0 → 100644
View file @
df468bf6
/**
* 用于平台结算管理,应收,应付账款管理列表页 结算状态下拉筛选
*/
export
const
payStatus
=
[
{
text
:
'待对账'
,
value
:
1
},
{
text
:
'待付款'
,
value
:
2
},
{
text
:
'待收款'
,
value
:
3
},
{
text
:
'以完成'
,
value
:
4
},
];
\ No newline at end of file
src/pages/balance/common/type.d.ts
View file @
df468bf6
...
...
@@ -18,4 +18,71 @@ export interface VoucherFileProps {
* 文件路径
*/
proveUrl
:
string
}
\ No newline at end of file
}
export
interface
ProveListProps
{
/**
* 发票号
*/
number
:
string
,
/**
* 开具时间
*/
invoiceDate
:
string
,
/**
* 备注
*/
remark
:
string
}
/**
* 开票管理中, 发票的信息, 用于开票管理查看发票,开票
*/
export
interface
InvoiceInfoProps
{
/**
* 开具类型
*/
typeName
:
string
,
/**
* 发票种类
*/
kindName
:
string
,
/**
* 发票抬头
*/
invoiceTitle
:
string
,
/**
* 纳税号
*/
taxNo
:
string
,
/**
* 开户行
*/
bankOfDeposit
:
string
,
/**
* 账号
*/
account
:
string
,
/**
* 电话
*/
tel
:
string
,
/**
* 地址
*/
address
:
string
,
/**
* 发票数组
*/
proveList
:
ProveListProps
[]
}
src/pages/balance/components/InvoiceCreate/InvoiceArray.tsx
View file @
df468bf6
...
...
@@ -51,7 +51,6 @@ const InvoiceArray = (props) => {
...
componentProps
}
=
schema
.
getExtendsComponentProps
()
||
{}
console
.
log
(
componentProps
);
const
onAdd
=
()
=>
{
const
items
=
Array
.
isArray
(
schema
.
items
)
?
schema
.
items
[
schema
.
items
.
length
-
1
]
...
...
src/pages/balance/components/InvoiceCreate/InvoiceDrawer.tsx
View file @
df468bf6
...
...
@@ -9,32 +9,84 @@ import { Drawer, Input, DatePicker } from 'antd';
import
InvoiceInfo
from
'./InvoiceInfo'
;
import
{
SchemaForm
,
SchemaField
,
SchemaMarkupField
as
Field
}
from
'@formily/antd'
import
InvoiceArray
from
'./InvoiceArray'
;
import
moment
from
'moment'
;
import
{
Button
}
from
'antd'
;
import
{
Button
,
Table
}
from
'antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
InvoiceInfoProps
,
ProveListProps
}
from
'../../common/type'
;
import
{
Moment
}
from
'moment'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
InvoiceDrawer
=
(
props
)
=>
{
const
{
visible
,
title
,
onCancel
,
width
}
=
props
;
const
[
invoiceInfo
,
setInvoiceInfo
]
=
useState
({})
interface
Iprops
{
visible
:
boolean
,
title
:
string
,
width
:
number
,
type
:
number
,
// 0 -> 开票, 1-> 查看
id
:
string
,
// 开票管理id,
onCancel
:
()
=>
void
,
refresh
:
()
=>
void
}
interface
SubmitProps
{
list
:
{
number
:
string
,
remark
:
string
,
invoiceDate
:
Moment
}[]
}
const
columns
=
[
{
title
:
'发票号码'
,
dataIndex
:
'number'
},
{
title
:
'发票时间'
,
dataIndex
:
'invoiceDate'
},
{
title
:
'备注'
,
dataIndex
:
'remark'
},
]
const
InvoiceDrawer
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
visible
,
title
,
onCancel
,
width
,
type
,
id
}
=
props
;
const
[
invoiceInfo
,
setInvoiceInfo
]
=
useState
<
InvoiceInfoProps
>
(
null
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
<
boolean
>
(
false
)
const
handleSubmit
=
()
=>
{
formActions
.
submit
()
if
(
type
==
0
)
{
formActions
.
submit
()
}
}
const
handleForm
=
(
value
)
=>
{
console
.
log
(
value
);
const
handleForm
=
(
value
:
SubmitProps
)
=>
{
// 如果当前type 为查看,那么直接关闭
if
(
type
==
1
)
{
onCancel
();
return
;
}
const
{
kindName
,
typeName
,
...
rest
}
=
invoiceInfo
const
proveList
=
value
.
list
.
map
((
item
)
=>
{
return
{
number
:
item
.
number
,
remark
:
item
.
remark
,
invoiceDate
:
item
.
invoiceDate
.
format
(
'YYYY-MM-DD'
)}
})
const
postData
=
{
...
rest
,
proveList
:
proveList
,
kind
:
kindName
==
'增值税普通发票'
?
1
:
2
,
type
:
typeName
==
'企业'
?
1
:
2
,
receiptInvoiceId
:
parseInt
(
id
)
}
setSubmitLoading
(
true
)
console
.
log
(
postData
);
// /settle/accounts/member/settlement/invoiceProve
PublicApi
.
postSettleAccountsMemberSettlementInvoiceProve
(
postData
)
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
setSubmitLoading
(
false
)
props
.
refresh
();
onCancel
();
}
})
}
useEffect
(()
=>
{
if
(
props
.
visible
)
{
///settle/accounts/member/settlement/getInvoiceProveDetail
PublicApi
.
getSettleAccountsMemberSettlementGetInvoiceProveDetail
({
id
:
props
.
id
})
PublicApi
.
getSettleAccountsMemberSettlementGetInvoiceProveDetail
({
id
:
id
})
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
setInvoiceInfo
(
data
.
data
)
...
...
@@ -42,42 +94,64 @@ const InvoiceDrawer = (props) => {
})
}
},
[
props
.
id
,
props
.
visible
])
},
[
id
,
visible
])
return
(
<
Drawer
visible=
{
visible
}
title=
{
title
}
width=
{
width
}
onClose=
{
onCancel
}
footer=
{
<
div
style=
{
{
textAlign
:
'right'
,
}
}
>
<
Button
onClick=
{
onCancel
}
style=
{
{
marginRight
:
8
}
}
>
取消
</
Button
>
<
Button
onClick=
{
handleSubmit
}
type=
"primary"
>
确认
</
Button
>
</
div
>
}
>
<
Drawer
visible=
{
visible
}
title=
{
title
}
width=
{
width
}
onClose=
{
onCancel
}
footer=
{
<
div
style=
{
{
textAlign
:
'right'
,
}
}
>
<
Button
onClick=
{
onCancel
}
style=
{
{
marginRight
:
8
}
}
>
取消
</
Button
>
<
Button
onClick=
{
handleSubmit
}
type=
"primary"
>
确认
</
Button
>
</
div
>
}
>
<
InvoiceInfo
infos=
{
invoiceInfo
}
/>
<
div
style=
{
{
display
:
'flex'
,
margin
:
'50px 0 15px 0'
}
}
>
<
div
style=
{
{
width
:
'170px'
,
marginRight
:
'16px'
}
}
>
发票号码
</
div
>
<
div
style=
{
{
width
:
'140px'
,
marginRight
:
'16px'
}
}
>
开票日期
</
div
>
<
div
>
备注
</
div
>
</
div
>
<
SchemaForm
onSubmit=
{
handleForm
}
actions=
{
formActions
}
components=
{
{
InvoiceArray
,
Input
,
DatePicker
}
}
>
<
Field
name=
"userList"
type=
"array"
x
-
component=
"InvoiceArray"
>
<
Field
type=
"object"
>
<
Field
name=
"no"
x
-
component=
"Input"
x
-
rules=
{
[{
required
:
true
,
message
:
'请填写发票号'
}]
}
/>
<
Field
name=
"date"
x
-
component=
"DatePicker"
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择发票日期'
}]
}
/>
<
Field
name=
"desc"
x
-
component=
"Input"
x
-
component
-
props=
{
{
style
:
{
width
:
'240px'
}}
}
/>
</
Field
>
</
Field
>
</
SchemaForm
>
{
type
==
0
?
(
<>
<
div
className=
{
styles
.
formHeader
}
>
<
div
className=
{
styles
.
invoiceNum
}
>
发票号码
</
div
>
<
div
className=
{
styles
.
invoiceDate
}
>
开票日期
</
div
>
<
div
>
备注
</
div
>
</
div
>
<
SchemaForm
onSubmit=
{
handleForm
}
actions=
{
formActions
}
components=
{
{
InvoiceArray
,
Input
,
DatePicker
}
}
>
<
Field
name=
"list"
type=
"array"
x
-
component=
"InvoiceArray"
>
<
Field
type=
"object"
>
<
Field
name=
"number"
x
-
component=
"Input"
x
-
rules=
{
[{
required
:
true
,
message
:
'请填写发票号'
}]
}
/>
<
Field
name=
"invoiceDate"
x
-
component=
"DatePicker"
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择发票日期'
}]
}
/>
<
Field
name=
"remark"
x
-
component=
"Input"
x
-
component
-
props=
{
{
style
:
{
width
:
'240px'
}}
}
/>
</
Field
>
</
Field
>
</
SchemaForm
>
</>
)
:
(
<
Table
columns=
{
columns
}
dataSource=
{
invoiceInfo
?.
proveList
}
rowKey=
{
"number"
}
/>
)
}
</
Drawer
>
)
}
...
...
src/pages/balance/components/InvoiceCreate/InvoiceInfo.tsx
View file @
df468bf6
...
...
@@ -6,9 +6,11 @@
import
React
from
'react'
;
import
{
Row
,
Col
}
from
'antd'
;
import
{
InvoiceInfoProps
}
from
'../../common/type'
;
import
styles
from
'./index.less'
;
interface
Iprops
{
infos
:
any
infos
:
InvoiceInfoProps
}
const
infoList
=
[
...
...
@@ -30,8 +32,8 @@ const InvoiceInfo: React.FC<Iprops> = (props) => {
{
infoList
.
map
((
item
)
=>
{
return
(
<
Row
style=
{
{
marginBottom
:
'24px'
,
fontSize
:
'13px'
}
}
key=
{
item
.
dataIndex
}
>
<
Col
span=
{
3
}
style=
{
{
color
:
'#909399'
}
}
>
{
item
.
title
}
</
Col
>
<
Row
className=
{
styles
.
row
}
key=
{
item
.
dataIndex
}
>
<
Col
span=
{
3
}
className=
{
styles
.
label
}
>
{
item
.
title
}
</
Col
>
<
Col
span=
{
16
}
>
{
infos
&&
infos
[
item
.
dataIndex
]
}
</
Col
>
</
Row
>
)
...
...
src/pages/balance/components/InvoiceCreate/index.less
0 → 100644
View file @
df468bf6
@font-size: 13px;
@label-color: #909399;
@margin-top: 50px;
.row {
margin-bottom: @margin-lg;
font-size: @font-size;
.label {
color: @label-color;
}
}
.formHeader {
display: flex;
margin: 50px 0 @margin-md 0;
.invoiceNum {
width: 170px;
margin-right: @margin-md;
}
.invoiceDate {
width: 140px;
margin-right: @margin-md;
}
}
\ No newline at end of file
src/pages/balance/components/StatusActions/index.tsx
View file @
df468bf6
...
...
@@ -20,7 +20,7 @@ interface Iprops {
settlementId
?:
number
,
// 结算方id
payName
?:
string
,
//付款方
excludes
:
number
[],
// 排除数组,比如当应付的时候,只留下查看凭证跟付款, 应收账款的时候保留三个
type
?:
number
,
// 1 -> 应付账款结算 2-> 应收账款结算, 用于判断 查看付款凭证
type
?:
number
,
// 1 -> 应付账款结算 2-> 应收账款结算, 用于判断
是否有
查看付款凭证
handleReconciledComfirm
?:
(
params
:
any
)
=>
void
// 对账确定回调
handleComfirmInCompletePayment
?:
(
params
:
any
)
=>
void
,
// 确认未到款回调
handleComfirmCompletePayment
?:
(
params
:
any
)
=>
void
,
//确认到款回调
...
...
@@ -90,7 +90,6 @@ const ConfirmCollected = (props) => {
const
WrapVoucher
=
({
id
,
type
})
=>
{
const
[
files
,
setFiles
]
=
useState
([]);
console
.
log
(
id
);
useEffect
(()
=>
{
if
(
id
)
{
const
service
=
type
==
1
...
...
src/pages/balance/components/StatusTag/index.less
0 → 100644
View file @
df468bf6
.tag-out-border {
border: none;
}
\ No newline at end of file
src/pages/balance/components/StatusTag/index.tsx
View file @
df468bf6
import
React
from
'react'
;
import
{
Tag
}
from
'antd'
;
import
'./index.less'
;
export
const
TO_BE_RECONCILED
=
1
;
// 待对账
export
const
TO_BE_PAY
=
2
// 待付款
...
...
@@ -14,13 +15,16 @@ export enum StatusEnum {
}
const
COLOR
=
[
"
purple"
,
// 随意给一个
"
"
,
// 随意给一个
"gold"
,
// 待对账
"red"
,
// 待付款
"blue"
,
// 代收款,
"green"
,
// 以完成
]
/**
* 以下用于 应收账款管理, 应付账款管理 列表页, 以及应收,应付款详情页状态
*/
const
STATUS_TEXT
=
[
"无"
,
"待对账"
,
...
...
@@ -36,6 +40,35 @@ const STATUS_TEXT_MAP = {
"已完成"
:
4
}
/**
* 开票管理, 开票类型, 其中 value 的值对应上面 COLOR 的值
*/
const
INVOICE_TYPE
=
{
"生产通知单"
:
0
,
"积分订单"
:
1
,
"退货申请单"
:
2
,
"订单"
:
3
,
"物流单"
:
4
,
}
/**
* 开票管理, 开票状态
*/
const
INVOICE_STATUS
=
{
"未开票"
:
3
,
"已开票"
:
4
,
}
/**
* 将开票类型跟 应收应付账款管理合并
*/
const
ALL_COLOR_MAP
=
{
...
INVOICE_TYPE
,
...
STATUS_TEXT_MAP
,
...
INVOICE_STATUS
}
interface
Iprops
{
status
?:
StatusEnum
,
text
?:
string
...
...
@@ -43,13 +76,26 @@ interface Iprops {
const
StatusTag
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
{
status
,
text
}
=
props
return
(
<
Tag
color=
{
text
?
COLOR
[
STATUS_TEXT_MAP
[
text
]]
:
COLOR
[
status
]
}
>
{
text
?
text
:
STATUS_TEXT
[
status
]
}
</
Tag
>
<
Tag
className=
"tag-out-border"
color=
{
text
?
COLOR
[
ALL_COLOR_MAP
[
text
]]
:
COLOR
[
status
]
}
>
{
text
||
STATUS_TEXT
[
status
]
}
</
Tag
>
)
}
StatusTag
.
defaultProps
=
{
status
:
1
}
//
StatusTag.defaultProps = {
//
status: 1
//
}
export
default
StatusTag
\ No newline at end of file
src/pages/balance/components/UploadPayVoucher/index.tsx
View file @
df468bf6
...
...
@@ -117,7 +117,7 @@ const UploadPayVoucher: React.FC<Iprops> = (props) => {
<
Voucher
files=
{
fileList
}
/>
<
div
className=
{
styles
.
upload
}
>
<
Upload
{
...
uploadProps
}
>
<
Button
icon=
{
<
UploadOutlined
/>
}
>
上传凭证
</
Button
>
<
Button
icon=
{
<
UploadOutlined
/>
}
loading=
{
loading
}
>
上传凭证
</
Button
>
<
p
className=
{
styles
.
tips
}
>
单个凭证文件大小不能超过200K
</
p
>
</
Upload
>
</
div
>
...
...
src/pages/balance/platformSettlement/accountReceivable/index.tsx
View file @
df468bf6
...
...
@@ -16,29 +16,36 @@ import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import
{
schema
}
from
'./schema'
;
import
StatusTag
from
'../../components/StatusTag'
;
import
StatusActions
from
'../../components/StatusActions'
;
import
{
payStatus
}
from
'../../common'
;
import
{
PublicApi
}
from
'@/services/api'
const
formActions
=
createFormActions
();
const
AccountReceivable
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
fetchListData
=
async
(
params
)
=>
{
return
{
data
:
[{
id
:
1
}]
,
totalCount
:
1
const
searchData
=
{
status
:
0
,
...
params
}
///settle/accounts/platform/settlement/pageReceivableSettlement
const
{
data
}
=
await
PublicApi
.
getSettleAccountsPlatformSettlementPageReceivableSettlement
(
searchData
);
return
data
}
const
columns
=
[
{
title
:
'结算单号'
,
dataIndex
:
'
num
'
},
{
title
:
'结算日期'
,
dataIndex
:
'
num
'
},
{
title
:
'结算方式'
,
dataIndex
:
'
num
'
},
{
title
:
'总单数'
,
dataIndex
:
'
num
'
},
{
title
:
'代收金额'
,
dataIndex
:
'
num
'
},
{
title
:
'佣金'
,
dataIndex
:
'
num
'
},
{
title
:
'结算金额'
,
dataIndex
:
'
num
'
},
{
title
:
'结算
日期'
,
dataIndex
:
'num
'
},
{
title
:
'支付方式'
,
dataIndex
:
'pay
Method
'
},
{
title
:
'结算单号'
,
dataIndex
:
'
settlementNo
'
},
{
title
:
'结算日期'
,
dataIndex
:
'
settlementDate
'
},
{
title
:
'结算方式'
,
dataIndex
:
'
settlementWayName
'
},
{
title
:
'总单数'
,
dataIndex
:
'
totalCount
'
},
{
title
:
'代收金额'
,
dataIndex
:
'
collectAmount
'
},
{
title
:
'佣金'
,
dataIndex
:
'
brokerage
'
},
{
title
:
'结算金额'
,
dataIndex
:
'
amount
'
},
{
title
:
'结算
时间'
,
dataIndex
:
'settlementTime
'
},
{
title
:
'支付方式'
,
dataIndex
:
'pay
WayName
'
},
{
title
:
'结算状态'
,
dataIndex
:
'status'
,
filters
:
payStatus
,
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
status
==
value
,
render
:
(
text
,
record
)
=>
{
return
(
<
StatusTag
status=
{
record
.
status
||
1
}
/>
...
...
@@ -50,7 +57,12 @@ const AccountReceivable = () => {
render
:
(
text
,
record
)
=>
{
return
(
<
StatusActions
status=
{
record
.
status
||
3
}
excludes=
{
[
2
]
}
id=
{
record
.
id
}
type=
{
2
}
status=
{
record
.
status
}
settlementDate=
{
record
.
settlementDate
}
payName=
{
"平台"
}
handleReconciledComfirm=
{
handleConfirm
}
handleComfirmInCompletePayment=
{
handleComfirmInCompletePayment
}
handleComfirmCompletePayment=
{
handleComfirmCompletePayment
}
...
...
@@ -60,22 +72,58 @@ const AccountReceivable = () => {
}
]
/**
/**
* 确认对账
* @param
cancel
关闭回调函数
* @param
{cancel: function, id: number} cancel 为
关闭回调函数
*/
const
handleConfirm
=
(
params
:
any
)
=>
{
console
.
log
(
123
)
params
.
onCancel
();
///settle/accounts/platform/settlement/confirmAccountComplete
PublicApi
.
postSettleAccountsMemberSettlementConfirmAccountComplete
({
settlementId
:
params
.
id
})
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
params
.
onCancel
();
formActions
.
submit
();
}
})
}
/**
* 确认未到款
* @param {onCancel:function, id: number, status: number}
*/
const
handleComfirmInCompletePayment
=
(
params
:
any
)
=>
{
console
.
log
(
params
);
params
.
onCancel
()
PublicApi
.
postSettleAccountsMemberSettlementConfirmPayProve
({
id
:
params
.
id
,
status
:
params
.
status
})
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
formActions
.
submit
();
params
.
onCancel
();
}
})
}
/**
* 确认到款
* @param {onCancel:function, id: number, status: number}
*/
const
handleComfirmCompletePayment
=
(
params
:
any
)
=>
{
params
.
onCancel
();
PublicApi
.
postSettleAccountsMemberSettlementConfirmPayProve
({
id
:
params
.
id
,
status
:
params
.
status
})
.
then
((
data
)
=>
{
if
(
data
.
code
===
1000
)
{
formActions
.
submit
();
params
.
onCancel
();
}
})
}
/**
* 搜索
*/
const
handleSearch
=
(
values
:
any
)
=>
{
const
format
=
'YYYY-MM-DD'
const
startTime
=
values
.
startTime
?.
format
(
format
);
const
endTime
=
values
.
endTime
?.
format
(
format
);
ref
.
current
.
reload
({...
values
,
startTime
,
endTime
});
}
return
(
...
...
@@ -95,14 +143,14 @@ const AccountReceivable = () => {
expressionScope=
{
{}
}
components=
{
{
DatePicker
}
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'megaLayout.
n
ame'
,
FORM_FILTER_PATH
);
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'megaLayout.
settlementN
ame'
,
FORM_FILTER_PATH
);
// useAsyncInitSelect(
// ['innerStatus', 'outerStatus'],
// fetchSelectOptions,
// );
}
}
schema=
{
schema
}
onSubmit=
{
values
=>
ref
.
current
.
reload
(
values
)
}
onSubmit=
{
handleSearch
}
/>
}
/>
...
...
src/pages/balance/platformSettlement/accountReceivable/schema/index.tsx
View file @
df468bf6
...
...
@@ -12,13 +12,13 @@ export const schema: ISchema = {
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
n
ame
:
{
settlementN
ame
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
'搜索'
,
placeholder
:
'搜索
结算单号
'
,
align
:
'flex-left'
,
// tip: '输入通知单号、通知单摘要
进行搜索',
tip
:
'输入 结算单号
进行搜索'
,
},
},
[
FORM_FILTER_PATH
]:
{
...
...
@@ -47,21 +47,28 @@ export const schema: ISchema = {
},
status
:
{
type
:
'string'
,
enum
:
[],
enum
:
[
{
label
:
'结算状态(全部)'
,
value
:
0
},
{
label
:
'待对账'
,
value
:
1
},
{
label
:
'待付款'
,
value
:
2
},
{
label
:
'待收款'
,
value
:
3
},
{
label
:
'待完成'
,
value
:
4
},
],
default
:
0
,
'x-component-props'
:
{
placeholder
:
'结算状态(全部)'
,
allowClear
:
true
,
},
},
//
submit: {
//
'x-component': 'Submit',
//
'x-mega-props': {
//
span: 1,
//
},
//
'x-component-props': {
//
children: '查询',
//
},
//
},
submit
:
{
'x-component'
:
'Submit'
,
'x-mega-props'
:
{
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
},
...
...
src/pages/balance/platformSettlement/integral/index.tsx
View file @
df468bf6
...
...
@@ -14,9 +14,9 @@ import { StandardTable } from 'god';
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
schema
}
from
'./schema/index'
;
import
ModalContainer
from
'../../components/ModalContainer
'
;
import
ConfirmAccount
from
'../../components/ConfirmAccount
'
;
import
Voucher
from
'../../components/Voucher
'
;
import
StatusActions
from
'../../components/StatusActions
'
;
import
StatusTag
from
'../../components/StatusTag
'
;
import
{
payStatus
}
from
'../../common
'
;
const
formActions
=
createFormActions
();
const
Integral
:
React
.
FC
=
()
=>
{
...
...
@@ -39,9 +39,11 @@ const Integral: React.FC = () => {
{
title
:
'支付方式'
,
dataIndex
:
'payMethod'
},
{
title
:
'结算状态'
,
dataIndex
:
'status'
,
filters
:
payStatus
,
onFilter
:
(
value
:
number
,
record
:
any
)
=>
record
.
status
==
value
,
render
:
(
text
,
record
)
=>
{
return
(
<
Tag
>
待对账
</
Tag
>
<
StatusTag
status=
{
record
.
status
||
1
}
/
>
)
}
},
...
...
@@ -50,56 +52,17 @@ const Integral: React.FC = () => {
render
:
(
text
,
record
)
=>
{
return
(
<>
<
ModalContainer
>
{
({
visible
,
show
,
cancel
})
=>
{
return
(
<>
<
Modal
width=
{
400
}
title=
"确认对账完成"
visible=
{
visible
}
onCancel=
{
cancel
}
onOk=
{
()
=>
handleConfirm
(
cancel
)
}
>
<
ConfirmAccount
/>
</
Modal
>
<
div
onClick=
{
show
}
>
确认对账完成
</
div
>
</>
)
}
}
</
ModalContainer
>
<
ModalContainer
>
{
({
visible
,
show
,
cancel
})
=>
{
return
(
<>
<
Modal
width=
{
548
}
title=
"查看付款凭证"
onCancel=
{
cancel
}
visible=
{
visible
}
footer=
{
null
}
>
<
Voucher
/>
</
Modal
>
<
div
onClick=
{
show
}
>
查看付款凭证
</
div
>
</>
)
}
}
</
ModalContainer
>
<
ModalContainer
>
{
({
visible
,
show
,
cancel
})
=>
{
return
(
<>
<
Modal
width=
{
548
}
title=
"确认付款凭证"
onCancel=
{
cancel
}
visible=
{
visible
}
footer=
{
(
<
Space
>
<
Button
>
取消
</
Button
>
<
Button
>
确认未到款
</
Button
>
<
Button
>
确认到款
</
Button
>
</
Space
>
)
}
>
<
Voucher
/>
</
Modal
>
<
div
onClick=
{
show
}
>
确认付款凭证
</
div
>
</>
)
}
}
</
ModalContainer
>
<
StatusActions
excludes=
{
[
2
]
}
id=
{
record
.
id
}
type=
{
2
}
status=
{
record
.
status
}
settlementDate=
{
record
.
settlementDate
}
payName=
{
record
.
payName
}
handleReconciledComfirm=
{
handleConfirm
}
handleComfirmInCompletePayment=
{
handleComfirmInCompletePayment
}
handleComfirmCompletePayment=
{
handleComfirmCompletePayment
}
/>
</>
)
}
...
...
@@ -110,9 +73,17 @@ const Integral: React.FC = () => {
* 确认对账
* @param cancel 关闭回调函数
*/
const
handleConfirm
=
(
cancel
)
=>
{
const
handleConfirm
=
(
params
)
=>
{
console
.
log
(
123
)
cancel
();
params
.
cancel
();
}
const
handleComfirmInCompletePayment
=
(
params
:
any
)
=>
{
console
.
log
(
params
);
params
.
onCancel
()
}
const
handleComfirmCompletePayment
=
(
params
:
any
)
=>
{
params
.
onCancel
();
}
return
(
<
PageHeaderWrapper
>
...
...
src/pages/balance/platformSettlement/integral/info.tsx
View file @
df468bf6
...
...
@@ -16,7 +16,6 @@ import { StandardTable } from 'god';
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
detailSchema
}
from
'./schema'
;
const
formActions
=
createFormActions
();
const
columns
=
[
...
...
src/pages/balance/settleRules/memberSettle/info.tsx
View file @
df468bf6
...
...
@@ -7,7 +7,7 @@
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
NiceForm
from
'@/components/NiceForm'
;
import
{
Card
,
Button
}
from
'antd'
;
import
{
Card
,
Button
,
message
}
from
'antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
import
ModalTable
from
'@/components/ModalTable'
;
...
...
@@ -175,20 +175,26 @@ const MemberSettleAdd: React.FC = () => {
useEffect
(()
=>
{
if
(
id
)
{
async
function
getInfo
()
{
const
{
data
}
=
await
getSettleAccountsPlatformConfigGetMemberSettlementStrategyDetail
({
id
})
setInitialValue
({
name
:
data
.
name
,
settlementOrderType
:
data
.
settlementOrderType
.
toString
(),
memberList
:
data
.
memberList
,
settlementWay
:
{
active
:
data
.
settlementWay
,
otherValues
:
[
data
.
settlementDays
,
data
.
settlementDate
],
}
})
formActions
.
setFieldValue
(
'Tabs.memberTab.someLists'
,
data
.
memberList
);
// 必须设置key
memberRowCtl
.
setSelectRow
(
data
.
memberList
);
memberRowCtl
.
setSelectedRowKeys
(
data
.
memberList
.
map
((
item
)
=>
item
.
memberId
))
const
res
=
await
getSettleAccountsPlatformConfigGetMemberSettlementStrategyDetail
({
id
})
if
(
res
.
code
===
1000
)
{
setInitialValue
({
name
:
res
.
data
.
name
,
settlementOrderType
:
res
.
data
.
settlementOrderType
.
toString
(),
memberList
:
res
.
data
.
memberList
,
settlementWay
:
{
active
:
res
.
data
.
settlementWay
,
otherValues
:
[
res
.
data
.
settlementDays
,
res
.
data
.
settlementDate
],
}
})
formActions
.
setFieldValue
(
'Tabs.memberTab.someLists'
,
res
.
data
.
memberList
);
// 必须设置key
memberRowCtl
.
setSelectRow
(
res
.
data
.
memberList
);
memberRowCtl
.
setSelectedRowKeys
(
res
.
data
.
memberList
.
map
((
item
)
=>
item
.
memberId
))
}
else
{
message
.
error
({
content
:
res
.
message
})
}
}
getInfo
();
}
...
...
@@ -197,7 +203,7 @@ const MemberSettleAdd: React.FC = () => {
return
(
<
PageHeaderWrapper
extra=
{
[
<
Button
key=
"1"
type=
"primary"
onClick=
{
handleClick
}
>
<
Button
loading=
{
submitLoading
}
key=
"1"
type=
"primary"
onClick=
{
handleClick
}
>
保存
</
Button
>,
]
}
...
...
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