Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
8cb08eb2
Commit
8cb08eb2
authored
Jul 21, 2021
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-srm' into v2
parents
4cd9f946
7effb3e1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
491 additions
and
72 deletions
+491
-72
crossSellProducts.tsx
...tract/coordination/components/modal/crossSellProducts.tsx
+4
-0
add.tsx
src/pages/contract/funds/addbill/add.tsx
+2
-11
index.tsx
src/pages/contract/funds/addbill/index.tsx
+1
-1
index.css
src/pages/contract/funds/editbill/components/index.css
+19
-0
index.less
src/pages/contract/funds/editbill/components/index.less
+22
-0
info.tsx
src/pages/contract/funds/editbill/components/info.tsx
+0
-0
index.ts
src/pages/contract/funds/editbill/components/schema/index.ts
+58
-0
table.tsx
src/pages/contract/funds/editbill/components/table.tsx
+0
-0
index.tsx
src/pages/contract/funds/editbill/index.tsx
+95
-0
FormList.tsx
src/pages/contract/manage/add/components/FormList.tsx
+18
-15
index.tsx
src/pages/contract/manage/auction/index.tsx
+15
-1
useFormatData.ts
...ages/handling/assign/create/common/hooks/useFormatData.ts
+2
-0
schema.tsx
...andling/assign/create/components/ProductDrawer/schema.tsx
+53
-3
index.tsx
src/pages/handling/assign/create/index.tsx
+24
-4
index.tsx
src/pages/handling/assign/tobeAddQuery/index.tsx
+10
-0
useSingleAction.tsx
src/pages/handling/common/hooks/useSingleAction.tsx
+5
-1
ProductModal.tsx
...ages/priceManage/priceStrategy/component/ProductModal.tsx
+1
-0
index.tsx
...ds/readySubmitReport/components/remarkBidReport/index.tsx
+129
-18
index.tsx
...ds/readySubmitReport/components/remarkTableCell/index.tsx
+1
-1
index.tsx
src/pages/repositories/index.tsx
+2
-2
index.tsx
...omponents/detail/components/quotationDeskLayout/index.tsx
+4
-5
index.tsx
...rchaseAbility/onlineBid/readyBid/detail/history/index.tsx
+4
-3
index.tsx
...ction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
+8
-1
index.tsx
...ty/purchaseBid/components/confirmBidResultModal/index.tsx
+2
-2
add.tsx
.../transaction/purchaseAbility/purchaseBid/readyAdd/add.tsx
+1
-1
index.tsx
...agement/components/statusBox/detailBottomDrawer/index.tsx
+3
-1
index.tsx
...chaseOrder/orderCollect/components/addressModal/index.tsx
+7
-1
index.tsx
...transaction/purchaseOrder/orderCollect/constant/index.tsx
+1
-1
No files found.
src/pages/contract/coordination/components/modal/crossSellProducts.tsx
View file @
8cb08eb2
...
...
@@ -42,6 +42,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
onClick
}
=
props
;
const
[
flag
,
setFlag
]
=
useState
<
boolean
>
(
false
);
console
.
log
(
record
)
const
[
product
,
setProduct
]
=
useState
<
any
>
({});
const
[
attribute
,
setAttribute
]
=
useState
<
any
>
([]);
const
handleAnchorClick
=
(
e
)
=>
{
...
...
@@ -63,11 +64,13 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
setProduct
(
params
);
GetCommodityAttribute
(
params
.
id
);
setFlag
(
false
);
}
/** 关闭 */
const
handleClose
=
()
=>
{
onClose
()
setProduct
({})
}
/** 确定 */
const
handleConfirm
=
()
=>
{
...
...
@@ -75,6 +78,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
product
,
attribute
})
setProduct
({})
}
return
(
<>
...
...
src/pages/contract/funds/addbill/add.tsx
View file @
8cb08eb2
...
...
@@ -17,25 +17,16 @@ const { TabPane } = Tabs;
const
Add
:
React
.
FC
<
{}
>
=
(
props
:
any
)
=>
{
const
{
location
:
{
query
:
{
sourceType
,
paymentId
,
type
}
}
}
=
props
;
console
.
log
(
sourceT
ype
)
console
.
log
(
t
ype
)
const
currentBasic
=
useRef
<
any
>
({});
const
detailData
=
useRef
<
any
>
({});
const
[
flag
,
setflag
]
=
useState
<
any
>
(
false
);
const
[
id
,
setid
]
=
useState
(
''
);
/* 判断是不是手工单 */
const
getflag
=
(
data
)
=>
{
setflag
(
data
.
flag
)
setid
(
data
.
selectRow
.
id
)
console
.
log
(
data
)
}
// useEffect(() => {
// PublicApi.getContractApplyAmountGetDetail({ applyId: paymentId }).then((res) => {
// console.log(res)
// }).catch((err) => {
// });
// }, [])
const
TabList
=
[
{
name
:
'基本信息'
,
components
:
...
...
@@ -78,7 +69,7 @@ const Add: React.FC<{}> = (props: any) => {
return
(
<
PageHeaderWrapper
title=
{
type
?
'修改请款单'
:
'新建请款单'
}
title=
"新建请款单"
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
extra=
{
[
...
...
src/pages/contract/funds/addbill/index.tsx
View file @
8cb08eb2
...
...
@@ -87,7 +87,7 @@ const AddbillList: React.FC<{}> = () => {
// 状态, 1.待提交审核, 2.待审核(一级), 3.审核不通过(一级), 4.待审核(二级), 5.审核不通过(二级), 6.待提交财务付款, 7.待付款, 8.已付款, 9.已作废
// 删除:只有内部状态为待提交审核状态且从未提交审核的才可以删除,删除前需要提示,确认后才能删除
let
node
;
let
edit
=
<
span
style=
{
{
color
:
'#00B37A'
,
marginRight
:
20
,
cursor
:
'pointer'
,
}
}
onClick=
{
()
=>
history
.
push
(
`/memberCenter/contract/funds/
addbill/Add
?paymentId=${record.id}&type=edit`
)
}
>
修改
</
span
>;
let
edit
=
<
span
style=
{
{
color
:
'#00B37A'
,
marginRight
:
20
,
cursor
:
'pointer'
,
}
}
onClick=
{
()
=>
history
.
push
(
`/memberCenter/contract/funds/
editbill/edit
?paymentId=${record.id}&type=edit`
)
}
>
修改
</
span
>;
switch
(
record
.
status
)
{
case
1
:
node
=
edit
;
...
...
src/pages/contract/funds/editbill/components/index.css
0 → 100644
View file @
8cb08eb2
.tag
{
padding
:
10px
15px
;
border
:
1px
solid
#E4E6EB
;
cursor
:
pointer
;
}
.tative
{
padding
:
10px
15px
;
background
:
#6B778C
;
color
:
#fff
;
cursor
:
pointer
;
}
.point
{
width
:
10px
;
height
:
10
ox
;
background
:
'#41CC9E'
;
display
:
'inline-block'
;
border-radius
:
'50%'
;
margin-right
:
10px
;
}
src/pages/contract/funds/editbill/components/index.less
0 → 100644
View file @
8cb08eb2
.tag{
padding: 10px 15px;
border: 1px solid #E4E6EB;
cursor:pointer;
}
.tative{
padding: 10px 15px;
background: #6B778C;
color: #fff;
cursor:pointer;
}
.point {
width: 10px;
height: 10ox;
background: '#41CC9E';
display: 'inline-block';
border-radius: '50%';
margin-right: 10px;
}
src/pages/contract/funds/editbill/components/info.tsx
0 → 100644
View file @
8cb08eb2
This diff is collapsed.
Click to expand it.
src/pages/contract/funds/editbill/components/schema/index.ts
0 → 100644
View file @
8cb08eb2
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
export
const
Schema
:
any
=
{
type
:
'object'
,
properties
:
{
contractNo
:
{
type
:
'string'
,
"x-component"
:
'SearchFilter'
,
'x-component-props'
:
{
placeholder
:
'请输入搜索合同编号'
,
align
:
'start'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
inline
:
true
,
colStyle
:
{
marginRight
:
20
}
},
properties
:
{
"contractAbstract"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请款单摘要'
}
},
"[startTime,endTime]"
:
{
type
:
'array'
,
"x-component"
:
'DateRangePickerUnix'
,
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
format
:
'YYYY-MM-DD HH:mm:ss'
,
// disabledDate: current => {
// console.log(current);
// return current && current < moment().startOf('day')
// }
},
},
"awardName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入收款方'
}
},
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
}
}
src/pages/contract/funds/editbill/components/table.tsx
0 → 100644
View file @
8cb08eb2
This diff is collapsed.
Click to expand it.
src/pages/contract/funds/editbill/index.tsx
0 → 100644
View file @
8cb08eb2
import
React
,
{
useState
,
useRef
,
useEffect
}
from
'react'
import
{
history
}
from
'umi'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Card
,
Tabs
,
Button
}
from
'antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
SaveOutlined
,
}
from
'@ant-design/icons'
import
AddInfo
from
'./components/info'
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
InfoTable
from
'./components/table'
import
{
PublicApi
}
from
'@/services/api'
;
const
formActions
=
createFormActions
();
const
{
TabPane
}
=
Tabs
;
const
Editbill
:
React
.
FC
<
{}
>
=
(
props
:
any
)
=>
{
const
{
location
:
{
query
:
{
sourceType
,
paymentId
,
type
}
}
}
=
props
;
console
.
log
(
type
)
const
currentBasic
=
useRef
<
any
>
({});
const
detailData
=
useRef
<
any
>
({});
const
[
flag
,
setflag
]
=
useState
<
any
>
(
false
);
const
[
id
,
setid
]
=
useState
(
''
);
/* 判断是不是手工单 */
const
getflag
=
(
data
)
=>
{
setflag
(
data
.
flag
)
setid
(
data
.
selectRow
.
id
)
}
const
TabList
=
[
{
name
:
'基本信息'
,
components
:
<
AddInfo
currentRef=
{
currentBasic
}
getcontractId=
{
getflag
}
sourceType=
{
sourceType
}
paymentId=
{
paymentId
}
type=
{
type
}
/>
},
{
name
:
'请款明细'
,
components
:
<
InfoTable
flag=
{
flag
}
id=
{
id
}
currentRef=
{
detailData
}
sourceType=
{
sourceType
}
/>
},
]
const
submit
=
async
()
=>
{
const
basicsVO
=
await
currentBasic
.
current
.
get
();
const
detailList
=
await
Object
.
keys
(
detailData
.
current
).
length
!=
0
?
await
detailData
.
current
.
get
()
:
[];
basicsVO
.
data
.
sourceType
=
sourceType
?
sourceType
:
3
;
let
data
=
{
basics
:
basicsVO
.
data
,
detailList
:
detailList
,
}
PublicApi
.
postContractApplyAmountSave
(
data
).
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
===
1000
)
{
history
.
push
(
'/memberCenter/contract/funds/addbill'
)
}
})
}
return
(
<
PageHeaderWrapper
title=
"修改请款单"
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
extra=
{
[
<
Button
key=
"1"
type=
"primary"
icon=
{
<
SaveOutlined
/>
}
onClick=
{
()
=>
submit
()
}
>
保存
</
Button
>
]
}
>
<
Card
>
<
Tabs
defaultActiveKey=
"0"
type=
"card"
size=
"small"
>
{
TabList
.
map
((
item
,
index
)
=>
(
<
TabPane
tab=
{
item
.
name
}
key=
{
index
}
>
{
item
.
components
}
</
TabPane
>
))
}
</
Tabs
>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
Editbill
src/pages/contract/manage/add/components/FormList.tsx
View file @
8cb08eb2
...
...
@@ -77,7 +77,9 @@ const FormList = (props: any) => {
parmas
.
submitTenderId
=
Row
.
bidId
;
fn
=
PublicApi
.
getPurchaseSubmitTenderMaterielGetSubmitTenderMaterielList
}
else
{
fn
=
PublicApi
.
getProductGoodsGetGoodsList
parmas
.
id
=
Row
.
viePriceId
fn
=
PublicApi
.
getPurchaseBiddingPrizeMaterielPage
}
console
.
log
(
sourceType
)
...
...
@@ -87,21 +89,22 @@ const FormList = (props: any) => {
if
(
res
.
code
===
1000
)
{
let
data
=
res
.
data
.
data
.
map
(
item
=>
{
return
{
code
:
sourceType
==
'1'
?
item
.
number
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
code
:
''
,
// 物料编号
name
:
sourceType
==
'1'
?
item
.
name
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
name
:
''
,
// 物料名称
type
:
sourceType
==
'1'
?
item
.
model
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
type
:
''
,
// 物料规格
customerCategory
:
{
code
:
sourceType
==
'1'
?
item
.
number
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
code
:
item
.
number
,
// 物料编号
name
:
sourceType
==
'1'
?
item
.
name
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
name
:
item
.
name
,
// 物料名称
type
:
sourceType
==
'1'
?
item
.
model
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
type
:
item
.
model
,
// 物料规格
customerCategory
:
{
// 品类
name
:
sourceType
==
'1'
?
item
.
category
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
brandName
:
''
,
id
:
sourceType
==
'1'
?
item
.
goodsId
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
categoryId
[
0
]
:
''
category
:
item
.
category
?
item
.
category
:
''
,
id
:
sourceType
==
'1'
?
item
.
goodsId
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
categoryId
[
0
]
:
item
.
ids
[
0
],
},
brand
:
{
name
:
sourceType
==
'1'
?
item
.
brand
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
categoryName
:
''
},
unitName
:
sourceType
==
'1'
?
item
.
unit
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
unitName
:
''
,
//单位
purchaseCount
:
sourceType
==
'1'
?
item
.
purchaseCount
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
count
:
''
,
// 数量
isHasTax
:
sourceType
==
'1'
?
item
.
isTax
:
sourceType
==
'2'
?
item
.
isTax
?
1
:
0
:
''
,
taxRate
:
sourceType
==
'1'
?
item
.
taxProbability
:
sourceType
==
'2'
?
item
.
taxRate
:
''
,
price
:
sourceType
==
'1'
?
item
.
taxUnitPrice
:
sourceType
==
'2'
?
item
.
price
:
''
,
bidCount
:
sourceType
==
'1'
?
item
.
awardTaxProbability
*
item
.
purchaseCount
/
100
:
sourceType
==
'2'
?
item
.
awardTenderRatio
*
item
.
inviteTenderMateriel
.
count
/
100
:
''
,
bidAmount
:
sourceType
==
'1'
?
item
.
awardTaxProbability
*
item
.
purchaseCount
/
100
*
item
.
taxUnitPrice
:
sourceType
==
'2'
?
item
.
awardTenderRatio
*
item
.
inviteTenderMateriel
.
count
/
100
*
item
.
price
:
''
,
brand
:
{
name
:
sourceType
==
'1'
?
item
.
brand
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
categoryName
:
item
.
brand
},
// 品牌
unitName
:
sourceType
==
'1'
?
item
.
unit
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
unitName
:
item
.
unitPrice
,
//单位
purchaseCount
:
sourceType
==
'1'
?
item
.
purchaseCount
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
count
:
item
.
purchaseCount
,
// 数量
isHasTax
:
sourceType
==
'1'
?
item
.
isTax
:
sourceType
==
'2'
?
item
.
isTax
?
1
:
0
:
item
.
isTax
?
1
:
0
,
// 是否函税
taxRate
:
sourceType
==
'1'
?
item
.
taxProbability
:
sourceType
==
'2'
?
item
.
taxRate
:
item
.
taxRate
,
//税率
price
:
sourceType
==
'1'
?
item
.
taxUnitPrice
:
item
.
price
,
// 单价
bidCount
:
sourceType
==
'1'
?
item
.
awardTaxProbability
*
item
.
purchaseCount
/
100
:
sourceType
==
'2'
?
item
.
awardTenderRatio
*
item
.
inviteTenderMateriel
.
count
/
100
:
item
.
purchaseCount
,
bidAmount
:
sourceType
==
'1'
?
item
.
awardTaxProbability
*
item
.
purchaseCount
/
100
*
item
.
taxUnitPrice
:
sourceType
==
'2'
?
item
.
awardTenderRatio
*
item
.
inviteTenderMateriel
.
count
/
100
*
item
.
price
:
item
.
price
,
associatedDataId
:
sourceType
==
'1'
?
item
.
productId
:
sourceType
==
'2'
?
item
.
commodityId
:
''
,
// 关联商品id
associatedMaterielNo
:
sourceType
==
'1'
?
item
.
number
:
sourceType
==
'2'
?
item
.
inviteTenderMateriel
.
code
:
''
,
// 关联物料编号
associatedMaterielName
:
sourceType
==
'1'
?
item
.
productName
:
sourceType
==
'2'
?
item
.
commodityName
:
''
,
// 关联商品名称
...
...
@@ -127,7 +130,7 @@ const FormList = (props: any) => {
{
title
:
'品类'
,
dataIndex
:
'customerCategory'
,
align
:
'center'
,
render
:
(
text
,
item
)
=>
<
span
>
{
item
.
customerCategory
.
name
?
item
.
customerCategory
.
name
:
''
}
</
span
>
<
span
>
{
item
.
customerCategory
.
name
?
item
.
customerCategory
.
name
:
item
.
customerCategory
.
category
}
</
span
>
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
,
align
:
'center'
,
...
...
src/pages/contract/manage/auction/index.tsx
View file @
8cb08eb2
...
...
@@ -105,12 +105,26 @@ const Auction = () => {
render
:
(
_
,
record
)
=>
{
return
(
<
div
>
<
span
style=
{
{
color
:
'#00B37A'
,
cursor
:
'pointer'
,
marginRight
:
10
}
}
onClick=
{
()
=>
history
.
push
(
`/memberCenter/contract/manage/add/addList/contracAdd?contractId=${record.id}&sourceType=3`
)
}
>
创建采购竞价合同
</
span
>
<
span
style=
{
{
color
:
'#00B37A'
,
cursor
:
'pointer'
,
marginRight
:
10
}
}
onClick=
{
()
=>
Like
(
record
)
}
>
创建采购竞价合同
</
span
>
{
/* <span style={{ color: '#00B37A', cursor: 'pointer' }} onClick={() => history.push(`/memberCenter/contract/manage/Auction/details?contractId=${record.id}`)}> 查看 </span> */
}
</
div
>
)
}
}]
const
Like
=
(
record
)
=>
{
record
.
sourceId
=
record
.
viePriceId
;
record
.
sourceNo
=
record
.
viePriceNO
;
record
.
totalAmount
=
record
.
awardAmount
;
record
.
partyBMemberId
=
record
.
awardMemberId
;
record
.
partyBRoleId
=
record
.
awardRoleId
;
record
.
partyBName
=
record
.
awardName
;
record
.
sourceType
=
"3"
;
sessionStorage
.
setItem
(
'record'
,
JSON
.
stringify
(
record
));
console
.
log
(
record
);
// return;
history
.
push
(
`/memberCenter/contract/manage/add/addList/contracAdd?contractId=
${
record
.
id
}
&sourceType=3`
)
}
const
getdate
=
(
time
)
=>
{
return
new
Date
(
Date
.
parse
(
time
.
replace
(
/-/g
,
"/"
))).
getTime
()
/
1000
;
}
...
...
src/pages/handling/assign/create/common/hooks/useFormatData.ts
View file @
8cb08eb2
...
...
@@ -12,6 +12,7 @@ import { SubmitDataType } from '../../types';
type
EditInititalValueType
=
Omit
<
SubmitDataType
,
"deliveryDate"
|
"source1"
>
&
{
deliveryDate
:
Moment
,
id
:
number
,
source1
:
1
|
0
|
number
|
{},
}
type
OtherTypes
=
{
...
...
@@ -111,6 +112,7 @@ const useFormatData = () => {
receiverAddressId
,
receivefullAddress
:
receiverAddressId
,
source
,
source1
:
source
,
productList
,
orderList
,
...
descValue
,
...
...
src/pages/handling/assign/create/components/ProductDrawer/schema.tsx
View file @
8cb08eb2
...
...
@@ -88,12 +88,30 @@ const schema: ISchema = {
processNum
:
{
type
:
'string'
,
title
:
'加工数量'
,
required
:
true
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写加工数量'
},
{
pattern
:
/^
[
1-9
][
0-9
]
*
(\.[
0-9
]{1,3})?
$/
,
message
:
'请填写整数或保留三位小数'
}
]
},
processUnitPrice
:
{
title
:
"单价"
,
type
:
'string'
,
required
:
true
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写加工单价'
},
{
pattern
:
/^
[
1-9
][
0-9
]
*
(\.[
0-9
]{1,3})?
$/
,
message
:
'请填写整数或保留三位小数'
}
]
},
isHasTax
:
{
title
:
"是否含税"
,
...
...
@@ -107,11 +125,43 @@ const schema: ISchema = {
label
:
'否'
,
value
:
0
,
}
],
required
:
true
,
"x-linkages"
:
[
{
type
:
'value:schema'
,
target
:
'taxRate'
,
condition
:
`{{ $value === 1 }}`
,
schema
:
{
"x-rules"
:
[
{
required
:
true
,
}
]
},
otherwise
:
{
"x-rules"
:
[
{
required
:
false
,
}
]
}
}
]
},
taxRate
:
{
title
:
'税率'
,
type
:
'string'
type
:
'string'
,
"x-component-props"
:
{
addonAfter
:
"%"
},
'x-rules'
:
[
{
pattern
:
/^
[
1-9
][
0-9
]
*
(\.[
0-9
]{1,2})?
$/
,
message
:
'请填写整数或保留两位小数'
}
],
},
},
},
...
...
src/pages/handling/assign/create/index.tsx
View file @
8cb08eb2
import
React
,
{
useCallback
,
useEffect
,
useMemo
,
useState
}
from
'react'
;
import
{
Button
,
Cascader
,
message
,
Space
,
Table
}
from
'antd'
;
import
{
Button
,
Cascader
,
message
,
Space
,
Table
,
Modal
}
from
'antd'
;
import
{
LinkOutlined
,
PlusOutlined
,
SaveOutlined
}
from
'@ant-design/icons'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
creataSchema
from
'./schema'
;
...
...
@@ -33,8 +33,10 @@ import { history } from 'umi';
import
moment
from
'moment'
;
import
useFormatData
from
'./common/hooks/useFormatData'
;
const
{
confirm
}
=
Modal
;
const
formActions
=
createFormActions
();
const
{
onFieldInit$
,
onFieldValueChange$
}
=
FormEffectHooks
const
{
onFieldInit$
,
onFieldValueChange$
,
onFieldInputChange$
}
=
FormEffectHooks
registerVirtualBox
(
'MellowCardBox'
,
(
_props
)
=>
{
const
{
children
,
props
:
outerProps
}
=
_props
;
...
...
@@ -108,6 +110,7 @@ const Create = () => {
/** 订单数据 */
const
[
fetchedOrderData
,
setFetchOrderData
]
=
useState
<
GetOrderProcessingOrderListResponseDetail
[]
>
([])
const
[
productActionType
,
setProductActionType
]
=
useState
<
"view"
|
"edit"
>
(
"view"
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
<
boolean
>
(
false
);
useEffect
(()
=>
{
if
(
!
isEdit
)
{
...
...
@@ -449,11 +452,13 @@ const Create = () => {
const
productList
=
isOrderSource
?
formActions
.
getFieldValue
(
'detail.layout1.orderList'
)
:
formActions
.
getFieldValue
(
'detail.layout1.productList'
);
// const productList = formActions.getFieldValue('detail.layout1.productList');
const
{
isHasTax
,
taxRate
,
processNum
,
processUnitPrice
,
enclosure
,
productProps
}
=
values
;
let
shouldShowConfirmMsg
=
false
;
const
newData
=
productList
.
map
((
_item
)
=>
{
/** 加工商品的时候用sku, 如果是加工订单商品的话用orderid */
if
((
!
isOrderSource
&&
_item
.
skuid
===
values
.
skuid
)
||
(
isOrderSource
&&
_item
.
id
===
values
.
id
))
{
const
other
=
isOrderSource
?
{
surplusAndProcessNum
:
`
${
_item
.
surplusProcessNum
}
/
${
processNum
}
`
}
:
{}
const
other
=
isOrderSource
?
{
surplusAndProcessNum
:
`
${
_item
.
surplusProcessNum
}
/
${
processNum
}
`
}
:
{};
shouldShowConfirmMsg
=
_item
.
surplusProcessNum
<
processNum
;
return
{
...
_item
,
...
other
,
...
...
@@ -473,8 +478,20 @@ const Create = () => {
}
return
_item
;
})
if
(
shouldShowConfirmMsg
)
{
confirm
({
title
:
'加工商品大于剩余加工商品'
,
content
:
'加工商品大于剩余加工商品, 是否确认提交?'
,
onOk
()
{
formActions
.
setFieldValue
(
source
===
ORDER_SOURCE
?
'detail.layout1.orderList'
:
'detail.layout1.productList'
,
newData
);
productDrawerToggle
(
false
);
},
});
return
;
}
formActions
.
setFieldValue
(
source
===
ORDER_SOURCE
?
'detail.layout1.orderList'
:
'detail.layout1.productList'
,
newData
);
productDrawerToggle
(
false
);
}
/** -------------- 加工商品相关结束 --------------- */
...
...
@@ -629,6 +646,7 @@ const Create = () => {
},
[])
const
onSubmit
=
async
(
value
:
SubmitDataType
)
=>
{
setSubmitLoading
(
true
)
const
{
receivefullAddress
,
source
,
...
...
@@ -747,6 +765,7 @@ const Create = () => {
const
service
=
isEdit
?
PublicApi
.
postEnhanceSupplierToBeAddUpdate
:
PublicApi
.
postEnhanceSupplierToBeAddAdd
const
withId
=
isEdit
?
{
id
:
cacheInitialValue
.
id
,
...
postData
}:
postData
;
const
{
data
,
code
}
=
await
service
(
withId
as
any
)
setSubmitLoading
(
false
)
if
(
code
===
1000
)
{
history
.
goBack
()
}
...
...
@@ -762,6 +781,7 @@ const Create = () => {
icon=
{
<
SaveOutlined
/>
}
type=
"primary"
onClick=
{
()
=>
formActions
.
submit
()
}
loading=
{
submitLoading
}
>
提交
</
Button
>
...
...
@@ -772,7 +792,7 @@ const Create = () => {
value=
{
cacheInitialValue
}
effects=
{
(
$
,
actions
)
=>
{
useAsyncSelect
(
'receivefullAddress'
,
fetchReceiveAddress
)
onField
Value
Change$
(
`*(source,source1)`
).
subscribe
((
state
)
=>
{
onField
Input
Change$
(
`*(source,source1)`
).
subscribe
((
state
)
=>
{
const
reverseName
=
state
.
name
===
'source'
?
'source1'
:
'source'
;
formActions
.
setFieldValue
(
reverseName
,
state
.
value
)
});
...
...
src/pages/handling/assign/tobeAddQuery/index.tsx
View file @
8cb08eb2
...
...
@@ -44,15 +44,25 @@ const AllQuery = () => {
title
:
'操作'
,
render
:
(
text
,
record
)
=>
{
const
loading
=
submitLoadingID
.
includes
(
record
.
id
);
const
IS_TO_BE_SUBMIT_EXAM
=
record
.
supplierInnerStatus
===
1
return
(
<
Space
>
{
IS_TO_BE_SUBMIT_EXAM
&&
(
<
Spin
spinning=
{
loading
}
>
<
a
onClick=
{
()
=>
handleSingleReviewOrDelete
(
"exam"
,
{
id
:
record
.
id
})
}
>
提交
</
a
>
</
Spin
>
)
||
null
}
<
Link
to=
{
`/memberCenter/handling/assign/tobeAddQuery/edit?id=${record.id}`
}
>
编辑
</
Link
>
{
IS_TO_BE_SUBMIT_EXAM
&&
(
<
Popconfirm
title=
"确定删除吗?"
onConfirm=
{
()
=>
handleSingleReviewOrDelete
(
"delete"
,
{
id
:
record
.
id
})
}
>
<
Button
type=
"link"
loading=
{
loading
}
>
删除
</
Button
>
</
Popconfirm
>
)
||
null
}
</
Space
>
)
}
...
...
src/pages/handling/common/hooks/useSingleAction.tsx
View file @
8cb08eb2
...
...
@@ -12,8 +12,12 @@ import { useCallback, useState } from "react";
prev
.
push
(
params
.
id
);
return
prev
;
})
const
res
=
await
api
(
params
)
let
res
;
try
{
res
=
await
api
(
params
)
}
finally
{
setSubmitLoadingID
((
prev
:
number
[])
=>
prev
.
filter
((
_item
)
=>
_item
!==
params
.
id
))
}
return
res
}
return
{
submitLoadingID
,
onSingleAction
}
...
...
src/pages/priceManage/priceStrategy/component/ProductModal.tsx
View file @
8cb08eb2
...
...
@@ -51,6 +51,7 @@ const ProductModal:React.FC<ProductModalProps> = (props) => {
...
params
,
type
:
shopInfo
[
0
][
"type"
],
environment
:
shopInfo
[
0
].
environment
,
shopId
,
// priceTypeList: [1, 2],
})
return
res
.
data
...
...
src/pages/procurement/callForBids/readySubmitReport/components/remarkBidReport/index.tsx
View file @
8cb08eb2
This diff is collapsed.
Click to expand it.
src/pages/procurement/callForBids/readySubmitReport/components/remarkTableCell/index.tsx
View file @
8cb08eb2
...
...
@@ -74,7 +74,7 @@ export const EditableCell: React.FC<EditableCellProps> = ({
onPressEnter=
{
save
}
onBlur=
{
save
}
type=
"number"
disabled=
{
!
record
[
'editable'
]
}
//
disabled={!record['editable']}
/>
</
Form
.
Item
>
}
...
...
src/pages/repositories/index.tsx
View file @
8cb08eb2
...
...
@@ -171,8 +171,8 @@ const Repositories: React.FC<{}> = () => {
message
:
'请填写仓位库存'
,
},
{
pattern
:
PATTERN_MAPS
.
weight
,
message
:
'请填写
正数
,最多保留3位小数'
,
pattern
:
/^
[
+-
]?\d
*
(\.\d{0,3})?
$/
,
message
:
'请填写
数值
,最多保留3位小数'
,
},
],
},
...
...
src/pages/transaction/purchaseAbility/components/detail/components/quotationDeskLayout/index.tsx
View file @
8cb08eb2
...
...
@@ -27,8 +27,8 @@ const QuotationDesk: React.FC<QuotationDeskProps> = (props: any) => {
_obj
[
`
${
item
.
type
}
`
]
=
item
.
title
;
});
return
{
value
:
{
min
:
0
,
alias
:
''
,
type
:
'linear-strict'
},
ear
:
{
range
:
[
0
,
1
]
},
value
:
{
min
:
0
},
// time
: { range: [0, 1] },
type
:
{
formatter
:
v
=>
{
return
_obj
[
v
]
...
...
@@ -72,10 +72,9 @@ const QuotationDesk: React.FC<QuotationDeskProps> = (props: any) => {
>
<
Axis
title=
{
{
text
:
'金额(元)'
}
}
// visible={fals
e}
visible=
{
tru
e
}
name=
'value'
// line={{ style: { stroke: "#ff0000" } }}
tickLine=
{
{
style
:
{
lineWidth
:
1
},
length
:
5
}
}
tickLine=
{
{
style
:
{
lineWidth
:
1
}
}
}
/>
<
Line
position=
"time*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
/>
<
Point
position=
"time*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
shape=
'circle'
/>
...
...
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/history/index.tsx
View file @
8cb08eb2
...
...
@@ -19,6 +19,7 @@ interface HistoryItemProps {
const
HistoryItem
:
React
.
FC
<
HistoryItemProps
>
=
(
props
:
any
)
=>
{
const
{
detail
}
=
props
;
const
mapData
=
detail
.
offerLogs
?
[...
detail
.
offerLogs
].
splice
(
0
,
3
)
:
[];
const
firstData
=
mapData
[
0
];
const
_returnBadge
=
()
=>
{
if
(
!
detail
.
isOpenRanking
)
{
return
null
;
...
...
@@ -44,13 +45,13 @@ const HistoryItem: React.FC<HistoryItemProps> = (props: any) => {
<
div
className=
{
styles
.
box
}
>
{
_returnBadge
()
}
<
div
className=
{
styles
.
rightPosition
}
>
{
detail
?.
offerRatio
?
<
TrendTag
ratio=
{
detail
?.
offerRatio
}
/>
:
''
}
{
firstData
?.
offerRatio
?
<
TrendTag
ratio=
{
firstData
?.
offerRatio
}
/>
:
''
}
</
div
>
<
p
>
本次报价金额
</
p
>
<
p
className=
{
styles
.
currentPrice
}
><
span
>
¥
</
span
>
{
detail
?.
offerPrice
?
priceFormat
(
detail
?.
offerPrice
)
:
'-'
}
</
p
>
<
p
className=
{
styles
.
currentPrice
}
><
span
>
¥
</
span
>
{
firstData
?.
offerPrice
?
priceFormat
(
firstData
?.
offerPrice
)
:
'-'
}
</
p
>
<
div
className=
{
styles
.
row
}
>
<
div
className=
{
styles
.
col
}
style=
{
{
borderRight
:
'1px solid #EBECF0'
}
}
>
当前最低价:
<
span
>
{
detail
.
isOpenPurchase
?
(
detail
?.
minLowPrice
?
`¥${priceFormat(detail?.minLowPrice)}`
:
'-'
)
:
'不公开'
}
</
span
></
div
>
<
div
className=
{
styles
.
col
}
>
报价次数:
<
span
>
{
detail
?.
offerCount
?
detail
?.
offerCount
:
'-'
}
</
span
></
div
>
<
div
className=
{
styles
.
col
}
>
报价次数:
<
span
>
{
firstData
?.
offerCount
?
firstData
?.
offerCount
:
'-'
}
</
span
></
div
>
</
div
>
</
div
>
</
div
>
...
...
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
View file @
8cb08eb2
...
...
@@ -69,7 +69,14 @@ const Detail = () => {
data
.
minLowPrice
=
socketObj
.
minLowPrice
;
}
data
.
onlineId
=
Number
(
onlineId
);
setDataSource
(
data
);
let
_data
:
any
=
{...
data
};
_data
?.
offerLogs
.
forEach
((
item
,
index
,
arr
)
=>
{
const
_arrLength
=
arr
.
length
;
if
(
index
!=
_arrLength
-
1
&&
_arrLength
>
2
)
{
_data
.
offerLogs
[
index
].
offerRatio
=
Number
(((
item
.
offerPrice
-
arr
[
index
+
1
].
offerPrice
)
/
arr
[
index
+
1
].
offerPrice
*
100
).
toFixed
(
2
))
}
})
setDataSource
(
_data
);
let
_list
=
[];
let
_offerList
=
[];
let
_minList
=
[];
...
...
src/pages/transaction/purchaseAbility/purchaseBid/components/confirmBidResultModal/index.tsx
View file @
8cb08eb2
...
...
@@ -64,8 +64,8 @@ const ConfirmBidResultModal: React.FC<ConfirmBidResultModalProps> = (props: any)
const
_returnDefaultAwardResults
=
useMemo
(()
=>
{
return
record
?
`
${
record
?.
purchaseMemberName
??
record
?.
createMemberName
}
《
$
{
record
.
details
}
》竞价工作已经结束,中标人已经确定。现将中标结果公布如下:
中标供应商:
$
{
record
.
memberName
}
(中标总金额(含税):
$
{
priceFormat
(
record
.
sumAwardPrice
)}
)。
中标理由:
价格最低
` : '';
中标供应商:
$
{
record
.
memberName
}
(中标总金额(含税):
¥
$
{
priceFormat
(
record
.
sumAwardPrice
)}
)。
中标理由:
$
{
record
.
signUpIdea
}
` : '';
}, [record])
const _returnDefaultContent = useMemo(() => {
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/add.tsx
View file @
8cb08eb2
...
...
@@ -187,7 +187,7 @@ const AddForm = () => {
setCondition
(
conditionInfo
);
demandInfo
.
type
=
params
.
type
;
demandInfo
.
shopIds
=
params
.
shopIds
;
demandInfo
.
demandMembers
=
params
.
demandM
embers
;
demandInfo
.
demandMembers
=
params
.
m
embers
;
setDemand
(
demandInfo
);
setfile
([...
params
.
urls
]);
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/statusBox/detailBottomDrawer/index.tsx
View file @
8cb08eb2
...
...
@@ -184,7 +184,8 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
className=
{
styles
.
drawer
}
closeIcon=
{
<
div
>
取消报价
</
div
>
}
>
<
Row
gutter=
{
[
8
,
8
]
}
style=
{
{
marginBottom
:
'10px'
}
}
>
<
div
style=
{
{
width
:
'100%'
,
overflowX
:
'auto'
}
}
>
<
Row
gutter=
{
[
8
,
8
]
}
style=
{
{
marginBottom
:
'10px'
}
}
wrap=
{
false
}
>
<
Col
span=
{
7
}
key=
{
'BtnItem_0'
}
onClick=
{
()
=>
{
chooseItem
()
}
}
>
<
BtnItem
btnType=
{
3
}
detail=
{
{
sumPice
:
_calcCurrentTotal
,
peportPriceSum
:
offerCount
+
1
}
}
active=
{
!
activeItem
}
onOk=
{
bidOk
}
onCancle=
{
onClose
}
btnLoading=
{
btnLoading
}
/>
</
Col
>
...
...
@@ -201,6 +202,7 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
)
})
}
</
Row
>
</
div
>
<
Form
form=
{
form
}
>
<
Table
dataSource=
{
dataSource
}
columns=
{
columns
}
pagination=
{
false
}
/>
;
</
Form
>
...
...
src/pages/transaction/purchaseOrder/orderCollect/components/addressModal/index.tsx
View file @
8cb08eb2
...
...
@@ -85,7 +85,7 @@ const AddressModal:React.FC<AddressModalProps> = (props) => {
modalProps=
{
{
destroyOnClose
:
true
}
}
effects=
{
(
$
,
{
setFieldState
})
=>
{
effects=
{
(
$
,
{
setFieldState
,
setFieldValue
})
=>
{
$
(
'onFormMount'
).
subscribe
(()
=>
{
PublicApi
.
getManageAreaAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
...
...
@@ -130,6 +130,12 @@ const AddressModal:React.FC<AddressModalProps> = (props) => {
);
useAsyncSelect
(
'areaCode'
,
fetchTelCode
)
$
(
'onFieldChange'
,
'areaCode'
).
subscribe
(
result
=>
{
if
(
result
.
props
.
enum
.
length
)
{
setFieldValue
(
'areaCode'
,
'86'
)
}
})
}
}
currentRef=
{
props
.
currentRef
}
actions=
{
addressSchemaAction
}
...
...
src/pages/transaction/purchaseOrder/orderCollect/constant/index.tsx
View file @
8cb08eb2
...
...
@@ -542,7 +542,7 @@ export const materialInfoColumns: any[] = [
dataIndex
:
'relevanceProductId'
,
align
:
'center'
,
key
:
'relevanceProductId'
,
render
:
(
t
,
r
)
=>
`
${
t
}
/
${
r
.
relevanceProductName
}
/
${
r
.
relevanceProductCategory
}
/
${
r
.
relevanceProductBrand
}
`
render
:
(
t
,
r
)
=>
`
${
t
}
/
${
r
.
relevanceProductName
||
''
}
/
${
r
.
relevanceProductCategory
||
''
}
/
${
r
.
relevanceProductBrand
||
''
}
`
},
{
title
:
'单价(元)'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment