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
ae6a9d38
Commit
ae6a9d38
authored
Sep 24, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
590ad7a4
6d5e7503
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
539 additions
and
148 deletions
+539
-148
CustomRelevance.tsx
src/components/NiceForm/components/CustomRelevance.tsx
+2
-2
index.ts
src/constants/index.ts
+6
-6
addAttribute.tsx
src/pages/classAndProperty/attribute/addAttribute.tsx
+9
-2
addPropertyValue.tsx
...pages/classAndProperty/propertyValue/addPropertyValue.tsx
+5
-1
addGoods.tsx
src/pages/commodity/goods/addGoods.tsx
+9
-2
addProducts.tsx
src/pages/commodity/products/addProducts.tsx
+2
-14
basicInfoForm.tsx
...ages/commodity/products/addProductsItem/basicInfoForm.tsx
+16
-8
otherForm.tsx
src/pages/commodity/products/addProductsItem/otherForm.tsx
+19
-3
productAttributeForm.tsx
...mmodity/products/addProductsItem/productAttributeForm.tsx
+2
-16
productImageForm.tsx
...s/commodity/products/addProductsItem/productImageForm.tsx
+5
-3
addMember.tsx
src/pages/member/memberImport/addMember.tsx
+4
-0
addBrand.tsx
src/pages/trademark/addBrand.tsx
+5
-3
index.tsx
...seOrder/orderDetail/components/demandModalTable/index.tsx
+2
-0
index.tsx
...chaseOrder/orderDetail/components/selectAddress/index.tsx
+5
-2
index.tsx
.../transaction/purchaseOrder/orderDetail/constant/index.tsx
+1
-0
index.tsx
src/pages/transaction/purchaseOrder/orderDetail/index.tsx
+1
-0
index.tsx
...Order/orderPreview/components/orderProductTable/index.tsx
+1
-0
index.tsx
...transaction/purchaseOrder/orderPreview/constant/index.tsx
+1
-0
index.tsx
...ransaction/purchaseOrder/readyAddOrder/constant/index.tsx
+1
-0
useSelfTable.tsx
...tion/saleOrder/addSaleDelevedOrder/model/useSelfTable.tsx
+1
-1
index.tsx
...Order/orderPreview/components/orderDeleveRecord/index.tsx
+243
-0
index.tsx
...Order/orderPreview/components/orderProductTable/index.tsx
+1
-0
index.tsx
...er/orderPreview/components/orderTransformRecord/index.tsx
+1
-1
index.tsx
...ges/transaction/saleOrder/orderPreview/constant/index.tsx
+1
-0
index.tsx
src/pages/transaction/saleOrder/orderPreview/index.tsx
+4
-0
useSelfTable.tsx
...n/saleOrder/readyAddLogisticsOrder/model/useSelfTable.tsx
+12
-3
index.tsx
...ansaction/saleOrder/readyApprovedOrder/constant/index.tsx
+1
-0
useSelfTable.tsx
...saleOrder/readyConfirmDelevedOrder/model/useSelfTable.tsx
+4
-4
useBusinessEffects.ts
...kSellStorage/bills/addBills/effects/useBusinessEffects.ts
+50
-42
index.tsx
...ges/transaction/stockSellStorage/bills/addBills/index.tsx
+71
-10
index.ts
...ansaction/stockSellStorage/bills/addBills/schema/index.ts
+5
-0
index.tsx
src/pages/transaction/stockSellStorage/bills/index.tsx
+2
-5
addRule.tsx
src/pages/transaction/transactionRules/addRule.tsx
+17
-7
RuleSetting.tsx
...s/transaction/transactionRules/components/RuleSetting.tsx
+1
-2
index.tsx
src/pages/transaction/transactionRules/index.tsx
+1
-8
index.tsx
src/pages/transaction/transactionRules/schema/index.tsx
+1
-3
regExp.ts
src/utils/regExp.ts
+27
-0
No files found.
src/components/NiceForm/components/CustomRelevance.tsx
View file @
ae6a9d38
...
...
@@ -44,13 +44,13 @@ const Relevance = props => {
const
tableRowLableKey
=
tableProps
.
lableKey
||
''
;
// Input展示用的 key val
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
rowSelection
,
rowCtl
]
=
useRowSelectionTable
({
type
:
selectionType
});
const
[
rowSelection
,
rowCtl
]
=
useRowSelectionTable
({
type
:
selectionType
,
customKey
:
tableRowKey
});
useEffect
(()
=>
{
// Table 只能缓存 keys
const
rowKeys
=
value
.
map
(
item
=>
item
[
tableRowKey
]);
rowCtl
.
setSelectedRowKeys
(
rowKeys
);
},
[
props
.
value
]);
},
[
props
.
value
,
tableProps
.
rowKey
]);
const
handleConfirm
=
()
=>
{
const
rows
=
rowCtl
.
selectRow
;
...
...
src/constants/index.ts
View file @
ae6a9d38
...
...
@@ -670,27 +670,27 @@ export enum SaleOrderInsideWorkState {
CONFIRM_NOT_PAY_RESULT
,
/**
*
订单销售,发货单创建
*
待新增销售发货单
*/
SALE_CREATE_DELIVED_ORDER
,
/**
*
新增物流单
*
待新增物流单(发货单审核成功)
*/
ADD_LOGISTICS_ORDER
,
/**
*
订单发货确认
*
待确认发货(物流单审核成功)
*/
CONFIRM_DELIVERY_ORDER
,
/**
*
确认回单
*
待确认回单(已确认发货)
*/
CONFIRM_RECEIPT
=
23
,
/**
*
订单归档
*
待订单归档(已确认回单)
*/
FILLING_ORDER
,
...
...
@@ -700,7 +700,7 @@ export enum SaleOrderInsideWorkState {
READY_DELEVED_APPROVED
,
/**
*
销售发货单审核成功
*
待审核物流单(新增物流单成功)
*/
DELIVERY_APPROVED_SUCCESS
}
...
...
src/pages/classAndProperty/attribute/addAttribute.tsx
View file @
ae6a9d38
...
...
@@ -7,6 +7,7 @@ import { StandardTable } from 'god'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
validatorByte
}
from
'@/utils/regExp'
;
const
{
Option
}
=
Select
;
...
...
@@ -180,9 +181,12 @@ const AddAtttribute: React.FC<{}> = () => {
required
:
true
,
message
:
'输入属性组名!'
,
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
20
)
}
]
}
>
<
Input
maxLength=
{
10
}
placeholder=
"输入属性组名"
disabled=
{
isSee
}
/>
<
Input
placeholder=
"输入属性组名"
disabled=
{
isSee
}
/>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
18
}
>
...
...
@@ -202,9 +206,12 @@ const AddAtttribute: React.FC<{}> = () => {
required
:
true
,
message
:
'输入属性名称!'
,
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
20
)
}
]
}
>
<
Input
maxLength=
{
10
}
placeholder=
"输入属性名称"
disabled=
{
isSee
}
/>
<
Input
placeholder=
"输入属性名称"
disabled=
{
isSee
}
/>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
18
}
>
...
...
src/pages/classAndProperty/propertyValue/addPropertyValue.tsx
View file @
ae6a9d38
...
...
@@ -9,6 +9,7 @@ import { PublicApi } from '@/services/api';
import
TabTree
,
{
useTreeActions
,
createTreeActions
}
from
'@/components/TabTree'
;
import
{
useTreeTabs
}
from
'@/hooks/useTreeTabs'
;
import
{
GetManageAreaAllResponse
}
from
'@/services'
;
import
{
validatorByte
}
from
'@/utils/regExp'
;
const
layout
=
{
labelCol
:
{
...
...
@@ -202,9 +203,12 @@ const AddPropertyValue: React.FC<{}> = () => {
required
:
true
,
message
:
'输入属性值名称!'
,
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
12
)
}
]
}
>
<
Input
maxLength=
{
12
}
placeholder=
"输入属性值名称"
disabled=
{
isSee
}
/>
<
Input
placeholder=
"输入属性值名称"
disabled=
{
isSee
}
/>
</
Form
.
Item
>
}
{
...
...
src/pages/commodity/goods/addGoods.tsx
View file @
ae6a9d38
...
...
@@ -9,6 +9,7 @@ import ReutrnEle from '@/components/ReturnEle';
import
styles
from
'./index.less'
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetProductCustomerGetCustomerCategoryTreeResponse
}
from
'@/services'
;
import
{
validatorByte
}
from
'@/utils/regExp'
;
const
{
Option
}
=
Select
;
const
layout
=
{
...
...
@@ -158,9 +159,12 @@ const AddGoods = () => {
required
:
true
,
message
:
'请填入货品名称'
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
40
)
}
]
}
>
<
Input
placeholder=
"最长
20个字符"
maxLength=
{
20
}
disabled=
{
isSee
}
/>
<
Input
placeholder=
"最长
40个字符20个汉字"
disabled=
{
isSee
}
/>
</
Form
.
Item
>
<
Form
.
Item
name=
"type"
...
...
@@ -170,9 +174,12 @@ const AddGoods = () => {
required
:
true
,
message
:
'请填入规格型号'
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
40
)
}
]
}
>
<
Input
placeholder=
"最长
20个字符"
maxLength=
{
20
}
disabled=
{
isSee
}
/>
<
Input
placeholder=
"最长
40个字符20个汉字"
disabled=
{
isSee
}
/>
</
Form
.
Item
>
{
/* <Form.Item
name={['customerCategory', 'id']}
...
...
src/pages/commodity/products/addProducts.tsx
View file @
ae6a9d38
...
...
@@ -162,29 +162,18 @@ const AddProducts: React.FC<{}> = (props) => {
if
(
_productAttributeAndImageParams
.
length
>
0
){
_productAttributeAndImageParams
.
map
(
_item
=>
{
console
.
log
(
_item
,
'_item'
)
_item
.
goods
=
{
id
:
_item
.
goodsId
}
// id为0表示无货品
delete
_item
.
goodsId
// if(_item.attributeAndValueList.length>0){
// _item.attributeAndValueList.map(__item => {
// delete __item.customerAttributeName
// // **** 新字段结构变更
// __item.customerAttribute = { id: __item.customerAttributeId }
// __item.customerAttributeValue = { id: __item.id, value: __item.value }
// delete __item.id
// delete __item.value
// delete __item.customerAttributeId
// })
// }
if
(
_item
.
commodityPic
.
length
>
0
){
// 编辑情况下兼顾手动添加图片列表属性
console
.
log
(
'不一定'
)
_item
.
commodityPic
=
_item
.
commodityPic
.
map
(
__item
=>
__item
?.
response
?.
data
||
__item
?.
url
)
// 多种属性组合 所有属性共用的情况下 每一行都是用第一项
if
(
isAllAttributePic
)
_item
.
commodityPic
=
_productAttributeAndImageParams
[
0
].
commodityPic
}
else
{
if
(
isAllAttributePic
&&
_productAttributeAndImageParams
[
0
].
commodityPic
.
length
>
0
){
//处理所有属性共用
console
.
log
(
'所有属性共用'
)
_item
.
commodityPic
=
_productAttributeAndImageParams
[
0
].
commodityPic
}
else
...
...
@@ -201,7 +190,6 @@ const AddProducts: React.FC<{}> = (props) => {
}
else
{
// 编辑 没有点击商品图片
_params
.
unitPriceAndPicList
=
productInfoByEdit
.
unitPriceAndPicList
if
(
clickTabIndex
.
indexOf
(
"4"
)
!==
-
1
){
// 没有点击图片单单修改了商品价格 取原有的图片和新的价格合成
console
.
log
(
'仅修改商品价格'
)
_params
.
unitPriceAndPicList
=
priceAttributeParams
.
map
((
item
,
index
)
=>
{
return
{
goods
:
{
id
:
item
.
goodsId
},
...
...
src/pages/commodity/products/addProductsItem/basicInfoForm.tsx
View file @
ae6a9d38
...
...
@@ -17,6 +17,7 @@ import { inject, observer } from 'mobx-react'
// import { IProductModule } from '@/module/productModule'
// import { IStore } from '@/store';
import
{
store
}
from
'@/store'
import
{
validatorByte
}
from
'@/utils/regExp'
;
const
{
Option
}
=
Select
const
layout
=
{
...
...
@@ -268,9 +269,12 @@ const BasicInfoForm: React.FC<Iprops> = (props) => {
required
:
true
,
message
:
'商品名称'
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
90
)
}
]
}
>
<
Input
placeholder=
"商品名称"
maxLength=
{
45
}
onBlur=
{
e
=>
onChangeName
(
e
.
target
.
value
)
}
/>
<
Input
placeholder=
"商品名称"
onBlur=
{
e
=>
onChangeName
(
e
.
target
.
value
)
}
/>
</
Form
.
Item
>
<
Form
.
Item
name=
"slogan"
...
...
@@ -282,14 +286,17 @@ const BasicInfoForm: React.FC<Iprops> = (props) => {
</
Tooltip
>
</
span
>
}
// rules={[
// {
// required: true,
// message: '请填入商品标语'
// },
// ]}
rules=
{
[
//
{
// required: true,
// message: '请填入商品标语'
//
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
90
)
}
]
}
>
<
Input
placeholder=
"请输入商品标语"
maxLength=
{
45
}
/>
<
Input
placeholder=
"请输入商品标语"
/>
</
Form
.
Item
>
<
Form
.
Item
name=
"sellingPoint"
...
...
@@ -312,6 +319,7 @@ const BasicInfoForm: React.FC<Iprops> = (props) => {
mode=
"tags"
placeholder=
"请输入或选择商品卖点"
maxTagCount=
{
3
}
maxTagTextLength=
{
8
}
tagRender=
{
tagRender
}
/>
</
Form
.
Item
>
...
...
src/pages/commodity/products/addProductsItem/otherForm.tsx
View file @
ae6a9d38
...
...
@@ -2,6 +2,7 @@ import React, { useState, useEffect, useRef } from 'react'
import
{
history
}
from
'umi'
import
{
Form
,
Select
,
Radio
,
Input
}
from
'antd'
import
{
store
}
from
'@/store'
import
{
validatorByte
}
from
'@/utils/regExp'
const
{
ProductStore
}
=
store
const
layout
=
{
...
...
@@ -60,20 +61,35 @@ const OtherForm: React.FC<Iprops> = (props) => {
<
Form
.
Item
name=
"marks"
label=
"唛头"
rules=
{
[
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
50
)
}
]
}
>
<
Input
maxLength=
{
25
}
placeholder=
"请输入唛头(最长25个字符)
"
/>
<
Input
placeholder=
"最长50个字符25个汉字
"
/>
</
Form
.
Item
>
<
Form
.
Item
name=
"packing"
label=
"包装清单"
rules=
{
[
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
120
)
}
]
}
>
<
TextArea
maxLength=
{
120
}
rows=
{
4
}
placeholder=
"最长120个字符
"
/>
<
TextArea
rows=
{
4
}
placeholder=
"最长120个字符60个汉字
"
/>
</
Form
.
Item
>
<
Form
.
Item
name=
"afterService"
label=
"售后服务"
rules=
{
[
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
300
)
}
]
}
>
<
TextArea
maxLength=
{
300
}
rows=
{
4
}
placeholder=
"最长300个字符
"
/>
<
TextArea
rows=
{
4
}
placeholder=
"最长300个字符150个汉字
"
/>
</
Form
.
Item
>
</
Form
>
</>)
...
...
src/pages/commodity/products/addProductsItem/productAttributeForm.tsx
View file @
ae6a9d38
...
...
@@ -5,6 +5,7 @@ import styles from './index.less'
import
{
inject
,
observer
}
from
'mobx-react'
import
{
store
}
from
'@/store'
import
{
validatorByte
}
from
'@/utils/regExp'
const
layout
=
{
labelCol
:
{
...
...
@@ -166,20 +167,6 @@ const ProductAttributeForm: React.FC<Iprops> = (props) => {
_isDisabled
=
_isPrice
&&
!
_isUpdateAttribute
}
// 校验字节
const
validatorByte
=
(
rule
,
value
,
callback
)
=>
{
try
{
let
str
=
value
str
=
str
.
replace
(
/
[\u
4e00-
\u
9fa5
]
/g
,
'OO'
)
if
(
str
.
length
>
60
)
throw
new
Error
(
'最多输入60个字符,30个汉字'
);
else
callback
()
}
catch
(
err
)
{
callback
(
err
)
}
}
return
(
<>
{
...
...
@@ -253,13 +240,12 @@ const ProductAttributeForm: React.FC<Iprops> = (props) => {
required
:
true
,
message
:
'此项为必填项'
},{
validator
:
validatorByte
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
60
)
}]
}
>
<
TextArea
disabled=
{
_isDisabled
}
onChange=
{
(
v
)
=>
onChange
(
v
,
attrItem
)
}
maxLength=
{
60
}
placeholder=
"最多输入60个字符,30个汉字"
rows=
{
4
}
/>
...
...
src/pages/commodity/products/addProductsItem/productImageForm.tsx
View file @
ae6a9d38
...
...
@@ -150,15 +150,17 @@ const ProductImageForm: React.FC<Iprops> = (props) => {
const
handleChange
=
({
file
,
fileList
},
index
)
=>
{
let
_priceAttributeParams
=
[...
priceAttributeParamsByRender
]
console
.
log
(
_priceAttributeParams
,
index
,
'图片更改初始数据'
)
//
console.log(_priceAttributeParams, index, '图片更改初始数据')
setCommonImageList
(
fileList
)
_priceAttributeParams
[
index
].
commodityPic
=
fileList
if
(
file
?.
response
?.
data
){
// 服务端是否响应正常url字符
_priceAttributeParams
[
index
].
commodityPic
=
fileList
}
if
(
!
file
?.
status
&&
file
?.
status
!==
'done'
){
let
ttt
=
_priceAttributeParams
[
index
].
commodityPic
.
filter
(
_
=>
_
.
status
===
'done'
)
_priceAttributeParams
[
index
].
commodityPic
=
ttt
setCommonImageList
(
ttt
)
}
console
.
log
(
_priceAttributeParams
,
'图片更改之后数据'
)
//
console.log(_priceAttributeParams, '图片更改之后数据')
setPriceAttributeParamsByRender
(
_priceAttributeParams
)
setProductAttributeAndImageParams
(
_priceAttributeParams
)
}
...
...
src/pages/member/memberImport/addMember.tsx
View file @
ae6a9d38
...
...
@@ -181,6 +181,8 @@ const AddMember: React.FC<any> = props => {
areas
:
filtered
,
remark
,
detail
:
rest
,
},
{
timeout
:
0
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
...
...
@@ -212,6 +214,8 @@ const AddMember: React.FC<any> = props => {
areas
:
filtered
,
remark
,
detail
:
rest
,
},
{
timeout
:
0
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
...
...
src/pages/trademark/addBrand.tsx
View file @
ae6a9d38
...
...
@@ -17,6 +17,7 @@ import ReutrnEle from '@/components/ReturnEle'
import
{
PublicApi
}
from
'@/services/api'
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
styles
from
'./index.less'
import
{
validatorByte
}
from
'@/utils/regExp'
const
{
Step
}
=
Steps
;
...
...
@@ -120,7 +121,7 @@ const AddBrand: React.FC<{}> = () => {
setLogoLoading
(
false
)
}
};
// @ts-ignore
const
handleChange
=
({
fileList
})
=>
setFileList
(
fileList
)
const
handleSave
=
()
=>
{
...
...
@@ -141,14 +142,12 @@ const AddBrand: React.FC<{}> = () => {
PublicApi
.
postProductBrandSaveOrUpdateBrand
(
values
).
then
(
res
=>
{
setIsDisabledSave
(
true
)
setIsEnableCheck
(
false
)
//@ts-ignore
setReponseId
(
res
.
data
)
})
})
}
const
handleApplyCheck
=
()
=>
{
//@ts-ignore
PublicApi
.
postProductBrandApplyCheckBrand
({
id
:
responseId
}).
then
(
res
=>
{
setCurrentStep
(
1
)
setTimeout
(()
=>
{
...
...
@@ -213,6 +212,9 @@ const AddBrand: React.FC<{}> = () => {
required
:
true
,
message
:
'输入品牌名称!'
,
},
{
validator
:
(
r
,
v
,
c
)
=>
validatorByte
(
r
,
v
,
c
,
20
)
}
]
}
>
<
Input
disabled=
{
banSomeField
}
placeholder=
"输入品牌名称"
/>
...
...
src/pages/transaction/purchaseOrder/orderDetail/components/demandModalTable/index.tsx
View file @
ae6a9d38
...
...
@@ -35,6 +35,8 @@ const DemandModalTable:React.FC<DemandModalTableProps> = (props) => {
id
:
item
.
id
})
schemaAction
.
setFieldValue
(
'orderProductRequests'
,
data
)
schemaAction
.
setFieldValue
(
'supplyMembersName'
,
item
.
demandMembers
)
schemaAction
.
setFieldValue
(
'supplyMembersId'
,
item
.
demandMemberId
)
}
confirmModal
&&
confirmModal
()
setVisible
(
false
)
...
...
src/pages/transaction/purchaseOrder/orderDetail/components/selectAddress/index.tsx
View file @
ae6a9d38
...
...
@@ -59,9 +59,12 @@ const SelectAddress = (props: ISchemaFieldComponentProps) => {
const
modalRef
=
useRef
<
any
>
({})
const
{
dataSource
,
showMore
}
=
state
const
{
value
,
mutators
,
editable
}
=
props
const
transformData
=
transformDefaultData
(
dataSource
)
const
showDataSource
=
showMore
?
[...
transformData
].
splice
(
0
,
3
)
:
transformData
// 当前选中的id
const
checkedId
=
value
?
value
.
id
:
dataSource
[
0
]?.
id
const
handleAdd
=
()
=>
{
setMode
(
'add'
)
modalRef
.
current
.
setVisible
(
true
)
...
...
@@ -111,7 +114,7 @@ const SelectAddress = (props: ISchemaFieldComponentProps) => {
{
editable
&&
<
Button
block
onClick=
{
handleAdd
}
icon=
{
<
PlusOutlined
/>
}
>
新建地址
</
Button
>
}
<
SelectStyles
>
{
showDataSource
.
map
(
v
=>
<
div
key=
{
v
.
id
}
onClick=
{
()
=>
handleCheck
(
v
)
}
className=
{
cx
(
'select_style_border'
,
value
.
i
d
===
v
.
id
?
'active'
:
''
)
}
>
showDataSource
.
map
(
v
=>
<
div
key=
{
v
.
id
}
onClick=
{
()
=>
handleCheck
(
v
)
}
className=
{
cx
(
'select_style_border'
,
checkedI
d
===
v
.
id
?
'active'
:
''
)
}
>
<
div
>
<
Row
style=
{
{
color
:
'#172B4D'
}
}
>
<
Col
>
{
v
.
receiverName
}
</
Col
>
...
...
src/pages/transaction/purchaseOrder/orderDetail/constant/index.tsx
View file @
ae6a9d38
...
...
@@ -275,6 +275,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/purchaseOrder/orderDetail/index.tsx
View file @
ae6a9d38
...
...
@@ -357,6 +357,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
{
/* 询价报价单弹窗 */
}
<
InquiryModalTable
currentRef=
{
inquiryRef
}
schemaAction=
{
addSchemaAction
}
/>
{
/* 需求报价单弹窗 */
}
<
DemandModalTable
currentRef=
{
demandRef
}
schemaAction=
{
addSchemaAction
}
/>
</
ReadyAddOrderDetailContext
.
Provider
>
</
PageHeaderWrapper
>
...
...
src/pages/transaction/purchaseOrder/orderPreview/components/orderProductTable/index.tsx
View file @
ae6a9d38
...
...
@@ -318,6 +318,7 @@ const OrderProductTable:React.FC<OrderProductTableProps> = ({editable}) => {
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/purchaseOrder/orderPreview/constant/index.tsx
View file @
ae6a9d38
...
...
@@ -318,6 +318,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/purchaseOrder/readyAddOrder/constant/index.tsx
View file @
ae6a9d38
...
...
@@ -317,6 +317,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/saleOrder/addSaleDelevedOrder/model/useSelfTable.tsx
View file @
ae6a9d38
...
...
@@ -107,7 +107,7 @@ export const useSelfTable = () => {
}
const
handleAdd
=
async
(
record
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/stockSellStorage/addBills?relevanceInvoicesId=
${
record
.
id
}
&invoicesTypeId=S002&relevanceInvoices=1`
)
history
.
push
(
`/memberCenter/tranactionAbility/stockSellStorage/addBills?
orderNo=
${
record
.
orderNo
}
&deliveryAddresId=
${
record
.
deliveryAddresId
}
&
relevanceInvoicesId=
${
record
.
id
}
&invoicesTypeId=S002&relevanceInvoices=1`
)
}
return
{
...
...
src/pages/transaction/saleOrder/orderPreview/components/orderDeleveRecord/index.tsx
0 → 100644
View file @
ae6a9d38
import
React
,
{
useContext
}
from
'react'
import
{
Tabs
,
Table
,
Button
}
from
'antd'
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
import
{
formatTimeString
}
from
'@/utils'
import
{
OrderDetailContext
}
from
'../../context'
import
MellowCard
from
'@/components/MellowCard'
import
NestTable
from
'@/components/NestTable'
export
interface
OrderDeleveRecordProps
{}
const
outOrderCols
:
any
[]
=
[
{
title
:
'商品ID'
,
dataIndex
:
'productId'
,
align
:
'center'
,
key
:
'productId'
},
{
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
key
:
'productName'
,
},
{
title
:
'品类'
,
dataIndex
:
'category'
,
align
:
'center'
,
key
:
'category'
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
,
align
:
'center'
,
key
:
'brand'
,
},
{
title
:
'单位'
,
dataIndex
:
'unit'
,
align
:
'center'
,
key
:
'unit'
},
{
title
:
'单价'
,
dataIndex
:
'unitPrice'
,
align
:
'center'
,
key
:
'unitPrice'
,
},
{
title
:
'采购数量'
,
dataIndex
:
'purchaseCount'
,
align
:
'center'
,
key
:
'purchaseCount'
,
},
{
title
:
'含税'
,
dataIndex
:
'no'
,
align
:
'center'
,
key
:
'no'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
dataIndex
:
'price'
,
align
:
'center'
,
key
:
'price'
,
},
{
title
:
'已发货'
,
dataIndex
:
'delivered'
,
align
:
'center'
,
key
:
'delivered'
,
},
{
title
:
'未发货'
,
dataIndex
:
'notDelivered'
,
align
:
'center'
,
key
:
'notDelivered'
,
},
{
title
:
'已收货'
,
dataIndex
:
'goodsReceived'
,
align
:
'center'
,
key
:
'goodsReceived'
,
},
{
title
:
'差异数量'
,
dataIndex
:
'differenceCount'
,
align
:
'center'
,
key
:
'differenceCount'
,
},
]
const
sideOrderCols
:
any
[]
=
[
{
title
:
'发货批次'
,
dataIndex
:
'deliveryBatch'
,
align
:
'center'
,
key
:
'deliveryBatch'
},
{
title
:
'发货单号'
,
dataIndex
:
'deliveryNo'
,
align
:
'center'
,
key
:
'deliveryNo'
,
},
{
title
:
'发货时间'
,
dataIndex
:
'deliveryTime'
,
align
:
'center'
,
key
:
'deliveryTime'
,
render
:
text
=>
formatTimeString
(
text
)
},
{
title
:
'物流单号'
,
dataIndex
:
'logisticsNo'
,
align
:
'center'
,
key
:
'logisticsNo'
,
},
{
title
:
'物流公司'
,
dataIndex
:
'logisticsCompanyName'
,
align
:
'center'
,
key
:
'logisticsCompanyName'
},
{
title
:
'入库单号'
,
dataIndex
:
'storageNo'
,
align
:
'center'
,
key
:
'storageNo'
,
},
{
title
:
'入库时间'
,
dataIndex
:
'storageTime'
,
align
:
'center'
,
key
:
'storageTime'
,
render
:
text
=>
formatTimeString
(
text
)
},
{
title
:
'内部状态'
,
dataIndex
:
'interiorState'
,
align
:
'center'
,
key
:
'interiorState'
,
render
:
text
=>
<
StatusColors
type=
'saleInside'
status=
{
text
}
/>
},
{
title
:
'操作'
,
dataIndex
:
'ctl'
,
align
:
'center'
,
key
:
'ctl'
,
render
:
record
=>
<>
{
/* todo 需根据内部状态判断显示哪个按钮 */
}
<
Button
type=
'link'
>
确认回单
</
Button
>
<
Button
type=
'link'
>
确认发货
</
Button
>
</>
},
]
const
sideChildrenCols
:
any
[]
=
[
{
title
:
'商品ID'
,
dataIndex
:
'productId'
,
align
:
'center'
,
key
:
'productId'
,
},
{
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
key
:
'productName'
,
},
{
title
:
'品类'
,
dataIndex
:
'category'
,
align
:
'center'
,
key
:
'category'
,
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
,
align
:
'center'
,
key
:
'brand'
,
},
{
title
:
'单位'
,
dataIndex
:
'unit'
,
align
:
'center'
,
key
:
'unit'
,
},
{
title
:
'采购数量'
,
dataIndex
:
'purchaseCount'
,
align
:
'center'
,
key
:
'purchaseCount'
,
},
{
title
:
'发货数量'
,
dataIndex
:
'deliverGoodsCount'
,
align
:
'center'
,
key
:
'deliverGoodsCount'
,
},
{
title
:
'入库数量'
,
dataIndex
:
'storageCount'
,
align
:
'center'
,
key
:
'storageCount'
,
},
{
title
:
'差异数量'
,
dataIndex
:
'differenceCount'
,
align
:
'center'
,
key
:
'differenceCount'
,
},
]
// 订单发货记录
const
OrderDeleveRecord
:
React
.
FC
<
OrderDeleveRecordProps
>
=
(
props
)
=>
{
const
{
data
}
=
useContext
(
OrderDetailContext
)
const
{
orderReceivingStatisticsResponses
,
orderDeliveryDetailsResponses
}
=
data
return
(
<
MellowCard
style=
{
{
marginTop
:
24
}
}
bordered=
{
false
}
>
<
Tabs
defaultActiveKey=
"1"
animated=
{
false
}
>
<
Tabs
.
TabPane
tab=
'订单发货统计'
key=
"1"
>
<
Table
columns=
{
outOrderCols
}
dataSource=
{
orderReceivingStatisticsResponses
}
pagination=
{
false
}
rowKey=
"id"
/>
</
Tabs
.
TabPane
>
<
Tabs
.
TabPane
tab=
'订单发货明细'
key=
"2"
>
<
NestTable
NestColumns=
{
[
sideOrderCols
,
sideChildrenCols
]
}
childrenDataKey=
'orderDeliveryProducts'
dataSource=
{
orderDeliveryDetailsResponses
}
/>
</
Tabs
.
TabPane
>
</
Tabs
>
</
MellowCard
>
)
}
OrderDeleveRecord
.
defaultProps
=
{}
export
default
OrderDeleveRecord
\ No newline at end of file
src/pages/transaction/saleOrder/orderPreview/components/orderProductTable/index.tsx
View file @
ae6a9d38
...
...
@@ -321,6 +321,7 @@ const OrderProductTable:React.FC<OrderProductTableProps> = (props) => {
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/saleOrder/orderPreview/components/orderTransformRecord/index.tsx
View file @
ae6a9d38
...
...
@@ -118,7 +118,7 @@ const OrderTransformRecord:React.FC<OrderTransformRecordProps> = (props) => {
</
Tabs
.
TabPane
>
<
Tabs
.
TabPane
tab=
'内部订单流转记录'
key=
"2"
>
<
Table
columns=
{
out
OrderCols
}
columns=
{
side
OrderCols
}
dataSource=
{
interiorProcurementOrderLogResponses
}
pagination=
{
false
}
rowKey=
"id"
...
...
src/pages/transaction/saleOrder/orderPreview/constant/index.tsx
View file @
ae6a9d38
...
...
@@ -306,6 +306,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/saleOrder/orderPreview/index.tsx
View file @
ae6a9d38
...
...
@@ -19,6 +19,7 @@ import OrderTransformRecord from './components/orderTransformRecord'
import
OrderPayTabs
from
'./components/orderPayTabs'
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
import
OrderPayResultModal
from
'./components/orderPayResultModal'
import
OrderDeleveRecord
from
'./components/orderDeleveRecord'
export
interface
CommonOrderDetailProps
{}
...
...
@@ -156,6 +157,9 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
{
/* 杂项 */
}
<
OrderMergeInfo
/>
{
/* 订单发货记录 */
}
<
OrderDeleveRecord
/>
{
/* 订单流转记录 */
}
<
OrderTransformRecord
/>
</
div
>
...
...
src/pages/transaction/saleOrder/readyAddLogisticsOrder/model/useSelfTable.tsx
View file @
ae6a9d38
...
...
@@ -54,7 +54,7 @@ export const useSelfTable = () => {
key
:
'supplyMembersName'
,
},
{
title
:
'总金额
/已支付(元)
'
,
title
:
'总金额'
,
align
:
'center'
,
dataIndex
:
'sumPrice'
,
key
:
'sumPrice'
,
...
...
@@ -91,16 +91,25 @@ export const useSelfTable = () => {
dataIndex
:
'ctl'
,
key
:
'ctl'
,
render
:
(
text
,
record
)
=>
<>
{
/* 支付结果确认到账= 待审核状态 */
}
{
record
.
purchaseOrderInteriorState
===
SaleOrderInsideWorkState
.
ADD_LOGISTICS_ORDER
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleConfirm
(
record
.
id
)
}
>
新增物流单
</
Button
>
}
{
record
.
purchaseOrderInteriorState
===
SaleOrderInsideWorkState
.
DELIVERY_APPROVED_SUCCESS
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleConfirm
(
record
.
id
)
}
>
查看物流单
</
Button
>
}
</>
}
]
const
handleConfirm
=
async
(
record
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/saleOrder/orderPreview?page_type=4&id=
${
record
.
id
}
&preview=0`
)
history
.
push
(
`/memberCenter/logisticsAbility/logisticsSubmit/toOrderSubmitDetail
?orderId=
${
record
.
id
}
&invoicesTypeId=2
&shipmentOrderCode=
${
record
.
invoiceNumber
}
&orderDeliveryDetailsId=
${
record
.
orderDeliveryDetailsId
}
&invoicesNo=
${
record
.
orderNo
}
&invoicesId=
${
record
.
id
}
`
)
}
return
{
...
...
src/pages/transaction/saleOrder/readyApprovedOrder/constant/index.tsx
View file @
ae6a9d38
...
...
@@ -317,6 +317,7 @@ export const productInfoColumns: any[] = [
dataIndex
:
'none'
,
align
:
'center'
,
key
:
'none'
,
render
:
()
=>
'是'
},
{
title
:
'金额'
,
...
...
src/pages/transaction/saleOrder/readyConfirmDelevedOrder/model/useSelfTable.tsx
View file @
ae6a9d38
...
...
@@ -54,7 +54,7 @@ export const useSelfTable = () => {
key
:
'supplyMembersName'
,
},
{
title
:
'总金额
/已支付(元)
'
,
title
:
'总金额'
,
align
:
'center'
,
dataIndex
:
'sumPrice'
,
key
:
'sumPrice'
,
...
...
@@ -92,15 +92,15 @@ export const useSelfTable = () => {
key
:
'ctl'
,
render
:
(
text
,
record
)
=>
<>
{
/* 支付结果确认到账= 待审核状态 */
}
{
record
.
purchaseOrderInteriorState
===
SaleOrderInsideWorkState
.
ADD_LOGISTICS
_ORDER
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleConfirm
(
record
.
id
)
}
>
新增物流单
</
Button
>
{
record
.
purchaseOrderInteriorState
===
SaleOrderInsideWorkState
.
CONFIRM_DELIVERY
_ORDER
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleConfirm
(
record
.
id
)
}
>
确认发货
</
Button
>
}
</>
}
]
const
handleConfirm
=
async
(
record
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/saleOrder/orderPreview?page_type=
4
&id=
${
record
.
id
}
&preview=0`
)
history
.
push
(
`/memberCenter/tranactionAbility/saleOrder/orderPreview?page_type=
7
&id=
${
record
.
id
}
&preview=0`
)
}
return
{
...
...
src/pages/transaction/stockSellStorage/bills/addBills/effects/useBusinessEffects.ts
View file @
ae6a9d38
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-09-2
2 09:53:36
* @LastEditTime: 2020-09-2
4 20:11:39
* @Description: 联动逻辑相关
*/
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
...
...
@@ -25,6 +25,7 @@ import {
DOC_TYPE_EXCHANGE_INVOICE
,
DOC_TYPE_EXCHANGE_RECEIPT
,
PurchaseOrderInsideWorkStateTexts
,
DELIVERY_TYPE
,
}
from
'@/constants'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
...
...
@@ -142,8 +143,8 @@ const afterSaleColumns = [
},
];
// 获取
订
单相关数据
const
fetchOrderList
=
async
(
params
:
any
)
=>
{
// 获取
采购入库
单相关数据
const
fetchOrder
PurchaseReceiptAdd
List
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderPurchaseReceiptAddList
({
...
params
,
})
...
...
@@ -153,6 +154,17 @@ const fetchOrderList = async (params: any) => {
return
[];
};
// 获取销售发货单相关数据
const
getOrderSalesInvoiceOrderList
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderSalesInvoiceOrderList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
};
// 获取关联组件对应的 params
const
getParams
=
type
=>
{
const
params
=
{
...
...
@@ -181,43 +193,29 @@ const getParams = type => {
}
},
tableProps
:
{
rowKey
:
'
id
'
,
rowKey
:
'
orderNo
'
,
lableKey
:
''
,
},
};
switch
(
type
)
{
//
对应单据 - 订
单
case
D
EPENDENT_DOC_ORDER
:
{
//
采购入库
单
case
D
OC_TYPE_PURCHASE_RECEIPT
:
{
params
.
modalProps
.
title
=
'选择订单'
;
params
.
columns
=
orderColumns
;
params
.
fetchTableData
=
fetchOrderList
;
params
.
fetchTableData
=
fetchOrder
PurchaseReceiptAdd
List
;
params
.
formilyProps
.
ctx
.
schema
=
orderBillSchema
;
params
.
tableProps
.
lableKey
=
'orderNo'
;
break
;
}
// 对应单据 - 换货
case
DEPENDENT_DOC_EXCHANGE
:
{
break
;
}
// 对应单据 - 退货
case
DEPENDENT_DOC_RETURN
:
{
break
;
}
// 对应单据 - 生产
case
DEPENDENT_DOC_PRODUCTION
:
{
break
;
}
// 对应单据 - 内部
case
DEPENDENT_DOC_INTERNAL
:
{
// 销售发货单
case
DOC_TYPE_SALES_INVOICE
:
{
params
.
modalProps
.
title
=
'选择订单'
;
params
.
columns
=
orderColumns
;
params
.
fetchTableData
=
getOrderSalesInvoiceOrderList
;
params
.
formilyProps
.
ctx
.
schema
=
orderBillSchema
;
params
.
tableProps
.
lableKey
=
'orderNo'
;
break
;
}
...
...
@@ -251,7 +249,7 @@ export const useBusinessEffects = (context, actions) => {
const
linkage
=
useLinkageUtils
();
// 根据 单据类型 联动 对应单据所选项
onField
Value
Change$
(
'invoicesTypeId'
).
subscribe
(
fieldState
=>
{
onField
Input
Change$
(
'invoicesTypeId'
).
subscribe
(
fieldState
=>
{
const
newEnum
=
[...
getFieldState
(
'relevanceInvoices'
,
state
=>
state
.
props
.
enum
)];
switch
(
fieldState
.
value
)
{
...
...
@@ -288,8 +286,21 @@ export const useBusinessEffects = (context, actions) => {
break
;
}
}
linkage
.
value
(
'relevanceInvoices'
,
undefined
);
linkage
.
value
(
'invoicesDetailsRequests'
,
[]);
linkage
.
enum
(
'relevanceInvoices'
,
newEnum
);
const
orderNoVal
=
getFieldValue
(
'orderNo'
);
if
(
orderNoVal
&&
orderNoVal
.
length
)
{
linkage
.
value
(
'orderNo'
,
[]);
}
});
// 根据 单据类型 联动 对应单据所选项
onFieldValueChange$
(
'invoicesTypeId'
).
subscribe
(
fieldState
=>
{
const
params
=
getParams
(
fieldState
.
value
);
linkage
.
componentProps
(
'orderNo'
,
params
);
});
onFieldInputChange$
(
'inventoryId'
).
subscribe
(
fieldState
=>
{
...
...
@@ -298,28 +309,25 @@ export const useBusinessEffects = (context, actions) => {
linkage
.
value
(
'inventoryRole'
,
current
.
principal
);
}
});
// 对应单据改变
onFieldValueChange$
(
'relevanceInvoices'
).
subscribe
(
fieldState
=>
{
const
params
=
getParams
(
fieldState
.
value
);
linkage
.
componentProps
(
'orderNo'
,
params
);
});
// 关联单据改变
onFieldValueChange$
(
'orderNo'
).
subscribe
(
fieldState
=>
{
const
relevanceInvoicesVal
=
getFieldValue
(
'relevanceInvoices'
);
const
first
=
fieldState
.
value
&&
fieldState
.
value
[
0
];
console
.
log
(
'first'
,
first
)
setFieldValue
(
'memberName'
,
first
?
first
.
memberName
:
''
);
setFieldValue
(
'relevanceInvoicesId'
,
first
?
first
.
id
:
null
);
setFieldValue
(
'deliveryAddresId'
,
first
?
first
.
deliveryAddresId
:
null
);
setFieldValue
(
'address'
,
first
?
`
${
first
.
fullAddress
}
${
first
.
receiverName
}
/
${
first
.
phone
}
`
:
''
);
setFieldValue
(
'transport'
,
first
&&
first
.
deliveryType
?
DELIVERY_TYPE
[
first
.
deliveryType
]
:
''
);
if
(
!
first
)
{
return
;
}
}
switch
(
relevanceInvoicesVal
)
{
// 对应单据 - 订单
case
DEPENDENT_DOC_ORDER
:
{
setFieldValue
(
'memberName'
,
first
.
supplyMembersName
);
setFieldValue
(
'address'
,
'暂无收货地址'
);
setFieldValue
(
'transport'
,
'暂无物流方式'
);
// 根据选择的订单查询 订单对应的商品,并给 Table 的商品下拉框赋值
PublicApi
.
getOrderProcurementOrderProductList
({
id
:
first
.
id
,
...
...
@@ -391,7 +399,7 @@ export const useBusinessEffects = (context, actions) => {
return
`invoicesDetailsRequests.
${
$1
}
.price`
}),
state
=>
{
state
.
value
=
`¥
${
current
.
price
}
`
;
state
.
value
=
current
.
price
;
}
);
setFieldState
(
...
...
@@ -399,7 +407,7 @@ export const useBusinessEffects = (context, actions) => {
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
''
;
state
.
value
=
1
;
}
);
setFieldState
(
...
...
src/pages/transaction/stockSellStorage/bills/addBills/index.tsx
View file @
ae6a9d38
...
...
@@ -2,6 +2,7 @@ import React, { useState, useEffect, useRef } from 'react';
import
{
Button
,
Card
,
Spin
,
message
}
from
'antd'
;
import
{
Radio
,
ArrayTable
}
from
'@formily/antd-components'
;
import
{
history
,
Prompt
}
from
'umi'
;
import
moment
from
'moment'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
SaveOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
...
...
@@ -41,7 +42,16 @@ const {
}
=
FormEffectHooks
;
const
AddBills
:
React
.
FC
<
{}
>
=
(
props
:
any
)
=>
{
const
{
pageStatus
,
preview
,
id
}
=
usePageStatus
();
const
{
pageStatus
,
preview
,
id
,
invoicesTypeId
,
relevanceInvoices
,
orderNo
,
deliveryAddresId
,
relevanceInvoicesId
,
}
=
usePageStatus
();
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
productRowSelection
,
productRowCtl
]
=
useRowSelectionTable
({
type
:
'checkbox'
});
const
[
billInfo
,
setBillInfo
]
=
useState
(
null
);
...
...
@@ -112,7 +122,17 @@ const AddBills: React.FC<{}> = (props: any) => {
if
(
res
.
code
!==
1000
)
{
return
;
}
setBillInfo
(
res
.
data
);
const
{
transactionTime
,
orderNo
,
...
rest
}
=
res
.
data
;
setBillInfo
({
transactionTime
:
transactionTime
?
moment
(
transactionTime
)
:
moment
(),
orderNo
:
orderNo
?
[{
orderNo
}]
:
[],
...
rest
,
invoicesTypeId
:
'S001'
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
...
...
@@ -141,14 +161,38 @@ const AddBills: React.FC<{}> = (props: any) => {
);
useEffect
(()
=>
{
if
(
invoicesTypeId
&&
relevanceInvoices
&&
orderNo
&&
deliveryAddresId
&&
relevanceInvoicesId
)
{
setBillInfo
({
invoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
orderNo
?
[{
orderNo
,
id
:
+
relevanceInvoicesId
}]
:
[],
deliveryAddresId
:
+
deliveryAddresId
,
});
}
getBillInfo
();
},
[]);
const
handleSubmit
=
value
=>
{
const
{
invoicesTypeId
,
orderNo
,
transactionTime
,
...
rest
}
=
value
;
const
{
invoicesTypeId
,
orderNo
,
transactionTime
,
receiverName
,
address
,
transport
,
invoicesDetailsRequests
=
[],
...
rest
}
=
value
;
const
newInvoicesDetailsRequests
=
invoicesDetailsRequests
.
map
(
item
=>
({
...
item
,
productCount
:
+
item
.
productCount
,
}));
const
payload
=
{
orderNo
:
orderNo
[
0
].
id
,
transactionTime
:
transactionTime
?
transactionTime
.
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
orderNo
:
orderNo
[
0
].
orderNo
,
relevanceInvoicesId
:
orderNo
[
0
].
id
,
transactionTime
:
transactionTime
?
transactionTime
.
valueOf
()
:
null
,
invoicesDetailsRequests
:
newInvoicesDetailsRequests
,
...
rest
,
};
...
...
@@ -177,7 +221,22 @@ const AddBills: React.FC<{}> = (props: any) => {
// 销售发货单
case
DOC_TYPE_SALES_INVOICE
:
{
if
(
!
id
)
{
PublicApi
.
postOrderSalesInvoiceOrder
(
payload
)
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
}
else
{
// update action
}
break
;
}
...
...
@@ -228,16 +287,17 @@ const AddBills: React.FC<{}> = (props: any) => {
const
handleOkAddProduct
=
async
()
=>
{
const
values
=
productRowCtl
.
selectRow
.
map
(
item
=>
({
itemNo
:
item
.
code
,
itemNmae
:
item
.
name
,
goodsId
:
item
.
id
,
itemName
:
item
.
name
,
specifications
:
item
.
type
,
category
:
item
.
customerCategory
.
name
,
brand
:
item
.
brand
.
name
,
unit
:
item
.
unitName
,
costPrice
:
`¥
${
item
.
costPrice
}
`
,
costPrice
:
item
.
costPrice
,
productName
:
undefined
,
productId
:
''
,
price
:
''
,
productCount
:
''
,
price
:
0
,
productCount
:
0
,
amount
:
''
,
}));
addSchemaAction
.
setFieldValue
(
'invoicesDetailsRequests'
,
values
);
...
...
@@ -285,6 +345,7 @@ const AddBills: React.FC<{}> = (props: any) => {
>
<
Card
>
<
NiceForm
initialValues=
{
billInfo
}
expressionScope=
{
{
tableAddButton
,
}
}
...
...
src/pages/transaction/stockSellStorage/bills/addBills/schema/index.ts
View file @
ae6a9d38
...
...
@@ -331,6 +331,11 @@ export const addBillSchema: ISchema = {
title
:
'会员名称'
,
default
:
''
,
},
// 不用于展示,只用于收集值
deliveryAddresId
:
{
type
:
'string'
,
display
:
false
,
},
address
:
{
type
:
'string'
,
'x-component'
:
'Text'
,
...
...
src/pages/transaction/stockSellStorage/bills/index.tsx
View file @
ae6a9d38
...
...
@@ -4,6 +4,7 @@ import { PageHeaderWrapper } from '@ant-design/pro-layout';
import
{
Button
,
Card
,
Dropdown
,
Menu
,
Space
,
Badge
,
Popconfirm
}
from
'antd'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
,
RollbackOutlined
,
SnippetsOutlined
,
ZoomOutOutlined
}
from
'@ant-design/icons'
;
import
{
StandardTable
}
from
'god'
;
import
moment
from
'moment'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
NiceForm
from
'@/components/NiceForm'
;
...
...
@@ -175,7 +176,6 @@ const Bills: React.FC<{}> = () => {
title
:
'单据号'
,
dataIndex
:
'invoicesNo'
,
align
:
'center'
,
key
:
'invoicesNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/stockSellStorage/addBills?id=${record.id}&preview=1`
}
...
...
@@ -206,25 +206,22 @@ const Bills: React.FC<{}> = () => {
title
:
'对应仓库'
,
align
:
'center'
,
dataIndex
:
'inventory'
,
key
:
'inventory'
,
},
{
title
:
'交易时间'
,
align
:
'center'
,
dataIndex
:
'transactionTime'
,
key
:
'transactionTime
'
,
render
:
text
=>
text
?
moment
(
text
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
'
'
,
},
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
key
:
'orderNo'
,
},
{
title
:
'单据状态'
,
align
:
'center'
,
dataIndex
:
'state'
,
key
:
'state'
,
filters
:
[
{
text
:
DOC_STATUS
[
DOC_STATUS_UNREVIEWED
],
value
:
DOC_STATUS_UNREVIEWED
},
{
text
:
DOC_STATUS
[
DOC_STATUS_REVIEWED
],
value
:
DOC_STATUS_REVIEWED
},
...
...
src/pages/transaction/transactionRules/addRule.tsx
View file @
ae6a9d38
...
...
@@ -17,6 +17,8 @@ import RuleSetting from './components/RuleSetting'
const
addSchemaAction
=
createFormActions
()
const
AddRule
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
[
isDisabled
,
setIsDisabled
]
=
useState
<
boolean
>
(
false
)
const
{
id
,
preview
,
...
...
@@ -25,7 +27,7 @@ const AddRule:React.FC<{}> = (props) => {
// 整体表单提交
const
formSubmit
=
async
(
values
)
=>
{
console
.
log
(
values
)
setIsDisabled
(
true
)
values
.
products
=
values
.
products
.
map
(
item
=>
({
productId
:
item
.
id
,
commodityId
:
item
.
commodityId
,
...
...
@@ -33,17 +35,25 @@ const AddRule:React.FC<{}> = (props) => {
customerCategoryName
:
item
.
customerCategoryName
,
priceType
:
item
.
priceType
,
brandName
:
item
.
brandName
}))
}))
values
.
isElectronicContract
=
values
.
isElectronicContract
?
1
:
0
const
params
=
omit
(
values
,
[
'state'
])
// 移除不需要的字段
addSchemaAction
.
getFieldState
(
'transactionProcesssId'
,
state
=>
{
let
dataSource
=
state
.
dataSource
.
filter
(
item
=>
params
.
transactionProcesssId
===
item
.
id
)
params
.
transactionProcess
=
dataSource
[
0
].
name
})
let
res
:
any
=
{}
if
(
pageStatus
===
PageStatus
.
EDIT
){
await
PublicApi
.
postOrderTradingRulesUpdata
(
params
)
res
=
await
PublicApi
.
postOrderTradingRulesUpdata
(
params
)
}
else
if
(
pageStatus
===
PageStatus
.
ADD
){
await
PublicApi
.
postOrderTradingRulesAdd
(
params
)
res
=
await
PublicApi
.
postOrderTradingRulesAdd
(
params
)
}
setTimeout
(()
=>
{
if
(
res
.
code
===
1000
){
setIsDisabled
(
false
)
history
.
goBack
(
-
1
)
}
,
1000
)
}
}
return
(
...
...
@@ -57,7 +67,7 @@ const AddRule:React.FC<{}> = (props) => {
onClick=
{
()
=>
addSchemaAction
.
submit
()
}
type=
"primary"
icon=
{
<
SaveOutlined
/>
}
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
}
disabled=
{
pageStatus
===
PageStatus
.
PREVIEW
||
isDisabled
}
>
保存
</
Button
>,
...
...
src/pages/transaction/transactionRules/components/RuleSetting.tsx
View file @
ae6a9d38
...
...
@@ -87,7 +87,7 @@ const RuleSetting:React.FC<RuleSettingProps> = (props) => {
key
:
'name'
,
render
:
(
_
,
record
)
=>
<
EyePreview
url=
{
`/memberCenter/commodityAbility/commodity/products/viewProducts?id=${record.commodityId}`
}
>
{
_
}
</
EyePreview
>
},
{
{
dataIndex
:
'customerCategoryName'
,
title
:
'品类'
,
key
:
'customerCategoryName'
...
...
@@ -245,7 +245,6 @@ const RuleSetting:React.FC<RuleSettingProps> = (props) => {
}
addSchemaAction
.
setFieldValue
(
'isElectronicContract'
,
data
.
isElectronicContract
?
true
:
false
)
addSchemaAction
.
setFieldValue
(
'transactionProcesssId'
,
data
.
transactionProcesssId
)
console
.
log
(
data
)
addSchemaAction
.
setFieldValue
(
'isTacitlyApprove'
,
data
.
isTacitlyApprove
)
setInitialValue
(
data
)
}
...
...
src/pages/transaction/transactionRules/index.tsx
View file @
ae6a9d38
...
...
@@ -28,14 +28,7 @@ const TransactionRules: React.FC<{}> = () => {
})
})
}
// id
// name
// state
// 状态:1.有效 0.无效
// transactionProcess
// operationTime
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'交易规则ID'
,
...
...
src/pages/transaction/transactionRules/schema/index.tsx
View file @
ae6a9d38
...
...
@@ -52,7 +52,6 @@ export const ruleDetailSchema: ISchema = padRequiredMessage({
"transactionProcesssId"
:
{
type
:
'string'
,
title
:
'流程选择'
,
"x-component"
:
'SelectProcesss'
,
"x-mega-props"
:
{
style
:
{
...
...
@@ -65,10 +64,9 @@ export const ruleDetailSchema: ISchema = padRequiredMessage({
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择
收货方式
'
message
:
'请选择
流程配置
'
}
],
// required: true,
// "x-component": 'SearchSelect',
// "x-component-props": {
...
...
src/utils/regExp.ts
View file @
ae6a9d38
import
{
values
}
from
'mobx'
;
/**
* @param str:string 需要校验的字符串
* @param type:string 需要校验的类型
...
...
@@ -42,3 +43,28 @@ export const checkRegExp = (str:string, type:string) => {
return
true
;
}
}
/**
* 区别校验 汉字 和 字符 长度
* @param rule
* @param value 表单输入的值
* @param callback
* @param maxByte:number 最大字符数
*/
export
const
validatorByte
=
(
rule
,
value
,
callback
,
maxByte
:
number
)
=>
{
try
{
if
(
value
){
let
str
=
value
str
=
str
.
replace
(
/
[\u
4e00-
\u
9fa5
]
/g
,
'OO'
)
if
(
str
.
length
>
maxByte
)
throw
new
Error
(
`最多输入
${
maxByte
}
个字符,
${
Math
.
floor
(
maxByte
/
2
)}
个汉字`
);
else
callback
()
}
else
{
callback
()
}
}
catch
(
err
)
{
callback
(
err
)
}
}
\ No newline at end of file
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