Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
merchant-manage-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
ui
merchant-manage-ui
Commits
ef633c31
Commit
ef633c31
authored
Nov 14, 2022
by
李腾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 完成多物流发货以及编辑逻辑
parent
93dae43d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
125 additions
and
57 deletions
+125
-57
env.config.js
config/env.config.js
+1
-1
auditModal.jsx
src/pages/AfterSaleManage/components/auditModal.jsx
+1
-0
index.jsx
...ingDeliveryOrder/components/MultiLogisticsModal/index.jsx
+62
-17
index.jsx
src/pages/orderManage/pendingDeliveryOrder/index.jsx
+4
-1
service.js
src/pages/orderManage/pendingDeliveryOrder/service.js
+57
-38
No files found.
config/env.config.js
View file @
ef633c31
...
@@ -4,7 +4,7 @@ const environment = 'sc';
...
@@ -4,7 +4,7 @@ const environment = 'sc';
const
envAPi
=
{
const
envAPi
=
{
api
:
`https://security-
${
environment
}
.liangkebang.net`
,
//'https://security-xyqb.liangkebang.net',
api
:
`https://security-
${
environment
}
.liangkebang.net`
,
//'https://security-xyqb.liangkebang.net',
kdspOpApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
kdspOpApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
kdspApi
:
`http
s://sc-merchant-api-
${
environment
}
.liangkebang.net
`
,
kdspApi
:
`http
://192.168.68.87:7002
`
,
goodsApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
goodsApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
querysApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
querysApi
:
`https://sc-merchant-api-
${
environment
}
.liangkebang.net`
,
prologueDomain
:
`https://mall-
${
environment
}
.liangkebang.net`
,
prologueDomain
:
`https://mall-
${
environment
}
.liangkebang.net`
,
...
...
src/pages/AfterSaleManage/components/auditModal.jsx
View file @
ef633c31
...
@@ -105,6 +105,7 @@ const AuditModal = props => {
...
@@ -105,6 +105,7 @@ const AuditModal = props => {
};
};
const
openLogisticsRecord
=
()
=>
{
const
openLogisticsRecord
=
()
=>
{
console
.
log
(
formData
);
logisticsRecordModalRef
.
current
.
open
(
formData
.
orderNo
);
logisticsRecordModalRef
.
current
.
open
(
formData
.
orderNo
);
};
};
...
...
src/pages/orderManage/pendingDeliveryOrder/components/MultiLogisticsModal/index.jsx
View file @
ef633c31
...
@@ -2,6 +2,7 @@ import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } f
...
@@ -2,6 +2,7 @@ import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } f
import
{
Modal
,
Select
,
notification
,
Form
,
Input
,
Button
,
Checkbox
}
from
'
antd
'
;
import
{
Modal
,
Select
,
notification
,
Form
,
Input
,
Button
,
Checkbox
}
from
'
antd
'
;
import
{
PlusCircleOutlined
,
MinusCircleOutlined
}
from
'
@ant-design/icons
'
;
import
{
PlusCircleOutlined
,
MinusCircleOutlined
}
from
'
@ant-design/icons
'
;
import
{
userEnabled
,
userDisabled
,
userDelete
}
from
'
@/pages/systemManage/service
'
;
import
{
userEnabled
,
userDisabled
,
userDelete
}
from
'
@/pages/systemManage/service
'
;
import
{
apiDeliveriesAdd
}
from
'
../../service
'
;
import
styles
from
'
./index.less
'
;
import
styles
from
'
./index.less
'
;
const
FormComponent
=
(
props
,
ref
)
=>
{
const
FormComponent
=
(
props
,
ref
)
=>
{
...
@@ -17,21 +18,26 @@ const FormComponent = (props, ref) => {
...
@@ -17,21 +18,26 @@ const FormComponent = (props, ref) => {
});
});
const
[
initPackageList
,
setInitPackageList
]
=
useState
(()
=>
{
const
[
initPackageList
,
setInitPackageList
]
=
useState
(()
=>
{
// 新增
if
(
packageList
.
length
===
0
)
{
if
(
packageList
.
length
===
0
)
{
return
[
return
[
{
{
// 默认选中所有商品
skuInfoList
:
mchOrderSkuVoList
.
map
(
item
=>
({
skuNo
:
[
item
.
skuNo
],
quantity
:
1
})),
skuInfoList
:
mchOrderSkuVoList
.
map
(
item
=>
({
skuNo
:
[
item
.
skuNo
],
quantity
:
1
})),
},
},
];
];
}
}
// 编辑
return
packageList
.
map
(
item
=>
({
return
packageList
.
map
(
item
=>
({
...
item
,
...
item
,
// 渲染所有商品选项,通过查找editData 是否存在判断是否选中
skuInfoList
:
mchOrderSkuVoList
.
map
((
skuInfo
,
index
)
=>
{
skuInfoList
:
mchOrderSkuVoList
.
map
((
skuInfo
,
index
)
=>
{
cons
ole
.
log
(
item
.
skuInfoList
);
cons
t
skuNo
=
skuInfo
.
skuNo
.
toString
(
);
const
editData
=
item
.
skuInfoList
[
index
]
;
const
editData
=
item
.
skuInfoList
.
find
(
ele
=>
ele
.
skuNo
.
toString
()
===
skuNo
)
;
if
(
editData
)
{
if
(
editData
)
{
return
{
return
{
...
editData
,
...
editData
,
skuNo
:
[
skuInfo
.
skuNo
],
};
};
}
}
return
{};
return
{};
...
@@ -41,10 +47,18 @@ const FormComponent = (props, ref) => {
...
@@ -41,10 +47,18 @@ const FormComponent = (props, ref) => {
// eslint-disable-next-line consistent-return
// eslint-disable-next-line consistent-return
const
onCheckSkuInfoList
=
async
(
_
,
names
)
=>
{
const
onCheckSkuInfoList
=
async
(
_
,
names
)
=>
{
let
hasNotCount
=
0
;
const
count
=
names
.
filter
(
item
=>
{
const
count
=
names
.
filter
(
item
=>
{
console
.
log
(
'
sku
'
,
item
.
skuNo
);
if
(
item
.
skuNo
&&
item
.
skuNo
.
length
>
0
&&
!
item
.
quantity
)
{
hasNotCount
++
;
}
return
item
.
skuNo
&&
item
.
skuNo
.
length
;
return
item
.
skuNo
&&
item
.
skuNo
.
length
;
}).
length
;
}).
length
;
console
.
log
(
'
onCheckSkuInfoList>
'
,
hasNotCount
);
if
(
hasNotCount
)
{
return
Promise
.
reject
(
new
Error
(
'
请填写选择发货商品的数量
'
));
}
if
(
count
===
0
)
{
if
(
count
===
0
)
{
return
Promise
.
reject
(
new
Error
(
'
至少选择一个商品
'
));
return
Promise
.
reject
(
new
Error
(
'
至少选择一个商品
'
));
}
}
...
@@ -61,11 +75,6 @@ const FormComponent = (props, ref) => {
...
@@ -61,11 +75,6 @@ const FormComponent = (props, ref) => {
serialNumber
:
[{
required
:
true
,
message
:
'
请填写序列号
'
}],
serialNumber
:
[{
required
:
true
,
message
:
'
请填写序列号
'
}],
};
};
useEffect
(()
=>
{
console
.
log
(
initPackageList
);
console
.
log
(
companys
,
mchOrderSkuVoList
);
},
[
record
]);
useImperativeHandle
(
ref
,
()
=>
({
useImperativeHandle
(
ref
,
()
=>
({
form
,
form
,
}));
}));
...
@@ -84,7 +93,7 @@ const FormComponent = (props, ref) => {
...
@@ -84,7 +93,7 @@ const FormComponent = (props, ref) => {
return
(
return
(
<
div
className=
{
styles
[
'
sku-list-box
'
]
}
>
<
div
className=
{
styles
[
'
sku-list-box
'
]
}
>
{
skuFields
.
map
(
field
=>
(
{
skuFields
.
map
(
field
=>
(
<
div
className=
{
styles
[
'
sku-list
'
]
}
>
<
div
key=
{
field
.
key
}
className=
{
styles
[
'
sku-list
'
]
}
>
<
Form
.
Item
className=
{
styles
[
'
sku-list__goods-name
'
]
}
name=
{
[
field
.
name
,
'
skuNo
'
]
}
>
<
Form
.
Item
className=
{
styles
[
'
sku-list__goods-name
'
]
}
name=
{
[
field
.
name
,
'
skuNo
'
]
}
>
{
getSkuOptions
(
field
.
name
,
parentFields
.
name
)
}
{
getSkuOptions
(
field
.
name
,
parentFields
.
name
)
}
</
Form
.
Item
>
</
Form
.
Item
>
...
@@ -110,11 +119,11 @@ const FormComponent = (props, ref) => {
...
@@ -110,11 +119,11 @@ const FormComponent = (props, ref) => {
{
(
fields
,
{
add
,
remove
},
{
errors
})
=>
(
{
(
fields
,
{
add
,
remove
},
{
errors
})
=>
(
<>
<>
{
fields
.
map
((
field
,
index
)
=>
(
{
fields
.
map
((
field
,
index
)
=>
(
<
div
className=
{
styles
[
'
sku-list-module
'
]
}
>
<
div
key=
{
field
.
key
}
className=
{
styles
[
'
sku-list-module
'
]
}
>
<
Form
.
List
name=
{
[
field
.
name
,
'
skuInfoList
'
]
}
rules=
{
formRules
.
skuInfoList
}
>
<
Form
.
List
name=
{
[
field
.
name
,
'
skuInfoList
'
]
}
rules=
{
formRules
.
skuInfoList
}
>
{
(
skuFields
,
actions
,
{
errors
:
err
})
=>
(
{
(
skuFields
,
actions
,
{
errors
:
err
})
=>
(
<
SkuFormList
<
SkuFormList
key=
{
index
.
toString
()
}
key=
{
field
.
key
}
skuFields=
{
skuFields
}
skuFields=
{
skuFields
}
parentFields=
{
field
}
parentFields=
{
field
}
errors=
{
err
}
errors=
{
err
}
...
@@ -144,7 +153,6 @@ const FormComponent = (props, ref) => {
...
@@ -144,7 +153,6 @@ const FormComponent = (props, ref) => {
<
PlusCircleOutlined
<
PlusCircleOutlined
onClick=
{
()
=>
{
onClick=
{
()
=>
{
const
currentPackageList
=
form
.
getFieldValue
(
'
packageList
'
);
const
currentPackageList
=
form
.
getFieldValue
(
'
packageList
'
);
console
.
log
(
currentPackageList
);
form
.
setFieldsValue
({
form
.
setFieldsValue
({
packageList
:
[...
currentPackageList
,
addPackageList
],
packageList
:
[...
currentPackageList
,
addPackageList
],
});
});
...
@@ -152,6 +160,7 @@ const FormComponent = (props, ref) => {
...
@@ -152,6 +160,7 @@ const FormComponent = (props, ref) => {
/>
/>
<
MinusCircleOutlined
<
MinusCircleOutlined
onClick=
{
()
=>
{
onClick=
{
()
=>
{
if
(
fields
.
length
<=
1
)
return
;
remove
(
fields
[
fields
.
length
-
1
].
name
);
remove
(
fields
[
fields
.
length
-
1
].
name
);
}
}
}
}
/>
/>
...
@@ -170,23 +179,36 @@ const UpdateStatusModal = (props, ref) => {
...
@@ -170,23 +179,36 @@ const UpdateStatusModal = (props, ref) => {
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
[
record
,
setRecord
]
=
useState
();
const
[
record
,
setRecord
]
=
useState
();
const
[
oldPackageList
,
setOldPackageList
]
=
useState
();
// 提交前处理数据结构将skuNo的值从[skuNo]=>skuNo
// 提交前处理数据结构将skuNo的值从[skuNo]=>skuNo
const
onFilterParams
=
packageList
=>
{
const
onFilterParams
=
packageList
=>
{
const
currentPackageList
=
JSON
.
parse
(
JSON
.
stringify
(
packageList
));
const
currentPackageList
=
JSON
.
parse
(
JSON
.
stringify
(
packageList
));
return
currentPackageList
.
map
(
item
=>
{
return
currentPackageList
.
map
(
item
=>
{
const
{
skuInfoList
}
=
item
;
const
{
skuInfoList
}
=
item
;
/**
* 参数结构
* @var {object} item { expressCompanyCode, expressNo, serialNumber, skuInfoList }
* @var {array} skuInfoList [{skuNo, quantity}]
* @var {object} company { expressCompanyCode, expressCompanyName }
*/
const
company
=
companys
.
find
(
ele
=>
ele
.
expressCompanyCode
===
item
.
expressCompanyCode
);
return
{
return
{
...
item
,
...
item
,
...
company
,
skuInfoList
:
skuInfoList
skuInfoList
:
skuInfoList
.
filter
(
skuInfo
=>
skuInfo
.
skuNo
.
length
)
.
filter
(
skuInfo
=>
skuInfo
.
skuNo
?.
length
)
.
map
(
skuInfo
=>
({
...
skuInfo
,
skuNo
:
skuInfo
.
skuNo
[
0
]
})),
.
map
(
skuInfo
=>
({
skuNo
:
Number
(
skuInfo
.
skuNo
[
0
]),
quantity
:
Number
(
skuInfo
.
quantity
),
})),
};
};
});
});
};
};
const
open
=
item
=>
{
const
open
=
item
=>
{
setVisible
(
true
);
setVisible
(
true
);
setOldPackageList
(
JSON
.
parse
(
JSON
.
stringify
(
item
.
packageList
)));
setRecord
(
item
);
setRecord
(
item
);
};
};
...
@@ -196,9 +218,32 @@ const UpdateStatusModal = (props, ref) => {
...
@@ -196,9 +218,32 @@ const UpdateStatusModal = (props, ref) => {
formRef
.
current
.
form
.
resetFields
();
formRef
.
current
.
form
.
resetFields
();
};
};
const
onOk
=
()
=>
{
const
onOk
=
async
()
=>
{
formRef
.
current
.
form
.
validateFields
().
then
(
values
=>
{
formRef
.
current
.
form
.
validateFields
().
then
(
async
values
=>
{
console
.
log
(
'
fieldsValue :>>
'
,
onFilterParams
(
values
.
packageList
));
const
packageList
=
onFilterParams
(
values
.
packageList
);
oldPackageList
.
forEach
((
item
,
index
)
=>
{
if
(
JSON
.
stringify
(
item
)
!==
JSON
.
stringify
(
packageList
[
index
]))
{
packageList
[
index
].
preExpressCompanyCode
=
item
.
expressCompanyCode
;
packageList
[
index
].
preExpressCompanyName
=
item
.
expressCompanyName
;
packageList
[
index
].
preExpressNo
=
item
.
expressNo
;
}
});
const
params
=
{
orderNo
:
record
.
orderNo
,
packageList
,
};
console
.
log
(
'
params
'
,
params
);
const
res
=
await
apiDeliveriesAdd
(
params
);
console
.
log
(
'
res>>
'
,
res
);
if
(
res
.
code
===
'
0000
'
&&
res
.
businessCode
===
'
0000
'
)
{
notification
.
success
({
message
:
'
提交成功
'
,
});
onCancel
();
}
});
});
};
};
...
...
src/pages/orderManage/pendingDeliveryOrder/index.jsx
View file @
ef633c31
...
@@ -421,7 +421,10 @@ const TableList = props => {
...
@@ -421,7 +421,10 @@ const TableList = props => {
orderNo: record.orderNo,
orderNo: record.orderNo,
});
});
multiLogisticsModalRef.current.open({ ...record, packageList: res.packageList });
multiLogisticsModalRef.current.open({
...record,
packageList: res.data.packageList || [],
});
}
}
}
}
>
>
{
props
.
type
===
2
?
'
更新物流信息
'
:
'
填写物流信息
'
}
{
props
.
type
===
2
?
'
更新物流信息
'
:
'
填写物流信息
'
}
...
...
src/pages/orderManage/pendingDeliveryOrder/service.js
View file @
ef633c31
...
@@ -152,44 +152,63 @@ export function apiDelayDeliverGoods(data) {
...
@@ -152,44 +152,63 @@ export function apiDelayDeliverGoods(data) {
});
});
}
}
// 查询多物流订单信息
/**
//
* 多物流发货-查询多物流订单信息
* @param {*} params
* @returns
* @see http://yapi.quantgroups.com/project/389/interface/api/45840
*/
export
function
apiQueryOrderInfo
(
params
)
{
export
function
apiQueryOrderInfo
(
params
)
{
return
new
Promise
(
resolve
=>
{
// return new Promise(resolve => {
setTimeout
(()
=>
{
// setTimeout(() => {
resolve
({
// resolve({
packageList
:
[
// packageList: [
{
// {
expressCompanyCode
:
'
yunda
'
,
// expressCompanyCode: 'yunda',
expressCompanyName
:
''
,
// expressCompanyName: '',
expressNo
:
'
YUNDA012345678
'
,
// expressNo: 'YUNDA012345678',
serialNumber
:
'
0011223344
'
,
// serialNumber: '0011223344',
skuInfoList
:
[
// skuInfoList: [
{
// {
skuNo
:
[
'
529355424931841
'
],
// skuNo: ['529355424931841'],
quantity
:
'
2
'
,
// quantity: '2',
},
// },
{
// {
skuNo
:
[
'
530724210084865
'
],
// skuNo: ['530724210084865'],
quantity
:
'
12
'
,
// quantity: '12',
},
// },
],
// ],
},
// },
{
// {
expressCompanyCode
:
'
yunda
'
,
// expressCompanyCode: 'yunda',
expressCompanyName
:
''
,
// expressCompanyName: '',
expressNo
:
'
YUNDA012345678
'
,
// expressNo: 'YUNDA012345678',
serialNumber
:
'
0011223344
'
,
// serialNumber: '0011223344',
skuInfoList
:
[
// skuInfoList: [
{
// {
skuNo
:
[
'
529355424931841
'
],
// skuNo: ['529355424931841'],
quantity
:
'
2
'
,
// quantity: '2',
},
// },
],
// ],
},
// },
],
// ],
});
// });
},
1000
);
// }, 1000);
// });
return
request
.
get
(
'
/api/merchants/orders/deliveries/packages/detail
'
,
{
params
,
prefix
:
config
.
kdspApi
,
});
}
/**
* 多物流发货-新建发货/更新发货信息
* @param {*} data
* @returns
* @see http://yapi.quantgroups.com/project/389/interface/api/45816
*/
export
function
apiDeliveriesAdd
(
data
)
{
return
request
.
post
(
'
/api/merchants/orders/deliveries/add
'
,
{
data
,
prefix
:
config
.
kdspApi
,
});
});
// return request.get('/api/merchants/orders/deliveries/packages/detail', params)
}
}
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