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
5fb5701b
Commit
5fb5701b
authored
Nov 30, 2021
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(采购询价报价翻译):
parent
39ed1795
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
241 additions
and
201 deletions
+241
-201
purchase.ts
src/locales/zh-CN/purchase.ts
+58
-19
basic.tsx
...ion/purchaseAbility/offter/addOffter/components/basic.tsx
+9
-9
explain.tsx
...n/purchaseAbility/offter/addOffter/components/explain.tsx
+18
-18
file.tsx
...tion/purchaseAbility/offter/addOffter/components/file.tsx
+4
-4
offer.tsx
...ion/purchaseAbility/offter/addOffter/components/offer.tsx
+23
-23
index.tsx
...ansaction/purchaseAbility/offter/auditOffterOne/index.tsx
+12
-12
index.tsx
...ansaction/purchaseAbility/offter/auditOffterTwo/index.tsx
+12
-12
index.tsx
...pages/transaction/purchaseAbility/offter/demand/index.tsx
+30
-30
index.tsx
...pages/transaction/purchaseAbility/offter/detail/index.tsx
+41
-41
index.tsx
...ages/transaction/purchaseAbility/offter/inquiry/index.tsx
+10
-10
index.tsx
...pages/transaction/purchaseAbility/offter/offter/index.tsx
+11
-10
index.tsx
...transaction/purchaseAbility/offter/submitOffter/index.tsx
+13
-13
No files found.
src/locales/zh-CN/purchase.ts
View file @
5fb5701b
...
...
@@ -60,6 +60,7 @@ const PurchaseLocales = {
'table.purchase.dementCreateTime'
:
'单据时间'
,
'table.purchase.dementNo'
:
'需求单号'
,
'table.purchase.member'
:
'需求会员'
,
'table.purchase.offer'
:
'报价'
,
'table.purchase.purchaseInquiryNoDtails'
:
'报价单号/摘要'
,
'table.purchase.purchaseInquiryNoMember'
:
'需求单号/会员'
,
'table.purchase.purchaseInquiryNoCreateTime'
:
'报价时间'
,
...
...
@@ -85,16 +86,22 @@ const PurchaseLocales = {
'table.purchase.popconfirm'
:
'确定要提交吗?'
,
'table.purchase.popconfirm1'
:
'确定要提交审核吗?'
,
'table.purchase.popconfirm2'
:
'确定要删除吗?'
,
'table.purchase.submitBatch'
:
'确定要删除吗?'
,
'table.purchase.deleteBatch'
:
'确定要删除吗?'
,
'table.purchase.popconfirm3'
:
'确定要提交报价单吗?'
,
'table.purchase.submitBatch'
:
'批量提交审核'
,
'table.purchase.deleteBatch'
:
'批量删除'
,
'table.purchase.offerSubmit'
:
'提交报价单'
,
// detail
'detail.purchase.progressLayout'
:
'流转进度'
,
'detail.purchase.basicLayout'
:
'基本信息'
,
'detail.purchase.basicLayout1'
:
'基本流程'
,
'detail.purchase.offerLayout'
:
'报价信息'
,
'detail.purchase.offerExplain'
:
'报价说明'
,
'detail.purchase.materialLayout'
:
'采购物料'
,
'detail.purchase.conditionLayout'
:
'交易条件'
,
'detail.purchase.recordLyout'
:
'流转记录'
,
'detail.purchase.bidLayout'
:
'授标结果'
,
'detail.purchase.bidLayout1'
:
'中标通知'
,
'detail.purchase.purchasePlanNo'
:
'采购计划编号'
,
'detail.purchase.summary'
:
'采购计划摘要'
,
'detail.purchase.innerStatus'
:
'内部状态'
,
...
...
@@ -116,34 +123,31 @@ const PurchaseLocales = {
'detail.purchase.brand'
:
'品牌'
,
'detail.purchase.unitName'
:
'单位'
,
'detail.purchase.unitNameId'
:
'单位ID'
,
'detail.purchase.isTax'
:
'含税'
,
'detail.purchase.taxProbability'
:
'税率'
,
'detail.purchase.taxUnitPrice'
:
'单价(含税)'
,
'detail.purchase.taxPrice'
:
'金额(含税)'
,
'detail.purchase.needCount'
:
'需求数量'
,
'detail.purchase.purchaseCount1'
:
'采购数量/单位'
,
'detail.purchase.costPrice'
:
'成本价'
,
'detail.purchase.needPrice'
:
'需求金额'
,
'detail.purchase.arriveTime'
:
'到货日期'
,
'detail.purchase.search'
:
'查询'
,
'detail.purchase.contacts'
:
'联系人姓名'
,
'detail.purchase.contactsMessage'
:
'请输入联系人姓名'
,
'detail.purchase.placeholder3'
:
'最长12个字符,6个汉字'
,
'detail.purchase.telPhone'
:
'联系人手机'
,
'detail.purchase.telPrefix'
:
'请选择区号'
,
'detail.purchase.tel'
:
'请输入你的手机号码'
,
// '计划采购数量
',
// '计划采购金额
',
'detail.purchase.quotedDetails1'
:
'报价摘要
'
,
'detail.purchase.quotedPriceNo'
:
'报价单号
'
,
'detail.purchase.purchaseMaterial'
:
'对应采购物料'
,
'detail.purchase.file'
:
'附件'
,
'detail.purchase.option'
:
'操作'
,
'detail.purchase.demandCycle'
:
'需求计划周期'
,
// '添加方式',
// '招标物料',
// '招标要求',
// '报名要求',
// '报名信息',
// '资格预审要求',
// '资格预审信息',
// '评标要求',
// '评标报告',
// '其他要求',
// '招标方式',
'detail.purchase.correspondence'
:
'对应'
,
'detail.purchase.tenderProduct'
:
'招标商品'
,
'detail.purchase.productId'
:
'商品ID'
,
'detail.purchase.size'
:
'规格'
,
'detail.purchase.purchaseInquiryNo'
:
'对应需求单号'
,
'detail.purchase.quotedDetails'
:
'报价单摘要'
,
'detail.purchase.uploadFile'
:
'上传文件'
,
...
...
@@ -172,12 +176,30 @@ const PurchaseLocales = {
'detail.purchase.back'
:
'返回'
,
'detail.purchase.okText'
:
'是'
,
'detail.purchase.cancelText'
:
'否'
,
'detail.purchase.demendDetail'
:
'需求摘要'
,
'detail.purchase.deliveryDetails'
:
'交付说明'
,
'detail.purchase.payDetails'
:
'付款说明'
,
'detail.purchase.taxes'
:
'税费说明'
,
'detail.purchase.logistics'
:
'物流说明'
,
'detail.purchase.packRequire'
:
'包装说明'
,
'detail.purchase.otherRequire'
:
'其他说明'
,
'detail.purchase.areas'
:
'适用地市'
,
'detail.purchase.address'
:
'交付地址'
,
'detail.purchase.offerEndTime'
:
'截止日期'
,
'detail.purchase.offerAsk'
:
'报价要求'
,
'detail.purchase.paymentType'
:
'付款方式'
,
'detail.purchase.taxesAsk'
:
'税费要求'
,
'detail.purchase.logisticsAsk'
:
'物流要求'
,
'detail.purchase.packRequireAsk'
:
'包装要求'
,
'detail.purchase.otherRequireAsk'
:
'其他要求'
,
'detail.purchase.modalTitle'
:
'公开招标'
,
'detail.purchase.modalTitle1'
:
'选择货品'
,
'detail.purchase.modalTitle2'
:
'选择货品生成'
,
'detail.purchase.modalTitle3'
:
'添加方式'
,
'detail.purchase.modalTitle4'
:
'选择货品生成'
,
'detail.purchase.modalTitle5'
:
'关联报价商品'
,
'detail.purchase.message1'
:
'投标开始时间必须大于报名截止时间'
,
'detail.purchase.message2'
:
'投标开始时间必须大于资质预审截止时间'
,
'detail.purchase.message3'
:
'开标时间大于等于投标截止时间,小于评标开始时间'
,
...
...
@@ -195,11 +217,28 @@ const PurchaseLocales = {
'detail.purchase.message15'
:
'请选择到货日期'
,
'detail.purchase.message16'
:
'删除成功'
,
'detail.purchase.message17'
:
'请选择货品'
,
'detail.purchase.message18'
:
'上传文件大小不超过 20M!'
,
'detail.purchase.message18'
:
'请输入您的手机号'
,
'detail.purchase.message19'
:
'手机号码格式不正确'
,
'detail.purchase.message20'
:
'请输入需求单摘要'
,
'detail.purchase.message21'
:
'上传文件大小不超过 20M!'
,
'detail.purchase.message22'
:
'请输入'
,
'detail.purchase.message23'
:
'请选择'
,
'detail.purchase.placeholder'
:
'选择开始日期'
,
'detail.purchase.placeholder1'
:
'确定要执行这个操作?'
,
'detail.purchase.demendDetail'
:
'需求摘要'
,
'detail.purchase.placeholder2'
:
'一次上传一个文件,每个附件大小不能超过 20M'
'detail.purchase.placeholder2'
:
'一次上传一个文件,每个附件大小不能超过 20M'
,
'detail.purchase.placeholder3'
:
'最长12个字符,6个汉字'
,
'detail.purchase.placeholder4'
:
'最长60个字符,30个汉字'
,
'detail.purchase.placeholder5'
:
'最长100字符,50个汉字'
,
'detail.purchase.priceMethod'
:
'比价方式'
,
'detail.purchase.purchaseType1'
:
'有固定采购金额'
,
'detail.purchase.purchaseType2'
:
'无固定采购金额'
,
'detail.purchase.priceContrast1'
:
'密封比价'
,
'detail.purchase.priceContrast2'
:
'非密封比价'
,
'detail.purchase.tips'
:
'有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购'
,
'detail.purchase.tips1'
:
'密封比价:只能看到供应商是否有报价,不能看到供应商的报价明细,只能解封后才能看到报价明细,非密封比价:可以在供应商报完价后立即看到报价明细,无须解封'
,
}
export
default
PurchaseLocales
src/pages/transaction/purchaseAbility/offter/addOffter/components/basic.tsx
View file @
5fb5701b
...
...
@@ -92,10 +92,10 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
const
userPhoneRule
=
(
rule
,
value
)
=>
{
const
RegExp
=
/^1
[
345678
]\d{9}
$/gi
;
if
(
!
value
)
{
return
Promise
.
reject
(
new
Error
(
'请输入您的手机号'
))
return
Promise
.
reject
(
new
Error
(
intl
.
formatMessage
({
id
:
'detail.purchase.message18'
})
))
}
if
(
!
RegExp
.
test
(
value
))
{
return
Promise
.
reject
(
new
Error
(
'手机号码格式不正确'
))
return
Promise
.
reject
(
new
Error
(
intl
.
formatMessage
({
id
:
'detail.purchase.message19'
})
))
}
return
Promise
.
resolve
();
}
...
...
@@ -109,9 +109,9 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.quotedDetails'
})
}
name=
'quotedDetails'
rules=
{
[{
required
:
true
,
message
:
'请输入需求单摘要'
}]
}
rules=
{
[{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'detail.purchase.message20'
})
}]
}
>
<
Input
maxLength=
{
30
}
placeholder=
'最长60个字符,30个汉字'
/>
<
Input
maxLength=
{
30
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder4'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.purchaseInquiryNo'
})
}
...
...
@@ -154,31 +154,31 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
</
Row
>
</
Form
.
Item
>
<
Form
.
Item
label=
'报价单号'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.quotedPriceNo'
})
}
name=
'quotedPriceNo'
>
<
Text
strong
>
{
fetchdata
&&
fetchdata
.
quotedPriceNo
}
</
Text
>
</
Form
.
Item
>
<
Form
.
Item
label=
'报价截止时间'
label=
{
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
}
name=
'offerEndTime'
>
<
Text
strong
>
{
fetchdata
&&
format
(
fetchdata
.
offerEndTime
)
}
</
Text
>
</
Form
.
Item
>
<
Form
.
Item
label=
'单据时间'
label=
{
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
}
name=
'createTime'
>
<
Text
strong
>
{
fetchdata
&&
format
(
fetchdata
.
createTime
)
}
</
Text
>
</
Form
.
Item
>
<
Form
.
Item
label=
'外部状态'
label=
{
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
}
name=
'externalState'
>
{
fetchdata
&&
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
fetchdata
.
externalState
]
}
>
{
fetchdata
.
externalStateName
}
</
Tag
>
}
</
Form
.
Item
>
<
Form
.
Item
label=
'内部状态'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
}
name=
'interiorState'
/>
</
Form
>
...
...
src/pages/transaction/purchaseAbility/offter/addOffter/components/explain.tsx
View file @
5fb5701b
...
...
@@ -66,81 +66,81 @@ const OfferExplain: React.FC<IProps> = (props: any) => {
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'交付说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.deliveryDetails'
})
}
name=
'deliveryDetails'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'付款说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.payDetails'
})
}
name=
'payDetails'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'税费说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.taxes'
})
}
name=
'taxes'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'物流说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.logistics'
})
}
name=
'logistics'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'包装说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.packRequire'
})
}
name=
'packRequire'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
handleHidden
()
}
label=
'其他说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
}
name=
'otherRequire'
>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
'最长100字符,50个汉字'
/>
<
TextArea
maxLength=
{
50
}
rows=
{
3
}
placeholder=
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder5'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'交付说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.deliveryDetails'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
deliveryDetails
&&
fetchdata
.
deliveryDetails
}
</
Typography
.
Text
>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'付款说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.payDetails'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
payDetails
&&
fetchdata
.
payDetails
}
</
Typography
.
Text
>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'税费说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.taxes'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
taxes
&&
fetchdata
.
taxes
}
</
Typography
.
Text
>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'物流说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.logistics'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
logistics
&&
fetchdata
.
logistics
}
</
Typography
.
Text
>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'包装说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.packRequire'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
packRequire
&&
fetchdata
.
packRequire
}
</
Typography
.
Text
>
</
Form
.
Item
>
<
Form
.
Item
hidden=
{
!
handleHidden
()
}
label=
'其他说明'
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
}
>
<
Typography
.
Text
>
{
fetchdata
.
otherRequire
&&
fetchdata
.
otherRequire
}
</
Typography
.
Text
>
</
Form
.
Item
>
...
...
src/pages/transaction/purchaseAbility/offter/addOffter/components/file.tsx
View file @
5fb5701b
...
...
@@ -36,7 +36,7 @@ const File: React.FC<IProps> = (props) => {
const
beforeDocUpload
=
(
file
:
any
)
=>
{
const
isLt20M
=
file
.
size
/
1024
/
1024
<
20
;
if
(
!
isLt20M
)
{
message
.
error
(
'上传文件大小不超过 20M!'
);
message
.
error
(
intl
.
formatMessage
({
id
:
'detail.purchase.message21'
})
);
}
return
isLt20M
;
}
...
...
@@ -103,7 +103,7 @@ const File: React.FC<IProps> = (props) => {
{
...
layout
}
className=
{
styles
.
revise_style
}
>
<
Form
.
Item
label=
'附件'
name=
'upload'
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'detail.purchase.file'
})
}
name=
'upload'
>
<
div
className=
{
styles
.
upload_data
}
>
{
fileForEach
().
length
>
0
&&
fileForEach
().
map
((
v
,
index
)
=>
(
<
div
key=
{
index
}
className=
{
styles
.
upload_item
}
>
...
...
@@ -134,8 +134,8 @@ const File: React.FC<IProps> = (props) => {
beforeUpload=
{
beforeDocUpload
}
onChange=
{
handleChange
}
>
<
Button
loading=
{
loading
}
icon=
{
<
UploadOutlined
/>
}
>
上传文件
</
Button
>
<
div
style=
{
{
marginTop
:
'8px'
}
}
>
一次上传一个文件,每个附件大小不能超过 20M
</
div
>
<
Button
loading=
{
loading
}
icon=
{
<
UploadOutlined
/>
}
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.uploadFile'
})
}
</
Button
>
<
div
style=
{
{
marginTop
:
'8px'
}
}
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.placeholder2'
})
}
</
div
>
</
Upload
>
)
}
</
Form
.
Item
>
...
...
src/pages/transaction/purchaseAbility/offter/addOffter/components/offer.tsx
View file @
5fb5701b
...
...
@@ -94,27 +94,27 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
const
columns
=
[
{
title
:
'物料编号/名称'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.type'
})
,
key
:
'number'
,
dataIndex
:
'number'
,
},
{
title
:
'规格型号'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.nameCode'
})
,
key
:
'model'
,
dataIndex
:
'model'
,
},
{
title
:
'品类'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.customerCategory'
})
,
key
:
'category'
,
dataIndex
:
'category'
,
},
{
title
:
'品牌'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.brand'
})
,
key
:
'brand'
,
dataIndex
:
'brand'
,
},
{
title
:
'采购数量/单位'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.purchaseCount1'
})
,
key
:
'purchaseCount'
,
dataIndex
:
'purchaseCount'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -126,14 +126,14 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
)
},
{
title
:
'含税'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.isTax'
})
,
key
:
'isTax'
,
dataIndex
:
'isTax'
,
render
:
(
text
:
any
,
record
:
any
,
index
:
number
)
=>
(
<
Form
.
Item
name=
{
`isTax${index}`
}
style=
{
{
margin
:
0
}
}
rules=
{
[{
required
:
true
,
message
:
'请选择'
}]
}
rules=
{
[{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'detail.purchase.message23'
})
}]
}
initialValue=
{
text
}
>
<
Select
...
...
@@ -141,21 +141,21 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
onChange=
{
(
e
)
=>
handleEdit
(
e
,
'isTax'
,
index
)
}
disabled=
{
fetchdata
&&
(
count
!==
tabs
[
0
])
}
>
<
Option
value=
{
1
}
>
是
</
Option
>
<
Option
value=
{
0
}
>
否
</
Option
>
<
Option
value=
{
1
}
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.okText'
})
}
</
Option
>
<
Option
value=
{
0
}
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.cancelText'
})
}
</
Option
>
</
Select
>
</
Form
.
Item
>
)
},
{
title
:
'税率'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.taxProbability'
})
,
key
:
'taxProbability'
,
dataIndex
:
'taxProbability'
,
render
:
(
text
:
any
,
record
:
any
,
index
:
number
)
=>
(
<
Form
.
Item
style=
{
{
margin
:
0
}
}
name=
{
`taxProbability${index}`
}
rules=
{
[{
required
:
true
,
message
:
'请输入'
}]
}
rules=
{
[{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'detail.purchase.message22'
})
}]
}
>
<
Input
onChange=
{
(
e
)
=>
handleEdit
(
e
,
'taxProbability'
,
index
)
}
...
...
@@ -167,14 +167,14 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
)
},
{
title
:
'单价(含税)'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.taxUnitPrice'
})
,
key
:
'taxUnitPrice'
,
dataIndex
:
'taxUnitPrice'
,
render
:
(
text
:
any
,
record
:
any
,
index
:
number
)
=>
<
Form
.
Item
style=
{
{
margin
:
0
}
}
name=
{
`taxUnitPrice${index}`
}
rules=
{
[{
required
:
true
,
message
:
'请输入'
}]
}
rules=
{
[{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'detail.purchase.message22'
})
}]
}
>
<
Input
onChange=
{
(
e
)
=>
handleEdit
(
e
,
'taxUnitPrice'
,
index
)
}
...
...
@@ -185,13 +185,13 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
},
{
title
:
'金额(含税)'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.taxPrice'
})
,
key
:
'taxPrice'
,
dataIndex
:
'taxPrice'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
>
{
isNaN
(
Number
(
record
.
purchaseCount
)
*
Number
(
record
.
taxUnitPrice
))
?
0
:
Number
(
record
.
purchaseCount
)
*
Number
(
record
.
taxUnitPrice
)
}
</
Text
>
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.option'
})
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
,
index
:
number
)
=>
(
...
...
@@ -203,7 +203,7 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
setVisible
(
true
);
}
}
>
关联报价商品
{
intl
.
formatMessage
({
id
:
'detail.purchase.modalTitle5'
})
}
</
Button
>
)
},
...
...
@@ -380,25 +380,25 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
<
Row
>
<
Col
span=
{
3
}
>
<
div
className=
{
style
.
childrenTitle
}
>
<
p
>
对应
</
p
>
<
p
>
招标商品
</
p
>
<
p
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.correspondence'
})
}
</
p
>
<
p
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.tenderProduct'
})
}
</
p
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
style
.
childrenContent
}
>
<
p
><
span
>
商品ID
:
</
span
>
{
record
.
productId
}
</
p
>
<
p
><
span
>
商品名称
:
</
span
>
{
record
.
productName
}
</
p
>
<
p
><
span
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.productId'
})
}
:
</
span
>
{
record
.
productId
}
</
p
>
<
p
><
span
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.goodstName'
})
}
:
</
span
>
{
record
.
productName
}
</
p
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
style
.
childrenContent
}
>
<
p
><
span
>
规格
:
</
span
>
{
splitProductAttributeJson
(
record
.
productAttributeJson
,
0
)
}
</
p
>
<
p
><
span
>
品类
:
</
span
>
{
splitProductAttributeJson
(
record
.
productAttributeJson
,
1
)
}
</
p
>
<
p
><
span
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.size'
})
}
:
</
span
>
{
splitProductAttributeJson
(
record
.
productAttributeJson
,
0
)
}
</
p
>
<
p
><
span
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.customerCategory'
})
}
:
</
span
>
{
splitProductAttributeJson
(
record
.
productAttributeJson
,
1
)
}
</
p
>
</
div
>
</
Col
>
<
Col
span=
{
6
}
>
<
div
className=
{
style
.
childrenContent
}
>
<
p
><
span
>
品牌
:
</
span
>
{
record
.
productBrand
}
</
p
>
<
p
><
span
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.brand'
})
}
:
</
span
>
{
record
.
productBrand
}
</
p
>
</
div
>
</
Col
>
</
Row
>
...
...
src/pages/transaction/purchaseAbility/offter/auditOffterOne/index.tsx
View file @
5fb5701b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
Table
from
'../../components/table'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
...
...
@@ -14,14 +14,14 @@ import {
}
from
'../../constants'
;
import
{
getPurchaseQuotedPriceStayExamineList1
,
postPurchaseQuotedPriceExamine1Batch
}
from
'@/services/PurchaseV2Api'
;
const
{
Text
}
=
Typography
;
const
intl
=
getIntl
();
const
AuditOffterOne
=
()
=>
{
console
.
log
(
'待新增采购需求单'
);
const
format
=
(
text
,
fmt
?:
string
)
=>
{
return
<>
{
moment
(
text
).
format
(
fmt
||
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号/摘要'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoDtails'
})
,
key
:
'quotedPriceNo'
,
dataIndex
:
'quotedPriceNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -31,7 +31,7 @@ const AuditOffterOne = () => {
</
Space
>
)
},
{
title
:
'需求单号/会员'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoMember'
})
,
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -43,17 +43,17 @@ const AuditOffterOne = () => {
</
Space
>
)
},
{
title
:
'报价截止时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
key
:
'offerEndTime'
,
dataIndex
:
'offerEndTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'单据时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价轮次'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.turn'
})
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -74,17 +74,17 @@ const AuditOffterOne = () => {
</>
)
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.option'
})
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -93,7 +93,7 @@ const AuditOffterOne = () => {
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/auditOffterOne/detail?id=${record.id}&number=${record.quotedPriceNo}&turn=${record.turn}`
)
}
>
审核
{
intl
.
formatMessage
({
id
:
'table.purchase.audit'
})
}
</
Button
>
</>
)
...
...
@@ -134,7 +134,7 @@ const AuditOffterOne = () => {
onClick=
{
fetchSubmitBatch
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
{
intl
.
formatMessage
({
id
:
'table.purchase.submitBatch'
})
}
</
Button
>
</
Col
>
</
Row
>
...
...
src/pages/transaction/purchaseAbility/offter/auditOffterTwo/index.tsx
View file @
5fb5701b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
Table
from
'../../components/table'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
...
...
@@ -15,14 +15,14 @@ import {
import
{
getPurchaseQuotedPriceStayExamineList2
,
postPurchaseQuotedPriceExamine2Batch
}
from
'@/services/PurchaseV2Api'
;
const
{
Text
}
=
Typography
const
intl
=
getIntl
();
const
AuditOffterTwo
=
()
=>
{
console
.
log
(
'待新增采购需求单'
);
const
format
=
(
text
,
fmt
?:
string
)
=>
{
return
<>
{
moment
(
text
).
format
(
fmt
||
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号/摘要'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoDtails'
})
,
key
:
'quotedPriceNo'
,
dataIndex
:
'quotedPriceNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -32,7 +32,7 @@ const AuditOffterTwo = () => {
</
Space
>
)
},
{
title
:
'需求单号/会员'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoMember'
})
,
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -44,17 +44,17 @@ const AuditOffterTwo = () => {
</
Space
>
)
},
{
title
:
'报价截止时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
key
:
'offerEndTime'
,
dataIndex
:
'offerEndTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'单据时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价轮次'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.turn'
})
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -75,17 +75,17 @@ const AuditOffterTwo = () => {
</>
)
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.option'
})
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -94,7 +94,7 @@ const AuditOffterTwo = () => {
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/auditOffterTwo/detail?id=${record.id}&number=${record.quotedPriceNo}&turn=${record.turn}`
)
}
>
审核
{
intl
.
formatMessage
({
id
:
'table.purchase.audit'
})
}
</
Button
>
</>
)
...
...
@@ -135,7 +135,7 @@ const AuditOffterTwo = () => {
onClick=
{
fetchSubmitBatch
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
{
intl
.
formatMessage
({
id
:
'table.purchase.submitBatch'
})
}
</
Button
>
</
Col
>
</
Row
>
...
...
src/pages/transaction/purchaseAbility/offter/demand/index.tsx
View file @
5fb5701b
import
React
,
{
Fragment
,
useEffect
,
useState
}
from
'react'
;
import
{
Tag
,
Badge
,
Tooltip
,
Typography
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
{
Context
}
from
'../../components/detail/components/context'
;
import
PeripheralLayout
from
'../../components/detail'
;
import
ProgressLayout
from
'../../components/detail/components/progressLayout'
;
...
...
@@ -22,13 +22,13 @@ const ICON_STYLE: any = {
fontSize
:
'14px'
,
marginLeft
:
'5px'
}
const
intl
=
getIntl
();
const
TABLINK
=
[
{
id
:
'progressLayout'
,
title
:
'流转进度'
},
{
id
:
'basicLayout'
,
title
:
'基本流程'
},
{
id
:
'materialLayout'
,
title
:
'采购物料'
},
{
id
:
'conditionLayout'
,
title
:
'交易条件'
},
{
id
:
'recordLyout'
,
title
:
'流转记录'
},
{
id
:
'progressLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.progressLayout'
})
},
{
id
:
'basicLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.basicLayout1'
})
},
{
id
:
'materialLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.materialLayout'
})
},
{
id
:
'conditionLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.conditionLayout'
})
},
{
id
:
'recordLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.recordLyout'
})
},
]
const
DemandDetailed
=
()
=>
{
...
...
@@ -49,38 +49,38 @@ const DemandDetailed = () => {
setBasicEffect
([
{
col
:
[
{
label
:
'需求单号'
,
extra
:
data
.
purchaseInquiryNo
},
{
label
:
'外部状态'
,
extra
:
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
data
.
externalState
]
||
'default'
}
>
{
data
.
externalStateName
}
</
Tag
>
},
{
label
:
'内部状态'
,
extra
:
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
data
.
interiorState
]
||
'default'
}
text=
{
data
.
interiorStateName
}
/>
},
{
label
:
'单据时间'
,
extra
:
format
(
data
.
createTime
)
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.dementNo'
})
,
extra
:
data
.
purchaseInquiryNo
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
extra
:
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
data
.
externalState
]
||
'default'
}
>
{
data
.
externalStateName
}
</
Tag
>
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
extra
:
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
data
.
interiorState
]
||
'default'
}
text=
{
data
.
interiorStateName
}
/>
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
extra
:
format
(
data
.
createTime
)
},
]
},
{
col
:
[
{
label
:
'需求摘要'
,
extra
:
data
.
details
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.details'
})
,
extra
:
data
.
details
},
{
label
:
(
<
Tooltip
placement=
"top"
title=
'有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购'
>
采购类型
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
<
Tooltip
placement=
"top"
title=
{
intl
.
formatMessage
({
id
:
'detail.purchase.tips'
})
}
>
{
intl
.
formatMessage
({
id
:
'table.purchase.purchaseType'
})
}
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
</
Tooltip
>
),
extra
:
data
.
purchaseType
===
1
?
'有固定采购金额'
:
'无固定采购金额'
,
),
extra
:
data
.
purchaseType
===
1
?
intl
.
formatMessage
({
id
:
'detail.purchase.purchaseType1'
})
:
intl
.
formatMessage
({
id
:
'detail.purchase.purchaseType2'
})
,
colon
:
true
},
{
label
:
(
<
Tooltip
placement=
"top"
title=
'密封比价:只能看到供应商是否有报价,不能看到供应商的报价明细,只能解封后才能看到报价明细,非密封比价:可以在供应商报完价后立即看到报价明细,无须解封'
>
比价方式
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
<
Tooltip
placement=
"top"
title=
{
intl
.
formatMessage
({
id
:
'detail.purchase.tips1'
})
}
>
{
intl
.
formatMessage
({
id
:
'detail.purchase.priceMethod'
})
}
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
</
Tooltip
>
),
extra
:
data
.
priceContrast
===
1
?
'密封比价'
:
'非密封比价'
,
),
extra
:
data
.
priceContrast
===
1
?
intl
.
formatMessage
({
id
:
'detail.purchase.priceContrast1'
})
:
intl
.
formatMessage
({
id
:
'detail.purchase.priceContrast2'
})
,
colon
:
true
},
{
label
:
'会员名称'
,
extra
:
data
.
createMemberName
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.memberName'
})
,
extra
:
data
.
createMemberName
},
]
},
{
col
:
[
{
label
:
'适用地市'
,
extra
:
(
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.areas'
})
,
extra
:
(
<
div
>
{
data
.
areas
&&
data
.
areas
.
map
((
it
:
any
,
idx
:
number
)
=>
(
<
p
key=
{
`areas${idx + 1}`
}
>
{
`${it.province}/${it.city}`
}
</
p
>
...
...
@@ -97,11 +97,11 @@ const DemandDetailed = () => {
setConditionEffect
([
{
col
:
[
{
label
:
'交付日期'
,
extra
:
format
(
data
.
deliveryTime
)
},
{
label
:
'交付地址'
,
extra
:
data
.
address
},
{
label
:
'截止日期'
,
extra
:
format
(
data
.
offerEndTime
)
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.deliveryTime'
})
,
extra
:
format
(
data
.
deliveryTime
)
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.address'
})
,
extra
:
data
.
address
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.offerEndTime'
})
,
extra
:
format
(
data
.
offerEndTime
)
},
{
label
:
'附件'
,
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.file'
})
,
extra
:
<>
{
data
.
transactionUurls
.
map
((
item
:
any
,
index
:
number
)
=>
(
<
Typography
.
Link
...
...
@@ -120,16 +120,16 @@ const DemandDetailed = () => {
},
{
col
:
[
{
label
:
'报价要求'
,
extra
:
data
.
offer
},
{
label
:
'付款方式'
,
extra
:
data
.
paymentType
},
{
label
:
'税费要求'
,
extra
:
data
.
taxes
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.offerAsk'
})
,
extra
:
data
.
offer
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.paymentType'
})
,
extra
:
data
.
paymentType
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.taxesAsk'
})
,
extra
:
data
.
taxes
},
]
},
{
col
:
[
{
label
:
'物流要求'
,
extra
:
data
.
logistics
},
{
label
:
'包装要求'
,
extra
:
data
.
packRequire
},
{
label
:
'其他要求'
,
extra
:
data
.
otherRequire
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.logisticsAsk'
})
,
extra
:
data
.
logistics
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.packRequireAsk'
})
,
extra
:
data
.
packRequire
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequireAsk'
})
,
extra
:
data
.
otherRequire
},
]
},
])
...
...
src/pages/transaction/purchaseAbility/offter/detail/index.tsx
View file @
5fb5701b
import
React
,
{
useState
,
useEffect
,
Fragment
,
useCallback
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
moment
from
'moment'
;
import
{
Tag
,
Badge
,
Button
,
Typography
}
from
'antd'
;
import
{
Context
}
from
'../../components/detail/components/context'
;
...
...
@@ -22,32 +22,32 @@ import BidLayout from '../../components/detail/components/bidLayout';
import
BidResultLayout
from
'../../components/detail/components/bidResultLayout'
;
import
{
isEmpty
}
from
'lodash'
;
import
{
getPurchaseQuotedPriceDetails
,
getPurchaseQuotedPriceMaterielDetailed
,
getPurchaseQuotedPriceProductlistListContract
,
postPurchaseQuotedPriceExamine1
,
postPurchaseQuotedPriceExamine2
}
from
'@/services/PurchaseV2Api'
;
const
intl
=
getIntl
();
const
TABLINK1
=
[
{
id
:
'progressLayout'
,
title
:
'流转进度'
},
{
id
:
'basicLayout'
,
title
:
'基本信息'
},
{
id
:
'contrastLyout'
,
title
:
'报价信息'
},
{
id
:
'otherLyout'
,
title
:
'其他说明'
},
{
id
:
'recordLyout'
,
title
:
'流转记录'
},
{
id
:
'progressLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.progressLayout'
})
},
{
id
:
'basicLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.basicLayout'
})
},
{
id
:
'contrastLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.offerLayout'
})
},
{
id
:
'otherLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
},
{
id
:
'recordLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.recordLyout'
})
},
]
const
TABLINK2
=
{
0
:
[
{
id
:
'progressLayout'
,
title
:
'流转进度'
},
{
id
:
'basicLayout'
,
title
:
'基本信息'
},
{
id
:
'bidLayout'
,
title
:
'授标结果'
},
{
id
:
'bidInfoLayout'
,
title
:
'报价信息'
},
{
id
:
'otherLyout'
,
title
:
'其他说明'
},
{
id
:
'recordLyout'
,
title
:
'流转记录'
},
{
id
:
'progressLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.progressLayout'
})
},
{
id
:
'basicLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.basicLayout'
})
},
{
id
:
'bidLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.bidLayout'
})
},
{
id
:
'bidInfoLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.offerLayout'
})
},
{
id
:
'otherLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
},
{
id
:
'recordLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.recordLyout'
})
},
],
1
:
[
{
id
:
'progressLayout'
,
title
:
'流转进度'
},
{
id
:
'basicLayout'
,
title
:
'基本信息'
},
{
id
:
'bidLayout'
,
title
:
'中标通知'
},
{
id
:
'bidResultLayout'
,
title
:
'授标结果'
},
{
id
:
'bidInfoLayout'
,
title
:
'报价信息'
},
{
id
:
'otherLyout'
,
title
:
'其他说明'
},
{
id
:
'recordLyout'
,
title
:
'流转记录'
},
{
id
:
'progressLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.progressLayout'
})
},
{
id
:
'basicLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.basicLayout'
})
},
{
id
:
'bidLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.bidLayout1'
})
},
{
id
:
'bidResultLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.bidLayout'
})
},
{
id
:
'bidInfoLayout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.offerLayout'
})
},
{
id
:
'otherLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
},
{
id
:
'recordLyout'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.recordLyout'
})
},
]
}
...
...
@@ -67,7 +67,7 @@ const QuoteDetails = () => {
let
params
:
any
=
{}
data
.
forEach
(
item
=>
{
if
(
Number
(
item
.
turn
)
===
Number
(
key
))
{
params
=
{
...
item
}
params
=
{
...
item
}
}
})
return
params
...
...
@@ -77,24 +77,24 @@ const QuoteDetails = () => {
setBasicEffect
([
{
col
:
[
{
label
:
'报价单号'
,
extra
:
data
.
quotedPriceNo
},
{
label
:
'报价摘要'
,
extra
:
data
.
quotedDetails
},
{
label
:
'外部状态'
,
extra
:
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
data
.
externalState
]
||
'default'
}
>
{
data
.
externalStateName
}
</
Tag
>
},
{
label
:
'内部状态'
,
extra
:
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
data
.
interiorState
]
||
'default'
}
text=
{
data
.
interiorStateName
}
/>
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.quotedPriceNo'
})
,
extra
:
data
.
quotedPriceNo
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.quotedDetails1'
})
,
extra
:
data
.
quotedDetails
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
extra
:
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
data
.
externalState
]
||
'default'
}
>
{
data
.
externalStateName
}
</
Tag
>
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
extra
:
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
data
.
interiorState
]
||
'default'
}
text=
{
data
.
interiorStateName
}
/>
},
]
},
{
col
:
[
{
label
:
'对应需求单号'
,
extra
:
data
.
purchaseInquiryNo
},
{
label
:
'需求会员'
,
extra
:
data
.
memberName
},
{
label
:
'联系人姓名'
,
extra
:
data
.
contacts
},
{
label
:
'联系人手机'
,
extra
:
data
.
tel
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.purchaseInquiryNo'
})
,
extra
:
data
.
purchaseInquiryNo
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.member'
})
,
extra
:
data
.
memberName
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.contacts'
})
,
extra
:
data
.
contacts
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.telPhone'
})
,
extra
:
data
.
tel
},
]
},
{
col
:
[
{
label
:
'报价截止时间'
,
extra
:
format
(
data
.
offerEndTime
)
},
{
label
:
'单据时间'
,
extra
:
format
(
data
.
createTime
)
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
extra
:
format
(
data
.
offerEndTime
)
},
{
label
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
extra
:
format
(
data
.
createTime
)
},
]
},
])
...
...
@@ -105,22 +105,22 @@ const QuoteDetails = () => {
setOtherEffect
([
{
col
:
[
{
label
:
'交付说明'
,
extra
:
data
.
deliveryDetails
},
{
label
:
'付款说明'
,
extra
:
data
.
payDetails
},
{
label
:
'税费说明'
,
extra
:
data
.
taxes
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.deliveryDetails'
})
,
extra
:
data
.
deliveryDetails
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.payDetails'
})
,
extra
:
data
.
payDetails
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.taxes'
})
,
extra
:
data
.
taxes
},
]
},
{
col
:
[
{
label
:
'物流说明'
,
extra
:
data
.
logistics
},
{
label
:
'包装说明'
,
extra
:
data
.
packRequire
},
{
label
:
'其他说明'
,
extra
:
data
.
otherRequire
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.logistics'
})
,
extra
:
data
.
logistics
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.packRequire'
})
,
extra
:
data
.
packRequire
},
{
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.otherRequire'
})
,
extra
:
data
.
otherRequire
},
]
},
{
col
:
[
{
label
:
'附件'
,
label
:
intl
.
formatMessage
({
id
:
'detail.purchase.file'
})
,
extra
:
<>
{
data
.
enclosureUrls
&&
data
.
enclosureUrls
.
map
((
item
:
any
,
index
:
number
)
=>
(
<
Typography
.
Link
...
...
@@ -139,7 +139,7 @@ const QuoteDetails = () => {
])
}
const
handleOtherCallBack
=
useCallback
((
data
:
any
,
key
:
number
)
=>
{
const
handleOtherCallBack
=
useCallback
((
data
:
any
,
key
:
number
)
=>
{
handleOtherEffect
(
forEachQuotedPriceTurnList
(
data
,
key
))
},
[])
...
...
@@ -194,7 +194,7 @@ const QuoteDetails = () => {
type=
'primary'
>
<
CheckCircleOutlined
/>
单据审核
{
intl
.
formatMessage
({
id
:
'detail.purchase.modelTitle'
})
}
</
Button
>
)
}
</>
...
...
@@ -225,7 +225,7 @@ const QuoteDetails = () => {
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
title=
{
intl
.
formatMessage
({
id
:
'detail.purchase.modelTitle'
})
}
modalType=
"audit"
visible=
{
visible
}
fetch=
{
fetchLink
()
}
...
...
src/pages/transaction/purchaseAbility/offter/inquiry/index.tsx
View file @
5fb5701b
import
React
from
'react'
;
import
Table
from
'../../components/table'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
{
Button
,
Space
,
Typography
,
Tag
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
...
...
@@ -12,13 +12,13 @@ import {
import
{
getPurchaseQuotedPricePurchaseInquiryList
}
from
'@/services/PurchaseV2Api'
;
const
{
Text
}
=
Typography
const
intl
=
getIntl
();
const
Inquiry
=
()
=>
{
const
format
=
(
text
,
fmt
?:
string
)
=>
{
return
<>
{
moment
(
text
).
format
(
fmt
||
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'需求单号'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.dementNo'
})
,
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -29,31 +29,31 @@ const Inquiry = () => {
</
Space
>
)
},
{
title
:
'需求会员'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.member'
})
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.deliveryTime'
})
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价截止时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
key
:
'offerEndTime'
,
dataIndex
:
'offerEndTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'单据时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.option'
})
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
...
...
@@ -62,7 +62,7 @@ const Inquiry = () => {
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/quote?id=${record.id}&number=${record.purchaseInquiryNo}`
)
}
type=
'link'
>
报价
{
intl
.
formatMessage
({
id
:
'table.purchase.offer'
})
}
</
Button
>
}];
return
(
...
...
src/pages/transaction/purchaseAbility/offter/offter/index.tsx
View file @
5fb5701b
...
...
@@ -10,8 +10,9 @@ import {
}
from
'../../constants'
;
import
{
Badge
,
Tag
,
Space
,
Typography
,
Rate
}
from
'antd'
;
import
{
getPurchasePurchaseInquiryExternalStatusPurchase
,
getPurchasePurchaseInquiryInteriorStatusPurchase
,
getPurchaseQuotedPriceList
}
from
'@/services/PurchaseV2Api'
;
import
{
getIntl
}
from
'umi'
;
const
{
Text
}
=
Typography
;
const
intl
=
getIntl
();
const
Offter
=
()
=>
{
console
.
log
(
'采购需求单查询'
);
const
format
=
(
text
,
fmt
?:
string
)
=>
{
...
...
@@ -19,7 +20,7 @@ const Offter = () => {
}
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号/摘要'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoDtails'
})
,
key
:
'quotedPriceNo'
,
dataIndex
:
'quotedPriceNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -29,7 +30,7 @@ const Offter = () => {
</
Space
>
)
},
{
title
:
'需求单号/会员'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoMember'
})
,
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -41,17 +42,17 @@ const Offter = () => {
</
Space
>
)
},
{
title
:
'报价截止时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
key
:
'offerEndTime'
,
dataIndex
:
'offerEndTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoCreateTime'
})
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价轮次'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.turn'
})
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -72,17 +73,17 @@ const Offter = () => {
</>
)
},
{
title
:
'是否中标'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.isWin'
})
,
key
:
'isPrize'
,
dataIndex
:
'isPrize'
,
render
:
(
text
:
any
)
=>
(
text
?
<
Text
type=
'success'
>
是
</
Text
>
:
<
Text
type=
'warning'
>
否
</
Text
>)
render
:
(
text
:
any
)
=>
(
text
?
<
Text
type=
'success'
>
{
intl
.
formatMessage
({
id
:
'table.purchase.okText'
})
}
</
Text
>
:
<
Text
type=
'warning'
>
{
intl
.
formatMessage
({
id
:
'table.purchase.cancelText'
})
}
</
Text
>)
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
text
]
||
'warning'
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
text
]
||
'warning'
}
text=
{
record
.
interiorStateName
}
/>
...
...
src/pages/transaction/purchaseAbility/offter/submitOffter/index.tsx
View file @
5fb5701b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
Table
from
'../../components/table'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
...
...
@@ -15,14 +15,14 @@ import {
import
{
getPurchaseQuotedPriceStayCommitList
,
postPurchaseQuotedPriceStayCommit
,
postPurchaseQuotedPriceStayCommitBatch
}
from
'@/services/PurchaseV2Api'
;
const
{
Text
}
=
Typography
const
intl
=
getIntl
();
const
SubmitOffter
=
()
=>
{
console
.
log
(
'待新增采购需求单'
);
const
format
=
(
text
,
fmt
?:
string
)
=>
{
return
<>
{
moment
(
text
).
format
(
fmt
||
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号/摘要'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoDtails'
})
,
key
:
'quotedPriceNo'
,
dataIndex
:
'quotedPriceNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -32,7 +32,7 @@ const SubmitOffter = () => {
</
Space
>
)
},
{
title
:
'需求单号/会员'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.purchaseInquiryNoMember'
})
,
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -44,17 +44,17 @@ const SubmitOffter = () => {
</
Space
>
)
},
{
title
:
'报价截止时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.quotedPriceTime'
})
,
key
:
'offerEndTime'
,
dataIndex
:
'offerEndTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'单据时间'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.dementCreateTime'
})
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
text
:
any
,
record
:
any
)
=>
format
(
text
)
},
{
title
:
'报价轮次'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.turn'
})
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
...
...
@@ -75,24 +75,24 @@ const SubmitOffter = () => {
</>
)
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'table.purchase.externalStatus'
})
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.innerStatus'
})
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'detail.purchase.option'
})
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Popconfirm
title=
"确定要提交报价单吗?"
okText=
"是"
cancelText=
"否"
onConfirm=
{
()
=>
fetchSubmitBatch
(
record
.
id
)
}
>
<
Popconfirm
title=
{
intl
.
formatMessage
({
id
:
'table.purchase.popconfirm3'
})
}
okText=
{
intl
.
formatMessage
({
id
:
'table.purchase.okText'
})
}
cancelText=
{
intl
.
formatMessage
({
id
:
'table.purchase.cancelText'
})
}
onConfirm=
{
()
=>
fetchSubmitBatch
(
record
.
id
)
}
>
<
Button
type=
'link'
>
提交报价单
{
intl
.
formatMessage
({
id
:
'table.purchase.offerSubmit'
})
}
</
Button
>
</
Popconfirm
>
</>
...
...
@@ -139,7 +139,7 @@ const SubmitOffter = () => {
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
{
intl
.
formatMessage
({
id
:
'table.purchase.submitBatch'
})
}
</
Button
>
</
Col
>
</
Row
>
...
...
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