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
ad67cfef
Commit
ad67cfef
authored
Dec 08, 2020
by
Bill
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of 10.0.0.22:lingxi/lingxi-business-paltform into dev
parents
12f4c69c
007661b7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
508 additions
and
280 deletions
+508
-280
logisticsRoutes.ts
config/routes/logisticsRoutes.ts
+17
-18
index.tsx
src/components/ModalTable/index.tsx
+6
-2
index.ts
src/components/ModalTable/schema/index.ts
+72
-4
SearchSelect.tsx
src/components/NiceForm/components/SearchSelect.tsx
+6
-5
userDetail.tsx
src/pages/authConfig/userSystem/userDetail.tsx
+1
-0
TableList.tsx
src/pages/logistics/components/TableList.tsx
+91
-0
orderDetail.tsx
src/pages/logistics/components/orderDetail.tsx
+0
-0
orderSearchList.tsx
src/pages/logistics/components/orderSearchList.tsx
+10
-11
schema.ts
src/pages/logistics/components/schema.ts
+0
-0
basicInfo.tsx
...logistics/logisticsSubmit/detail/components/basicInfo.tsx
+49
-20
goods.tsx
...ges/logistics/logisticsSubmit/detail/components/goods.tsx
+8
-4
index.tsx
src/pages/logistics/logisticsSubmit/detail/index.tsx
+31
-25
index.tsx
...es/lxMall/components/Filter/components/Category/index.tsx
+25
-12
index.tsx
...ages/transaction/components/createElectronModal/index.tsx
+20
-7
index.tsx
src/pages/transaction/components/orderSaleRecord/index.tsx
+0
-1
details.tsx
...es/transaction/confirmInquiryQuote/components/details.tsx
+81
-47
index.tsx
...s/transaction/confirmInquiryQuote/pendingSubmit/index.tsx
+0
-0
pendingReview.tsx
.../transaction/confirmInquiryQuote/schema/pendingReview.tsx
+2
-2
flowRecord.tsx
...tion/goodsOffer/addEnquiryOrder/components/flowRecord.tsx
+2
-30
details.tsx
src/pages/transaction/goodsOffer/components/details.tsx
+11
-63
flowRecord.tsx
...on/inquiryQuote/addInquiryOrder/components/flowRecord.tsx
+2
-2
details.tsx
src/pages/transaction/inquiryQuote/components/details.tsx
+14
-11
index.tsx
src/pages/transaction/inquiryQuote/pendingSubmit/index.tsx
+0
-0
index.tsx
...Order/orderCollect/components/productModalTable/index.tsx
+36
-1
index.ts
...s/transaction/purchaseOrder/orderCollect/effects/index.ts
+17
-12
index.tsx
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
+4
-2
index.ts
src/store/filter/index.ts
+3
-1
No files found.
config/routes/logisticsRoutes.ts
View file @
ad67cfef
...
...
@@ -18,7 +18,7 @@ const LogisticsRoute: RouterChild = {
path
:
'/memberCenter/logisticsAbility/logistics'
,
name
:
'logistics'
,
routes
:
[
// 物流公司管理
//
//
物流公司管理
{
path
:
'/memberCenter/logisticsAbility/logistics/company'
,
name
:
'company'
,
...
...
@@ -50,75 +50,75 @@ const LogisticsRoute: RouterChild = {
path
:
'/memberCenter/logisticsAbility/logistics/deliveryAddress'
,
name
:
'deliveryAddress'
,
component
:
'@/pages/logistics/list/deliveryAddress'
},
},
// 发货地址-新增
{
path
:
'/memberCenter/logisticsAbility/logistics/deliveryAddress/add'
,
name
:
'addDeliveryAddress'
,
component
:
'@/pages/logistics/shippingAddress/add'
,
hideInMenu
:
true
},
},
// 发货地址-编辑
{
path
:
'/memberCenter/logisticsAbility/logistics/deliveryAddress/edit'
,
name
:
'editDeliveryAddress'
,
component
:
'@/pages/logistics/shippingAddress/edit'
,
hideInMenu
:
true
},
},
// 收货地址
{
path
:
'/memberCenter/logisticsAbility/logistics/receivingAddress'
,
name
:
'receivingAddress'
,
component
:
'@/pages/logistics/list/receivingAddress'
},
},
// 收货地址-新增
{
path
:
'/memberCenter/logisticsAbility/logistics/receivingAddress/add'
,
name
:
'addReceivingAddress'
,
component
:
'@/pages/logistics/receiptAddress/add'
,
hideInMenu
:
true
},
},
// 收货地址-编辑
{
path
:
'/memberCenter/logisticsAbility/logistics/receivingAddress/edit'
,
name
:
'editReceivingAddress'
,
component
:
'@/pages/logistics/receiptAddress/edit'
,
hideInMenu
:
true
},
},
// 运费模板
{
path
:
'/memberCenter/logisticsAbility/logistics/template'
,
name
:
'template'
,
component
:
'@/pages/logistics/list/template'
},
},
// 运费模板-新增
{
path
:
'/memberCenter/logisticsAbility/logistics/templateForm'
,
name
:
'templateForm'
,
component
:
'@/pages/logistics/list/components/templateForm'
,
hideInMenu
:
true
},
},
// 运费模板-新增
{
path
:
'/memberCenter/logisticsAbility/logistics/template/add'
,
name
:
'addTemplate'
,
component
:
'@/pages/logistics/list/components/templateForm'
,
hideInMenu
:
true
},
},
// 运费模板-编辑
{
path
:
'/memberCenter/logisticsAbility/logistics/template/edit'
,
name
:
'editTemplate'
,
component
:
'@/pages/logistics/list/components/templateForm'
,
hideInMenu
:
true
},
},
// 运费模板-详情
{
path
:
'/memberCenter/logisticsAbility/logistics/template/detail'
,
name
:
'templateDetail'
,
component
:
'@/pages/logistics/list/components/templateForm'
,
hideInMenu
:
true
},
},
]
},
...
...
@@ -139,7 +139,7 @@ const LogisticsRoute: RouterChild = {
name
:
'orderSubmitDeatil'
,
component
:
'@/pages/logistics/components/orderSearchDetail'
,
hideInMenu
:
true
},
},
// 待提交物流单
{
path
:
'/memberCenter/logisticsAbility/logisticsSubmit/toOrderSumitList'
,
...
...
@@ -159,17 +159,17 @@ const LogisticsRoute: RouterChild = {
name
:
'addToOrderSubmit'
,
component
:
'@/pages/logistics/logisticsSubmit/detail'
,
hideInMenu
:
true
},
},
// 待提交物流单-编辑
{
path
:
'/memberCenter/logisticsAbility/logisticsSubmit/toOrderSumitList/edit'
,
name
:
'editToOrderSubmit'
,
component
:
'@/pages/logistics/logisticsSubmit/toOrderSubmitDetail'
,
hideInMenu
:
true
},
},
]
},
// 物流单处理
{
path
:
'/memberCenter/logisticsAbility/logisticsResult'
,
...
...
@@ -213,4 +213,4 @@ const LogisticsRoute: RouterChild = {
]
}
export
default
LogisticsRoute
\ No newline at end of file
export
default
LogisticsRoute
src/components/ModalTable/index.tsx
View file @
ad67cfef
...
...
@@ -3,7 +3,7 @@ import {StandardTable} from 'god';
import
NestTable
from
'@/components/NestTable'
;
import
{
IStandardTableProps
}
from
'god/dist/src/standard-table'
;
import
{
Row
,
Col
,
Modal
}
from
'antd'
;
import
{
productModalSchema
,
productModalByMemberSchema
,
memberModalSchema
,
inquirySchema
,
demandSchema
,
enquirySchema
,
mergeOrderSchema
,
goodsModalSchema
,
demandNumberSchema
}
from
'./schema'
;
import
{
productModalSchema
,
productModalByMemberSchema
,
memberModalSchema
,
inquirySchema
,
demandSchema
,
enquirySchema
,
mergeOrderSchema
,
goodsModalSchema
,
demandNumberSchema
,
addOrderModalSchema
}
from
'./schema'
;
import
Search
from
'../NiceForm/components/Search'
;
import
SearchSelect
from
'../NiceForm/components/SearchSelect'
;
import
Submit
from
'../NiceForm/components/Submit'
;
...
...
@@ -18,7 +18,7 @@ export interface ModalTableProps extends IStandardTableProps<any> {
cancel
?(),
visible
?:
boolean
,
resetModal
?:
object
,
modalType
?:
'productByDefault'
|
'productByMember'
|
'memberByDefault'
|
'inquiryByDefault'
|
'demandByDefault'
|
'enquiryModel'
|
'MergeOrderByDefault'
|
'goodsModalSchema'
|
'demandNumberSchema'
|
'none'
,
modalType
?:
'productByDefault'
|
'productByMember'
|
'memberByDefault'
|
'inquiryByDefault'
|
'demandByDefault'
|
'enquiryModel'
|
'MergeOrderByDefault'
|
'goodsModalSchema'
|
'demandNumberSchema'
|
'
addOrderModalSchema'
|
'
none'
,
useNestTable
?:
boolean
,
// 是否使用嵌套表格
nestColumns
?:
any
[],
nestTableProps
?:
any
,
...
...
@@ -76,6 +76,9 @@ const ModalTable:React.FC<ModalTableProps> = (props) => {
case
'demandNumberSchema'
:
{
return
demandNumberSchema
}
case
'addOrderModalSchema'
:
{
return
addOrderModalSchema
}
case
'none'
:
{
return
{}
}
...
...
@@ -118,6 +121,7 @@ const ModalTable:React.FC<ModalTableProps> = (props) => {
searchName
?
searchName
:
'name'
,
FORM_FILTER_PATH
,
);
}
}
}
...
...
src/components/ModalTable/schema/index.ts
View file @
ad67cfef
...
...
@@ -129,6 +129,75 @@ export const productModalSchema: ISchema = {
}
/**
* 新增采购订单选择商品的高级筛选
* 获取供应商的品类和品牌
*/
export
const
addOrderModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
name
:
{
type
:
'string'
,
'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
:
{
customerCategoryId
:
{
type
:
'string'
,
"x-component"
:
'SearchSelect'
,
"x-component-props"
:
{
placeholder
:
'请选择品类'
,
className
:
'fixed-ant-selected-down'
,
fetchSearch
:
PublicApi
.
getProductSelectGetMemberCategory
,
style
:
{
width
:
160
},
queryParams
:
{},
}
},
brandId
:
{
type
:
'string'
,
"x-component"
:
'SearchSelect'
,
"x-component-props"
:
{
placeholder
:
'请选择品牌'
,
fetchSearch
:
PublicApi
.
getProductSelectGetMemberBrand
,
style
:
{
width
:
160
},
queryParams
:
{},
}
},
submit
:
{
"x-component"
:
'Submit'
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
'查询'
}
}
}
}
}
}
/**
* 货品列表筛选
*/
export
const
goodsModalSchema
:
ISchema
=
{
...
...
@@ -285,8 +354,8 @@ export const inquirySchema: ISchema = {
/**
* @description: 新增报价单 需求单查询
* @param {type}
* @return {type}
* @param {type}
* @return {type}
*/
export
const
enquirySchema
:
ISchema
=
{
type
:
'object'
,
...
...
@@ -526,4 +595,4 @@ export const demandNumberSchema: ISchema = {
}
}
}
}
\ No newline at end of file
}
src/components/NiceForm/components/SearchSelect.tsx
View file @
ad67cfef
...
...
@@ -3,6 +3,7 @@ import { Select, Input, Row, Button } from 'antd';
import
{
useDebounceFn
}
from
'@umijs/hooks'
;
import
{
ISchemaFieldComponentProps
,
FormPath
,
useFormEffects
,
createFormActions
,
createAsyncFormActions
}
from
'@formily/antd'
import
pinyin
from
'pinyin'
import
{
query
}
from
'express'
;
const
SelectContent
=
(
props
)
=>
{
const
{
handleChange
,
multiple
,
confirm
,
resetField
}
=
props
...
...
@@ -14,7 +15,7 @@ const SelectContent = (props) => {
</
div
>
{
props
.
children
}
{
multiple
&&
multiple
&&
<
Row
justify=
'end'
style=
{
{
borderTop
:
'1px solid #eee'
}
}
>
<
Button
type=
'link'
onClick=
{
resetField
}
>
重置
</
Button
>
<
Button
type=
'link'
onClick=
{
confirm
}
>
确定
</
Button
>
...
...
@@ -31,7 +32,7 @@ const SearchSelect = (props: ISchemaFieldComponentProps) => {
const
pinyinRef
=
useRef
<
any
[]
>
([])
// 可选参数 fetchSearch, select为search
// multiple 是否开启多选
const
{
fetchSearch
,
fetchParams
=
'name'
,
fetchFormat
,
multiple
=
false
,
...
resetProps
}
=
schema
.
getExtendsComponentProps
()
const
{
fetchSearch
,
fetchParams
=
'name'
,
fetchFormat
,
multiple
=
false
,
queryParams
=
{},
...
resetProps
}
=
schema
.
getExtendsComponentProps
()
const
[
dataSource
,
setDataSource
]
=
useState
<
any
[]
>
([])
const
[
loading
,
setLoading
]
=
useState
(
false
)
const
[
openSelect
,
setOpenSelect
]
=
useState
(
false
)
...
...
@@ -67,7 +68,8 @@ const SearchSelect = (props: ISchemaFieldComponentProps) => {
}
setLoading
(
true
)
fetchSearch
({
[
fetchParams
]:
''
[
fetchParams
]:
''
,
...
queryParams
}).
then
(({
data
=
[]})
=>
{
const
transformData
=
data
.
map
(
v
=>
({
label
:
v
.
name
,
...
...
@@ -149,4 +151,4 @@ SearchSelect.defaultProps = {}
SearchSelect
.
isFieldComponent
=
true
;
export
default
SearchSelect
\ No newline at end of file
export
default
SearchSelect
src/pages/authConfig/userSystem/userDetail.tsx
View file @
ad67cfef
...
...
@@ -168,6 +168,7 @@ const AddUser: React.FC<{}> = () => {
initialValues=
{
formData
}
actions=
{
userActions
}
editable=
{
pageStatus
!==
PageStatus
.
PREVIEW
}
previewPlaceholder=
" "
effects=
{
(
$
,
{
setFieldState
})
=>
{
$
(
'onFormInit'
).
subscribe
(()
=>
{
if
(
id
)
{
...
...
src/pages/logistics/components/TableList.tsx
0 → 100644
View file @
ad67cfef
import
React
,
{
useRef
,
ReactNode
,
useEffect
}
from
'react'
;
import
{
StandardTable
}
from
'god'
;
import
{
Row
,
Col
,
Space
,
Button
,
Card
}
from
'antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
LogisticsOrderSubmitSearchSchema
,
LogisticsOrderToBeSubmitSearchSchema
,
LogisticsOrderProcessingSearchSchema
,
LogisticsOrderToBeConfirmedSearchSchema
,
None
}
from
'./schema'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
interface
tableListParams
{
columns
?:
any
,
// 表头
reloadRef
?:
any
,
// 处理刷新
fetchData
?:
Function
,
// 列表数据
schema
?:
boolean
,
// 是否显示schema 搜索
schemaType
?:
'LogisticsOrderSubmitSearchSchema'
|
'LogisticsOrderToBeSubmitSearchSchema'
|
'LogisticsOrderProcessingSearchSchema'
|
'LogisticsOrderToBeConfirmedSearchSchema'
|
'none'
}
const
formActions
=
createFormActions
();
const
LogisticsTableList
:
React
.
FC
<
tableListParams
>
=
(
props
)
=>
{
const
{
columns
,
reloadRef
,
fetchData
,
schema
=
false
,
schemaType
=
'none'
}
=
props
;
const
ref
=
useRef
<
any
>
({});
const
controllerBtns
:
ReactNode
=
<
Row
>
<
Col
>
<
Button
type=
'primary'
>
新建
</
Button
>
</
Col
>
</
Row
>
const
schemaRender
=
()
=>
{
switch
(
schemaType
)
{
case
'LogisticsOrderSubmitSearchSchema'
:
{
return
LogisticsOrderSubmitSearchSchema
}
case
'LogisticsOrderToBeSubmitSearchSchema'
:
{
return
LogisticsOrderToBeSubmitSearchSchema
}
case
'LogisticsOrderProcessingSearchSchema'
:
{
return
LogisticsOrderProcessingSearchSchema
}
case
'LogisticsOrderToBeConfirmedSearchSchema'
:
{
return
LogisticsOrderToBeConfirmedSearchSchema
}
case
'none'
:
{
return
None
}
}
}
useEffect
(()
=>
{
if
(
reloadRef
)
{
const
userAction
=
{
reload
:
()
=>
ref
.
current
.
reload
()
}
if
(
reloadRef
&&
typeof
reloadRef
===
'function'
)
{
reloadRef
(
userAction
);
}
if
(
reloadRef
&&
typeof
reloadRef
!==
'function'
)
{
reloadRef
.
current
=
userAction
;
}
}
})
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
columns=
{
columns
}
currentRef=
{
ref
}
tableProps=
{
{
rowKey
:
'id'
}
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'logisticsOrderNo'
,
FORM_FILTER_PATH
)
}
}
expressionScope=
{
{
controllerBtns
}
}
schema=
{
schemaRender
()
}
/>
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
LogisticsTableList
src/pages/logistics/components/orderDetail.tsx
deleted
100644 → 0
View file @
12f4c69c
src/pages/logistics/components/orderSearchList.tsx
View file @
ad67cfef
...
...
@@ -83,8 +83,8 @@ const orderSearchList: React.FC<listProps> = (props) => {
})
/**
* @description: 先查询参数再 分页参数
* @param {type}
* @return:
* @param {type}
* @return:
*/
const
fetchData
=
(
params
:
any
)
=>
{
console
.
log
(
'参数'
,
params
)
...
...
@@ -115,9 +115,9 @@ const orderSearchList: React.FC<listProps> = (props) => {
}
/**
* @description:
* @param {type}
* @return:
* @description:
* @param {type}
* @return:
*/
useEffect
(()
=>
{
console
.
log
(
searchForm
)
...
...
@@ -189,8 +189,8 @@ const orderSearchList: React.FC<listProps> = (props) => {
{
title
:
' 收货方'
,
align
:
'left'
,
dataIndex
:
'receiverName'
,
key
:
'receiverName'
dataIndex
:
'receiver
Member
Name'
,
key
:
'receiver
Member
Name'
},
{
title
:
'总箱数'
,
...
...
@@ -265,8 +265,8 @@ const orderSearchList: React.FC<listProps> = (props) => {
/**
* @description: 直接改变
* @param {type}
* @return:
* @param {type}
* @return:
*/
const
handleChange
=
(
key
:
any
,
val
:
any
)
=>
{
let
obj
=
{}
...
...
@@ -366,4 +366,4 @@ orderSearchList.defaultProps = {
type
:
'1'
,
title
:
'123'
}
export
default
orderSearchList
\ No newline at end of file
export
default
orderSearchList
src/pages/logistics/components/schema.ts
View file @
ad67cfef
This diff is collapsed.
Click to expand it.
src/pages/logistics/logisticsSubmit/detail/components/basicInfo.tsx
View file @
ad67cfef
...
...
@@ -20,12 +20,13 @@ const layout: any = {
labelAlign
:
"left"
};
export
interface
interfaceinfo
{
parmas
?:
any
,
handleRevise
?:
Function
set
?:
any
,
currentRef
?:
any
,
onGet
?:
Function
}
const
BasicInfo
:
React
.
FC
<
interfaceinfo
>
=
(
props
)
=>
{
const
{
parmas
,
handleRevise
}
=
props
;
const
{
set
,
currentRef
,
onGet
}
=
props
;
const
[
listcompany
,
setlistcompany
]
=
useState
<
any
>
([]);
//物流服务商
const
[
shipperaddress
,
setshipperaddress
]
=
useState
<
any
>
([]);
//发货地址
const
[
shippingvisible
,
setshippingvisible
]
=
useState
<
boolean
>
(
false
);
...
...
@@ -109,21 +110,50 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
]
// 确定
const
handleShipping
=
(
type
:
any
,
values
:
any
,
param
:
any
)
=>
{
console
.
log
(
values
,
'handleShipping'
)
handleRevise
(
values
[
0
],
1
);
form
.
setFieldsValue
({
shipmentOrderCode
:
values
[
0
].
invoicesNo
})
onGet
(
values
[
0
],
2
);
setshippingvisible
(
false
);
}
const
handleInvoices
=
(
type
:
any
,
values
:
any
,
param
:
any
)
=>
{
console
.
log
(
values
,
'handleInvoices'
)
handleRevise
(
values
[
0
],
2
);
form
.
setFieldsValue
({
invoicesNo
:
values
[
0
].
orderNo
})
onGet
(
values
[
0
],
3
);
setinvoicesvisible
(
false
);
}
useEffect
(()
=>
{
currentRef
.
current
=
{
get
:
()
=>
new
Promise
((
resolve
:
any
)
=>
{
form
.
validateFields
().
then
(
res
=>
{
resolve
({
state
:
true
,
name
:
'basicInfo'
,
data
:
{
digest
:
res
.
digest
,
companyId
:
res
.
companyId
,
shipmentOrderCode
:
res
.
shipmentOrderCode
,
invoicesNo
:
res
.
invoicesNo
,
shipperAddressId
:
res
.
shipperAddressId
,
companyName
:
set
.
companyName
,
shipperFullAddress
:
set
.
shipperFullAddress
,
receiverMemberId
:
set
.
receiverMemberId
,
receiverMemberName
:
set
.
receiverMemberName
,
receiverFullAddress
:
set
.
receiverFullAddress
,
receiverName
:
set
.
receiverName
,
receiverPhone
:
set
.
receiverPhone
,
}
})
}).
catch
(
error
=>
{
console
.
log
(
error
)
})
})
}
})
return
(
<>
<
Form
...
...
@@ -134,7 +164,7 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
"物流服务商"
name=
"companyId"
rules=
{
[{
required
:
true
,
message
:
'请选择流服务商'
}]
}
>
<
Select
allowClear
>
<
Select
allowClear
onChange=
{
(
value
,
option
)
=>
onGet
(
option
,
1
)
}
>
{
listcompany
.
map
((
item
:
any
,
index
:
number
)
=>
(
<
Option
key=
{
item
.
id
}
value=
{
item
.
id
}
>
{
item
.
name
}
</
Option
>
...
...
@@ -144,20 +174,20 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
</
Form
.
Item
>
<
Form
.
Item
label=
"物流单号"
name=
'receiverName1'
><
span
></
span
></
Form
.
Item
>
<
Form
.
Item
label=
'对应发货单号'
name=
'shipmentOrderCode'
>
<
Search
value=
{
parmas
.
shipmentOrderCode
||
undefined
}
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setshippingvisible
(
true
)
}
/>
<
Search
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setshippingvisible
(
true
)
}
/>
{
/* <Button type='link'>查看单号详情</Button> */
}
</
Form
.
Item
>
<
Form
.
Item
label=
'对应订单号/售后单'
name=
'invoicesNo'
>
<
Search
value=
{
parmas
.
invoicesNo
||
undefined
}
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setinvoicesvisible
(
true
)
}
/>
<
Search
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setinvoicesvisible
(
true
)
}
/>
{
/* <Button type='link'>查看单号详情</Button> */
}
</
Form
.
Item
>
<
Form
.
Item
label=
"收货方"
name=
'receiverName'
><
span
>
{
parmas
.
receiverName
}
</
span
></
Form
.
Item
>
<
Form
.
Item
label=
"收货方"
name=
'receiverName'
><
span
>
{
set
.
receiverName
}
</
span
></
Form
.
Item
>
<
Form
.
Item
label=
"收货地址"
name=
'receiverFullAddress'
>
<
div
style=
{
{
lineHeight
:
'36px'
}
}
>
{
parmas
.
memberName
}
/
{
parmas
.
p
hone
}
</
div
>
<
div
>
{
parmas
.
receiverFullAddress
}
</
div
>
<
div
style=
{
{
lineHeight
:
'36px'
}
}
>
{
set
.
receiverName
}
/
{
set
.
receiverP
hone
}
</
div
>
<
div
>
{
set
.
receiverFullAddress
}
</
div
>
</
Form
.
Item
>
<
Form
.
Item
label=
"发货地址"
name=
"shipperAddressId"
>
<
Select
allowClear
>
<
Select
allowClear
onChange=
{
(
value
,
option
)
=>
onGet
(
option
,
4
)
}
>
{
shipperaddress
.
map
((
item
:
any
,
index
:
number
)
=>
(
<
Option
key=
{
item
.
id
}
value=
{
item
.
id
}
>
{
item
.
fullAddress
}
</
Option
>
...
...
@@ -168,23 +198,23 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
<
Form
.
Item
label=
"单据时间"
name=
'voucherTime'
><
span
></
span
></
Form
.
Item
>
<
Form
.
Item
label=
"外部状态"
name=
'externalState'
><
span
></
span
></
Form
.
Item
>
</
Form
>
<
ShippingModal
<
ShippingModal
title=
'选择发货单'
columns=
{
shippingColumns
}
type=
{
2
}
onOk=
{
(
type
,
values
,
param
)
=>
handleShipping
(
type
,
values
,
param
)
}
dialogVisible=
{
shippingvisible
}
onCancel=
{
()
=>
setshippingvisible
(
false
)
}
onCancel=
{
()
=>
setshippingvisible
(
false
)
}
/>
<
InvoicesModal
<
InvoicesModal
title=
'选择订单'
columns=
{
invoicesColumns
}
type=
{
1
}
onOk=
{
(
type
,
values
,
param
)
=>
handleInvoices
(
type
,
values
,
param
)
}
dialogVisible=
{
invoicesvisible
}
onCancel=
{
()
=>
setinvoicesvisible
(
false
)
}
onCancel=
{
()
=>
setinvoicesvisible
(
false
)
}
/>
</>
)
}
export
default
BasicInfo
;
\ No newline at end of file
export
default
BasicInfo
;
src/pages/logistics/logisticsSubmit/detail/components/goods.tsx
View file @
ad67cfef
...
...
@@ -4,7 +4,12 @@ import { ColumnType } from 'antd/lib/table/interface';
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
ModalTable
from
'@/components/ModalTable'
const
AddGoods
:
React
.
FC
<
{}
>
=
()
=>
{
interface
goodsParamsProps
{
currentRef
?:
any
,
set
?:
any
}
const
AddGoods
:
React
.
FC
<
goodsParamsProps
>
=
(
props
)
=>
{
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'ID'
,
...
...
@@ -95,7 +100,7 @@ const AddGoods: React.FC<{}> = () => {
/**获取商品列表 */
const
fetchProductList
=
(
params
:
any
)
=>
{
return
new
Promise
(
resolve
=>
{
})
}
...
...
@@ -117,4 +122,4 @@ const AddGoods: React.FC<{}> = () => {
</>
)
}
export
default
AddGoods
;
\ No newline at end of file
export
default
AddGoods
;
src/pages/logistics/logisticsSubmit/detail/index.tsx
View file @
ad67cfef
...
...
@@ -3,7 +3,7 @@
* @Date: 2020-11-06
* @Author: HJX
*/
import
React
,
{
useState
}
from
'react'
;
import
React
,
{
useState
,
useRef
}
from
'react'
;
import
{
Button
,
Card
,
Tabs
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
ReturnEle
from
'@/components/ReturnEle'
;
...
...
@@ -14,6 +14,7 @@ import Goods from './components/goods';//物流单明细
const
{
TabPane
}
=
Tabs
const
AddEditLogistics
:
React
.
FC
<
{}
>
=
()
=>
{
const
basic
=
useRef
<
any
>
();
// 用于提交的
const
[
parmas
,
setParmas
]
=
useState
<
any
>
({
digest
:
''
,
//单据摘要
...
...
@@ -31,33 +32,36 @@ const AddEditLogistics: React.FC<{}> = () => {
detailList
:
[],
//物流单明细列表 ,LogisticsOrderDetailRequest
})
const
[
data
,
setData
]
=
useState
<
any
>
({})
// 调用修改Fn
const
handleRevise
=
(
value
:
any
,
index
:
number
)
=>
{
console
.
log
(
value
,
'传过来的数据'
)
// 提交数据
const
handleSubmit
=
async
()
=>
{
const
basicRef
=
await
basic
.
current
.
get
();
if
(
basicRef
.
state
)
{
console
.
log
(
basicRef
.
data
);
}
}
const
getBasicInfo
=
(
value
:
any
,
index
:
number
)
=>
{
const
data
=
{
...
parmas
};
if
(
index
===
1
)
{
data
.
invoicesNo
=
value
.
orderNo
;
//对应单据编号
data
.
receiverAddressId
=
value
.
deliveryAddresId
;
//收货方id
data
.
shipmentOrderId
=
value
.
id
;
//发货单id
data
.
companyName
=
value
.
children
}
else
if
(
index
===
2
)
{
data
.
shipmentOrderCode
=
value
.
invoicesNo
;
//发货单号
data
.
p
hone
=
value
.
phone
;
data
.
receiverP
hone
=
value
.
phone
;
data
.
receiverName
=
value
.
receiverName
;
//收货方名称
data
.
receiverFullAddress
=
value
.
fullAddress
;
data
.
m
emberName
=
value
.
memberName
;
setParmas
(
data
)
}
else
if
(
index
===
2
&&
!
data
.
invoicesNo
)
{
data
.
p
hone
=
value
.
phone
;
data
.
receiverM
emberName
=
value
.
memberName
;
data
.
invoicesId
=
value
.
id
}
else
if
(
index
===
3
&&
!
data
.
invoicesNo
)
{
data
.
receiverP
hone
=
value
.
phone
;
data
.
receiverName
=
value
.
receiverName
;
//收货方名称
data
.
receiverFullAddress
=
value
.
fullAddress
;
data
.
memberName
=
value
.
memberName
;
setParmas
(
data
)
data
.
receiverMemberName
=
value
.
memberName
;
data
.
invoicesId
=
value
.
id
}
else
{
data
.
shipperFullAddress
=
value
.
children
}
}
// 提交数据
const
handleSubmit
=
()
=>
{
console
.
log
(
'提交数据'
);
setParmas
(
data
)
}
return
(
...
...
@@ -70,12 +74,15 @@ const AddEditLogistics: React.FC<{}> = () => {
<
Tabs
type=
"card"
>
<
TabPane
key=
'tab-1'
tab=
'基本信息'
>
<
BasicInfo
parmas=
{
parmas
}
handleRevise=
{
handleRevise
}
currentRef=
{
basic
}
set=
{
parmas
}
onGet=
{
getBasicInfo
}
/>
</
TabPane
>
<
TabPane
key=
'tab-2'
tab=
'物流单明细'
>
<
Goods
/>
<
Goods
set=
{
parmas
}
/>
</
TabPane
>
<
TabPane
key=
'tab-3'
tab=
'运费'
></
TabPane
>
<
TabPane
key=
'tab-4'
tab=
'流转记录'
>
...
...
@@ -87,4 +94,4 @@ const AddEditLogistics: React.FC<{}> = () => {
)
}
export
default
AddEditLogistics
\ No newline at end of file
export
default
AddEditLogistics
src/pages/lxMall/components/Filter/components/Category/index.tsx
View file @
ad67cfef
...
...
@@ -30,14 +30,14 @@ const Category: React.FC<CategoryPropsType> = (props) => {
const
[
initSelectAttributeList
,
setInitSelectAttributeList
]
=
useState
<
any
>
([])
useEffect
(()
=>
{
console
.
log
(
JSON
.
stringify
(
filterList
))
if
(
isEmpty
(
filterList
))
{
setSelectedKeys
([])
setLastCategoryId
(
null
)
setSelectAttrbuteList
([])
}
else
{
const
initKeys
=
[]
// let initAttr
Keys = []
let
attrInit
Keys
=
[]
for
(
const
item
of
filterList
)
{
if
(
item
.
type
===
FILTER_TYPE
.
category
)
{
initKeys
.
push
(
String
(
item
.
key
))
...
...
@@ -45,9 +45,15 @@ const Category: React.FC<CategoryPropsType> = (props) => {
initKeys
.
push
(
String
(
item
.
key
))
}
if
(
item
.
type
===
FILTER_TYPE
.
attribute
)
{
setInitSelectAttributeList
(
item
.
key
)
attrInitKeys
=
item
.
key
}
}
setInitSelectAttributeList
(
attrInitKeys
)
if
(
isEmpty
(
attrInitKeys
))
{
setSelectAttrbuteList
([])
}
setSelectedKeys
(
initKeys
)
}
},
[
filterList
])
...
...
@@ -197,15 +203,10 @@ const Category: React.FC<CategoryPropsType> = (props) => {
setLastCategoryId
(
selectedKeys
[
0
])
}
}
else
{
setLastCategoryId
(
null
)
setAttributeList
([])
if
(
filterList
.
some
(
item
=>
item
.
type
===
FILTER_TYPE
.
attribute
))
{
onFilter
({
type
:
FILTER_TYPE
.
attribute
,
key
:
null
,
title
:
``
})
}
initAttribute
()
}
if
(
selectedKeys
.
length
===
0
)
{
initAttribute
()
}
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
mall
:
...
...
@@ -226,6 +227,18 @@ const Category: React.FC<CategoryPropsType> = (props) => {
}
const
initAttribute
=
()
=>
{
setLastCategoryId
(
null
)
setAttributeList
([])
if
(
filterList
.
some
(
item
=>
item
.
type
===
FILTER_TYPE
.
attribute
))
{
onFilter
({
type
:
FILTER_TYPE
.
attribute
,
key
:
null
,
title
:
``
})
}
}
const
handleExpand
=
(
expandedKeys
)
=>
{
setExpandedKeys
(
expandedKeys
)
}
...
...
src/pages/transaction/components/createElectronModal/index.tsx
View file @
ad67cfef
...
...
@@ -154,7 +154,7 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
}
}
const
electronBtn
=
<
Button
style=
{
{
marginLeft
:
24
}
}
onClick=
{
createElectron
}
loading=
{
loading
}
>
生成电子合同
</
Button
>
const
handleSubmit
=
async
(
value
)
=>
{
const
params
=
{
...
...
@@ -170,7 +170,7 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
const
handleConfirm
=
()
=>
{
schemaActions
.
submit
()
}
return
(
<
ModalForm
modalTitle=
'确认提交审核'
...
...
@@ -186,12 +186,23 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
expressionScope=
{
{
electronBtn
}
}
effects=
{
(
$
,
actions
)
=>
{
effects=
{
async
(
$
,
actions
)
=>
{
// $('onFormInit').subscribe(() =>
{
if
(
data
.
isElectronicContract
===
1
)
{
useAsyncSelect
(
'contractTemplateId'
,
async
()
=>
(
await
PublicApi
.
getOrderSelectListContractTemplate
()).
data
,
[
'name'
,
'id'
]).
then
(()
=>
{
actions
.
setFieldValue
(
"contractTemplateId"
,
data
.
contractTemplateId
)
// useAsyncSelect('contractTemplateId', async () => (await PublicApi.getOrderSelectListContractTemplate()).data, ['name', 'id']).then(()=>
{
// actions.setFieldValue("contractTemplateId", data.contractTemplateId)
//
})
const
{
data
}
=
await
PublicApi
.
getOrderSelectListContractTemplate
()
let
options
=
data
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
id
,
}))
actions
.
setFieldState
(
'contractTemplateId'
,
state
=>
{
state
.
props
.
enum
=
options
})
if
(
options
?.
length
&&
options
.
filter
(
_i
=>
_i
.
value
===
data
.
contractTemplateId
).
length
)
{
actions
.
setFieldValue
(
"contractTemplateId"
,
data
.
contractTemplateId
)
}
}
else
{
actions
.
setFieldState
(
'usingElectronicContracts'
,
state
=>
{
state
.
value
=
0
...
...
@@ -200,6 +211,9 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
}
})
}
$
(
'onFieldValueChange'
,
'contractTemplateId'
).
subscribe
(
state
=>
{
console
.
log
(
state
.
props
)
})
//
})
}
}
/>
...
...
@@ -208,4 +222,4 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
CreateOrderElectronModal
.
defaultProps
=
{}
export
default
CreateOrderElectronModal
\ No newline at end of file
export
default
CreateOrderElectronModal
src/pages/transaction/components/orderSaleRecord/index.tsx
View file @
ad67cfef
...
...
@@ -25,7 +25,6 @@ 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
>
([])
...
...
src/pages/transaction/confirmInquiryQuote/components/details.tsx
View file @
ad67cfef
...
...
@@ -394,45 +394,72 @@ const Details: React.FC<parmas> = (props) => {
}
>
<
div
className=
{
style
.
item_wrap
}
>
{
<
Tabs
>
<
TabPane
tab=
"外部流转"
key=
"1"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
Number
(
data
.
externalState
-
1
)
}
>
{
detailData
.
externalStateStep
.
items
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
/>
);
})
}
</
Steps
>
</
TabPane
>
<
TabPane
tab=
"内部流转"
key=
"2"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
Number
(
data
.
interiorState
-
1
)
}
>
{
detailData
.
interiorStateStep
.
items
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
/>
);
})
}
</
Steps
>
</
TabPane
>
</
Tabs
>
}
<
Tabs
>
{
Object
.
keys
(
data
).
length
>
0
&&
<>
{
type
===
'quote'
?
<
TabPane
tab=
"外部流转"
key=
"1"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
data
.
externalState
-
1
}
>
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
externalRequisitionFormResponses
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
roleName
}
description=
{
item
.
operation
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
</
Steps
>
</
TabPane
>
:
<>
<
TabPane
tab=
"外部流转"
key=
"1"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
data
.
externalState
-
1
}
>
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
externalInquiryListStateResponses
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
</
Steps
>
</
TabPane
>
<
TabPane
tab=
"内部流转"
key=
"2"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
Number
(
data
.
interiorState
-
1
)
}
>
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
interiorRequisitionFormStateResponses
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
</
Steps
>
</
TabPane
>
</>
}
</>
}
</
Tabs
>
</
div
>
<
div
className=
{
style
.
item_wrap
}
>
<
div
className=
{
style
.
mainCol_title
}
style=
{
view
===
2
?
{
paddingBottom
:
'0px'
}
:
{
paddingBottom
:
'24px'
}
}
>
询价商品
</
div
>
...
...
@@ -515,12 +542,20 @@ const Details: React.FC<parmas> = (props) => {
</
div
>
<
div
className=
{
style
.
item_wrap
}
>
<
Tabs
>
<
TabPane
tab=
"外部流转记录"
key=
"1"
>
<
Table
columns=
{
flowRecord
.
external
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
view
===
2
?
data
.
externalRequisitionFormResponses
:
data
.
externalInquiryListLogResponses
}
/>
</
TabPane
>
<
TabPane
tab=
"内部流转记录"
key=
"2"
>
<
Table
columns=
{
flowRecord
.
interior
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
view
===
2
?
data
.
interiorQuotationLogResponses
:
data
.
interiorInquiryListLogResponses
}
/>
</
TabPane
>
{
type
===
'quote'
?
<
TabPane
tab=
"外部流转记录"
key=
"1"
>
<
Table
columns=
{
flowRecord
.
external
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
view
===
2
?
data
.
externalRequisitionFormResponses
:
data
.
externalInquiryListLogResponses
}
/>
</
TabPane
>
:
<>
<
TabPane
tab=
"外部流转记录"
key=
"1"
>
<
Table
columns=
{
flowRecord
.
external
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
view
===
2
?
data
.
externalRequisitionFormResponses
:
data
.
externalInquiryListLogResponses
}
/>
</
TabPane
>
<
TabPane
tab=
"内部流转记录"
key=
"2"
>
<
Table
columns=
{
flowRecord
.
interior
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
view
===
2
?
data
.
interiorQuotationLogResponses
:
data
.
interiorInquiryListLogResponses
}
/>
</
TabPane
>
</>
}
</
Tabs
>
</
div
>
<
AuditModal
...
...
@@ -534,4 +569,4 @@ const Details: React.FC<parmas> = (props) => {
)
}
export
default
Details
\ No newline at end of file
export
default
Details
src/pages/transaction/confirmInquiryQuote/pendingSubmit/index.tsx
View file @
ad67cfef
This diff is collapsed.
Click to expand it.
src/pages/transaction/confirmInquiryQuote/schema/pendingReview.tsx
View file @
ad67cfef
...
...
@@ -5,8 +5,8 @@ import TranactionRoute from 'config/routes/tranactionRoute'
/**
* @description: 待审核询价单
* @param {type}
* @return {type}
* @param {type}
* @return {type}
*/
export
const
pendingReviewSchema
:
ISchema
=
{
type
:
'object'
,
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/flowRecord.tsx
View file @
ad67cfef
...
...
@@ -18,38 +18,10 @@ const FlowRecord: React.FC<parmas> = (props) => {
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
/**
* @description: 外部流转记录
* @param {type}
* @return {type}
*/
const
externalTextState
=
(
text
)
=>
{
let
name
=
''
editData
.
externalInquiryListStateResponses
.
forEach
(
element
=>
{
if
(
element
.
state
===
text
)
{
name
=
element
.
operationalProcess
}
})
return
<>
{
name
}
</>
}
/**
* @description: 内部流转记录
* @param {type}
* @return {type}
*/
const
interiorTextState
=
(
text
)
=>
{
let
name
=
''
editData
.
interiorInquiryListLogResponses
.
forEach
(
element
=>
{
if
(
element
.
state
===
text
)
{
name
=
element
.
operationalProcess
}
})
return
<>
{
name
}
</>
}
const
outerColumns
:
EditableColumns
[]
=
[{
title
:
'序号'
,
dataIndex
:
'i
nquiryListI
d'
,
dataIndex
:
'id'
,
},
{
title
:
'操作角色'
,
dataIndex
:
'roleName'
,
...
...
@@ -70,7 +42,7 @@ const FlowRecord: React.FC<parmas> = (props) => {
}]
const
insideColumns
:
EditableColumns
[]
=
[{
title
:
'序号'
,
dataIndex
:
'i
nquiryListI
d'
,
dataIndex
:
'id'
,
},
{
title
:
'操作人'
,
dataIndex
:
'roleName'
,
...
...
src/pages/transaction/goodsOffer/components/details.tsx
View file @
ad67cfef
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
style
from
'./index.less'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Card
,
Tabs
,
Steps
,
Table
}
from
'antd'
;
import
{
Button
,
Tabs
,
Steps
,
Table
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
StopOutlined
,
CheckSquareOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
import
{
CheckSquareOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
quoteOrderInternalState
,
inquiryQuoteOuterState
}
from
'../../common/tableStatusList'
;
import
AuditModal
from
'../components/auditModel'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
...
...
@@ -41,59 +40,7 @@ const Details: React.FC<parmas> = (props) => {
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
// steps 切换
const
[
detailData
,
setDetailData
]
=
useState
<
any
>
({
externalStateStep
:
{
current
:
0
,
title
:
'外部流转'
,
items
:
[
{
title
:
'采购商'
,
desc
:
'提交询价单'
,
},
{
title
:
'供应商'
,
desc
:
'提交报价单'
,
},
{
title
:
'采购商'
,
desc
:
'确认报价单'
,
},
{
title
:
'完成'
,
desc
:
''
}
]
},
interiorStateStep
:
{
current
:
0
,
title
:
'内部流转'
,
items
:
[
{
title
:
'采购员'
,
desc
:
'新增询价单'
,
},
{
title
:
'采购经理'
,
desc
:
'审核询价单'
,
},
{
title
:
'副总经理'
,
desc
:
'审核询价单'
,
},
{
title
:
'采购员'
,
desc
:
'提交询价单'
,
},
{
title
:
'完成'
,
desc
:
''
}
]
}
})
// 模拟数据
const
[
data
,
setdata
]
=
useState
<
any
>
({});
// 询价商品
...
...
@@ -357,12 +304,13 @@ const Details: React.FC<parmas> = (props) => {
progressDot
current=
{
Number
(
data
.
externalState
-
1
)
}
>
{
detailData
.
externalStateStep
.
item
s
.
map
((
item
,
index
)
=>
{
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
externalInquiryListStateResponse
s
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
...
...
@@ -374,12 +322,13 @@ const Details: React.FC<parmas> = (props) => {
progressDot
current=
{
Number
(
data
.
interiorState
-
1
)
}
>
{
detailData
.
interiorStateStep
.
item
s
.
map
((
item
,
index
)
=>
{
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
interiorRequisitionFormStateResponse
s
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
...
...
@@ -479,4 +428,4 @@ const Details: React.FC<parmas> = (props) => {
)
}
export
default
Details
\ No newline at end of file
export
default
Details
src/pages/transaction/inquiryQuote/addInquiryOrder/components/flowRecord.tsx
View file @
ad67cfef
...
...
@@ -19,7 +19,7 @@ const FlowRecord: React.FC<parmas> = (props) => {
}
const
outerColumns
:
EditableColumns
[]
=
[{
title
:
'序号'
,
dataIndex
:
'i
nquiryListI
d'
,
dataIndex
:
'id'
,
},
{
title
:
'操作角色'
,
dataIndex
:
'roleName'
,
...
...
@@ -40,7 +40,7 @@ const FlowRecord: React.FC<parmas> = (props) => {
}]
const
insideColumns
:
EditableColumns
[]
=
[{
title
:
'序号'
,
dataIndex
:
'i
nquiryListI
d'
,
dataIndex
:
'id'
,
},
{
title
:
'操作人'
,
dataIndex
:
'roleName'
,
...
...
src/pages/transaction/inquiryQuote/components/details.tsx
View file @
ad67cfef
...
...
@@ -434,19 +434,20 @@ const Details: React.FC<parmas> = (props) => {
{
Object
.
keys
(
data
).
length
>
0
&&
<>
{
type
===
'
rfq
'
?
{
type
===
'
quote
'
?
<
TabPane
tab=
"外部流转"
key=
"1"
>
<
Steps
style=
{
{
padding
:
'20px 0'
}
}
progressDot
current=
{
data
.
externalState
-
1
}
>
{
detailData
.
externalStateStep
.
item
s
.
map
((
item
,
index
)
=>
{
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
externalRequisitionFormResponse
s
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
title=
{
item
.
roleName
}
description=
{
item
.
operation
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
...
...
@@ -460,12 +461,13 @@ const Details: React.FC<parmas> = (props) => {
progressDot
current=
{
data
.
externalState
-
1
}
>
{
detailData
.
externalStateStep
.
item
s
.
map
((
item
,
index
)
=>
{
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
externalInquiryListStateResponse
s
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
...
...
@@ -477,12 +479,13 @@ const Details: React.FC<parmas> = (props) => {
progressDot
current=
{
Number
(
data
.
interiorState
-
1
)
}
>
{
detailData
.
interiorStateStep
.
item
s
.
map
((
item
,
index
)
=>
{
{
Object
.
keys
(
data
).
length
>
0
&&
data
.
interiorRequisitionFormStateResponse
s
.
map
((
item
,
index
)
=>
{
return
(
<
Step
key=
{
index
}
title=
{
item
.
title
}
description=
{
item
.
desc
}
title=
{
item
.
roleName
}
description=
{
item
.
operationalProcess
}
status=
{
item
.
isExecute
?
'finish'
:
'wait'
}
/>
);
})
}
...
...
@@ -575,7 +578,7 @@ const Details: React.FC<parmas> = (props) => {
</
div
>
<
div
className=
{
style
.
item_wrap
}
>
{
type
===
'
rfq
'
?
type
===
'
quote
'
?
<>
<
div
className=
{
style
.
mainCol_title
}
>
外部流转记录
</
div
>
<
Table
columns=
{
flowRecord
.
external
}
rowKey=
'id'
pagination=
{
false
}
dataSource=
{
data
.
externalInquiryListLogResponses
}
/>
...
...
src/pages/transaction/inquiryQuote/pendingSubmit/index.tsx
View file @
ad67cfef
This diff is collapsed.
Click to expand it.
src/pages/transaction/purchaseOrder/orderCollect/components/productModalTable/index.tsx
View file @
ad67cfef
...
...
@@ -8,6 +8,14 @@ import { DELIVERY_TYPE, OrderModalType } from '@/constants'
import
{
PublicApi
}
from
'@/services/api'
import
{
EnvironmentOutlined
}
from
'@ant-design/icons'
import
{
Popover
,
Space
,
Row
,
message
}
from
'antd'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
addOrderModalSchema
}
from
'@/components/ModalTable/schema'
import
Search
from
'@/components/NiceForm/components/Search'
import
SearchSelect
from
'@/components/NiceForm/components/SearchSelect'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
import
DateSelect
from
'@/components/NiceForm/components/DateSelect'
;
import
{
action
}
from
'mobx'
export
interface
ProductModalTableProps
extends
ModalTableProps
{
type
?:
'radio'
|
'checkbox'
,
...
...
@@ -169,6 +177,7 @@ const ProductModalTable:React.FC<ProductModalTableProps> = (props) => {
return
fetchOrderApi
.
getProductList
(
params
)
}
return
(
<
ModalTable
modalTitle=
'选择订单商品'
...
...
@@ -180,7 +189,7 @@ const ProductModalTable:React.FC<ProductModalTableProps> = (props) => {
fetchTableData=
{
fetchProductList
}
rowSelection=
{
rowSelection
}
resetModal=
{
{
destroyOnClose
:
true
,
forceRender
:
true
}
}
modalType=
'
productByDefault
'
modalType=
'
none
'
tableProps=
{
{
rowKey
:
'id'
,
onRow
:
(
record
)
=>
({
...
...
@@ -190,6 +199,32 @@ const ProductModalTable:React.FC<ProductModalTableProps> = (props) => {
},
})
}
}
formilyProps=
{
{
ctx
:
{
schema
:
addOrderModalSchema
,
components
:
{
ModalSearch
:
Search
,
SearchSelect
,
Submit
,
DateSelect
},
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
actions
.
setFieldState
(
'customerCategoryId'
,
state
=>
{
state
.
props
[
'x-component-props'
].
queryParams
=
{
memberId
:
schemaAction
.
getFieldValue
(
'supplyMembersId'
),
memberRoleId
:
schemaAction
.
getFieldValue
(
'supplyMembersRoleId'
)
}
})
actions
.
setFieldState
(
'brandId'
,
state
=>
{
state
.
props
[
'x-component-props'
].
queryParams
=
{
memberId
:
schemaAction
.
getFieldValue
(
'supplyMembersId'
),
memberRoleId
:
schemaAction
.
getFieldValue
(
'supplyMembersRoleId'
)
}
})
}
}
}
}
{
...
restProps
}
/>
)
...
...
src/pages/transaction/purchaseOrder/orderCollect/effects/index.ts
View file @
ad67cfef
...
...
@@ -86,7 +86,9 @@ export const useEditHideField = () => {
})
}
export
const
useProductTableChangeForPay
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
update
)
=>
{
export
const
useProductTableChangeForPay
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
update
,
editData
)
=>
{
const
{
pageStatus
}
=
usePageStatus
()
FormEffectHooks
.
onFieldValueChange$
(
'orderProductRequests'
).
subscribe
(
state
=>
{
const
{
value
}
=
state
const
payInfoData
=
ctx
.
getFieldValue
(
'paymentInformationResponses'
)
...
...
@@ -99,17 +101,20 @@ export const useProductTableChangeForPay = (ctx: ISchemaFormActions | ISchemaFor
if
(
value
&&
value
.
length
>
0
){
// 请求一次并复制给支付信息
const
productItem
=
value
[
0
]
console
.
log
(
productItem
,
'productItem'
)
fetchOrderApi
.
getPayInfoList
({
// productId: productItem.id,
productId
:
productItem
?.
commodityId
?
productItem
.
id
:
productItem
.
productId
,
memberId
:
productItem
.
memberId
,
memberRoleId
:
productItem
.
memberRoleId
,
orderModel
:
ctx
.
getFieldValue
(
'orderModel'
),
}).
then
(
data
=>
{
ctx
.
setFieldValue
(
'paymentInformationResponses'
,
data
)
}).
catch
(
err
=>
{
})
if
(
pageStatus
===
PageStatus
.
EDIT
)
{
// 编辑下 支付信息联动实现
}
else
if
(
pageStatus
===
PageStatus
.
ADD
)
{
// 新增下 需要支付信息生成支付次数
fetchOrderApi
.
getPayInfoList
({
productId
:
productItem
?.
commodityId
?
productItem
.
id
:
productItem
.
productId
,
memberId
:
productItem
.
memberId
,
memberRoleId
:
productItem
.
memberRoleId
,
orderModel
:
ctx
.
getFieldValue
(
'orderModel'
),
}).
then
(
data
=>
{
ctx
.
setFieldValue
(
'paymentInformationResponses'
,
data
)
}).
catch
(
err
=>
{
})
}
}
// 确认后 需根据商品id请求会员折扣接口, 以及配送方式
...
...
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
View file @
ad67cfef
...
...
@@ -4,7 +4,7 @@ import { PageHeaderWrapper } from '@ant-design/pro-layout'
import
ReutrnEle
from
'@/components/ReturnEle'
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
import
{
Button
,
Card
,
Row
,
Col
,
Drawer
,
message
}
from
'antd'
import
{
createFormActions
,
registerVirtualBox
,
useFormSpy
}
from
'@formily/antd'
import
{
createFormActions
,
registerVirtualBox
,
useFormSpy
,
createAsyncFormActions
}
from
'@formily/antd'
import
{
SaveOutlined
,
LinkOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
import
NiceForm
from
'@/components/NiceForm'
import
{
orderDetailSchema
,
orderAddSchema
,
mergeAllSchemas
}
from
'./schema'
...
...
@@ -204,6 +204,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
// theInvoiceInfo: (value.typeof value.theInvoiceId === 'object' ? value.theInvoiceId : null
// theInvoiceInfo: value.theInvoiceInfo
}
console
.
log
(
params
,
'params'
)
// 校验是否选择支付渠道
let
judgementByPay
=
params
.
paymentInformationResponses
.
map
(
item
=>
{
if
(
item
.
channel
&&
item
.
payWay
){
...
...
@@ -370,6 +371,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
//
}
})
}
console
.
log
(
initFormValue
,
'init'
)
})
// 监听商品总价的变更, 此处逻辑需优化
$
(
'sumPrice'
).
subscribe
(
payload
=>
{
...
...
@@ -442,7 +444,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
})
useEditHideField
()
// 商品信息的改动 驱动支付信息变化
useProductTableChangeForPay
(
ctx
,
update
)
useProductTableChangeForPay
(
ctx
,
update
,
initFormValue
)
}
}
expressionScope=
{
{
orderNoPrice
,
...
...
src/store/filter/index.ts
View file @
ad67cfef
...
...
@@ -136,7 +136,9 @@ class FilterStore {
for
(
const
filterItem
of
newFilterList
)
{
switch
(
filterItem
.
type
)
{
case
FILTER_TYPE
.
category
:
tempFilterParam
.
categoryId
=
Number
(
filterItem
.
key
[
0
])
if
(
Number
(
filterItem
.
key
[
0
]))
{
tempFilterParam
.
categoryId
=
Number
(
filterItem
.
key
[
0
])
}
break
case
FILTER_TYPE
.
customerCategory
:
tempFilterParam
.
customerCategoryId
=
Number
(
filterItem
.
key
[
0
])
...
...
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