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
455b8bf8
Commit
455b8bf8
authored
Dec 03, 2020
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
a3ad28d1
3229623c
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
136 additions
and
69 deletions
+136
-69
index.ts
src/constants/index.ts
+4
-0
index.tsx
src/pages/channel/channelInfo/index.tsx
+18
-10
index.tsx
...ingsPanel/propsSettings/components/GoodsSetting/index.tsx
+6
-5
index.tsx
src/pages/handling/assign/add/index.tsx
+0
-2
content.tsx
src/pages/handling/components/ProcessDetail/content.tsx
+1
-3
index.less
src/pages/home/components/UserCenter/index.less
+13
-0
index.tsx
src/pages/home/components/UserCenter/index.tsx
+3
-2
index.tsx
src/pages/lxMall/commodityDetail/index.tsx
+13
-3
index.tsx
...es/lxMall/components/Filter/components/Category/index.tsx
+18
-1
LXChannelLayout.tsx
src/pages/lxMall/layouts/LXChannelLayout.tsx
+3
-3
LXIChannelLayout.tsx
src/pages/lxMall/layouts/LXIChannelLayout.tsx
+3
-3
LXMallLayout.tsx
src/pages/lxMall/layouts/LXMallLayout.tsx
+3
-3
index.tsx
src/pages/lxMall/order/index.tsx
+3
-1
index.less
src/pages/systemSetting/message/index.less
+1
-0
index.tsx
src/pages/systemSetting/message/index.tsx
+4
-4
index.tsx
src/pages/transaction/components/orderSaleRecord/index.tsx
+5
-1
index.tsx
...es/transaction/components/saleOrderProductTable/index.tsx
+2
-2
index.tsx
...transaction/purchaseOrder/orderCollect/constant/index.tsx
+5
-10
index.ts
...s/transaction/purchaseOrder/orderCollect/effects/index.ts
+4
-4
index.tsx
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
+1
-1
useProductTable.tsx
...tion/purchaseOrder/orderCollect/model/useProductTable.tsx
+2
-3
index.ts
...es/transaction/purchaseOrder/orderCollect/schema/index.ts
+0
-0
useSelfTable.tsx
...action/purchaseOrder/readyPayOrder/model/useSelfTable.tsx
+7
-2
useSelfTable.tsx
...on/purchaseOrder/readyReceiveOrder/model/useSelfTable.tsx
+1
-1
index.tsx
...pages/transaction/saleOrder/addSaleDelevedOrder/index.tsx
+0
-1
useSelfTable.tsx
...tion/saleOrder/addSaleDelevedOrder/model/useSelfTable.tsx
+7
-1
useSelfTable.tsx
...saleOrder/readyConfirmDelevedOrder/model/useSelfTable.tsx
+1
-1
RuleSetting.tsx
...s/transaction/transactionRules/components/RuleSetting.tsx
+1
-1
index.tsx
src/pages/transaction/transactionRules/schema/index.tsx
+0
-1
index.ts
src/store/filter/index.ts
+7
-0
No files found.
src/constants/index.ts
View file @
455b8bf8
...
...
@@ -70,6 +70,10 @@ export enum FILTER_TYPE {
*/
category
=
'category'
,
/**
* 会员品类
*/
customerCategory
=
'customerCategory'
,
/**
* 分类和属性
*/
categoryAndAttr
=
'categoryAndAttr'
,
...
...
src/pages/channel/channelInfo/index.tsx
View file @
455b8bf8
...
...
@@ -15,6 +15,7 @@ import styles from './index.less'
import
{
GetTemplateChannelFindChannelResponse
}
from
'@/services/TemplateApi'
import
{
isEmpty
}
from
'@formily/antd/esm/shared'
import
{
GlobalConfig
}
from
'@/global/config'
import
{
getAuth
}
from
'@/utils/auth'
interface
ShopInfoPropsType
{
SiteStore
:
{
...
...
@@ -46,8 +47,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
// 根据站点获取商城信息
const
fetchAllShop
=
()
=>
{
//@ts-ignore
PublicApi
.
getManageShopFindShopsBySiteId
({
siteId
,
type
:
2
}).
then
(
res
=>
{
const
param
:
any
=
{
siteId
,
type
:
2
}
PublicApi
.
getManageShopFindShopsBySiteId
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setAllMallList
(
res
.
data
)
}
...
...
@@ -58,7 +62,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
* 获取渠道信息
*/
const
fetchShopInfo
=
()
=>
{
PublicApi
.
getTemplateChannelFindChannel
().
then
(
res
=>
{
const
{
memberId
}
=
getAuth
()
||
{}
const
param
:
any
=
{
memberId
}
PublicApi
.
getTemplateChannelFindChannel
(
param
).
then
(
res
=>
{
const
data
=
res
.
data
if
(
res
.
code
===
1000
)
{
setShopInfo
(
data
)
...
...
@@ -92,7 +100,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
}
const
handleAddNewCitySelect
=
(
item
:
any
)
=>
{
le
t
temp
=
[...
selectCityData
]
cons
t
temp
=
[...
selectCityData
]
temp
.
push
(
item
)
setSelectCityData
(
temp
)
form
.
setFieldsValue
({
...
...
@@ -136,7 +144,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
const
handleSave
=
(
e
:
any
)
=>
{
e
.
preventDefault
()
form
.
validateFields
().
then
(
value
=>
{
form
.
validateFields
().
then
(
(
value
:
any
)
=>
{
if
(
!
checkmemberChannelAreas
(
value
.
memberChannelAreas
))
{
return
}
...
...
@@ -147,7 +155,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
value
.
storeUrl
=
storeUrl
||
`
${
siteUrl
}
/
${
GlobalConfig
.
channelRootRoute
}
`
value
.
shopId
=
shopId
setConfirmLoading
(
true
)
//@ts-ignore
PublicApi
.
postTemplateChannelSaveChannel
(
value
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
fetchShopInfo
()
...
...
@@ -215,7 +223,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
return
}
if
(
shopInfo
.
shopId
&&
shopInfo
.
memberId
)
{
le
t
resUrl
=
getMallItemAndSetUrl
(
mallId
)
cons
t
resUrl
=
getMallItemAndSetUrl
(
mallId
)
setStoreUrl
(
resUrl
)
}
else
{
setStoreUrl
(
null
)
...
...
@@ -225,7 +233,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
const
getMallItemAndSetUrl
=
(
mallId
)
=>
{
let
result
=
""
le
t
mallItem
=
allMallList
.
filter
(
item
=>
item
.
id
===
mallId
)[
0
]
cons
t
mallItem
=
allMallList
.
filter
(
item
=>
item
.
id
===
mallId
)[
0
]
if
(
!
mallItem
)
{
return
""
}
...
...
@@ -261,7 +269,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
return
null
}
if
(
shopId
&&
shopInfo
.
shopId
&&
shopInfo
.
memberId
)
{
le
t
resUrl
=
getMallItemAndSetUrl
(
shopId
)
cons
t
resUrl
=
getMallItemAndSetUrl
(
shopId
)
return
resUrl
?
(
<
div
className=
{
styles
.
shop_url
}
>
<
span
>
当前店铺链接:
</
span
>
...
...
@@ -396,7 +404,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
labelAlign=
"left"
name=
"customerUrl"
label=
{
<
RequireItem
label=
"客服链接"
/>
}
rules=
{
[{
pattern
:
/
(
http|ftp|https
)
:
\/\/[\w\-
_
]
+
(\.[\w\-
_
]
+
)
+
([\w\-
\.
,@?^=%&:
/
~
\+
#
]
*
[\w\-\@
?^=%&
/
~
\
+
#
])?
/
,
message
:
'请输入正确的客服链接'
}]
}
rules=
{
[{
pattern
:
/
(
http|ftp|https
)
:
\/\/[\w\-
_
]
+
(\.[\w\-
_
]
+
)
+
([\w\-
.,@?^=%&:
/
~+#
]
*
[\w\-
@?^=%&
/
~
+#
])?
/
,
message
:
'请输入正确的客服链接'
}]
}
>
<
Input
allowClear
className=
{
styles
.
form_item
}
/>
</
Form
.
Item
>
...
...
src/pages/editor/settingsPanel/propsSettings/components/GoodsSetting/index.tsx
View file @
455b8bf8
...
...
@@ -5,7 +5,7 @@ import SettingList from '../../../../components/SettingList'
import
GoodsItem
from
'./GoodsItem'
import
SettingPanel
from
'../../../../components/SettingPanel'
import
{
CaretUpOutlined
,
CaretDownOutlined
}
from
'@ant-design/icons'
import
{
GetTemplatePlatformFindGoodsListResponseDetail
}
from
'@/services'
import
{
GetTemplatePlatformFindGoodsListResponseDetail
}
from
'@/services
/TemplateApi
'
import
{
PublicApi
}
from
'@/services/api'
import
{
filterProps
}
from
'../../../../utils'
import
styles
from
'./index.less'
...
...
@@ -44,7 +44,6 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
const
[
filterParam
,
setFilterParam
]
=
useState
()
const
[
spinLoading
,
setSpinLoading
]
=
useState
<
boolean
>
(
false
)
const
[
newProps
,
setNewProps
]
=
useState
(
props
)
const
[
categoryResponseList
,
setCategoryResponseList
]
=
useState
<
any
>
([])
const
[
noSelectBrands
,
setNoSelectBrands
]
=
useState
<
any
[]
>
([])
...
...
@@ -59,8 +58,7 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
categoryId
:
categoryid
,
templateId
:
templateid
}
PublicApi
.
getTemplatePlatformFindCategoryList
(
param
).
then
(
res
=>
{
PublicApi
.
getTemplateShopFindCategoryList
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
data
=
res
.
data
setCategoryResponseList
(
data
.
categoryBOList
||
[])
...
...
@@ -283,7 +281,10 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
</
Button
>
)
:
(
<
Button
onClick=
{
()
=>
setOprationType
(
'list'
)
}
onClick=
{
()
=>
{
setOprationType
(
'list'
)
setIsHighSearch
(
false
)
}
}
>
查看已选择商品(
{
selectGoodsList
.
length
}
)
</
Button
>
...
...
src/pages/handling/assign/add/index.tsx
View file @
455b8bf8
...
...
@@ -270,7 +270,6 @@ const Add: React.FC<{}> = () => {
* 提交表单
*/
const
handleSubmit
=
(
values
:
any
)
=>
{
console
.
log
(
values
)
const
SELF_MENTION
=
2
;
// 自提
const
{
deliveryDate
,
...
...
@@ -340,7 +339,6 @@ const Add: React.FC<{}> = () => {
delete
postData
.
receiverAddressId
}
console
.
log
(
postData
);
// return ;
PublicApi
.
postEnhanceSupplierToBeAddAdd
(
postData
)
.
then
(
data
=>
{
setSubmitLoading
(
false
);
...
...
src/pages/handling/components/ProcessDetail/content.tsx
View file @
455b8bf8
...
...
@@ -5,8 +5,7 @@ import classnames from 'classnames';
import
{
FileList
,
UploadFile
}
from
'../../components/UploadFile'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
}
from
'@formily/antd'
import
{
useScroll
,
useDebounceFn
}
from
'@umijs/hooks'
;
import
{
min
}
from
'lodash'
;
import
{
useScroll
}
from
'@umijs/hooks'
;
const
actions
=
createFormActions
();
const
schema
=
{
...
...
@@ -64,7 +63,6 @@ interface Iprops {
const
Content
:
React
.
FC
<
Iprops
>
=
React
.
forwardRef
((
props
,
conftentRef
)
=>
{
const
{
id
,
name
,
category
,
brand
,
unitName
,
files
,
productProps
,
quantity
,
processUnitPrice
}
=
props
;
const
[
active
,
setActive
]
=
useState
<
string
>
(
"基本信息"
);
const
[
menu
,
setMenu
]
=
useState
([])
// const ref = useRef(null);
const
[
scroll
,
ref
]
=
useScroll
<
HTMLDivElement
>
();
...
...
src/pages/home/components/UserCenter/index.less
View file @
455b8bf8
...
...
@@ -60,10 +60,23 @@
margin-right: 12px;
border-radius: 50%;
// background-color: red;
overflow: hidden;
img {
width: 100%;
height: 100%;
}
.randomLogo {
width: 100%;
height: 100%;
background: linear-gradient(135deg, #4981CC 0%, #1A4F97 100%) #255BA3;
border-radius: 50%;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 18px;
}
}
.wrapper {
...
...
src/pages/home/components/UserCenter/index.tsx
View file @
455b8bf8
...
...
@@ -16,7 +16,7 @@ const WEEKDAYS = ["天", "一","二", "三", "四", "五","六"];
const
LEVEL_IMAGE
=
[
level1
,
level2
,
level3
,
level4
];
const
EDIT_USER_URL
=
'/memberCenter/memberAbility/query'
;
const
USER_CENTER_URL
=
'/memberCenter/memberAbility/manage/maintain'
const
STATUS_COLOR
=
[
"default"
,
"processing"
,
"error"
,
"success"
]
const
STATUS_COLOR
:
(
"default"
|
"processing"
|
"error"
|
"success"
)[]
=
[
"default"
,
"processing"
,
"error"
,
"success"
]
const
UserCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
today
=
moment
();
...
...
@@ -46,11 +46,12 @@ const UserCenter: React.FC<Iprops> = () => {
<
div
className=
{
styles
.
content
}
>
<
Row
className=
{
styles
.
row
}
>
<
Col
span=
{
11
}
className=
{
styles
.
user
}
>
{
/* http://10.0.0.25:4000/project/15/interface/api/38926 上传用户头像 */
}
<
div
className=
{
styles
.
pic
}
>
{
userAuth
.
logo
?
<
img
src=
{
userAuth
.
logo
||
''
}
/>
:
<
div
>
</
div
>
:
<
div
className=
{
styles
.
randomLogo
}
>
H
</
div
>
}
</
div
>
...
...
src/pages/lxMall/commodityDetail/index.tsx
View file @
455b8bf8
...
...
@@ -371,7 +371,13 @@ const CommodityDetail = (props) => {
postFn
=
PublicApi
.
postSearchShopPurchaseSaveOrUpdatePurchase
break
;
}
PublicApi
.
postOrderDirectPayment
({
productId
:
selectCommodityId
,
memberId
}).
then
(
res
=>
{
const
directParam
:
any
=
{
productId
:
selectCommodityId
,
memberId
,
shopId
}
PublicApi
.
postOrderDirectPayment
(
directParam
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
postFn
&&
postFn
(
param
).
then
(
res
=>
{
...
...
@@ -483,8 +489,12 @@ const CommodityDetail = (props) => {
if
(
clickFlag
)
{
clickFlag
=
false
PublicApi
.
postOrderDirectPayment
({
productId
:
selectCommodityId
,
memberId
}).
then
(
res
=>
{
const
param
:
any
=
{
productId
:
selectCommodityId
,
memberId
,
shopId
}
PublicApi
.
postOrderDirectPayment
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
const
buyCommodityInfo
=
{
...
...
src/pages/lxMall/components/Filter/components/Category/index.tsx
View file @
455b8bf8
...
...
@@ -6,6 +6,7 @@ import { LAYOUT_TYPE, FILTER_TYPE } from '@/constants'
import
{
PublicApi
}
from
'@/services/api'
import
isEmpty
from
'lodash/isEmpty'
import
styles
from
'./index.less'
import
{
Layout
}
from
'@formily/antd'
const
CheckboxGroup
=
Checkbox
.
Group
...
...
@@ -29,6 +30,7 @@ const Category: React.FC<CategoryPropsType> = (props) => {
const
[
initSelectAttributeList
,
setInitSelectAttributeList
]
=
useState
<
any
>
([])
useEffect
(()
=>
{
console
.
log
(
JSON
.
stringify
(
filterList
))
if
(
isEmpty
(
filterList
))
{
setSelectedKeys
([])
setLastCategoryId
(
null
)
...
...
@@ -39,6 +41,8 @@ const Category: React.FC<CategoryPropsType> = (props) => {
for
(
const
item
of
filterList
)
{
if
(
item
.
type
===
FILTER_TYPE
.
category
)
{
initKeys
.
push
(
String
(
item
.
key
))
}
else
if
(
item
.
type
===
FILTER_TYPE
.
customerCategory
)
{
initKeys
.
push
(
String
(
item
.
key
))
}
if
(
item
.
type
===
FILTER_TYPE
.
attribute
)
{
setInitSelectAttributeList
(
item
.
key
)
...
...
@@ -186,7 +190,6 @@ const Category: React.FC<CategoryPropsType> = (props) => {
}
const
handleSelect
=
(
selectedKeys
,
info
)
=>
{
console
.
log
(
info
)
const
{
title
,
children
,
name
}
=
info
.
node
setSelectedKeys
(
selectedKeys
)
if
(
children
.
length
===
0
)
{
...
...
@@ -196,17 +199,31 @@ const Category: React.FC<CategoryPropsType> = (props) => {
}
else
{
setLastCategoryId
(
null
)
setAttributeList
([])
if
(
filterList
.
some
(
item
=>
item
.
type
===
FILTER_TYPE
.
attribute
))
{
onFilter
({
type
:
FILTER_TYPE
.
attribute
,
key
:
null
,
title
:
``
})
}
}
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
mall
:
onFilter
({
type
:
FILTER_TYPE
.
category
,
key
:
selectedKeys
,
title
:
typeof
title
===
'string'
?
title
:
name
})
break
default
:
onFilter
({
type
:
FILTER_TYPE
.
customerCategory
,
key
:
selectedKeys
,
title
:
typeof
title
===
'string'
?
title
:
name
})
break
}
}
const
handleExpand
=
(
expandedKeys
)
=>
{
...
...
src/pages/lxMall/layouts/LXChannelLayout.tsx
View file @
455b8bf8
...
...
@@ -35,7 +35,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
getMenuRouter
=
(
routes
:
any
,
pathname
:
any
)
=>
{
le
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
cons
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
return
list
[
0
]
||
{}
}
...
...
@@ -61,7 +61,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
},
[
query
])
const
fetchShopInfo
=
(
memberId
)
=>
{
//@ts-ignore
PublicApi
.
getTemplateChannelFindChannel
({
memberId
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setShopInfo
(
res
.
data
)
...
...
@@ -73,7 +73,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
}
useEffect
(()
=>
{
le
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
cons
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
if
(
shopInfo
)
{
body
.
className
=
shopInfo
.
channelShopTemplateFileName
?
`theme-channel-
${
shopInfo
.
channelShopTemplateFileName
}
`
:
templateName
;
}
else
{
...
...
src/pages/lxMall/layouts/LXIChannelLayout.tsx
View file @
455b8bf8
...
...
@@ -35,7 +35,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
getMenuRouter
=
(
routes
:
any
,
pathname
:
any
)
=>
{
le
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
cons
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
return
list
[
0
]
||
{}
}
const
{
formatMessage
}
=
useIntl
();
...
...
@@ -61,7 +61,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
},
[
query
])
const
fetchShopInfo
=
(
memberId
)
=>
{
//@ts-ignore
PublicApi
.
getTemplateChannelFindChannel
({
memberId
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setShopInfo
(
res
.
data
)
...
...
@@ -73,7 +73,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
}
useEffect
(()
=>
{
le
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
cons
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
if
(
shopInfo
)
{
body
.
className
=
shopInfo
.
channelOwnShopTemplateFileName
?
`theme-channel-
${
shopInfo
.
channelOwnShopTemplateFileName
}
`
:
templateName
;
}
else
{
...
...
src/pages/lxMall/layouts/LXMallLayout.tsx
View file @
455b8bf8
...
...
@@ -32,7 +32,7 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const
[
mallInfo
,
setMallInfo
]
=
useState
<
any
>
({})
const
getMenuRouter
=
(
routes
:
any
,
pathname
:
any
)
=>
{
le
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
cons
t
list
=
routes
.
filter
((
item
:
any
)
=>
pathname
.
indexOf
(
item
.
key
)
>
-
1
)
return
list
[
0
]
||
{}
}
...
...
@@ -50,12 +50,12 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const
getWebMallInfo
=
()
=>
{
const
shopInfo
=
GlobalConfig
.
web
.
shopInfo
le
t
webMallInfo
=
shopInfo
.
filter
(
item
=>
item
.
environment
===
1
&&
item
.
type
===
1
)[
0
]
cons
t
webMallInfo
=
shopInfo
.
filter
(
item
=>
item
.
environment
===
1
&&
item
.
type
===
1
)[
0
]
setMallInfo
(
webMallInfo
)
}
useEffect
(()
=>
{
le
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
cons
t
body
=
document
.
getElementsByTagName
(
'body'
)[
0
];
if
(
!
isEmpty
(
mallTemplateInfo
))
{
body
.
className
=
mallTemplateInfo
.
fileName
?
`theme-mall-
${
mallTemplateInfo
.
fileName
}
`
:
templateName
;
}
else
{
...
...
src/pages/lxMall/order/index.tsx
View file @
455b8bf8
...
...
@@ -25,12 +25,13 @@ interface OrderPropsType {
mallInfo
:
any
;
layoutType
:
LAYOUT_TYPE
;
shopUrlParam
:
string
;
shopId
:
number
;
}
const
Order
:
React
.
FC
<
OrderPropsType
>
=
(
props
)
=>
{
let
checkoutCount
=
0
const
userInfo
=
getAuth
()
const
{
shopInfo
,
mallInfo
,
layoutType
,
shopUrlParam
}
=
props
const
{
shopInfo
,
mallInfo
,
layoutType
,
shopUrlParam
,
shopId
}
=
props
const
{
query
:
{
type
=
COMMODITY_TYPE
.
prompt
}
}
=
props
.
location
const
[
signModalVisible
,
setSignModalVisible
]
=
useState
<
boolean
>
(
false
)
const
{
spam_id
}
=
props
.
location
.
query
...
...
@@ -266,6 +267,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
const
params
:
any
=
{
orderModel
:
getOrderMode
(),
// 下单模式
needTheInvoice
:
needTheInvoice
?
1
:
0
,
shopId
}
if
(
orderInfo
.
logistics
.
deliveryType
===
1
&&
!!
selectAddressInfo
)
{
...
...
src/pages/systemSetting/message/index.less
View file @
455b8bf8
...
...
@@ -16,5 +16,6 @@
font-weight: 500;
// color: #303133;
display: inline-block;
cursor: pointer;
}
}
src/pages/systemSetting/message/index.tsx
View file @
455b8bf8
...
...
@@ -3,13 +3,11 @@ import { history } from 'umi';
import
{
Card
,
List
,
Avatar
}
from
'antd'
;
import
styles
from
'./index.less'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
moment
from
'moment'
;
import
msg_system
from
'@/assets/imgs/msg_system.png'
import
msg_platform
from
'@/assets/imgs/msg_platform.png'
;
import
cx
from
'classnames'
;
const
Message
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
dataSource
,
setDataSource
]
=
useState
<
any
>
([])
...
...
@@ -41,7 +39,6 @@ const Message: React.FC<{}> = () => {
}
const
handlePaginationChange
=
(
page
,
pageSize
)
=>
{
console
.
log
(
page
,
pageSize
);
getList
({
page
,
pageSize
})
.
then
((
data
)
=>
{
console
.
log
(
data
);
...
...
@@ -51,12 +48,15 @@ const Message: React.FC<{}> = () => {
const
handleRead
=
(
id
,
url
:
string
)
=>
{
console
.
log
(
url
);
// /report/message/member/read
PublicApi
.
getReportMessageMemberRead
({
id
:
id
})
.
then
((
data
)
=>
{
if
(
url
)
{
if
(
/http/
.
test
(
url
))
{
location
.
href
=
url
}
else
{
history
.
push
(
url
);
}
}
})
}
...
...
src/pages/transaction/components/orderSaleRecord/index.tsx
View file @
455b8bf8
...
...
@@ -25,11 +25,12 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => {
const
isDeleved
=
pathname
.
indexOf
(
'readyConfirmDelevedOrder'
)
!==
-
1
// 是否是确认回单页
const
isReturn
=
pathname
.
indexOf
(
'readyConfirmReturnOrder'
)
!==
-
1
console
.
log
(
isPreview
,
isDeleved
,
isReturn
)
// 用于储存已经修改过的订单id
const
dataRef
=
useRef
<
any
>
([])
const
{
data
,
reloadFormData
}
=
useContext
(
OrderDetailContext
)
const
{
orderReceivingStatisticsResponses
,
orderDeliveryDetailsResponses
,
orderModel
}
=
data
const
{
orderReceivingStatisticsResponses
,
orderDeliveryDetailsResponses
,
orderModel
,
externalState
}
=
data
const
creditsCommodity
=
(
orderModel
===
24
||
orderModel
===
25
)
// 积分或渠道积分下单模式
const
outOrderCols
:
any
[]
=
[
...
...
@@ -341,10 +342,13 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => {
childrenDataKey=
'orderDeliveryProducts'
dataSource=
{
orderDeliveryDetailsResponses
}
/>
{
externalState
===
11
&&
!
isPreview
&&
isReturn
&&
<
Space
style=
{
{
marginTop
:
18
,
display
:
"flex"
,
justifyContent
:
"flex-end"
}
}
>
<
Button
type=
"primary"
onClick=
{
handelReciveReturnOrder
}
>
确认本单全部发货单已收到回单
</
Button
>
<
Button
type=
"primary"
onClick=
{
handleContinueDeliver
}
>
继续发货
</
Button
>
</
Space
>
}
</
Tabs
.
TabPane
>
}
</
Tabs
>
...
...
src/pages/transaction/components/saleOrderProductTable/index.tsx
View file @
455b8bf8
...
...
@@ -363,7 +363,7 @@ const SaleOrderProductTable:React.FC<OrderProductTableProps> = (props) => {
})
ctl
.
setData
({
...
data
,
orderProductRequests
:
newData
orderProductRequests
:
newData
.
sort
((
a
,
b
)
=>
a
.
id
-
b
.
id
)
})
};
...
...
@@ -479,7 +479,7 @@ const SaleOrderProductTable:React.FC<OrderProductTableProps> = (props) => {
<
MellowCard
title=
'订单商品'
style=
{
{
marginTop
:
24
}
}
bordered=
{
false
}
>
<
Table
columns=
{
columns
}
dataSource=
{
orderProductRequests
}
dataSource=
{
orderProductRequests
.
sort
((
a
,
b
)
=>
a
.
id
-
b
.
id
)
}
components=
{
productComponents
}
rowKey=
'id'
pagination=
{
false
}
...
...
src/pages/transaction/purchaseOrder/orderCollect/constant/index.tsx
View file @
455b8bf8
...
...
@@ -4,7 +4,6 @@ import { Row, Space, Popover } from 'antd'
import
{
DELIVERY_TYPE
,
OrderModalType
,
PurchaseOrderOutWorkStateTexts
}
from
'@/constants'
import
{
EnvironmentOutlined
}
from
'@ant-design/icons'
import
{
PublicApi
}
from
'@/services/api'
import
{
toPercent
}
from
'@/utils/type'
// 简单控制价格区间的组件
// @todo 后续需要优化, 样式,目录文件等。
...
...
@@ -278,15 +277,11 @@ export const productInfoColumns: any[] = [
align
:
'left'
,
key
:
'unitPrice'
,
render
:
(
t
,
r
)
=>
{
// if(r?.commodityId) {
// return <PriceComp priceSection={r.unitPrice}/>
// } else {
// return r.price
// }
if
(
JSON
.
stringify
(
r
.
unitPrice
)
===
'{}'
)
{
return
r
.
price
}
else
{
// todo 还差需求报价的商品数据字段对比
if
(
r
?.
commodityId
)
{
return
<
PriceComp
priceSection=
{
r
.
unitPrice
}
/>
}
else
{
return
<
span
style=
{
{
color
:
'red'
}
}
>
¥
{
r
.
price
}
</
span
>
}
}
},
...
...
@@ -295,7 +290,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'memberPrice'
,
align
:
'center'
,
key
:
'memberPrice'
,
render
:
(
text
,
record
)
=>
record
.
isMemberPrice
?
toPercent
(
text
)
:
null
render
:
(
text
,
record
)
=>
record
.
isMemberPrice
&&
text
?
text
*
100
+
'%'
:
null
},
{
title
:
'采购数量'
,
...
...
src/pages/transaction/purchaseOrder/orderCollect/effects/index.ts
View file @
455b8bf8
...
...
@@ -89,7 +89,6 @@ export const useEditHideField = () => {
export
const
useProductTableChangeForPay
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
update
)
=>
{
FormEffectHooks
.
onFieldValueChange$
(
'orderProductRequests'
).
subscribe
(
state
=>
{
const
{
value
}
=
state
console
.
log
(
value
,
'vlaue'
)
const
payInfoData
=
ctx
.
getFieldValue
(
'paymentInformationResponses'
)
// 强制渲染一次, 用于触发金额总数
update
()
...
...
@@ -175,15 +174,16 @@ export const useOrderFormInitEffect = (ctx: ISchemaFormActions | ISchemaFormAsyn
prev
[
next
.
range
]
=
next
.
price
return
prev
},
{}),
isMemberPrice
:
!!
v
.
memberDiscount
,
isMemberPrice
:
v
.
isMemberPrice
,
purchaseCount
:
v
.
count
,
money
:
v
.
count
*
v
.
unitPrice
,
productId
:
v
.
id
,
memberId
:
initValue
.
supplyMembersId
,
// 添加 memberId 字段
commodityId
:
v
.
id
,
// 添加commodityId用于判断是商品价格是使用price字段还是unitPrice字段(也可判断是报价订单还是其他)
memberPrice
:
v
.
memberDiscount
!==
1
?
toPercent
(
v
.
memberDiscount
)
:
1
,
// 添加会员折扣
memberPrice
:
v
.
memberDiscount
!==
1
?
v
.
memberDiscount
:
1
,
// 添加会员折扣
}
})))
})
))
}
// 回显的数据保存在表单中, 当切换下单模式时,可以再次回显
...
...
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
View file @
455b8bf8
...
...
@@ -72,7 +72,7 @@ export const MoneyTotalBox = registerVirtualBox('moneyTotalBox', props => {
orderProductList
:
logsiticsDataMaps
.
map
(
v
=>
({
templateId
:
v
.
logistics
.
templateId
,
weight
:
v
.
logistics
.
weight
,
count
:
v
?.
purchaseCount
||
0
count
:
v
?.
purchaseCount
||
null
})),
receiverAddressId
:
typeof
receiverAddressId
===
'object'
?
receiverAddressId
.
id
:
receiverAddressId
},
{
ttl
:
10
*
1000
,
useCache
:
true
,
ctlType
:
'none'
}).
then
(
res
=>
{
...
...
src/pages/transaction/purchaseOrder/orderCollect/model/useProductTable.tsx
View file @
455b8bf8
...
...
@@ -48,9 +48,9 @@ export const getUnitPriceTotal = (record) => {
// let memberPrice = record.memberPrice !== 1 ? toPoint(record.memberPrice) : 1
let
memberPrice
=
record
.
memberPrice
if
(
record
.
isMemberPrice
)
{
return
unitPrice
*
purchaseCount
*
memberPrice
return
Number
((
unitPrice
*
purchaseCount
*
memberPrice
).
toFixed
(
2
))
}
else
{
return
unitPrice
*
purchaseCount
return
Number
((
unitPrice
*
purchaseCount
).
toFixed
(
2
))
}
}
export
const
useProductTable
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
)
=>
{
...
...
@@ -105,7 +105,6 @@ export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncAction
const
newData
=
[...
ctx
.
getFieldValue
(
'orderProductRequests'
)];
const
index
=
newData
.
findIndex
(
item
=>
row
.
id
===
item
.
id
);
const
item
=
newData
[
index
];
console
.
log
(
getUnitPriceTotal
(
row
),
'row'
)
row
[
'money'
]
=
getUnitPriceTotal
(
row
)
// 新增的时候接口字段id,commodityId 编辑的时候id,productId
row
[
'productId'
]
=
row
?.
commodityId
?
row
.
id
:
row
.
productId
...
...
src/pages/transaction/purchaseOrder/orderCollect/schema/index.ts
View file @
455b8bf8
src/pages/transaction/purchaseOrder/readyPayOrder/model/useSelfTable.tsx
View file @
455b8bf8
...
...
@@ -4,7 +4,7 @@ import { Button, Row, Col, Progress, Popconfirm } from 'antd'
import
{
PublicApi
}
from
'@/services/api'
import
EyePreview
from
'@/components/EyePreview'
import
{
formatTimeString
}
from
'@/utils'
import
{
ORDER_TYPE
,
PurchaseOrderOutWorkState
}
from
'@/constants'
import
{
ORDER_TYPE
,
PurchaseOrder
InsideWorkState
,
PurchaseOrder
OutWorkState
}
from
'@/constants'
import
StatusColors
from
'../../components/StatusColors'
import
{
FieldTimeOutlined
}
from
'@ant-design/icons'
import
{
...
...
@@ -162,7 +162,12 @@ export const useSelfTable = (props) => {
<
Link
to=
{
`/memberCenter/tranactionAbility/purchaseOrder/readyPayOrder/detail?id=${record.id}`
}
>
去支付
</
Link
>
}
{
(
record
.
externalState
===
PurchaseOrderOutWorkState
.
PAY_ORDER
&&
!
record
.
signatureLogId
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
CONFIRM_NOT_ARRIVED_ACCOUNT
)
&&
(
record
.
externalState
===
PurchaseOrderOutWorkState
.
PAY_ORDER
&&
!
record
.
signatureLogId
||
record
.
externalState
===
PurchaseOrderOutWorkState
.
CONFIRM_NOT_ARRIVED_ACCOUNT
&&
record
.
interiorState
!==
PurchaseOrderInsideWorkState
.
PAY_SUCCESS
)
&&
<
Popconfirm
title=
"是否要取消该订单?"
onConfirm=
{
()
=>
handleCancel
(
record
.
id
)
}
...
...
src/pages/transaction/purchaseOrder/readyReceiveOrder/model/useSelfTable.tsx
View file @
455b8bf8
...
...
@@ -64,7 +64,7 @@ export const useSelfTable = () => {
},
{
title
:
'收货批次'
,
align
:
'center'
,
dataIndex
:
'shipmentBatch'
,
key
:
'shipmentBatch'
,
render
:
text
=>
text
?
`第
${
text
}
次`
:
''
},
// @todo 收货单号跳转
{
title
:
'
入库
单号'
,
align
:
'center'
,
dataIndex
:
'invoiceNumber'
,
key
:
'invoiceNumber'
,
render
:
text
=>
<
Link
to=
{
'/'
}
>
{
text
}
</
Link
>
},
{
title
:
'
收货
单号'
,
align
:
'center'
,
dataIndex
:
'invoiceNumber'
,
key
:
'invoiceNumber'
,
render
:
text
=>
<
Link
to=
{
'/'
}
>
{
text
}
</
Link
>
},
{
title
:
'订单类型'
,
align
:
'center'
,
...
...
src/pages/transaction/saleOrder/addSaleDelevedOrder/index.tsx
View file @
455b8bf8
...
...
@@ -12,7 +12,6 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
DateRangePickerUnix
from
'@/components/NiceForm/components/DateRangePickerUnix'
// 待确认支付结果订单
export
interface
FirstApprovedOrderProps
{}
...
...
src/pages/transaction/saleOrder/addSaleDelevedOrder/model/useSelfTable.tsx
View file @
455b8bf8
...
...
@@ -64,7 +64,13 @@ export const useSelfTable = () => {
},
{
title
:
'发货批次'
,
align
:
'center'
,
dataIndex
:
'shipmentBatch'
,
key
:
'shipmentBatch'
,
render
:
text
=>
text
?
`第
${
text
}
次`
:
''
},
// @todo 发货单号跳转
{
title
:
'发货单号'
,
align
:
'center'
,
dataIndex
:
'invoiceNumber'
,
key
:
'invoiceNumber'
,
render
:
text
=>
<
Link
to=
{
'/'
}
>
{
text
}
</
Link
>
},
{
title
:
'发货单号'
,
align
:
'center'
,
dataIndex
:
'invoiceNumber'
,
key
:
'invoiceNumber'
,
render
:
(
text
,
record
)
=>
<
Link
to=
{
`/memberCenter/tranactionAbility/stockSellStorage/bills/detail?id=${record.invoiceId}&preview=1`
}
>
{
text
}
</
Link
>
},
// { title: '当前支付', align: 'center', dataIndex: 'currentPayments', render: (text, record) => text},
{
title
:
'订单类型'
,
...
...
src/pages/transaction/saleOrder/readyConfirmDelevedOrder/model/useSelfTable.tsx
View file @
455b8bf8
...
...
@@ -60,7 +60,7 @@ export const useSelfTable = () => {
align
:
'center'
,
dataIndex
:
'sumPrice'
,
key
:
'sumPrice'
,
render
:
text
=>
'¥'
+
tex
t
render
:
(
t
,
r
)
=>
(
r
.
type
===
7
||
r
.
type
===
8
)
?
t
:
'¥'
+
t
},
{
title
:
'发货批次'
,
align
:
'center'
,
dataIndex
:
'shipmentBatch'
,
key
:
'shipmentBatch'
,
render
:
text
=>
text
?
`第
${
text
}
次`
:
''
},
// @todo 发货单号跳转
...
...
src/pages/transaction/transactionRules/components/RuleSetting.tsx
View file @
455b8bf8
...
...
@@ -239,7 +239,7 @@ const RuleSetting:React.FC<RuleSettingProps> = (props) => {
async
function
getInitValue
()
{
const
{
data
}
=
await
PublicApi
.
getOrderTradingRulesDetails
({
id
:
id
})
if
(
data
.
isTacitlyApprove
===
2
)
{
const
res
=
await
getBindingProducts
({
id
:
id
.
toString
(),
current
:
'1'
,
pageSize
:
'10'
})
const
res
=
await
getBindingProducts
({
id
:
id
.
toString
(),
current
:
'1'
,
pageSize
:
'10
00
'
})
addSchemaAction
.
setFieldState
(
'products'
,
state
=>
{
state
.
value
=
res
.
data
})
...
...
src/pages/transaction/transactionRules/schema/index.tsx
View file @
455b8bf8
...
...
@@ -176,7 +176,6 @@ export const ruleDetailSchema: ISchema = padRequiredMessage({
rowKey
:
'id'
,
columns
:
"{{tableColumns}}"
,
prefix
:
"{{tableAddButton}}"
,
idNotList
:
[]
}
}
}
...
...
src/store/filter/index.ts
View file @
455b8bf8
...
...
@@ -138,6 +138,9 @@ class FilterStore {
case
FILTER_TYPE
.
category
:
tempFilterParam
.
categoryId
=
Number
(
filterItem
.
key
[
0
])
break
case
FILTER_TYPE
.
customerCategory
:
tempFilterParam
.
customerCategoryId
=
Number
(
filterItem
.
key
[
0
])
break
case
FILTER_TYPE
.
commodityType
:
tempFilterParam
.
priceTypeList
=
[
filterItem
.
key
]
break
...
...
@@ -202,6 +205,10 @@ class FilterStore {
tempFilterParam
.
customerCategoryId
=
filterItem
.
key
[
0
]
tempFilterParam
.
customerCategoryName
=
filterItem
.
title
break
case
FILTER_TYPE
.
customerCategory
:
tempFilterParam
.
customerCategoryId
=
filterItem
.
key
[
0
]
tempFilterParam
.
customerCategoryName
=
filterItem
.
title
break
case
FILTER_TYPE
.
brand
:
tempFilterParam
.
brandId
=
filterItem
.
key
tempFilterParam
.
brandName
=
filterItem
.
title
...
...
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