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
shenshaokai
jinfa-platform
Commits
4644308a
Commit
4644308a
authored
Sep 18, 2020
by
Bill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改新增仓位
parent
27b4f3d2
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
226 additions
and
27 deletions
+226
-27
package.json
package.json
+1
-2
index.tsx
src/components/ModalTable/index.tsx
+1
-1
addRepository.tsx
src/pages/repositories/addRepository.tsx
+1
-1
adjustRepository.tsx
src/pages/repositories/adjustRepository.tsx
+1
-1
PositionSetting.tsx
src/pages/repositories/components/PositionSetting.tsx
+217
-21
index.tsx
src/pages/repositories/schema/index.tsx
+5
-1
No files found.
package.json
View file @
4644308a
...
...
@@ -78,4 +78,4 @@
"
json2ts
"
:
"^0.0.7"
,
"
ora
"
:
"^4.0.4"
}
}
\ No newline at end of file
}
src/components/ModalTable/index.tsx
View file @
4644308a
...
...
@@ -75,7 +75,7 @@ const ModalTable:React.FC<ModalTableProps> = (props) => {
tableType=
'small'
currentRef=
{
selfRef
}
formRender=
{
(
child
,
ps
)
=>
<
Row
justify=
'space-between'
>
<
Col
span=
{
18
}
>
{
child
}
</
Col
>
<
Col
span=
{
18
}
style=
{
{
zIndex
:
99
}
}
>
{
child
}
</
Col
>
<
Col
style=
{
{
marginTop
:
4
}
}
>
{
ps
}
</
Col
>
</
Row
>
}
formilyProps=
{
...
...
src/pages/repositories/addRepository.tsx
View file @
4644308a
...
...
@@ -36,7 +36,7 @@ const AddRepository:React.FC<{}> = (props) => {
const
formSubmit
=
async
(
values
)
=>
{
const
params
=
omit
(
values
,
[
'NO_SUBMIT3'
])
if
(
params
[
'applyMember'
])
{
params
[
'applyMember'
]
=
params
[
'applyMember'
]
.
map
(
v
=>
v
.
memberId
)
params
[
'applyMember'
]
=
params
[
'applyMember'
]
}
await
PublicApi
.
postWarehouseFreightSpaceAdd
(
params
)
setTimeout
(()
=>
{
...
...
src/pages/repositories/adjustRepository.tsx
View file @
4644308a
...
...
@@ -166,7 +166,7 @@ const AddRepository:React.FC<{}> = (props) => {
shopType
:
values
.
shopType
}
if
(
values
[
'applyMember'
])
{
params
[
'applyMember'
]
=
values
[
'applyMember'
]
.
map
(
v
=>
v
.
memberId
)
params
[
'applyMember'
]
=
values
[
'applyMember'
]
}
setIsEdit
(
false
)
await
PublicApi
.
postWarehouseFreightSpaceUpdata
(
params
)
...
...
src/pages/repositories/components/PositionSetting.tsx
View file @
4644308a
import
React
,
{
useState
}
from
'react'
import
React
,
{
useState
,
useEffect
}
from
'react'
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
import
{
useInitValue
}
from
'@/formSchema/effects/useInitValue'
import
EyePreview
from
'@/components/EyePreview'
...
...
@@ -11,7 +11,7 @@ import {
PlusOutlined
,
LinkOutlined
,
}
from
'@ant-design/icons'
import
{
Button
,
message
}
from
'antd'
import
{
Button
,
message
,
Select
}
from
'antd'
import
NiceForm
from
'@/components/NiceForm'
import
ModalTable
from
'@/components/ModalTable'
import
{
GlobalConfig
}
from
'@/global/config'
...
...
@@ -20,7 +20,8 @@ import SearchSelect from '@/components/NiceForm/components/SearchSelect'
import
Search
from
'@/components/NiceForm/components/Search'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
{
SHOP_TYPES
,
MALL_TYPE
}
from
'@/constants'
import
{
SHOP_TYPES
,
MALL_TYPE
}
from
'@/constants'
;
import
shop
from
'@/pages/lxMall/shop'
export
interface
PositionSettingProps
{
addSchemaAction
:
ISchemaFormActions
,
...
...
@@ -29,11 +30,6 @@ export interface PositionSettingProps {
formSubmit
?(
values
)
}
const
fetchMemberList
=
async
(
params
)
=>
{
const
res
=
await
PublicApi
.
getMemberMaintenancePage
(
params
)
return
res
.
data
}
const
priceTypeMaps
=
{
[
MALL_TYPE
[
0
]]:
[
1
,
2
],
[
MALL_TYPE
[
1
]]:
[
3
],
...
...
@@ -42,6 +38,23 @@ const priceTypeMaps = {
[
MALL_TYPE
[
4
]]:
[
3
]
}
const
all
=
[{
label
:
'所有'
,
value
:
'0'
}];
const
transferLabelToValue
=
(
list
:
any
[],
label
:
string
,
value
:
string
)
=>
{
return
list
.
map
((
item
)
=>
{
return
{
label
:
item
[
label
],
value
:
item
[
value
]
}
})
}
const
BUSINESS_INTEGRATE
=
[
1
,
2
];
const
CANAL
=
[
3
,
4
,
5
]
const
PositionSetting
:
React
.
FC
<
PositionSettingProps
>
=
(
props
)
=>
{
const
{
addSchemaAction
,
schema
,
formSubmit
,
onFieldChange
=
()
=>
{}
}
=
props
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
)
...
...
@@ -54,8 +67,64 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
preview
,
pageStatus
}
=
usePageStatus
()
const
initValue
=
useInitValue
(
PublicApi
.
getWarehouseFreightSpaceDetails
)
useUnitPreview
(
initValue
,
addSchemaAction
)
// const initValue = useInitValue(PublicApi.getWarehouseFreightSpaceDetails)
const
[
shopTypeState
,
setShopType
]
=
useState
(
0
);
const
[
productState
,
setProductState
]
=
useState
<
any
>
({})
const
[
membersFilterState
,
setMemberFilter
]
=
useState
({
level
:
[],
role
:
[],
type
:
[]});
const
[
initValue
,
setInitialValue
]
=
useState
({});
const
[
membersLength
,
setMembersLength
]
=
useState
(
0
)
// useUnitPreview(initValue, addSchemaAction)
useEffect
(()
=>
{
// 拿到所有的角色等级, 根据shopType, 商品的类容重新拿
async
function
getMemberLevel
()
{
const
response
=
await
PublicApi
.
getMemberManagePageitems
();
const
{
levels
=
[],
memberTypes
=
[],
roles
=
[]
}
=
response
.
data
;
const
allLevels
=
all
.
concat
(
transferLabelToValue
(
levels
,
"levelTag"
,
"level"
));
const
allMemberTypes
=
all
.
concat
(
transferLabelToValue
(
memberTypes
,
"memberTypeName"
,
"memberTypeId"
))
const
allRoles
=
all
.
concat
(
transferLabelToValue
(
roles
,
"roleName"
,
"roleId"
))
setMemberFilter
((
state
)
=>
{
return
{
...
state
,
level
:
allLevels
,
role
:
allMemberTypes
,
type
:
allRoles
}
})
}
if
(
preview
!==
'1'
)
{
getMemberLevel
();
}
},
[]);
useEffect
(()
=>
{
async
function
getInitValue
()
{
const
{
data
}
=
await
PublicApi
.
getWarehouseFreightSpaceDetails
({
id
:
id
});
if
(
data
.
isAllMemberShare
===
0
)
{
const
res
=
await
getBindingMember
({
id
:
id
.
toString
(),
current
:
'1'
,
pageSize
:
'10'
});
addSchemaAction
.
setFieldState
(
'isAllMemberShare'
,
(
state
)
=>
{
state
.
value
=
0
})
addSchemaAction
.
setFieldState
(
'applyMember'
,
(
state
)
=>
{
state
.
value
=
res
.
data
})
setMembersLength
(
res
.
totalCount
);
}
setInitialValue
(
data
);
}
if
(
id
!=
''
)
{
getInitValue
();
}
},
[
id
])
// 拿到绑定会员
const
getBindingMember
=
async
({
id
=
'1'
,
current
=
'1'
,
pageSize
=
'10'
})
=>
{
const
res
=
await
PublicApi
.
getWarehouseFreightSpaceMamberList
({
id
,
current
,
pageSize
});
return
res
.
data
}
const
fetchProductList
=
async
(
params
)
=>
{
const
shopType
=
addSchemaAction
.
getFieldValue
(
'shopType'
)
...
...
@@ -76,6 +145,16 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
}
const
handleAddMemberBtn
=
()
=>
{
const
shopType
=
addSchemaAction
.
getFieldValue
(
'shopType'
);
const
itemNo
=
addSchemaAction
.
getFieldValue
(
'productId'
);
if
(
!
shopType
)
{
message
.
error
(
'请先选择商城类型'
);
return
;
}
if
(
CANAL
.
includes
(
shopType
)
&&
!
itemNo
)
{
message
.
error
(
'请先选择商品'
);
return
;
}
const
checkBoxs
=
addSchemaAction
.
getFieldValue
(
'applyMember'
)
memberRowCtl
.
setSelectedRowKeys
(
checkBoxs
.
map
(
v
=>
v
.
memberId
))
memberRowCtl
.
setSelectRow
(
checkBoxs
)
...
...
@@ -94,7 +173,10 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
setVisibleChannelRroduct
(
true
)
}
// 新增会员
const
tableAddButton
=
<
Button
style=
{
{
marginBottom
:
16
}
}
block
icon=
{
<
PlusOutlined
/>
}
onClick=
{
handleAddMemberBtn
}
type=
'dashed'
>
选择指定会员
</
Button
>
const
tableAddButton
=
preview
!==
'1'
?
<
Button
style=
{
{
marginBottom
:
16
}
}
block
icon=
{
<
PlusOutlined
/>
}
onClick=
{
handleAddMemberBtn
}
type=
'dashed'
>
选择指定会员
</
Button
>
:
null
const
tableColumns
=
[
{
dataIndex
:
'memberId'
,
title
:
'ID'
,
align
:
'center'
},
...
...
@@ -116,6 +198,7 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
// 会员添加弹窗控制
const
handleOkAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
setMembersLength
(
memberRowCtl
.
selectRow
.
length
);
addSchemaAction
.
setFieldValue
(
'applyMember'
,
memberRowCtl
.
selectRow
)
}
...
...
@@ -131,7 +214,7 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
return
null
}
const
goodsId
=
selectResult
.
goodsId
setProductState
(
selectResult
)
addSchemaAction
.
setFieldValue
(
'productName'
,
selectResult
.
name
)
addSchemaAction
.
setFieldValue
(
'category'
,
selectResult
.
customerCategoryName
)
addSchemaAction
.
setFieldValue
(
'brand'
,
selectResult
.
brandName
)
...
...
@@ -146,11 +229,36 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
const
{
data
}
=
await
PublicApi
.
getProductGoodsGetGoods
({
id
:
goodsId
})
// 设置货品名称
addSchemaAction
.
setFieldValue
(
'itemNo'
,
data
.
name
)
addSchemaAction
.
setFieldValue
(
'itemNo'
,
data
?.
name
||
''
)
}
const
fetchMemberList
=
async
(
params
)
=>
{
const
shopType
=
addSchemaAction
.
getFieldValue
(
'shopType'
);
// 当商城类型为 渠道商城、渠道自由商城和渠道积分商城时,需要带上memberResponseList
const
{
memberResponseList
}
=
productState
;
if
(
CANAL
.
includes
(
shopType
)
&&
memberResponseList
==
null
)
{
// 如果为空的话那我就不调用了
return
{
code
:
200
,
message
:
''
,
data
:
{
data
:
[],
totalCount
:
[]
}
}
}
const
data
=
{
...
params
,
shopType
:
shopType
,
members
:
memberResponseList
,
}
const
res
=
await
PublicApi
.
postMemberManageAllPageByshoptype
(
data
,
{
ctlType
:
'none'
});
return
res
.
data
}
const
handleCancelAddProduct
=
()
=>
{
setVisibleChannelRroduct
(
false
)
}
...
...
@@ -226,9 +334,64 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
properties
:
{
name
:
{
type
:
'string'
,
"x-component"
:
'Search'
,
"x-component-props"
:
{
placeholder
:
'请输入会员名称'
'x-component'
:
'ModalSearch'
,
'x-component-props'
:
{
placeholder
:
'请输入会员名字'
,
align
:
'flex-left'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
rowStyle
:
{
flexWrap
:
'nowrap'
,
style
:
{
marginRight
:
0
}
},
colStyle
:
{
marginTop
:
20
,
},
},
properties
:
{
memberTypeId
:
{
type
:
'string'
,
"x-component"
:
'Select'
,
"x-component-props"
:
{
options
:
membersFilterState
.
type
,
style
:
{
width
:
'180px'
},
placeholder
:
'请选择会员类型'
}
},
level
:
{
type
:
'string'
,
"x-component"
:
'Select'
,
"x-component-props"
:
{
options
:
membersFilterState
.
level
,
style
:
{
width
:
'180px'
},
placeholder
:
'请选择会员等级'
}
},
roleId
:
{
type
:
'string'
,
"x-component"
:
'Select'
,
"x-component-props"
:
{
options
:
membersFilterState
.
role
,
style
:
{
width
:
'180px'
},
placeholder
:
'请选择会员角色'
}
},
submit
:
{
"x-component"
:
'Submit'
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
'查询'
}
}
}
}
}
...
...
@@ -295,7 +458,12 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
}
}
}
const
paginationChange
=
async
(
page
:
number
,
size
:
number
)
=>
{
if
(
id
!==
''
)
{
const
result
=
await
getBindingMember
({
id
,
current
:
page
.
toString
(),
pageSize
:
size
.
toString
()});
addSchemaAction
.
setFieldValue
(
'applyMember'
,
result
.
data
);
}
}
return
(
<>
<
NiceForm
...
...
@@ -305,7 +473,9 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
expressionScope=
{
{
tableColumns
,
tableAddButton
,
connectProduct
connectProduct
,
paginationChange
,
membersLength
}
}
effects=
{
(
$
,
{
setFieldState
})
=>
{
FormEffectHooks
.
onFormInputChange$
().
subscribe
(()
=>
{
...
...
@@ -320,9 +490,24 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
GlobalConfig
.
web
.
shopInfo
.
filter
(
v
=>
v
.
type
===
parentState
.
value
&&
state
.
value
.
includes
(
v
.
id
))
:
GlobalConfig
.
web
.
shopInfo
.
filter
(
v
=>
v
.
type
===
parentState
.
value
)
})
});
// 切换商城的时候,指定的会员需要重置
setShopType
((
prev
)
=>
{
if
(
(
BUSINESS_INTEGRATE
.
includes
(
prev
)
&&
CANAL
.
includes
(
parentState
.
value
))
||
(
CANAL
.
includes
(
prev
)
&&
BUSINESS_INTEGRATE
.
includes
(
parentState
.
value
))
)
{
setFieldState
(
'applyMember'
,
(
state
)
=>
{
state
.
value
=
[]
})
}
return
parentState
.
value
});
}
})
// FormEffectHooks.
}
}
onSubmit=
{
handleSubmit
}
actions=
{
addSchemaAction
}
...
...
@@ -338,7 +523,18 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
fetchTableData=
{
params
=>
fetchMemberList
(
params
)
}
formilyProps=
{
{
ctx
:
{
schema
:
formSearch
}
ctx
:
{
schema
:
formSearch
,
components
:
{
ModalSearch
:
Search
,
SearchSelect
,
Submit
,
Select
}
,
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
}
}
}
}
tableProps=
{
{
...
...
src/pages/repositories/schema/index.tsx
View file @
4644308a
...
...
@@ -524,7 +524,11 @@ export const repositDetailSchema: ISchema = padRequiredMessage({
"x-component-props"
:
{
rowKey
:
'memberId'
,
columns
:
"{{tableColumns}}"
,
prefix
:
"{{tableAddButton}}"
prefix
:
"{{tableAddButton}}"
,
pagination
:
{
"onChange"
:
"{{paginationChange}}"
,
"total"
:
"{{membersLength}}"
}
}
}
}
...
...
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