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
f20fc41f
Commit
f20fc41f
authored
Nov 26, 2021
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 对接采购订单详情申请开票,销售订单详情修改商品单价和运费功能,原有待审核订单修改单价和运费添加修改原因,供应商收到的评价添加显示隐藏评价操作
parent
cad03605
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
289 additions
and
100 deletions
+289
-100
addAttribute.tsx
src/pages/classAndProperty/attribute/addAttribute.tsx
+1
-3
index.tsx
src/pages/classAndProperty/attribute/index.tsx
+1
-2
index.tsx
src/pages/classAndProperty/propertyValue/index.tsx
+1
-3
addProducts.tsx
src/pages/commodity/products/addProducts.tsx
+1
-1
index.tsx
src/pages/commodity/products/index.tsx
+1
-3
index.tsx
src/pages/home/components/AnyQuestion/index.tsx
+2
-2
index.tsx
src/pages/priceManage/effect/index.tsx
+2
-1
priceSetting.tsx
...ages/priceManage/priceStrategy/component/priceSetting.tsx
+1
-0
index.less
src/pages/transaction/components/orderMergeInfo/index.less
+116
-32
index.tsx
src/pages/transaction/components/orderMergeInfo/index.tsx
+0
-0
index.tsx
...es/transaction/components/saleOrderProductTable/index.tsx
+0
-0
index.ts
...ransaction/purchaseOrder/orderCollectB2b/effects/index.ts
+11
-3
index.tsx
...pages/transaction/purchaseOrder/orderCollectB2b/index.tsx
+8
-2
index.tsx
...saction/purchaseOrder/orderCollectCash/constant/index.tsx
+1
-1
index.tsx
...saction/purchaseRules/components/selectProcesss/index.tsx
+2
-1
index.less
...tion/purchaserEvaluation/components/RecordList/index.less
+11
-8
index.tsx
...ction/purchaserEvaluation/components/RecordList/index.tsx
+83
-17
index.ts
src/pages/transaction/saleOrder/agentOrder/apis/index.ts
+2
-2
index.tsx
...on/saleOrder/agentOrder/components/addressModal/index.tsx
+2
-3
index.tsx
...leOrder/agentOrder/components/productModalTable/index.tsx
+3
-2
index.tsx
src/pages/transaction/saleOrder/constant/index.tsx
+10
-10
index.tsx
src/pages/transaction/saleOrder/index.tsx
+12
-1
index.tsx
src/pages/transaction/saleOrder/orderPreview/index.tsx
+13
-1
index.tsx
src/pages/transaction/supplierEvaluation/analysis/index.tsx
+2
-0
ruleSetting.tsx
...s/transaction/transactionRules/components/ruleSetting.tsx
+3
-2
No files found.
src/pages/classAndProperty/attribute/addAttribute.tsx
View file @
f20fc41f
...
...
@@ -11,7 +11,7 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
Search
from
'@/components/NiceForm/components/Search'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
ModalTable
from
'@/components/ModalTable'
;
import
{
getProductCustomerGetCustomerAttribute
,
postProductCustomerSaveOrUpdateCustomerAttribute
}
from
'@/services/ProductV2Api'
;
import
{
getProductCustomerGetCustomerAttribute
,
getProductPlatformGetAttributeList
,
postProductCustomerSaveOrUpdateCustomerAttribute
}
from
'@/services/ProductV2Api'
;
const
{
Option
}
=
Select
;
...
...
@@ -82,14 +82,12 @@ const AddAtttribute: React.FC<{}> = () => {
const
handleSelectOk
=
()
=>
{
setRoleVisible
(
false
)
if
(
selectRow
.
length
)
{
//@ts-ignore
menuForm
.
setFieldsValue
({
attribute
:
selectRow
[
0
],
attributeShow
:
selectRow
[
0
].
name
})
}
}
const
fetchData
=
(
params
:
any
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
//@ts-ignore
getProductPlatformGetAttributeList
({
...
params
,
name
:
params
.
name
||
''
,
groupName
:
params
.
groupName
||
''
,
isEnable
:
true
}).
then
(
res
=>
{
resolve
(
res
.
data
)
})
...
...
src/pages/classAndProperty/attribute/index.tsx
View file @
f20fc41f
...
...
@@ -23,7 +23,7 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import
ModalTable
from
'@/components/ModalTable'
import
{
clearModalParams
}
from
'@/utils'
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
import
{
getProductCustomerGetCustomerAttributeList
,
getProductPlatformGetAttributeList
,
postProductCustomerDeleteCustomerAttribute
,
postProductCustomerUpdateCustomerAttributeStatus
}
from
'@/services/ProductV2Api'
import
{
getProductCustomerGetCustomerAttributeList
,
getProductPlatformGetAttributeList
,
postProductCustomerDeleteCustomerAttribute
,
postProductCustomer
SyncAttribute
,
postProductCustomer
UpdateCustomerAttributeStatus
}
from
'@/services/ProductV2Api'
// import styles from './index.less'
const
formActions
=
createFormActions
();
...
...
@@ -213,7 +213,6 @@ const Attribute: React.FC<{}> = () => {
const
handleAsyncOk
=
()
=>
{
setSyncLoading
(
true
)
if
(
rowSelectionCtl
.
selectedRowKeys
.
length
)
{
// @ts-ignore
postProductCustomerSyncAttribute
({
idList
:
rowSelectionCtl
.
selectedRowKeys
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
()
...
...
src/pages/classAndProperty/propertyValue/index.tsx
View file @
f20fc41f
...
...
@@ -21,12 +21,11 @@ import Submit from '@/components/NiceForm/components/Submit'
import
{
ISchema
}
from
'@formily/antd'
;
import
{
clearModalParams
}
from
'@/utils'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
getProductCustomerGetCustomerAttribute
ValueList
,
getProductPlatformGetSyncAttributeValueList
,
postProductCustomerDeleteCustomer
AttributeValue
,
postProductCustomerUpdateCustomerAttributeValueStatus
}
from
'@/services/ProductV2Api'
;
import
{
getProductCustomerGetCustomerAttribute
Tree
,
getProductCustomerGetCustomerAttributeValueList
,
getProductPlatformGetSyncAttributeValueList
,
postProductCustomerDeleteCustomerAttributeValue
,
postProductCustomerSync
AttributeValue
,
postProductCustomerUpdateCustomerAttributeValueStatus
}
from
'@/services/ProductV2Api'
;
const
treeActions
=
createTreeActions
()
const
fetchAttributeTreeData
=
async
(
params
?)
=>
{
// @ts-ignore
const
res
=
await
getProductCustomerGetCustomerAttributeTree
({
filterInput
:
true
})
return
res
}
...
...
@@ -296,7 +295,6 @@ const PropertyValue: React.FC<{}> = () => {
const
handleAsyncOk
=
()
=>
{
setSyncLoading
(
true
)
if
(
rowSelectionCtl
.
selectedRowKeys
.
length
)
{
// @ts-ignore
postProductCustomerSyncAttributeValue
({
idList
:
rowSelectionCtl
.
selectedRowKeys
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
if
(
ref
?.
current
?.
reload
)
{
...
...
src/pages/commodity/products/addProducts.tsx
View file @
f20fc41f
...
...
@@ -20,6 +20,7 @@ import { useLocalStore, observer } from 'mobx-react'
import
{
store
}
from
'@/store'
import
{
CommodityType
}
from
'./constant'
;
import
{
getProductCommodityGetCommodity
,
getProductCustomerGetCustomerCategoryById
,
postProductCommodityApplyCheckCommodity
,
postProductCommoditySaveOrUpdateCommodity
}
from
'@/services/ProductV2Api'
;
import
{
getTemplateWebPageTemplateWebFindGoodsDescribeTemplate
}
from
'@/services/TemplateV2Api'
;
const
{
TabPane
}
=
Tabs
...
...
@@ -132,7 +133,6 @@ const AddProducts: React.FC<{}> = (props) => {
// 获取页面使用模板
const
productDescriptionTemplate
=
async
()
=>
{
//@ts-ignore
getTemplateWebPageTemplateWebFindGoodsDescribeTemplate
({
siteId
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
setCurrentTemplateName
(
res
.
data
?.
fileName
)
...
...
src/pages/commodity/products/index.tsx
View file @
f20fc41f
...
...
@@ -30,7 +30,7 @@ import { priceTypeLabel, productStatusColor, productStatusLabel } from './consta
import
EyePreview
from
'@/components/EyePreview'
import
UpperProductModalTable
from
'./components/upperProductModalTable'
import
{
Item
}
from
'@/components/ButtonTabs'
import
{
getProductCommodityGetCommodityList
,
getProductCommodityGetShop
,
GetProductCommodityGetShopResponse
,
postProductCommodityApplyCheckCommodity
,
postProductCommodityCopyCommodity
,
postProductCommodityGetShopBatch
,
postProductCommodityOffPublishCommodity
,
postProductCommodityOffPublishCommodityBatch
,
postProductCommodityPublishCommodity
,
postProductCommodityPublishCommodityBatch
}
from
'@/services/ProductV2Api'
import
{
getProductCommodityGetCommodityList
,
getProductCommodityGetShop
,
GetProductCommodityGetShopResponse
,
postProductCommodityApplyCheckCommodity
,
postProductCommodityCopyCommodity
,
postProductCommodity
DeleteBatchCommodity
,
postProductCommodity
GetShopBatch
,
postProductCommodityOffPublishCommodity
,
postProductCommodityOffPublishCommodityBatch
,
postProductCommodityPublishCommodity
,
postProductCommodityPublishCommodityBatch
}
from
'@/services/ProductV2Api'
import
{
getTemplateWebMemberShopWebFindCurrMemberShop
}
from
'@/services/TemplateV2Api'
const
{
confirm
}
=
Modal
;
...
...
@@ -528,7 +528,6 @@ const Products: React.FC<{}> = () => {
title
:
'确定要执行批量删除操作?'
,
icon
:
<
ExclamationCircleOutlined
/>,
onOk
()
{
//@ts-ignore
postProductCommodityDeleteBatchCommodity
({
idList
:
ids
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
ref
.
current
.
reload
()
...
...
@@ -542,7 +541,6 @@ const Products: React.FC<{}> = () => {
cancelText
:
'取消'
})
}
else
{
//@ts-ignore
postProductCommodityDeleteBatchCommodity
({
idList
:
ids
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
ref
.
current
.
reload
()
...
...
src/pages/home/components/AnyQuestion/index.tsx
View file @
f20fc41f
...
...
@@ -39,19 +39,19 @@ const AnyQuestion: React.FC<Iprops> = () => {
<
p
className=
{
styles
.
tips
}
>
您的专属服务团队
</
p
>
<
p
className=
{
styles
.
tips
}
>
客户经理、项目经理、技术专家为你解答平台使用过程中遇到任何问题
</
p
>
</
div
>
<
div
className=
{
styles
.
ask
}
>
{
_self
===
null
?
null
:
<
div
className=
{
styles
.
ask
}
>
<
a
target=
{
"__blank"
}
onClick=
{
openIMServer
}
>
我要提问
</
a
>
}
</
div
>
}
<
div
className=
{
styles
.
ask_image
}
>
<
img
src=
{
ask
}
/>
</
div
>
...
...
src/pages/priceManage/effect/index.tsx
View file @
f20fc41f
...
...
@@ -95,7 +95,7 @@ export const transformParamsForApi = (data: any, ctx: ISchemaFormActions | ISche
let
_params
:
any
=
{}
_params
[
"name"
]
=
data
.
name
_params
[
"priceType"
]
=
data
.
priceType
let
shopInfo
=
ctx
.
getFieldState
(
"shopId"
)[
'values'
][
1
]
let
shopInfo
=
data
?.
shopId
?
{
id
:
data
.
shopId
}
:
ctx
.
getFieldState
(
"shopId"
)[
'values'
][
1
]
_params
[
"shopId"
]
=
shopInfo
[
"id"
]
_params
[
"type"
]
=
shopInfo
[
"type"
]
...
...
@@ -128,6 +128,7 @@ export const transformDataForNiceForm = (value: any, ctx: ISchemaFormActions | I
initValue
[
"priceType"
]
=
value
.
priceType
initValue
[
"productId"
]
=
value
.
commodity
.
id
initValue
[
"productName"
]
=
value
.
commodity
.
name
initValue
[
"minOrder"
]
=
value
.
commodity
.
minOrder
initValue
[
"commodityMemberList"
]
=
value
.
commodityMemberList
.
map
(
item
=>
({
memberId
:
item
.
memberId
,
name
:
item
.
memberName
,
...
...
src/pages/priceManage/priceStrategy/component/priceSetting.tsx
View file @
f20fc41f
...
...
@@ -61,6 +61,7 @@ const PriceSetting:React.FC<PriceSettingProps> = (props) => {
addSchemaAction
.
setFieldState
(
'commodityMemberList'
,
state
=>
{
state
.
dataSource
=
initValue
.
commodityMemberList
})
addSchemaAction
.
setFieldValue
(
'minOrder'
,
initValue
.
minOrder
)
})
}
},
[])
...
...
src/pages/transaction/components/orderMergeInfo/index.less
View file @
f20fc41f
...
...
@@ -69,35 +69,119 @@
}
}
// :global {
// span.ant-radio + * {
// display: block;
// width: 100%;
// }
// .ant-radio-wrapper {
// display: flex;
// width: 100%;
// align-items: center;
// height: 72px;
// background-color: #fafafa;
// margin: 10px;
// padding-left: 16px;
// }
// .ant-radio-wrapper.ant-radio-wrapper-checked {
// border: 1px solid @main-color;
// &::after {
// content: '';
// position: absolute;
// width: 0;
// height: 0;
// border-bottom: 12px solid @main-color;
// border-left: 12px solid transparent;
// bottom: 0;
// right: 0;
// z-index: 5;
// }
// }
// }
// 发票抽屉
.raido_group {
position: relative;
display: block;
width: 100%;
.list_radio {
border: 1px solid #FFF;
}
.invoice_list {
position: relative;
// display: flex;
margin: 0 -10px;
// flex-wrap: wrap;
.invoice_list_item {
display: flex;
align-items: center;
&_content {
padding-left: 10px;
&_tag {
display: inline-block;
background-color: #909399;
padding: 0 6px;
height: 16px;
line-height: 16px;
color: #FFF;
font-size: 12px;
&.special {
background-color: #5377CE;
}
}
&_name {
display: flex;
align-items: center;
.default {
width: 64px;
height: 16px;
line-height: 16px;
text-align: center;
background: rgba(238, 238, 238, 1);
font-size: 12px;
color: #606266;
}
&>span {
margin-right: 20px;
}
}
}
&_btn_group {
display: flex;
margin-left: auto;
line-height: 14px;
// height: 14px;
.invoice_list_item_btn {
margin: 0 10px;
}
}
}
.select_style_border {
border: 1px solid #EEF0F3;
// display: flex;
// align-items: center;
// justify-content: space-between;
// padding: 8px 14px;
// flex: 1;
// cursor: pointer;
// line-height: 28px;
// position:relative;
}
:global {
span.ant-radio+* {
display: block;
width: 100%;
}
.ant-radio-wrapper {
display: flex;
width: 100%;
align-items: center;
height: 72px;
background-color: #FAFAFA;
// margin: 10px;
padding-left: 16px;
}
.ant-radio-wrapper.ant-radio-wrapper-checked {
border: 1px solid @main-color;
&::after {
content: '';
position: absolute;
width: 0;
height: 0;
border-bottom: 12px solid @main-color;
border-left: 12px solid transparent;
bottom: 0;
right: 0;
z-index: 5;
}
}
}
}
}
src/pages/transaction/components/orderMergeInfo/index.tsx
View file @
f20fc41f
This diff is collapsed.
Click to expand it.
src/pages/transaction/components/saleOrderProductTable/index.tsx
View file @
f20fc41f
This diff is collapsed.
Click to expand it.
src/pages/transaction/purchaseOrder/orderCollectB2b/effects/index.ts
View file @
f20fc41f
...
...
@@ -106,11 +106,19 @@ export const useProductTableChangeForPay = (ctx: ISchemaFormActions | ISchemaFor
})
}
export
interface
JumpFormValueType
{
shopId
:
number
;
vendorMemberId
:
number
;
vendorRoleId
:
number
;
}
// 异步处理发货 预约时间 时间段配置
export
const
useOrderDeliverTimeEffect
=
async
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
shopId
)
=>
{
export
const
useOrderDeliverTimeEffect
=
async
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
shopId
,
jumpFormValue
?:
JumpFormValueType
)
=>
{
if
(
shopId
)
{
const
vendorMemberId
=
ctx
.
getFieldValue
(
'vendorMemberId'
)
const
vendorRoleId
=
ctx
.
getFieldValue
(
'vendorRoleId'
)
// const vendorMemberId = ctx.getFieldValue('vendorMemberId')
// const vendorRoleId = ctx.getFieldValue('vendorRoleId')
const
{
vendorMemberId
,
vendorRoleId
}
=
jumpFormValue
const
{
code
,
data
}
=
await
getOrderBuyerFindDeliveryDate
({
shopId
,
vendorMemberId
,
vendorRoleId
})
if
(
code
!==
1000
)
{
return
false
;
}
...
...
src/pages/transaction/purchaseOrder/orderCollectB2b/index.tsx
View file @
f20fc41f
...
...
@@ -6,7 +6,7 @@ import { createFormActions, registerVirtualBox, useFormSpy } from '@formily/antd
import
{
SaveOutlined
,
LinkOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
import
NiceForm
from
'@/components/NiceForm'
import
{
mergeAllSchemas
}
from
'./schema'
import
{
useModelTypeChange
,
useEditHideField
,
useOrderFormInitEffect
,
useProductTableChangeForPay
,
useOrderDeliverTimeEffect
}
from
'./effects'
import
{
useModelTypeChange
,
useEditHideField
,
useOrderFormInitEffect
,
useProductTableChangeForPay
,
useOrderDeliverTimeEffect
,
JumpFormValueType
}
from
'./effects'
import
{
orderCombination
,
orderTypeLabelMap
,
procurementProcessField
,
procurementRenderField
,
procurmentRenderInit
}
from
'./constant'
import
{
OrderModalType
}
from
'@/constants/order'
import
ProductModalTable
,
{
filterProductDataById
}
from
'./components/productModalTable'
...
...
@@ -144,6 +144,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = () => {
}
return
resultState
})
const
jumpFormValueRef
=
useRef
<
JumpFormValueType
|
null
>
()
const
{
formContext
}
=
useFormDetail
()
...
...
@@ -189,6 +190,11 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = () => {
const
{
code
,
data
:
quotationData
}
=
await
getTransactionNotarizeEnquiryProductQuotationDetails
({
id
:
quotationId
})
if
(
code
===
1000
)
{
const
{
quotationNo
,
details
,
shopId
,
supplyMembersName
,
supplyMembersId
,
supplyMembersRoleId
,
inquiryListId
}
=
quotationData
jumpFormValueRef
.
current
=
{
shopId
,
vendorMemberId
:
supplyMembersId
,
vendorRoleId
:
supplyMembersRoleId
,
}
addSchemaAction
.
setFieldValue
(
'quoteId'
,
quotationId
)
addSchemaAction
.
setFieldValue
(
'quoteNo'
,
quotationNo
)
addSchemaAction
.
setFieldValue
(
'shopId'
,
shopId
)
...
...
@@ -517,7 +523,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = () => {
$
(
'onFieldValueChange'
,
'shopId'
).
subscribe
(
state
=>
{
// 初始化 配送时间段处理
useOrderDeliverTimeEffect
(
ctx
,
state
.
value
)
useOrderDeliverTimeEffect
(
ctx
,
state
.
value
,
jumpFormValueRef
.
current
)
})
// // 新增下并且不是采购跳转 切换商城 清空受影响的字段
...
...
src/pages/transaction/purchaseOrder/orderCollectCash/constant/index.tsx
View file @
f20fc41f
...
...
@@ -103,7 +103,7 @@ export const procurementProcessField = (value) => {
weight
:
item
.
logistics
.
weight
,
stock
:
item
.
stockCount
,
discount
:
item
.
isMemberPrice
?
item
.
memberPrice
:
1
,
// 字段需求 无折扣为1
price
:
item
.
isMemberPrice
?
Number
((
item
.
money
/
item
.
purchaseCount
/
item
.
memberPrice
).
toFixed
(
2
))
:
Number
((
item
.
money
/
item
.
purchaseCoun
).
toFixed
(
2
)),
price
:
item
.
isMemberPrice
?
Number
((
item
.
money
/
item
.
purchaseCount
/
item
.
memberPrice
).
toFixed
(
2
))
:
Number
((
item
.
money
/
item
.
purchaseCoun
t
).
toFixed
(
2
)),
tax
:
item
.
taxRate
>
0
,
vendorMemberId
:
item
.
memberId
,
vendorRoleId
:
item
.
memberRoleId
,
...
...
src/pages/transaction/purchaseRules/components/selectProcesss/index.tsx
View file @
f20fc41f
...
...
@@ -87,7 +87,8 @@ const SelectProcesss = (props: ISchemaFieldComponentProps) => {
const
renderProcessType
=
(
v
:
any
)
=>
{
return
<
Tag
color=
{
ProcessTagColor
[
v
.
processType
-
1
]
}
>
{
ProcessTagType
[
v
.
processType
-
1
]
}
{
/* {ProcessTagType[v.processType - 1]} */
}
{
v
.
processTypeName
}
</
Tag
>
}
...
...
src/pages/transaction/purchaserEvaluation/components/RecordList/index.less
View file @
f20fc41f
...
...
@@ -4,17 +4,19 @@
padding: 0;
margin: 0;
&-header {
background: #FAFBFC;
}
&-item {
padding: 14px 16px;
line-height: 14px;
display: flex;
align-items: center;
background: #FAFBFC;
// background: #FAFBFC;
color: #303133;
&-good {
width: 25%;
&-name {
line-height: 14px;
margin-bottom: 13px;
...
...
@@ -35,8 +37,6 @@
}
&-extra {
width: 20%;
&-item {
display: flex;
align-items: center;
...
...
@@ -60,8 +60,6 @@
}
&-comment {
width: 40%;
&-main {
margin-top: 6px;
line-height: 14px;
...
...
@@ -71,13 +69,18 @@
}
}
&-header {
background: #FAFBFC;
}
&-actions {
flex: 1;
text-align: center;
}
&:not(:last-child) {
margin-bottom: 16px;
// margin-bottom: 16px;
border-bottom: 1px solid #EDEEEF;
}
}
}
src/pages/transaction/purchaserEvaluation/components/RecordList/index.tsx
View file @
f20fc41f
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Button
,
Rate
,
Spin
,
Pagination
}
from
'antd'
;
import
{
Button
,
Rate
,
Spin
,
Pagination
,
Switch
,
Tooltip
}
from
'antd'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
moment
from
'moment'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
checkMore
}
from
'@/utils'
;
import
{
searchSchema
}
from
'./schema'
;
import
styles
from
'./index.less'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
cx
from
'classnames'
import
{
postMemberCommentSupplyReceiveShowEvaluationUpdate
}
from
'@/services/MemberV2Api'
;
const
formActions
=
createFormActions
();
const
{
...
...
@@ -85,6 +88,11 @@ export interface RecordItem {
* 交易时间
*/
dealTime
:
string
;
/**
* 状态 1显示 2隐藏
*/
status
:
number
;
};
export
interface
RecordRes
{
...
...
@@ -113,6 +121,11 @@ interface RecordListProps {
*/
editable
?:
boolean
;
/**
* 是否可切换状态
*/
statusable
?:
boolean
;
fetchList
:
(
params
:
ListParams
)
=>
Promise
<
RecordRes
>
;
onCheck
:
(
record
:
RecordItem
)
=>
void
;
...
...
@@ -295,6 +308,16 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
}
};
onChange
=
(
e
,
i
)
=>
{
this
.
setState
({
loading
:
true
})
postMemberCommentSupplyReceiveShowEvaluationUpdate
({
id
:
i
.
id
,
status
:
e
?
1
:
2
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
this
.
refresh
()
}
this
.
setState
({
loading
:
false
})
})
}
render
()
{
const
{
paginationType
=
'pagination'
,
...
...
@@ -303,6 +326,7 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
editable
=
false
,
searchTip
=
'评价方'
,
explicable
=
false
,
statusable
=
false
,
}
=
this
.
props
;
const
{
page
,
size
,
loading
,
receivedList
,
hasMore
}
=
this
.
state
;
...
...
@@ -331,43 +355,85 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
minHeight
:
loading
?
69
:
'auto'
,
}
}
>
<
li
className=
{
cx
(
styles
[
'record-item'
],
styles
[
'record-header'
])
}
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'14%'
}
}
>
评价星级
</
div
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'14%'
}
}
>
评价内容
</
div
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'20%'
}
}
>
采购商品
</
div
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'10%'
}
}
>
成交数量
</
div
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'10%'
}
}
>
评价方
</
div
>
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'12%'
}
}
>
交易时间
</
div
>
{
statusable
&&
<
div
className=
{
styles
[
'record-item-header'
]
}
style=
{
{
width
:
'14%'
}
}
>
是否显示商品评价
<
Tooltip
title=
"显示则表示商品评价在商品详情页对买家进行展示;隐藏则表示商品评价在商品详情页对买家进行隐藏,买家依然可对订单进行评价。"
>
<
QuestionCircleOutlined
/>
</
Tooltip
>
</
div
>
}
<
div
className=
{
styles
[
'record-item-header'
]
}
>
操作
</
div
>
</
li
>
{
receivedList
.
data
.
map
((
item
,
index
)
=>
(
<
li
className=
{
styles
[
'record-item'
]
}
key=
{
index
}
>
<
div
className=
{
styles
[
'record-item-good'
]
}
>
<
div
className=
{
styles
[
'record-item-comment'
]
}
style=
{
{
width
:
'14%'
}
}
>
<
Rate
value=
{
item
.
star
}
disabled
/>
</
div
>
<
div
className=
{
styles
[
'record-item-comment'
]
}
style=
{
{
width
:
'14%'
}
}
>
<
div
className=
{
styles
[
'record-item-comment-main'
]
}
title=
{
item
.
comment
}
>
{
item
.
comment
}
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-good'
]
}
style=
{
{
width
:
'20%'
}
}
>
<
div
className=
{
styles
[
'record-item-good-name'
]
}
>
{
item
.
productName
}
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-good'
]
}
style=
{
{
width
:
'10%'
}
}
>
<
div
>
<
span
className=
{
styles
[
'record-item-good-price'
]
}
>
¥
{
item
.
price
}
</
span
>
<
span
className=
{
styles
[
'record-item-good-
desc'
]
}
>
X
{
item
.
quantity
}
</
span
>
{
/* <span className={styles['record-item-good-price']}>¥{item.price}</span> */
}
<
span
className=
{
styles
[
'record-item-good-
price'
]
}
>
{
item
.
quantity
}
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-extra'
]
}
>
<
div
className=
{
styles
[
'record-item-extra'
]
}
style=
{
{
width
:
'10%'
}
}
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item-label'
]
}
>
交易时间:
</
div
>
<
div
className=
{
styles
[
'record-item-extra-item-control'
]
}
>
{
item
.
dealTime
?
moment
(
item
.
dealTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
}
{
item
.
target
}
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item-label'
]
}
>
{
opposite
?
'评价方'
:
'被评价方'
}
:
</
div
>
<
div
className=
{
styles
[
'record-item-extra'
]
}
style=
{
{
width
:
'12%'
}
}
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item-control'
]
}
>
{
item
.
target
}
{
item
.
dealTime
?
moment
(
item
.
dealTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
}
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-comment'
]
}
>
<
Rate
value=
{
item
.
star
}
disabled
/>
<
div
className=
{
styles
[
'record-item-comment-main'
]
}
title=
{
item
.
comment
}
>
{
item
.
comment
}
{
statusable
&&
<
div
className=
{
styles
[
'record-item-extra'
]
}
style=
{
{
width
:
'14%'
}
}
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
Switch
checked=
{
item
.
status
===
1
}
onChange=
{
(
e
)
=>
this
.
onChange
(
e
,
item
)
}
/>
</
div
>
</
div
>
}
<
div
className=
{
styles
[
'record-item-actions'
]
}
>
{
editable
&&
(
...
...
src/pages/transaction/saleOrder/agentOrder/apis/index.ts
View file @
f20fc41f
import
{
getLogisticsReceiverAddressAgentPage
}
from
"@/services/LogisticsV2Api"
import
{
getMemberManageAllPageByordertype
,
getMemberManageOrderAgentMembers
}
from
"@/services/MemberV2Api"
import
{
getOrderVendorGetOrderMode
,
postOrderVendorCreateAgentPaymentFind
}
from
"@/services/OrderNewV2Api"
import
{
getProductCommodityCommonGetCommodityListBy
Buyer
}
from
"@/services/ProductV2Api"
import
{
getProductCommodityCommonGetCommodityListBy
Guest
}
from
"@/services/ProductV2Api"
import
{
getSettleAccountsAgentInvoiceMessageList
}
from
"@/services/SettleV2Api"
import
{
getTransactionEnquiryProductAll
,
getTransactionProductQuotationList
}
from
"@/services/TransactionV2Api"
export
const
fetchOrderApi
=
{
/** 弹窗获取商品列表 */
async
getProductList
(
params
)
{
const
{
data
}
=
await
getProductCommodityCommonGetCommodityListBy
Buyer
(
params
)
const
{
data
}
=
await
getProductCommodityCommonGetCommodityListBy
Guest
(
params
)
return
data
},
...
...
src/pages/transaction/saleOrder/agentOrder/components/addressModal/index.tsx
View file @
f20fc41f
...
...
@@ -4,10 +4,9 @@ import { createFormActions } from '@formily/antd'
import
addressSchema
from
'./schema'
import
'./index.less'
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
import
{
getManageCountryAreaGetTelCode
}
from
'@/services/ManageV2Api'
import
{
postLogisticsReceiverAddressAgentAdd
,
postLogisticsReceiverAddressAgentUpdate
}
from
'@/services/LogisticsV2Api'
import
{
getManageAreaByPcode
,
GetManageAreaByPcodeRequest
}
from
'@/services/ManageV2Api/id8689'
import
{
getManageAreaByPcode
,
GetManageAreaByPcodeRequest
,
getManageCountryAreaGetTelCode
}
from
'@/services/ManageV2Api'
import
{
message
}
from
'antd'
import
{
postLogisticsReceiverAddressAgentAdd
,
postLogisticsReceiverAddressAgentUpdate
}
from
'@/services/LogisticsV2Api'
export
interface
AddressModalProps
{
mode
:
'add'
|
'edit'
|
'preview'
|
'default'
,
...
...
src/pages/transaction/saleOrder/agentOrder/components/productModalTable/index.tsx
View file @
f20fc41f
...
...
@@ -138,12 +138,13 @@ const ProductModalTable:React.FC<ProductModalTableProps> = (props) => {
const
fetchProductList
=
(
values
)
=>
{
const
modelType
=
schemaAction
.
getFieldValue
(
'orderMode'
)
const
supplyMembersId
=
schemaAction
.
getFieldValue
(
'vendorMemberId'
)
const
buyerMembersId
=
schemaAction
.
getFieldValue
(
'buyerMemberId'
)
const
shopId
=
schemaAction
.
getFieldValue
(
'shopId'
)
const
params
=
{
...
values
,
shopType
:
orderProductShopTypeMaps
[
modelType
],
environment
:
1
,
memberId
:
supply
MembersId
,
memberId
:
buyer
MembersId
,
priceTypeList
:
[
1
],
shopId
:
schemaAction
.
getFieldValue
(
'shopId'
)
}
...
...
src/pages/transaction/saleOrder/constant/index.tsx
View file @
f20fc41f
...
...
@@ -120,18 +120,18 @@ export const baseOrderListColumns: any = () => {
key
:
'amount'
,
render
:
(
t
,
r
)
=>
(
r
.
orderType
===
ORDER_TYPE_POINTS
||
r
.
orderType
===
ORDER_TYPE_CHANNEL_POINTS
)
?
t
:
`¥
${
t
}
`
},
// {
// title: '订单类型',
// dataIndex: 'orderTypeName',
// key: 'orderTypeName',
// },
{
title
:
'送货地址'
,
dataIndex
:
'deliverAddress'
,
key
:
'deliverAddress'
,
width
:
164
,
ellipsis
:
true
,
title
:
'订单类型'
,
dataIndex
:
'orderTypeName'
,
key
:
'orderTypeName'
,
},
// {
// title: '送货地址',
// dataIndex: 'deliverAddress',
// key: 'deliverAddress',
// width: 164,
// ellipsis: true,
// },
{
title
:
'转单订单号'
,
dataIndex
:
'relationNo'
,
...
...
src/pages/transaction/saleOrder/index.tsx
View file @
f20fc41f
...
...
@@ -82,6 +82,10 @@ const SaleOrder: React.FC<SaleOrderProps> = () => {
history
.
push
(
`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated`
)
}
const
handleModifyPrice
=
(
record
)
=>
{
history
.
push
(
`
${
history
.
location
.
pathname
}
/preview?id=
${
record
.
orderId
}
&modifyPrice=true`
)
}
const
handleCancel
=
(
r
)
=>
{
destoryRef
.
current
.
setVisible
(
true
)
destroyActions
.
setFieldValue
(
'id'
,
r
.
orderId
)
...
...
@@ -179,13 +183,20 @@ const SaleOrder: React.FC<SaleOrderProps> = () => {
/** 参照后台数据生成 */
const
renderOptionButton
=
(
record
)
=>
{
const
buttonGroup
=
{
'取消订单'
:
record
.
showCancel
,
'中止'
:
record
.
showTerminate
,
'评价'
:
record
.
showComment
,
'转单'
:
record
.
showTransfer
}
const
buttonGroup
=
{
'取消订单'
:
record
.
showCancel
,
'中止'
:
record
.
showTerminate
,
'评价'
:
record
.
showComment
,
'转单'
:
record
.
showTransfer
,
'修改订单价格'
:
record
.
showModifyPrice
,
}
const
operationHandler
=
{
'取消订单'
:
()
=>
handleCancel
(
record
),
'中止'
:
()
=>
handleSuspend
(
record
),
'评价'
:
()
=>
handleEvaluate
(),
'转单'
:
()
=>
onlyTransform
(
record
.
orderId
),
'修改订单价格'
:
()
=>
handleModifyPrice
(
record
)
}
return
(
...
...
src/pages/transaction/saleOrder/orderPreview/index.tsx
View file @
f20fc41f
...
...
@@ -5,14 +5,26 @@ import OrderDetailWrapper from '@/pages/transaction/components/orderDetailWrappe
import
PreLoading
from
'@/components/PreLoading'
;
import
{
useOrderDetail
}
from
'../../_public/order/effects/useOrderDetail'
;
import
OrderDetailSection
from
'../../components/orderDetailSection'
;
import
{
Button
}
from
'antd'
;
import
{
history
}
from
'umi'
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
const
OrderPreview
:
React
.
FC
=
()
=>
{
const
{
formContext
,
detailList
}
=
useOrderDetail
({
type
:
'saleOrder'
})
const
{
modifyPrice
=
false
}
=
usePageStatus
()
// 修改单价页面
const
handleClick
=
()
=>
{
history
.
goBack
()
}
return
(
<
div
>
<
OrderDetailContext
.
Provider
value=
{
formContext
}
>
<
OrderDetailHeader
detailList=
{
detailList
}
detailData=
{
formContext
.
data
}
/>
<
OrderDetailHeader
detailList=
{
detailList
}
detailData=
{
formContext
.
data
}
extraRight=
{
modifyPrice
&&
<
Button
type=
'primary'
onClick=
{
handleClick
}
>
提交
</
Button
>
}
/>
<
OrderDetailWrapper
>
<
PreLoading
loading=
{
!
formContext
.
data
}
active
paragraph=
{
{
rows
:
6
}
}
>
...
...
src/pages/transaction/supplierEvaluation/analysis/index.tsx
View file @
f20fc41f
...
...
@@ -229,6 +229,7 @@ const Analysis: React.FC<AnalysisProps> = ({
orderId
:
item
.
orderId
,
replyStatus
:
item
.
replyStatus
,
dealTime
:
item
.
dealTime
as
string
,
status
:
item
.
status
,
};
}),
totalCount
,
...
...
@@ -401,6 +402,7 @@ const Analysis: React.FC<AnalysisProps> = ({
onExplain=
{
handleExplain
}
explicable=
{
true
}
ref=
{
recordListRef
}
statusable=
{
true
}
/>
</
TabPane
>
...
...
src/pages/transaction/transactionRules/components/ruleSetting.tsx
View file @
f20fc41f
...
...
@@ -51,8 +51,9 @@ const RuleSetting:React.FC<RuleSettingProps> = (props) => {
console
.
log
(
shopIds
,
shopInfo
)
const
res
=
await
getProductCommodityCommonGetCommodityListBySeller
({
...
params
,
shopType
:
shopInfo
[
0
].
type
,
environment
:
shopInfo
[
0
].
environment
,
// shopType: shopInfo[0].type,
// environment: shopInfo[0].environment,
shopId
:
shopInfo
[
'id'
],
statusList
:
[
4
,
5
,
6
,
7
],
// idNotInList: idNotInList,
})
...
...
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