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
shenshaokai
jinfa-platform
Commits
8811e237
Commit
8811e237
authored
Jul 12, 2021
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-srm' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev-srm
parents
1ea45fd8
d7e184a8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
316 additions
and
113 deletions
+316
-113
index.tsx
src/pages/contract/coordination/coordinationList/index.tsx
+3
-0
index.ts
src/pages/procurement/callForBids/addNewBid/schema/index.ts
+1
-1
index.tsx
...s/procurement/callForBids/addRemarkBidCommittee/index.tsx
+22
-1
index.tsx
...pages/procurement/callForBids/callForBidsSearch/index.tsx
+4
-4
index.tsx
...ds/readySubmitReport/components/remarkBidReport/index.tsx
+12
-4
index.tsx
src/pages/procurement/components/bidParticulars/index.tsx
+1
-1
index.tsx
src/pages/procurement/components/descriptionsInfo/index.tsx
+52
-12
index.tsx
src/pages/procurement/tender/addBidRegister/index.tsx
+5
-0
index.tsx
...tender/addTender/components/relateProductDrawer/index.tsx
+17
-10
index.tsx
src/pages/procurement/tender/addTender/constant/index.tsx
+2
-2
index.ts
src/pages/procurement/tender/addTender/schema/index.ts
+12
-7
index.less
...y/components/detail/components/bidCommonLayout/index.less
+3
-0
index.tsx
...ty/components/detail/components/bidCommonLayout/index.tsx
+30
-4
index.tsx
...pages/transaction/purchaseAbility/offter/detail/index.tsx
+1
-1
index.tsx
...es/transaction/purchaseAbility/onlineBid/detail/index.tsx
+2
-2
index.tsx
...saction/purchaseAbility/purchasDoor/purchasInfo/index.tsx
+50
-58
index.tsx
.../transaction/purchaseAbility/purchaseBid/detail/index.tsx
+3
-3
material.tsx
...bility/purchaseInquiry/addInquiry/components/material.tsx
+3
-2
drawerWrite.tsx
...eAbility/purchaseInquiry/addInquiry/modal/drawerWrite.tsx
+0
-1
index.less
...rchaseAbility/purchaseInquiry/addInquiry/modal/index.less
+93
-0
index.tsx
...urchaseAbility/purchaseInquiry/addInquiry/modal/index.tsx
+0
-0
No files found.
src/pages/contract/coordination/coordinationList/index.tsx
View file @
8811e237
...
...
@@ -15,6 +15,7 @@ import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePicke
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
{
history
}
from
'umi'
;
import
moment
from
'moment'
;
const
coordinationList
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
...
...
@@ -128,6 +129,8 @@ const coordinationList = () => {
const
fetchData
=
(
params
?:
any
)
=>
{
console
.
log
(
params
)
//可以直接打印参数
return
new
Promise
((
resolve
,
reject
)
=>
{
params
.
startTime
=
params
.
startTime
?
moment
(
Number
(
params
.
startTime
)).
format
(
'YYYY-MM-DD'
)
:
''
;
params
.
endTime
=
params
.
endTime
?
moment
(
Number
(
params
.
endTime
)).
format
(
'YYYY-MM-DD'
)
:
''
;
PublicApi
.
getContractCoordinationPageList
({
...
params
,
outerStatus
:
params
.
outerStatus
||
0
,
...
...
src/pages/procurement/callForBids/addNewBid/schema/index.ts
View file @
8811e237
...
...
@@ -281,7 +281,7 @@ const bidRequestInfo: ISchema = {
hopeDate
:
{
type
:
'string'
,
"x-component"
:
'date'
,
title
:
'
期望
交付日期'
,
title
:
'交付日期'
,
required
:
true
,
"x-component-props"
:
{
disabledDate
:
current
=>
{
...
...
src/pages/procurement/callForBids/addRemarkBidCommittee/index.tsx
View file @
8811e237
...
...
@@ -51,6 +51,7 @@ const AddRemarkBidCommittee:React.FC<AddRemarkBidCommitteeProps> = (props) => {
const
{
id
,
code
,
preview
,
pageStatus
}
=
usePageStatus
()
...
...
@@ -63,7 +64,7 @@ const AddRemarkBidCommittee:React.FC<AddRemarkBidCommitteeProps> = (props) => {
useEffect
(()
=>
{
if
(
id
)
{
PublicApi
.
getPurchaseExpertExtractGetExpertExtract
({
id
}).
then
(
res
=>
{
const
{
code
,
data
}
=
res
const
{
code
,
data
}
:
any
=
res
if
(
code
===
1000
)
{
data
.
createTime
=
formatTimeString
(
data
[
'createTime'
])
data
.
remarkTime
=
`
${
formatTimeString
(
data
[
'inviteTender'
][
'evaluationStartTime'
])}
~
${
formatTimeString
(
data
[
'inviteTender'
][
'evaluationEndTime'
])}
`
...
...
@@ -77,6 +78,26 @@ const AddRemarkBidCommittee:React.FC<AddRemarkBidCommitteeProps> = (props) => {
}
},
[
id
])
// 招标查询跳转
useEffect
(()
=>
{
if
(
code
)
{
PublicApi
.
getPurchaseInviteTenderGetInviteTender
({
inviteTenderId
:
code
}).
then
(
res
=>
{
const
{
code
,
data
}:
any
=
res
let
initRender
:
any
=
{}
if
(
code
===
1000
)
{
initRender
.
createTime
=
formatTimeString
(
data
[
'createTime'
])
initRender
.
remarkTime
=
`
${
formatTimeString
(
data
[
'evaluationStartTime'
])}
~
${
formatTimeString
(
data
[
'evaluationEndTime'
])}
`
initRender
.
code
=
data
[
'code'
]
initRender
.
projectName
=
data
[
'projectName'
]
initRender
.
openTenderTime
=
formatTimeString
(
data
[
'openTenderTime'
])
initRender
.
status
=
data
.
status
?
'待发送'
:
'已发送'
initRender
.
expertExtractQueryList
=
initConditionData
setInitFormValue
(
initRender
)
}
})
}
},
[
code
])
const
conditionColumns
=
buildColumns
.
concat
([
{
dataIndex
:
'ctl'
,
...
...
src/pages/procurement/callForBids/callForBidsSearch/index.tsx
View file @
8811e237
...
...
@@ -47,9 +47,9 @@ const callForBidsSearch: React.FC<{}> = () => {
render
:
(
text
,
record
)
=>
<>
<
Button
type=
'link'
onClick=
{
()
=>
handleCopy
(
record
.
id
)
}
>
复制
</
Button
>
{
record
.
isOpenTenderTime
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleChangeTime
(
record
)
}
>
修改开标时间
</
Button
>
}
{
record
.
isExpert
&&
<
Button
type=
'link'
onClick=
{
handleWithdraw
}
>
抽取专家
</
Button
>
}
{
record
.
isExpert
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleWithdraw
(
record
.
id
)
}
>
抽取专家
</
Button
>
}
{
record
.
isDiscardTender
&&
<
Button
type=
'link'
onClick=
{
()
=>
handleDestory
(
record
.
id
)
}
>
废标
</
Button
>
}
</>
</>
}
])
...
...
@@ -60,8 +60,8 @@ const callForBidsSearch: React.FC<{}> = () => {
return
data
}
const
handleWithdraw
=
()
=>
{
history
.
push
(
'/memberCenter/procurementAbility/callForBids/remarkBidCommittee/add'
)
const
handleWithdraw
=
(
id
)
=>
{
history
.
push
(
`/memberCenter/procurementAbility/callForBids/remarkBidCommittee/add?code=
${
id
}
`
)
}
// 复制 id存入本地存储跳转至新增页
...
...
src/pages/procurement/callForBids/readySubmitReport/components/remarkBidReport/index.tsx
View file @
8811e237
...
...
@@ -16,6 +16,7 @@ import { EditableCell, EditableRow } from '../remarkTableCell';
import
{
groupBy
}
from
'@/pages/procurement/constants'
;
import
{
getAuth
}
from
'@/utils/auth'
;
import
{
ExpertRectractStatus
}
from
'@/constants/procurement'
;
import
{
PublicApi
}
from
'@/services/api'
;
/**
* 评标报告
...
...
@@ -35,15 +36,12 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle, editable})
const
currentRef
=
useRef
<
any
>
({})
const
[
transferRadio
,
setTransferRadio
]
=
useState
<
number
>
(
0
)
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
)
// 存入context表单数据
// const [fileList, setFileList] = useState<any>([])
// const [recommandList, setRecommandList] = useState<any>()
// const [childTableData, setChildrenTableData] = useState<any>([])
const
{
fileList
,
recommandList
,
childTableData
}
=
submitData
const
{
setFileList
,
setRecommandList
,
setChildrenTableData
}
=
submitCtl
const
[
evaluationRecord
,
setEvaluationRecord
]
=
useState
<
any
>
([])
const
[
childTableColumns
,
setChildrenTableColumns
]
=
useState
<
any
>
([])
const
[
templateSort
,
setTemplateSort
]
=
useState
<
any
>
([])
useEffect
(()
=>
{
if
(
data
?.
evaluationTenderRecommendList
.
length
)
{
...
...
@@ -94,6 +92,16 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle, editable})
console
.
log
(
dataSource
,
computedScore
,
dataBySort
,
'computedScore'
)
setEvaluationRecord
(
dataBySort
)
// 线下评标或者线上评标但是没有去评 评分项Radio来自评标模板接口
if
(
data
?.
templateId
)
{
PublicApi
.
getPurchaseTemplateGetTemplate
({
id
:
data
.
templateId
}).
then
(
res
=>
{
const
{
code
,
data
}
=
res
if
(
code
===
1000
&&
data
?.
templateContentList
?.
length
)
{
setTemplateSort
(
data
.
templateContentList
)
}
})
}
// 根据评标sort分类后的数据 遍历 分子表格
let
childrenTableDataSource
=
[]
// table data
let
childTableDataColumns
=
[]
// table columns
...
...
src/pages/procurement/components/bidParticulars/index.tsx
View file @
8811e237
...
...
@@ -53,7 +53,7 @@ const BidParticulars: React.FC<BidParticularsProps> = ({cardTitle}) => {
title
:
<
span
>
金额(含税)
<
br
/>
合计: ¥
{
totalMoney
}
</
span
>,
dataIndex
:
'money'
,
key
:
'money'
,
render
:
(
t
,
r
)
=>
Number
((
r
.
price
*
r
.
count
).
toFixed
(
2
))
render
:
(
t
,
r
)
=>
`¥
${
Number
((
r
.
price
*
r
.
count
).
toFixed
(
2
))}
`
}
return
tempCol
})
...
...
src/pages/procurement/components/descriptionsInfo/index.tsx
View file @
8811e237
...
...
@@ -44,6 +44,16 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
}
// 基本信息——招标
const
fieldList
=
apiType
===
'tenderInCallForBid'
?
[
{
title
:
'招标项目:'
,
name
:
'projectName'
},
{
title
:
'招标会员:'
,
name
:
'memberName'
},
{
title
:
'招标摘要:'
,
name
:
'remark'
},
]
:
[{
title
:
'招标项目:'
,
name
:
'projectName'
},
{
title
:
'项目预算:'
,
name
:
'budget'
,
render
:
(
t
)
=>
`¥
${
t
}
`
},
{
title
:
'采购类型:'
,
name
:
'purchaseType'
,
render
:
(
text
)
=>
PURCHASE_TYPE
[
text
]
},
{
title
:
'招标会员:'
,
name
:
'memberName'
},
{
title
:
'招标摘要:'
,
name
:
'remark'
},
]
const
basicColumnList
=
[
{
span
:
8
,
...
...
@@ -56,13 +66,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
},
{
span
:
8
,
fieldList
:
[
{
title
:
'招标项目:'
,
name
:
'projectName'
},
{
title
:
'项目预算:'
,
name
:
'budget'
,
render
:
(
t
)
=>
`¥
${
t
}
`
},
{
title
:
'采购类型:'
,
name
:
'purchaseType'
,
render
:
(
text
)
=>
PURCHASE_TYPE
[
text
]
},
{
title
:
'招标会员:'
,
name
:
'memberName'
},
{
title
:
'招标摘要:'
,
name
:
'remark'
},
]
fieldList
:
fieldList
},
{
span
:
8
,
...
...
@@ -110,7 +114,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
name
:
'inviteTenderFile'
,
render
:
(
t
,
r
)
=>
(<
div
>
{
_data
?.
submitTender
?.
file
?.
length
&&
_data
[
'submitTender'
][
'file'
].
map
((
_item
,
_i
)
=>
<
p
><
a
key=
{
`submitTenderFile${_i}`
}
target=
"_blank"
href=
{
_item
.
url
}
><
FileFilled
/>
{
_item
.
name
}
</
a
></
p
>)
_data
?.
submitTender
?.
file
?.
length
?
_data
[
'submitTender'
][
'file'
].
map
((
_item
,
_i
)
=>
<
p
><
a
key=
{
`submitTenderFile${_i}`
}
target=
"_blank"
href=
{
_item
.
url
}
><
FileFilled
/>
{
_item
.
name
}
</
a
></
p
>)
:
null
}
</
div
>)
},
...
...
@@ -157,7 +161,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
{
span
:
8
,
fieldList
:
[
{
title
:
'
期望
交付日期:'
,
name
:
'hopeDate'
,
render
:
(
text
)
=>
formatTimeString
(
text
)
},
{
title
:
'交付日期:'
,
name
:
'hopeDate'
,
render
:
(
text
)
=>
formatTimeString
(
text
)
},
{
title
:
'目标价:'
,
name
:
'targetPrice'
,
render
:
(
t
)
=>
`¥
${
t
}
`
},
]
},
...
...
@@ -178,6 +182,39 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
}
]
// 投标要求
const
tenderNeedList
=
[
{
span
:
8
,
fieldList
:
[
{
title
:
'投标截止时间:'
,
name
:
'createTime'
,
render
:
(
t
,
r
)
=>
formatTimeString
(
r
[
'inviteTenderStartTime'
])
+
'至'
+
formatTimeString
(
r
[
'inviteTenderEndTime'
])},
{
title
:
'开标时间:'
,
name
:
'openTenderTime'
,
render
:
(
text
)
=>
formatTimeString
(
text
)
},
]
},
{
span
:
8
,
fieldList
:
[
{
title
:
'交付日期:'
,
name
:
'hopeDate'
,
render
:
(
text
)
=>
formatTimeString
(
text
)
},
{
title
:
'目标价:'
,
name
:
'targetPrice'
,
render
:
(
t
)
=>
`¥
${
t
}
`
},
]
},
{
span
:
8
,
fieldList
:
[
{
title
:
'投标摘要:'
,
name
:
'inviteTenderRequirement'
,
render
:
(
t
)
=>
_data
[
'submitTender'
][
'remark'
]},
{
title
:
'投标文件:'
,
name
:
'inviteTenderFile'
,
render
:
(
t
,
r
)
=>
(<
div
>
{
_data
[
'submitTender'
][
'file'
].
map
((
_item
,
_i
)
=>
<
p
><
a
key=
{
`submitTenderFile${_i}`
}
target=
"_blank"
href=
{
_item
.
url
}
><
FileFilled
/>
{
_item
.
name
}
</
a
></
p
>)
}
</
div
>)
},
]
}
]
// 报名要求
const
registerNeedList
=
[
{
...
...
@@ -345,8 +382,10 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
/** 投标区块 **/
// @todo 中标结果 根据后端数据控制
const
result
=
_data
.
isWin
const
sumPrice
=
_data
?.
submitTender
?
_data
.
submitTender
.
submitTenderMateriel
.
reduce
((
a
,
b
)
=>
a
+
b
.
price
*
b
.
inviteTenderMateriel
.
count
,
0
)
:
0
const
alreadyPay
=
_data
?.
submitTender
?
_data
.
submitTender
.
submitTenderMateriel
.
reduce
((
a
,
b
)
=>
a
+
b
.
price
*
b
.
inviteTenderMateriel
.
count
*
b
.
awardTenderRatio
/
100
,
0
)
:
0
// const sumPrice = _data?.submitTender ? _data.submitTender.submitTenderMateriel.reduce((a, b) => a + b.price * b.inviteTenderMateriel.count, 0) : 0
// const alreadyPay = _data?.submitTender ? _data.submitTender.submitTenderMateriel.reduce((a, b) => a + b.price * b.inviteTenderMateriel.count * b.awardTenderRatio/100, 0) : 0
const
sumPrice
=
_data
?.
allWinnerAmount
const
alreadyPay
=
_data
?.
winnerAmount
const
bidResultList
=
[
{
...
...
@@ -443,7 +482,8 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
const
Type_Data_Map
=
{
// 招标大类显示招标信息 投标大类显示投标信息
'basicInfo'
:
(
apiType
[
0
]
===
'c'
||
apiType
===
'tenderInCallForBid'
)
?
basicColumnList
:
basicTenderColumnList
,
'bidNeed'
:
callForNeedList
,
// 投标显示投标要求
'bidNeed'
:
apiType
[
apiType
.
length
-
1
]
===
'r'
?
tenderNeedList
:
callForNeedList
,
'registerNeed'
:
registerNeedList
,
'checkNeed'
:
checkNeedList
,
'remarkNeed'
:
remarkNeedList
,
...
...
src/pages/procurement/tender/addBidRegister/index.tsx
View file @
8811e237
...
...
@@ -109,6 +109,11 @@ const AddBidRegister:React.FC<AddBidRegisterProps> = (props) => {
ele
.
style
.
marginBottom
=
'24px'
}
})
$
(
'onFieldChange'
,
'phoneCode'
).
subscribe
(
result
=>
{
if
(
result
.
props
.
enum
.
length
)
{
ctx
.
setFieldValue
(
'phoneCode'
,
'86'
)
}
})
}
}
expressionScope=
{
{
beforeUpload
,
...
...
src/pages/procurement/tender/addTender/components/relateProductDrawer/index.tsx
View file @
8811e237
...
...
@@ -84,8 +84,14 @@ export const RelevanceTenderProduct: React.FC<RelateProductDrawerProps> = ({
properties
:
{
"Text_0"
:
tempSchema
[
'properties'
][
'Text_0'
],
"Text_99"
:
tempSchema
[
'properties'
][
'Text_99'
]
}
}
})
setSelectRow
([])
setSelectedRowKeys
([])
// 没有关联商品清空相关回显信息
if
(
!
currentMaterial
?.
commodityId
&&
!
currentMaterial
?.
commoditySkuId
)
{
setSelectRow
([])
setSelectedRowKeys
([])
}
else
{
setSelectedRowKeys
([
currentMaterial
.
commodityId
])
}
console
.
log
(
currentMaterial
,
selectRow
)
}
},
[
visible
])
...
...
@@ -223,7 +229,6 @@ export const RelevanceTenderProduct: React.FC<RelateProductDrawerProps> = ({
formActions
.
submit
(
v
=>
{
// 点击确定 设置商品id和商品文件到对应物料行中
let
submitMateriel
=
schemaAction
.
getFieldValue
(
'submitTenderMateriel'
)
console
.
log
(
v
,
submitMateriel
,
selectRow
,
currentMaterial
)
submitMateriel
.
map
(
item
=>
{
if
(
item
.
id
===
currentMaterial
[
'id'
])
{
item
.
file
=
v
[
'file'
]
...
...
@@ -259,13 +264,8 @@ export const RelevanceTenderProduct: React.FC<RelateProductDrawerProps> = ({
</
Button
>
</
div
>)
// 子级抽屉点击确定 ~生成动态schema和dataList
const
onConfirm
=
()
=>
{
setChildVisible
(
false
)
// console.log('确定', selectRow)//////////
formActions
.
setFieldValue
(
'tenderProduct'
,
selectRow
[
0
])
PublicApi
.
getProductCommodityGetCommodityAttributeByUnitPriceAndPicId
({
unitPriceAndPicId
:
selectRow
[
0
][
'id'
]
}).
then
(
res
=>
{
console
.
log
(
res
.
data
)
const
getCommodityUnitAndRender
=
(
uid
)
=>
{
PublicApi
.
getProductCommodityGetCommodityAttributeByUnitPriceAndPicId
({
unitPriceAndPicId
:
uid
}).
then
(
res
=>
{
setDataIdList
(()
=>
{
let
origin
=
[...
dataIdList
]
res
.
data
.
map
((
item
,
index
)
=>
{
...
...
@@ -308,6 +308,13 @@ export const RelevanceTenderProduct: React.FC<RelateProductDrawerProps> = ({
})
}
// 子级抽屉点击确定 ~生成动态schema和dataList
const
onConfirm
=
()
=>
{
setChildVisible
(
false
)
formActions
.
setFieldValue
(
'tenderProduct'
,
selectRow
[
0
])
getCommodityUnitAndRender
(
selectRow
[
0
][
'id'
])
}
const
fetchData
=
(
params
:
any
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getProductCommodityCommonGetCommodityListBySeller
({
...
...
src/pages/procurement/tender/addTender/constant/index.tsx
View file @
8811e237
...
...
@@ -5,12 +5,12 @@ import { BidInStateTexts, BidOutStateTexts } from '@/constants/procurement'
/** 对后端返回的投标数据转换为render数据 */
export
const
processTenderData
=
(
tenderData
)
=>
{
let
alreadyData
=
{
//--
毫无意义
仅显示
//-- 仅显示
submitTenderCode
:
tenderData
.
code
,
projectName
:
tenderData
.
inviteTender
.
projectName
,
inviterTenderCode
:
tenderData
.
inviteTender
.
code
,
memberName
:
tenderData
.
inviteTender
.
memberName
,
inviteTenderAreaList
:
tenderData
.
inviteTender
.
inviteTenderAreaList
,
inviteTenderAreaList
:
tenderData
.
inviteTender
.
inviteTenderAreaList
.
map
(
item
=>
`
${
item
.
provinceName
}${
item
.
cityName
}
`
).
join
(
'/'
)
,
inviteTenderOutStatus
:
tenderData
.
submitTenderOutStatusValue
,
inviteTenderInStatus
:
tenderData
.
submitTenderInStatusValue
,
inviteTenderStartTime
:
unixChangeRender
(
tenderData
.
inviteTender
.
inviteTenderStartTime
),
...
...
src/pages/procurement/tender/addTender/schema/index.ts
View file @
8811e237
...
...
@@ -50,15 +50,20 @@ export const formSchema: ISchema = {
title
:
'招标会员'
,
readOnly
:
true
,
},
// inviteTenderAreaList: {
// type: 'array',
// title: '适用城市',
// 'x-component': 'MultAddress',
// 'x-component-props': {
// placeholder: '选择区域',
// warningText: '请完善适用地市',
// },
// default: [{ provinceCode: null, province: null, cityCode: null, city: null }],
// readOnly: true,
// },
inviteTenderAreaList
:
{
type
:
'
array
'
,
type
:
'
string
'
,
title
:
'适用城市'
,
'x-component'
:
'MultAddress'
,
'x-component-props'
:
{
placeholder
:
'选择区域'
,
warningText
:
'请完善适用地市'
,
},
default
:
[{
provinceCode
:
null
,
province
:
null
,
cityCode
:
null
,
city
:
null
}],
readOnly
:
true
,
},
inviteTenderOutStatus
:
{
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/index.less
View file @
8811e237
...
...
@@ -28,6 +28,9 @@
width: 104px;
color: #909399;
margin: 0;
p{
margin: 0;
}
}
.content{
flex: 1;
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/index.tsx
View file @
8811e237
...
...
@@ -39,14 +39,40 @@ const BidCommonLayout: React.FC<BidCommonLayoutProps> = (props: any) => {
return
data
.
extra
?
(<
FilesItem
files=
{
data
.
extra
}
/>)
:
'-'
}
}
const
_returnLabel
=
(
child
:
any
)
=>
{
const
_icon
=
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>;
if
(
child
.
tips
)
{
return
(
<
Tooltip
placement=
"top"
title=
{
child
.
tips
}
>
{
child
.
isMix
?
(
<
p
>
{
child
.
isMix
[
0
]
}{
_icon
}
<
p
>
{
child
.
isMix
[
1
]
}
:
</
p
>
</
p
>
)
:
<
p
>
{
child
.
label
}
:
{
_icon
}
</
p
>
}
</
Tooltip
>
)
}
else
{
if
(
child
.
isMix
)
{
return
(
<>
<
p
>
{
child
.
isMix
[
0
]
}
</
p
>
<
p
>
{
child
.
isMix
[
1
]
}
:
</
p
>
</>
)
}
else
{
return
`
${
child
.
label
}
: `
;
}
}
}
const
_returnChild
=
(
child
,
key
)
=>
{
if
(
child
.
type
===
'text'
||
child
.
type
===
'area'
||
child
.
type
===
'files'
)
{
return
(
<
div
className=
{
selfStyles
.
baseItem
}
key=
{
key
}
>
<
h5
className=
{
selfStyles
.
label
}
>
{
child
.
tips
?
<
Tooltip
placement=
"top"
title=
{
child
.
tips
}
>
{
child
.
label
}
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
</
Tooltip
>
:
`${child.label}: `
}
{
_returnLabel
(
child
)
}
</
h5
>
<
h5
className=
{
selfStyles
.
content
}
>
{
_returnItem
(
child
)
}
</
h5
>
</
div
>
...
...
@@ -56,7 +82,7 @@ const BidCommonLayout: React.FC<BidCommonLayoutProps> = (props: any) => {
<
div
className=
{
selfStyles
.
pieItem
}
key=
{
key
}
>
<
PieItem
/>
<
div
className=
{
selfStyles
.
box
}
>
<
div
className=
{
selfStyles
.
title
}
>
{
child
.
label
}
:
</
div
>
<
div
className=
{
selfStyles
.
title
}
>
{
child
.
label
}
:
</
div
>
<
div
className=
{
selfStyles
.
price
}
>
¥114,000.00
</
div
>
</
div
>
</
div
>
...
...
src/pages/transaction/purchaseAbility/offter/detail/index.tsx
View file @
8811e237
...
...
@@ -182,7 +182,7 @@ const QuoteDetails = () => {
<
PeripheralLayout
no=
{
dataSource
.
quotedPriceNo
}
detail=
{
dataSource
.
quotedDetails
}
tabLink=
{
(
pathPci
===
'offter'
&&
dataSource
.
externalState
===
99
)
?
TABLINK2
[
dataSource
.
isPrize
]
:
TABLINK1
}
tabLink=
{
(
pathPci
===
'offter'
&&
dataSource
.
externalState
===
99
)
?
TABLINK2
[
dataSource
.
isPrize
?
1
:
0
]
:
TABLINK1
}
effect=
{
<>
{
path
===
'detail'
...
...
src/pages/transaction/purchaseAbility/onlineBid/detail/index.tsx
View file @
8811e237
...
...
@@ -84,7 +84,7 @@ const SearchDetail = () => {
setBasicEffect
([
{
col
:
[
{
label
:
'竞价
编
号'
,
extra
:
data
.
biddingNo
,
type
:
'text'
},
{
label
:
'竞价
单
号'
,
extra
:
data
.
biddingNo
,
type
:
'text'
},
{
label
:
'竞价摘要'
,
extra
:
data
.
details
,
type
:
'text'
},
{
label
:
'外部状态'
,
extra
:
<
StatusTag
type=
{
BID_EXTERNALSTATE_COLOR
(
data
.
externalState
)
}
title=
{
data
.
externalStateName
}
/>,
type
:
'text'
},
{
label
:
'内部状态'
,
extra
:
<
Badge
status=
{
BID_INTERNALSTATE_COLOR
(
data
.
interiorState
)
}
text=
{
data
.
interiorStateName
}
/>,
type
:
'text'
},
...
...
@@ -139,7 +139,7 @@ const SearchDetail = () => {
},
{
col: [
{ label: '公开当前最低报价', extra: transforType[data.isOpenPurchase], type: 'text', tips: '选择公开当前最低报价,竞价过程中将供应商所报当前最低价在竞价页面即时公开。' },
{ label: '公开当前最低报价', extra: transforType[data.isOpenPurchase], type: 'text', tips: '选择公开当前最低报价,竞价过程中将供应商所报当前最低价在竞价页面即时公开。'
, isMix: ['公开当前最低', '报价']
},
{ label: '公开报价排名', extra: transforType[data.isOpenRanking], type: 'text', tips: '选择公开报价排名,竞价过程中将供应商当前报价排名在竞价页面即时公开。' },
]
},
...
...
src/pages/transaction/purchaseAbility/purchasDoor/purchasInfo/index.tsx
View file @
8811e237
...
...
@@ -37,6 +37,7 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
const
[
selectCategoryData
,
setSelectCategoryData
]
=
useState
<
any
>
([
defaultCategoryData
])
const
[
companyPics
,
setCompanyPics
]
=
useState
([])
// 厂房照片
const
[
honorPics
,
setHonorPics
]
=
useState
([])
// 资质荣誉
const
[
advertPics
,
setAdvertPics
]
=
useState
([])
// 采购门户广告图
const
[
slideshowBOList
,
setSlideshowBOList
]
=
useState
([])
// 首页轮播图
const
[
logo
,
setLogo
]
=
useState
<
string
>
(
""
)
const
[
shopInfo
,
setShopInfo
]
=
useState
<
any
>
()
...
...
@@ -106,6 +107,7 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
setCompanyPics
(
data
.
companyPics
||
[])
setHonorPics
(
data
.
honorPics
||
[])
setSlideshowBOList
(
data
.
slideshowBOList
||
[])
setAdvertPics
(
data
.
advertPics
||
[])
if
(
data
.
albumName
&&
data
.
albumUrl
)
{
setFile
({
albumName
:
data
.
albumName
,
...
...
@@ -119,6 +121,7 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
companyPics
:
data
.
companyPics
||
[],
honorPics
:
data
.
honorPics
||
[],
slideshowBOList
:
data
.
slideshowBOList
||
[],
advertPics
:
data
.
advertPics
||
[]
})
}
}
...
...
@@ -186,6 +189,15 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
})
}
const
handleDeleteAdvertPicsItem
=
(
itemInfo
:
any
)
=>
{
let
result
=
[...
advertPics
]
result
=
result
.
filter
(
item
=>
item
!==
itemInfo
)
setAdvertPics
(
result
)
form
.
setFieldsValue
({
advertPics
:
result
})
}
const
handleDeleteIndexPicsItem
=
(
itemInfo
:
any
)
=>
{
let
result
=
[...
slideshowBOList
]
result
=
result
.
filter
(
item
=>
item
!==
itemInfo
)
...
...
@@ -294,6 +306,17 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
}
/**
* 采购门户广告图
* @param url
*/
const
handleAddadvertPics
=
(
url
:
string
)
=>
{
setAdvertPics
([...
advertPics
,
url
])
form
.
setFieldsValue
({
advertPics
:
[...
advertPics
,
url
]
})
}
/**
* 添加首页轮播图
* @param url
*/
...
...
@@ -317,65 +340,7 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
slideshowBOList
:
result
})
}
/**
const handleMallSelectChange = (mallId: number) => {
setShopId(mallId)
console.log(mallId, shopInfo)
if (!shopInfo) {
return null
}
if (shopInfo.shopId && shopInfo.memberId) {
getMallItemAndSetUrl(mallId)
}
}
const getMallItemAndSetUrl = (mallId) => {
let result = ""
const mallItem = allMallList.filter(item => item.id === mallId)[0]
if (!mallItem) {
return ""
}
if (mallItem.environment === 1) {
let newSiteUrl = siteUrl
if (newSiteUrl.indexOf('http') < 0) {
newSiteUrl = `http://` + newSiteUrl
}
switch (mallItem.type) {
case 1:
result = `${newSiteUrl}/shop?shopId=${btoa(JSON.stringify({ shopId: shopInfo.id, memberId: shopInfo.memberId, roleId: shopInfo.roleId }))}`
break
case 2:
result = `${newSiteUrl}/shop/pointsMall?shopId=${btoa(JSON.stringify({ shopId: shopInfo.id, memberId: shopInfo.memberId, roleId: shopInfo.roleId }))}`
break
default:
result = ""
break
}
} else {
result = ""
}
return result
}
const getSelectMallStoreUrl = () => {
if (!shopInfo) {
return null
}
if (shopId && shopInfo.memberId) {
const resUrl = getMallItemAndSetUrl(shopId)
return resUrl ? (
<div className={styles.shop_url}>
<span>当前店铺链接:</span>
<label>{resUrl}</label>
<CopyOutlined className={styles.copy_icon} onClick={() => handleCopyLinke(resUrl)} />
</div>
) : null
}
return null
}
*/
const
handleFormValueChange
=
()
=>
{
setFormIsHalfFilledOut
(
true
)
}
...
...
@@ -512,6 +477,33 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
</
Form
.
Item
>
<
Form
.
Item
labelAlign=
"left"
name=
"advertPics"
label=
{
<
RequireItem
label=
"采购门户广告图"
/>
}
>
<
div
className=
{
styles
.
form_item_wrap
}
>
<
div
className=
{
styles
.
img_list
}
>
{
advertPics
.
map
((
item
,
index
)
=>
(
<
div
key=
{
index
}
className=
{
cx
(
styles
.
upload_btn
,
styles
.
large
,
styles
.
upload
)
}
>
<
div
className=
{
styles
.
delete_btn
}
onClick=
{
()
=>
handleDeleteAdvertPicsItem
(
item
)
}
><
DeleteOutlined
/></
div
>
<
div
className=
{
styles
.
upload_img
}
>
<
Image
width=
"100%"
height=
"100%"
src=
{
item
}
/>
</
div
>
</
div
>
))
}
<
UploadImage
imgUrl=
{
""
}
large=
{
true
}
fileMaxSize=
{
1024
}
size=
"106x107"
onChange=
{
(
url
)
=>
handleAddadvertPics
(
url
)
}
/>
</
div
>
</
div
>
</
Form
.
Item
>
<
Form
.
Item
labelAlign=
"left"
name=
"albumName"
label=
{
<
RequireItem
label=
"宣传画册"
/>
}
className=
{
styles
.
revise_style
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/detail/index.tsx
View file @
8811e237
...
...
@@ -119,7 +119,7 @@ const SearchDetail = () => {
setBasicEffect
([
{
col
:
[
{
label
:
'竞价
编
号'
,
extra
:
data
.
biddingNo
,
type
:
'text'
},
{
label
:
'竞价
单
号'
,
extra
:
data
.
biddingNo
,
type
:
'text'
},
{
label
:
'竞价摘要'
,
extra
:
data
.
details
,
type
:
'text'
},
{
label
:
'外部状态'
,
extra
:
<
StatusTag
type=
{
BID_EXTERNALSTATE_COLOR
(
data
.
externalState
)
}
title=
{
data
.
externalStateName
}
/>,
type
:
'text'
},
{
label
:
'内部状态'
,
extra
:
<
Badge
status=
{
BID_INTERNALSTATE_COLOR
(
data
.
interiorState
)
}
text=
{
data
.
interiorStateName
}
/>,
type
:
'text'
},
...
...
@@ -173,7 +173,7 @@ const SearchDetail = () => {
},
{
col
:
[
{
label
:
'公开当前最低报价'
,
extra
:
transforType
[
data
.
isOpenPurchase
],
type
:
'text'
,
tips
:
'选择公开当前最低报价,竞价过程中将供应商所报当前最低价在竞价页面即时公开。'
},
{
label
:
'公开当前最低报价'
,
extra
:
transforType
[
data
.
isOpenPurchase
],
type
:
'text'
,
tips
:
'选择公开当前最低报价,竞价过程中将供应商所报当前最低价在竞价页面即时公开。'
,
isMix
:
[
'公开当前最低'
,
'报价'
]
},
{
label
:
'公开报价排名'
,
extra
:
transforType
[
data
.
isOpenRanking
],
type
:
'text'
,
tips
:
'选择公开报价排名,竞价过程中将供应商当前报价排名在竞价页面即时公开。'
},
]
},
...
...
@@ -567,7 +567,7 @@ const SearchDetail = () => {
},
[
pathPci
,
awardResult
])
const
_handleBiddingReturn
=
(
signUpIdea
:
string
,
urls
:
any
)
=>
{
if
(
confirmLoading
)
{
if
(
confirmLoading
)
{
return
;
}
const
_params
=
{
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/components/material.tsx
View file @
8811e237
...
...
@@ -16,6 +16,7 @@ import DrawerWrite from '../modal/drawerWrite';
import
{
PublicApi
}
from
'@/services/api'
;
import
UploadImport
from
'@/components/UploadImport'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
AnchorModal
from
'../modal'
;
const
layout
:
any
=
{
colon
:
false
,
...
...
@@ -220,10 +221,10 @@ const Material: React.FC<Iprops> = (props: any) => {
)
}
{
materielMode
===
1
&&
(
<
DrawerWrite
<
AnchorModal
preview=
{
isPreview
}
edit=
{
edit
}
flag
=
{
flag
}
visible
=
{
flag
}
onClose=
{
handleClose
}
onConfirm=
{
fetchTableList
}
/>
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/modal/drawerWrite.tsx
View file @
8811e237
...
...
@@ -568,7 +568,6 @@ const DrawerWrite: React.FC<Iprops> = (props: any) => {
}
}
}
/>
</>
)
}
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/modal/index.less
View file @
8811e237
...
...
@@ -85,3 +85,96 @@
.marginTop {
margin-top: 48px;
}
.container {
display: flex;
height: 100%;
overflow: hidden;
.menu {
width: 200px;
height: 100%;
border-right: 1px solid #F4F5F7;
.menuItem {
padding: 18px 16px;
color: #606266;
}
.active {
position: relative;
font-weight: bold;
color: #303133;
&::after {
content: '';
height: 24px;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
border-left: 3px solid @main-color;
transform: scaleY(1);
opacity: 1;
transition: transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1);
}
}
}
.content {
width: 100%;
padding: 24px 16px;
overflow-y: scroll;
.anchor {
color: #909399;
font-size: 14px;
position: relative;
padding-left: 6px;
&::after {
content: '';
height: 14px;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
border-left: 2px solid @main-color;
transform: scaleY(1);
opacity: 1;
transition: transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1);
}
}
.upload_item {
padding: 5px 8px;
margin-bottom: 16px;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #FAFBFC;
.upload_left {
display: flex;
align-items: center;
color: #303133;
:global {
.anticon-file-word {
color: #4279df;
font-size: 20px;
margin-right: 8px;
}
}
}
.upload_right {
color: @main-color;
cursor: pointer;
:global {
.anticon-delete {
margin-left: 19px;
color: #C0C4CC;
}
}
}
}
}
}
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/modal/index.tsx
0 → 100644
View file @
8811e237
This diff is collapsed.
Click to expand it.
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