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
linweijiong
jinfa-platform
Commits
5d5cd2df
Commit
5d5cd2df
authored
Sep 16, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
07f04e1b
46cd4783
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
653 additions
and
37 deletions
+653
-37
commodityRoute.ts
config/routes/commodityRoute.ts
+2
-2
tranactionRoute.ts
config/routes/tranactionRoute.ts
+14
-1
index.less
src/components/AuditProcess/index.less
+0
-0
index.tsx
src/components/AuditProcess/index.tsx
+58
-0
index.ts
src/constants/index.ts
+23
-0
menu.ts
src/locales/zh-CN/menu.ts
+2
-0
selectProduct.tsx
...pages/commodity/products/addChannelItem/selectProduct.tsx
+1
-0
setPrice.tsx
src/pages/commodity/products/addChannelItem/setPrice.tsx
+2
-2
channelSchema.tsx
src/pages/commodity/products/schema/channelSchema.tsx
+6
-6
viewDirectChannel.tsx
src/pages/commodity/products/viewDirectChannel.tsx
+1
-6
index.tsx
src/pages/member/memberImport/index.tsx
+5
-2
auditPrComfirm.tsx
src/pages/member/memberPrConfirm/auditPrComfirm.tsx
+2
-2
index.tsx
src/pages/trademark/index.tsx
+1
-1
addBills.tsx
src/pages/transaction/stockSellStorage/bills/addBills.tsx
+82
-15
index.tsx
...pages/transaction/stockSellStorage/bills/schema/index.tsx
+100
-0
addRule.tsx
src/pages/transaction/transactionRules/addRule.tsx
+57
-0
RuleSetting.tsx
...s/transaction/transactionRules/components/RuleSetting.tsx
+0
-0
index.tsx
src/pages/transaction/transactionRules/effects/index.tsx
+51
-0
index.less
src/pages/transaction/transactionRules/index.less
+56
-0
index.tsx
src/pages/transaction/transactionRules/index.tsx
+190
-0
index.tsx
src/pages/transaction/transactionRules/schema/index.tsx
+0
-0
No files found.
config/routes/commodityRoute.ts
View file @
5d5cd2df
...
...
@@ -67,7 +67,7 @@ const CommodityRoute = {
{
path
:
'/memberCenter/commodityAbility/trademark'
,
name
:
'trademark'
,
key
:
'trademark'
,
//
key: 'trademark',
icon
:
'smile'
,
component
:
'@/pages/trademark'
,
},
...
...
@@ -165,7 +165,7 @@ const CommodityRoute = {
{
path
:
'/memberCenter/commodityAbility/repositories'
,
name
:
'repositories'
,
key
:
'repositories'
,
//
key: 'repositories',
icon
:
'smile'
,
component
:
'./repositories'
,
},
...
...
config/routes/tranactionRoute.ts
View file @
5d5cd2df
...
...
@@ -177,7 +177,20 @@ const TranactionRoute = {
component
:
'@/pages/transaction/purchaseOrder/readyAddOrder/detail'
},
]
}
},
// 交易规则
{
path
:
'/memberCenter/tranactionAbility/transactionRules'
,
name
:
'transactionRules'
,
component
:
'@/pages/transaction/transactionRules'
,
},
{
path
:
'/memberCenter/tranactionAbility/transactionRules/addRule'
,
name
:
'addRule'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/transactionRules/addRule'
,
},
]
}
...
...
src/components/AuditProcess/index.less
0 → 100644
View file @
5d5cd2df
src/components/AuditProcess/index.tsx
0 → 100644
View file @
5d5cd2df
/*
* @Author: XieZhiXiong
* @Date: 2020-09-15 17:48:36
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-09-15 17:49:54
* @Description: 内外部流转记录组件
*/
import
React
from
'react'
;
import
{
Steps
,
Tabs
,
}
from
'antd'
;
import
MellowCard
from
'@/components/MellowCard'
;
import
styles
from
'./index.less'
;
interface
AuditProcessProp
{
outerVerifyCurrent
?:
number
;
innerVerifyCurrent
?:
number
;
outerVerifySteps
?:
{
step
:
number
,
stepName
:
string
,
roleName
:
string
}[];
innerVerifySteps
?:
{
step
:
number
,
stepName
:
string
,
roleName
:
string
}[];
};
const
AuditProcess
:
React
.
FC
<
AuditProcessProp
>
=
({
outerVerifyCurrent
=
0
,
innerVerifyCurrent
=
0
,
outerVerifySteps
=
[],
innerVerifySteps
=
[],
})
=>
(
<
MellowCard
>
<
Tabs
onChange=
{
()
=>
{}
}
>
<
Tabs
.
TabPane
tab=
"外部审核流程"
key=
"1"
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
outerVerifyCurrent
}
>
{
outerVerifySteps
.
map
(
item
=>
(
<
Steps
.
Step
key=
{
item
.
step
}
title=
{
item
.
stepName
}
description=
{
item
.
roleName
}
/>
))
}
</
Steps
>
</
Tabs
.
TabPane
>
<
Tabs
.
TabPane
tab=
"内部审核流程"
key=
"2"
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
innerVerifyCurrent
}
>
{
innerVerifySteps
.
map
(
item
=>
(
<
Steps
.
Step
key=
{
item
.
step
}
title=
{
item
.
roleName
}
description=
{
item
.
stepName
}
/>
))
}
</
Steps
>
</
Tabs
.
TabPane
>
</
Tabs
>
</
MellowCard
>
);
export
default
AuditProcess
;
\ No newline at end of file
src/constants/index.ts
View file @
5d5cd2df
...
...
@@ -296,4 +296,26 @@ export const DOC_DIRECTION_OUTGOING = 2; // 出库
export
const
DOC_DIRECTION
=
{
[
DOC_DIRECTION_WAREHOUSING
]:
'入库 + '
,
[
DOC_DIRECTION_OUTGOING
]:
'出库 - '
,
[
DOC_DIRECTION_WAREHOUSING
]:
'入库 + '
,
[
DOC_DIRECTION_OUTGOING
]:
'出库 - '
,
};
// 订单类型
export
const
ORDER_TYPE2_INQUIRY
=
1
;
// 询价采购
export
const
ORDER_TYPE2_DEMAND
=
2
;
// 需求采购
export
const
ORDER_TYPE2_SPOT
=
3
;
// 现货采购
export
const
ORDER_TYPE2_CENTRALIZED
=
4
;
// 集采
export
const
ORDER_TYPE2_POINTS
=
5
;
// 积分兑换
export
const
ORDER_TYPE2_CHANNEL_DIRECT
=
6
;
// 渠道直采
export
const
ORDER_TYPE2_CHANNEL_SPOT
=
7
;
// 渠道现货
export
const
ORDER_TYPE2_CHANNEL_POINTS
=
8
;
// 渠道积分兑换
export
const
ORDER_TYPE2
=
{
[
ORDER_TYPE2_INQUIRY
]:
'询价采购'
,
[
ORDER_TYPE2_DEMAND
]:
'需求采购'
,
[
ORDER_TYPE2_SPOT
]:
'现货采购'
,
[
ORDER_TYPE2_CENTRALIZED
]:
'集采'
,
[
ORDER_TYPE2_POINTS
]:
'积分兑换'
,
[
ORDER_TYPE2_CHANNEL_DIRECT
]:
'渠道直采'
,
[
ORDER_TYPE2_CHANNEL_SPOT
]:
'渠道现货'
,
[
ORDER_TYPE2_CHANNEL_POINTS
]:
'渠道积分兑换'
,
};
\ No newline at end of file
src/locales/zh-CN/menu.ts
View file @
5d5cd2df
...
...
@@ -119,6 +119,8 @@ export default {
'menu.tranactionAbility.stockSellStorage.bills'
:
'单据'
,
'menu.tranactionAbility.stockSellStorage.addBills'
:
'新增单据'
,
'menu.tranactionAbility.stockSellStorage.inventory'
:
'库存'
,
'menu.tranactionAbility.transactionRules'
:
'交易规则'
,
'menu.tranactionAbility.addRule'
:
'新增交易规则'
,
//需求发布
'menu.tranactionAbility.enquirySubmit'
:
'需求发布'
,
...
...
src/pages/commodity/products/addChannelItem/selectProduct.tsx
View file @
5d5cd2df
...
...
@@ -188,6 +188,7 @@ const SelectProduct:React.FC<IProps> = (props) => {
ref=
{
productFormRef
}
name=
"add-channel-origin"
labelAlign=
"left"
colon=
{
false
}
>
<
Form
.
Item
name=
"source"
...
...
src/pages/commodity/products/addChannelItem/setPrice.tsx
View file @
5d5cd2df
...
...
@@ -8,7 +8,6 @@ import {
MinusOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
styles
from
'../index.less'
import
{
PublicApi
}
from
'@/services/api'
;
...
...
@@ -310,6 +309,7 @@ const SetPrice:React.FC<IProps> = (props) => {
form=
{
formPrice
}
name=
"add-channel-discount"
labelAlign=
"left"
colon=
{
false
}
initialValues=
{
{
isMemberPrice
:
true
}
}
>
<
Form
.
Item
...
...
@@ -317,7 +317,7 @@ const SetPrice:React.FC<IProps> = (props) => {
label=
{
<
span
>
会员折扣
<
Tooltip
title=
"
这是一段描述
?"
>
<
Tooltip
title=
"
是否允许会员使用会员折扣价购买当前商品
?"
>
<
QuestionCircleOutlined
/>
</
Tooltip
>
</
span
>
...
...
src/pages/commodity/products/schema/channelSchema.tsx
View file @
5d5cd2df
...
...
@@ -101,23 +101,23 @@ export const channelSchema: ISchema = {
}
],
'x-component-props'
:
{
placeholder
:
'商品
状态
'
,
placeholder
:
'商品
来源
'
,
style
:
{
width
:
'174px'
},
},
},
status
:
{
status
List
:
{
type
:
'string'
,
enum
:
[
{
label
:
'未上架'
,
value
:
4
,
value
:
7
,
},
{
label
:
'上架'
,
label
:
'
已
上架'
,
value
:
5
,
},
{
label
:
'下架'
,
label
:
'
已
下架'
,
value
:
6
,
}
],
...
...
@@ -126,7 +126,7 @@ export const channelSchema: ISchema = {
style
:
{
width
:
'174px'
},
},
},
priceType
:
{
priceType
List
:
{
type
:
'string'
,
enum
:
[
{
...
...
src/pages/commodity/products/viewDirectChannel.tsx
View file @
5d5cd2df
import
React
,
{
useState
,
useEffect
}
from
'react'
import
{
history
}
from
'umi'
import
{
Card
,
Space
,
R
adio
,
R
ow
,
Col
,
Descriptions
,
Table
,
Avatar
}
from
'antd'
import
{
Card
,
Space
,
Row
,
Col
,
Descriptions
,
Table
,
Avatar
}
from
'antd'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
EyeOutlined
,
UserOutlined
}
from
'@ant-design/icons'
import
{
ColumnType
}
from
'antd/lib/table/interface'
import
ReutrnEle
from
'@/components/ReturnEle'
import
styles
from
"./index.less"
import
{
PublicApi
}
from
'@/services/api'
...
...
src/pages/member/memberImport/index.tsx
View file @
5d5cd2df
...
...
@@ -158,7 +158,7 @@ const MemberMaintain: React.FC<[]> = () => {
type=
"link"
onClick=
{
()
=>
handleCommit
(
record
.
memberId
,
record
.
validateId
)
}
>
提交审核
提交
平台
审核
</
Button
>
</>
)
}
...
...
@@ -179,7 +179,10 @@ const MemberMaintain: React.FC<[]> = () => {
</>
)
}
{
/* 外部审核状态不等于 审核通过 可进行删除操作 */
}
{
record
.
outerStatus
!==
MEMBER_OUTER_STATUS_SUCCESS
&&
(
{
(
record
.
outerStatus
===
MEMBER_OUTER_STATUS_UNCOMMITTED
||
record
.
outerStatus
===
MEMBER_OUTER_STATUS_FAILED
)
&&
(
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
...
...
src/pages/member/memberPrConfirm/auditPrComfirm.tsx
View file @
5d5cd2df
...
...
@@ -14,7 +14,7 @@ import { FormOutlined } from '@ant-design/icons';
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetMemberAbilityValidateStep1DetailResponse
}
from
'@/services/MemberApi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
create
Async
FormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
MEMBER_INNER_STATUS_SUCCESS
}
from
'@/constants'
;
import
{
MEMBER_INNER_STATUS_BADGE_COLOR
,
MEMBER_STATUS_TAG_MAP
,
MEMBER_OUTER_STATUS_TYPE
}
from
'../constant'
;
...
...
@@ -35,7 +35,7 @@ interface MemberInfo extends GetMemberAbilityValidateStep1DetailResponse {
areasInfo
?:
string
[];
};
const
modalFormActions
=
createFormActions
();
const
modalFormActions
=
create
Async
FormActions
();
const
{
onFieldValueChange$
,
onFieldInputChange$
,
...
...
src/pages/trademark/index.tsx
View file @
5d5cd2df
...
...
@@ -126,7 +126,7 @@ const Trademark: React.FC<{}> = () => {
];
const
handleSee
=
(
record
:
any
)
=>
{
console
.
log
(
'see'
)
//
console.log('see')
history
.
push
(
`/memberCenter/commodityAbility/trademark/viewBrand?id=
${
record
.
id
}
`
)
}
...
...
src/pages/transaction/stockSellStorage/bills/addBills.tsx
View file @
5d5cd2df
...
...
@@ -5,10 +5,18 @@ import { PageHeaderWrapper } from '@ant-design/pro-layout';
import
{
SaveOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
Button
,
Card
}
from
'antd'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
getBillsDetailSchema
}
from
'./schema'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
ModalTable
from
'@/components/ModalTable'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
import
DateSelect
from
'@/components/NiceForm/components/DateSelect'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
ORDER_TYPE2
}
from
'@/constants'
;
import
{
getBillsDetailSchema
,
orderBillSchema
}
from
'./schema'
;
const
addSchemaAction
=
createFormActions
();
...
...
@@ -22,42 +30,37 @@ const AddBills: React.FC<{}> = (props: any) => {
const
[
relevance
,
setRelevance
]
=
useState
(
1
);
// 订单
const
orderColumns
=
[
const
orderColumns
:
any
[]
=
[
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
key
:
'orderNo'
,
},
{
title
:
'订单商品摘要'
,
align
:
'center'
,
dataIndex
:
'invoicesAbstract'
,
key
:
'invoicesAbstract'
,
dataIndex
:
'orderThe'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'memberName'
,
key
:
'memberName'
,
dataIndex
:
'supplyMembersName'
,
},
{
title
:
'下单时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
key
:
'createTime'
,
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'
orderT
ype'
,
key
:
'orderType'
,
dataIndex
:
'
t
ype'
,
render
:
text
=>
ORDER_TYPE2
[
text
],
},
{
title
:
'订单状态'
,
align
:
'center'
,
dataIndex
:
'state'
,
key
:
'state'
,
dataIndex
:
'externalState'
,
},
];
...
...
@@ -130,6 +133,8 @@ const AddBills: React.FC<{}> = (props: any) => {
];
const
[
modalColumns
,
setModalColumns
]
=
useState
(
orderColumns
);
const
[
visibleRelation
,
setVisibleRelation
]
=
useState
(
false
);
const
[
relationRowSelection
,
relationRowCtl
]
=
useRowSelectionTable
({
type
:
'radio'
})
const
tableColumns
=
[
{
dataIndex
:
'id'
,
title
:
'ID'
},
...
...
@@ -207,6 +212,25 @@ const AddBills: React.FC<{}> = (props: any) => {
if
(
res
.
code
===
1000
)
return
history
.
goBack
();
});
};
// 关联单据弹窗 confirm
const
handleConfirmRelation
=
()
=>
{
console
.
log
(
'relationRowCtl.selectRow'
,
relationRowCtl
.
selectRow
);
setVisibleRelation
(
false
);
};
// 获取关联类型列表数据
const
fetchRelationList
=
async
(
params
:
any
)
=>
{
const
shopType
=
addSchemaAction
.
getFieldValue
(
'shopType'
)
const
res
=
await
PublicApi
.
getOrderPurchaseReceiptAddList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
};
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
...
...
@@ -234,6 +258,8 @@ const AddBills: React.FC<{}> = (props: any) => {
}
>
<
Card
>
<
Button
onClick=
{
()
=>
setVisibleRelation
(
true
)
}
>
点我弹出
</
Button
>
<
NiceForm
expressionScope=
{
{
tableColumns
,
...
...
@@ -246,8 +272,8 @@ const AddBills: React.FC<{}> = (props: any) => {
state
.
value
===
1
?
orderColumns
:
state
.
value
===
2
||
state
.
value
===
3
?
afterSaleColumns
:
productionColumns
,
?
afterSaleColumns
:
productionColumns
,
);
});
}
}
...
...
@@ -261,6 +287,47 @@ const AddBills: React.FC<{}> = (props: any) => {
})
}
/>
</
Card
>
<
ModalTable
modalTitle=
'选择订单'
confirm=
{
handleConfirmRelation
}
cancel=
{
()
=>
setVisibleRelation
(
false
)
}
visible=
{
visibleRelation
}
columns=
{
orderColumns
}
width=
{
960
}
rowSelection=
{
relationRowSelection
}
fetchTableData=
{
params
=>
fetchRelationList
(
params
)
}
formilyProps=
{
{
ctx
:
{
schema
:
orderBillSchema
,
components
:
{
Search
,
Submit
,
DateSelect
,
},
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'search'
,
FORM_FILTER_PATH
,
);
},
inline
:
false
,
}
}
}
tableProps=
{
{
rowKey
:
'id'
,
onRow
:
(
record
)
=>
({
onClick
:
()
=>
{
relationRowCtl
.
setSelectRow
([
record
]);
relationRowCtl
.
setSelectedRowKeys
([
record
.
id
]);
},
})
}
}
/>
</
PageHeaderWrapper
>
);
};
...
...
src/pages/transaction/stockSellStorage/bills/schema/index.tsx
View file @
5d5cd2df
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
ORDER_TYPE2_INQUIRY
,
ORDER_TYPE2_DEMAND
,
ORDER_TYPE2_SPOT
,
ORDER_TYPE2_CENTRALIZED
,
ORDER_TYPE2_POINTS
,
ORDER_TYPE2_CHANNEL_DIRECT
,
ORDER_TYPE2_CHANNEL_SPOT
,
ORDER_TYPE2_CHANNEL_POINTS
,
ORDER_TYPE2
,
}
from
'@/constants'
;
export
const
billsSchema
:
ISchema
=
{
type
:
'object'
,
...
...
@@ -448,3 +459,91 @@ export const getBillsDetailSchema = params => {
};
return
billsDetailSchema
;
};
export
const
orderBillSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
properties
:
{
search
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-mega-props'
:
{},
'x-component-props'
:
{
placeholder
:
'搜索'
,
align
:
'flex-start'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
grid
:
true
,
full
:
true
,
autoRow
:
true
,
columns
:
3
,
},
properties
:
{
orderNo
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'订单号(全部)'
,
allowClear
:
true
,
},
},
orderThe
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'订单摘要(全部)'
,
allowClear
:
true
,
},
},
supplyMembersName
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'会员名称(全部)'
,
allowClear
:
true
,
},
},
'[startCreateTime, endCreateTime]'
:
{
type
:
'string'
,
'x-component'
:
'DateSelect'
,
'x-component-props'
:
{
placeholder
:
'下单时间(全部)'
,
allowClear
:
true
,
},
},
type
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'订单类型(全部)'
,
allowClear
:
true
,
},
enum
:
[
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_INQUIRY
],
value
:
ORDER_TYPE2_INQUIRY
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_DEMAND
],
value
:
ORDER_TYPE2_DEMAND
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_SPOT
],
value
:
ORDER_TYPE2_SPOT
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_CENTRALIZED
],
value
:
ORDER_TYPE2_CENTRALIZED
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_POINTS
],
value
:
ORDER_TYPE2_POINTS
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_CHANNEL_DIRECT
],
value
:
ORDER_TYPE2_CHANNEL_DIRECT
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_CHANNEL_SPOT
],
value
:
ORDER_TYPE2_CHANNEL_SPOT
},
{
label
:
ORDER_TYPE2
[
ORDER_TYPE2_CHANNEL_POINTS
],
value
:
ORDER_TYPE2_CHANNEL_POINTS
},
],
},
submit
:
{
'x-component'
:
'Submit'
,
'x-mega-props'
:
{
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
}
}
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/transactionRules/addRule.tsx
0 → 100644
View file @
5d5cd2df
import
React
,
{
useState
,
useRef
,
useEffect
}
from
'react'
import
{
history
}
from
'umi'
import
{
Button
,
Card
}
from
'antd'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
SaveOutlined
,
}
from
'@ant-design/icons'
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
'./index.less'
import
{
ruleDetailSchema
}
from
'./schema'
import
{
createFormActions
,
ISchema
,
FormEffectHooks
}
from
'@formily/antd'
import
{
findItemAndDelete
,
omit
}
from
'@/utils'
import
{
PublicApi
}
from
'@/services/api'
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
import
RuleSetting
from
'./components/RuleSetting'
const
addSchemaAction
=
createFormActions
()
const
AddRule
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
{
id
,
preview
,
pageStatus
}
=
usePageStatus
()
// 整体表单提交
const
formSubmit
=
async
(
values
)
=>
{
const
params
=
omit
(
values
,
[
'NO_SUBMIT3'
])
if
(
params
[
'applyMember'
])
{
params
[
'applyMember'
]
=
params
[
'applyMember'
].
map
(
v
=>
v
.
memberId
)
}
await
PublicApi
.
postWarehouseFreightSpaceAdd
(
params
)
setTimeout
(()
=>
{
history
.
goBack
(
-
1
)
},
1000
)
}
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
title=
{
pageStatus
===
PageStatus
.
PREVIEW
?
'查看交易规则'
:
(
pageStatus
===
PageStatus
.
EDIT
?
'编辑交易规则'
:
'新增交易规则'
)
}
className=
"addRule"
extra=
{
[
<
Button
key=
"1"
onClick=
{
()
=>
addSchemaAction
.
submit
()
}
type=
"primary"
icon=
{
<
SaveOutlined
/>
}
>
保存
</
Button
>,
]
}
>
<
Card
className=
''
>
<
RuleSetting
addSchemaAction=
{
addSchemaAction
}
schema=
{
ruleDetailSchema
}
formSubmit=
{
formSubmit
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
AddRule
src/pages/transaction/transactionRules/components/RuleSetting.tsx
0 → 100644
View file @
5d5cd2df
This diff is collapsed.
Click to expand it.
src/pages/transaction/transactionRules/effects/index.tsx
0 → 100644
View file @
5d5cd2df
import
React
,
{
useEffect
}
from
'react'
import
{
ISchemaFormActions
,
FormEffectHooks
,
IFormActions
}
from
'@formily/antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
const
{
onFieldValueChange$
}
=
FormEffectHooks
export
const
useWarehouseSelect
=
(
context
:
ISchemaFormActions
)
=>
{
onFieldValueChange$
(
'warehouseId'
).
subscribe
(
state
=>
{
// 货品ID
const
goodsId
=
context
.
getFieldValue
(
'productId'
)
const
warehouseId
=
state
.
value
PublicApi
.
getWarehouseInventoryByItemNo
({
warehouseId
,
itemId
:
goodsId
}).
then
(
res
=>
{
const
{
data
}
=
res
context
.
setFieldValue
(
'NO_SUBMIT3'
,
data
.
inventory
)
})
})
}
export
const
createAddRepositoryEffect
=
(
context
:
ISchemaFormActions
)
=>
{
const
fetchWarehouseAll
=
async
()
=>
{
const
{
data
}
=
await
PublicApi
.
getWarehouseWarehouseAll
()
context
.
setFieldState
(
'warehouseId'
,
state
=>
{
state
.
warehouseLists
=
data
})
return
data
.
map
(
v
=>
({
value
:
v
.
id
,
label
:
v
.
name
}))
}
useAsyncSelect
(
'warehouseId'
,
fetchWarehouseAll
)
useWarehouseSelect
(
context
)
}
export
const
useUnitPreview
=
(
initValue
,
context
)
=>
{
useEffect
(()
=>
{
if
(
initValue
)
{
context
.
setFieldState
(
'inventory'
,
state
=>
{
if
(
!
state
.
props
[
'x-props'
])
{
state
.
props
[
'x-props'
]
=
{}
}
state
.
props
[
'x-props'
].
addonAfter
=
<
div
style=
{
{
marginLeft
:
4
}
}
>
{
initValue
.
unit
}
</
div
>
})
context
.
setFieldValue
(
'itemNo'
,
initValue
.
itemNo
)
}
},
[
initValue
])
}
\ No newline at end of file
src/pages/transaction/transactionRules/index.less
0 → 100644
View file @
5d5cd2df
.addRule {
.ant-input-group-addon {
padding: 0;
border: none;
}
.connectBtn {
width: 80px;
height: 32px;
line-height: 32px;
background: #6B778C;
color: #fff;
text-align: center;
cursor: pointer;
}
}
// 添加仓位
.storeItemRadio{
display: flex;
flex-wrap: wrap;
// width: 320px;
margin: 0 auto;
& label{
width: 320px !important;
height: 48px !important;
line-height: 48px !important;
margin: 8px 0;
margin-right: 24px;
}
}
//仓位调拨
.circleAmount{
width: 160px;
height: 160px;
border: 4px solid #edeef2;
background-color: #fafbfc;
border-radius: 50%;
& p{
height: 160px;
line-height: 160px;
text-align: center;
font-size: 20px;
font-weight: bold;
}
}
//查看仓位
.amount{
font-size:24px;
font-weight:bold;
color:rgba(23,43,77,1);
}
\ No newline at end of file
src/pages/transaction/transactionRules/index.tsx
0 → 100644
View file @
5d5cd2df
import
React
,
{
ReactNode
,
useRef
,
useEffect
}
from
'react'
import
{
history
}
from
'umi'
import
{
Button
,
Popconfirm
,
Card
,
message
,
Dropdown
,
Menu
}
from
'antd'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
PlusOutlined
,
PlayCircleOutlined
,
EyeOutlined
,
PauseCircleOutlined
,
CaretDownOutlined
}
from
'@ant-design/icons'
import
{
StandardTable
}
from
'god'
import
{
ColumnType
}
from
'antd/lib/table/interface'
import
moment
from
'moment'
import
EyePreview
from
'@/components/EyePreview'
;
import
{
PublicApi
}
from
'@/services/api'
const
TransactionRules
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
fetchData
=
(
params
:
any
)
=>
{
console
.
log
(
params
,
'params'
)
if
(
!
params
?.
name
)
delete
params
.
name
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getOrderTradingRulesList
(
params
).
then
(
res
=>
{
const
{
data
}
=
res
resolve
(
data
)
})
})
}
// id
// name
// state
// 状态:1.有效 0.无效
// transactionProcess
// operationTime
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'交易规则ID'
,
dataIndex
:
'id'
,
key
:
'id'
,
},
{
title
:
'流程规则名称'
,
dataIndex
:
'name'
,
key
:
'name'
,
className
:
'commonPickColor'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/transactionRules/addRule?id=${record.id}&preview=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'交易流程名称'
,
dataIndex
:
'transactionProcess'
,
key
:
'transactionProcess'
,
},
{
title
:
'操作时间'
,
dataIndex
:
'operationTime'
,
key
:
'operationTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
text
&&
moment
(
text
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
},
{
title
:
'状态'
,
dataIndex
:
'state'
,
key
:
'state'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
let
component
:
ReactNode
=
null
component
=
(
<
Popconfirm
title=
"确定要执行这个操作?"
onConfirm=
{
()
=>
confirm
(
record
)
}
onCancel=
{
cancel
}
okText=
"是"
cancelText=
"否"
>
<
Button
type=
"link"
style=
{
record
.
state
?
{
color
:
'#00B37A'
}
:
{
color
:
'red'
}
}
>
{
record
.
state
?
<>
有效
<
PlayCircleOutlined
/></>
:
<>
无效
<
PauseCircleOutlined
/></>
}
</
Button
>
</
Popconfirm
>
)
return
component
}
},
{
title
:
'操作'
,
dataIndex
:
'option'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
return
(
<>
{
(
record
.
state
===
0
)
?
<>
<
Popconfirm
title=
"确定要执行这个操作?"
onConfirm=
{
()
=>
handelDelete
(
record
)
}
onCancel=
{
cancel
}
okText=
"是"
cancelText=
"否"
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/tranactionAbility/transactionRules/addRule?id=${record.id}`
)
}
>
修改
</
Button
>
</>
:
''
}
</>
)
}
}
];
const
confirm
=
(
record
:
any
)
=>
{
PublicApi
.
postOrderTradingRulesUpdateState
({
id
:
record
.
id
,
state
:
record
.
state
?
0
:
1
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
const
cancel
=
()
=>
{
console
.
log
(
'cancel'
)
}
const
handelDelete
=
(
record
:
any
)
=>
{
PublicApi
.
postOrderTradingRulesDelete
({
id
:
record
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
ref
.
current
.
reload
()
})
}
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
columns=
{
columns
}
currentRef=
{
ref
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
formilyLayouts=
{
{
justify
:
'space-between'
}
}
formilyProps=
{
{
layouts
:
{
order
:
1
,
span
:
4
,
},
ctx
:
{
inline
:
false
,
schema
:
{
type
:
'object'
,
properties
:
{
megaLayout0
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
"x-component-props"
:
{
grid
:
true
,
columns
:
2
,
},
properties
:
{
name
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'规则名称'
,
},
'x-component'
:
'Search'
}
}
}
}
}
}
}
}
formilyChilds=
{
{
layouts
:
{
order
:
0
},
children
:
(
<>
<
Button
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
onClick=
{
()
=>
history
.
push
(
'/memberCenter/tranactionAbility/transactionRules/addRule'
)
}
>
新建
</
Button
>
</>
)
}
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
TransactionRules
src/pages/transaction/transactionRules/schema/index.tsx
0 → 100644
View file @
5d5cd2df
This diff is collapsed.
Click to expand it.
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