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
3894d36b
Commit
3894d36b
authored
Feb 18, 2022
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v2-220318' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into v2-220318
parents
a69fe7f6
2bd2dcbe
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
484 additions
and
44 deletions
+484
-44
inquiryOffer.ts
config/routes/dealAbilityRoute/inquiryOffer.ts
+6
-0
index.ts
config/routes/index.ts
+1
-1
AreaSelectItem.less
...s/AddressSelect/components/AreaSelect/AreaSelectItem.less
+0
-0
AreaSelectItem.tsx
...ts/AddressSelect/components/AreaSelect/AreaSelectItem.tsx
+105
-0
index.less
...components/AddressSelect/components/AreaSelect/index.less
+6
-0
index.tsx
src/components/AddressSelect/components/AreaSelect/index.tsx
+106
-0
basicLayout.tsx
src/pages/authConfig/portalSystem/components/basicLayout.tsx
+3
-3
contactLayout.tsx
...ages/authConfig/portalSystem/components/contactLayout.tsx
+12
-11
index.tsx
src/pages/authConfig/portalSystem/index.tsx
+28
-26
index.tsx
...saction/dealAbility/inquiryOffer/waitAllotOrder/index.tsx
+108
-0
schema.ts
...saction/dealAbility/inquiryOffer/waitAllotOrder/schema.ts
+106
-0
index.tsx
src/utils/index.tsx
+3
-3
No files found.
config/routes/dealAbilityRoute/inquiryOffer.ts
View file @
3894d36b
...
...
@@ -10,6 +10,12 @@ export default [
name
:
'询价报价'
,
routes
:
[
{
/** 待分配询价单 */
path
:
'/memberCenter/tranactionAbility/inquiryOffer/waitAllotOrder'
,
name
:
'待分配询价单'
,
component
:
'@/pages/transaction/dealAbility/inquiryOffer/waitAllotOrder'
,
},
{
/** 询价单查询 */
path
:
'/memberCenter/tranactionAbility/inquiryOffer/inquirySearch'
,
name
:
'询价单查询'
,
...
...
config/routes/index.ts
View file @
3894d36b
...
...
@@ -24,7 +24,7 @@ import asyncRoutes from '../router.config.json';
// import contracRoute from './contracRoute';
// export const routes = [CommodityRoute, MemberRoute, ShopRoute, ChannelRoute, TranactionRoute, AfterService, PayandSettleRoute, LogisticsRoute, AuthConfigRoute, HandlingRoute, BalaceRoute]
const
isDev
=
fals
e
;
const
isDev
=
tru
e
;
const
homeRoute
=
{
path
:
`/memberCenter/home`
,
name
:
'home'
,
...
...
src/components/AddressSelect/components/AreaSelect/AreaSelectItem.less
0 → 100644
View file @
3894d36b
src/components/AddressSelect/components/AreaSelect/AreaSelectItem.tsx
0 → 100644
View file @
3894d36b
/*
* @Description: 省市区选择组件子项
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Select
}
from
'antd'
;
import
{
getManageAreaByPcode
}
from
'@/services/ManageV2Api'
;
export
type
AreaSelectValueType
=
{
/**
* 名称
*/
name
?:
string
,
/**
* 编码
*/
code
:
string
,
}
export
type
OptionType
=
{
label
:
string
,
value
:
string
,
}
interface
AreaSelectItemProps
{
/**
* 父级code,null 表示第一层级,也就是省
*/
pcode
:
string
|
null
,
/**
* 值,code数组
*/
value
?:
AreaSelectValueType
,
/**
* 选择触发改变
*/
onChange
?:
(
value
:
AreaSelectValueType
)
=>
void
,
/**
* 自定义外部 className
*/
customClassName
?:
string
,
}
const
AreaSelectItem
:
React
.
FC
<
AreaSelectItemProps
>
=
(
props
)
=>
{
const
{
pcode
,
value
,
onChange
,
customClassName
}
=
props
;
const
[
innerValue
,
setInnerValue
]
=
useState
<
string
|
undefined
>
(
undefined
);
const
[
options
,
setOptions
]
=
useState
<
OptionType
[]
>
([]);
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
const
getAreaByPcode
=
(
code
?:
string
)
=>
getManageAreaByPcode
({
pcode
:
code
,
});
const
initProvinceOptions
=
async
()
=>
{
if
(
pcode
===
undefined
)
{
setOptions
([]);
return
;
}
setLoading
(
true
);
const
res
=
await
getAreaByPcode
(
pcode
);
if
(
res
.
code
===
1000
)
{
setOptions
(
res
.
data
.
map
((
item
)
=>
({
label
:
item
.
name
,
value
:
item
.
code
})));
}
setLoading
(
false
);
};
useEffect
(()
=>
{
initProvinceOptions
();
},
[
pcode
]);
useEffect
(()
=>
{
if
(
'value'
in
props
)
{
setInnerValue
(
value
?.
code
);
}
},
[
value
]);
const
triggerChange
=
(
value
:
AreaSelectValueType
)
=>
{
if
(
onChange
)
{
onChange
(
value
);
}
};
const
handleSelectChange
=
(
value
:
string
)
=>
{
if
(
!
(
'value'
in
props
))
{
setInnerValue
(
value
);
}
triggerChange
(
value
?
{
name
:
options
.
find
((
curOptions
)
=>
curOptions
.
value
===
value
)?.
label
||
''
,
code
:
value
,
}
:
undefined
);
};
return
(
<
Select
className=
{
customClassName
}
options=
{
options
}
value=
{
innerValue
}
onChange=
{
handleSelectChange
}
loading=
{
loading
}
allowClear
/>
);
};
export
default
AreaSelectItem
;
src/components/AddressSelect/components/AreaSelect/index.less
0 → 100644
View file @
3894d36b
.area-select {
&-item {
width: 100%;
}
}
\ No newline at end of file
src/components/AddressSelect/components/AreaSelect/index.tsx
0 → 100644
View file @
3894d36b
/*
* @Description: 省市区选择组件
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Row
,
Col
}
from
'antd'
;
import
themeConfig
from
'@/../config/lingxi.theme.config'
;
import
AreaSelectItem
,
{
AreaSelectValueType
}
from
'./AreaSelectItem'
;
import
styles
from
'./index.less'
;
interface
AreaSelectProps
{
/**
* 值,code数组
*/
value
?:
AreaSelectValueType
[],
/**
* 选择触发改变
*/
onChange
?:
(
value
:
AreaSelectValueType
[])
=>
void
,
}
const
MAX
=
4
;
// 到街道
const
AreaSelect
:
React
.
FC
<
AreaSelectProps
>
=
(
props
)
=>
{
const
{
value
,
onChange
,
}
=
props
;
const
[
innerValues
,
setInnerValues
]
=
useState
<
AreaSelectValueType
[]
>
([]);
useEffect
(()
=>
{
if
(
'value'
in
props
&&
value
?.
length
)
{
setInnerValues
(
value
);
}
},
[
value
]);
const
triggerChange
=
(
value
:
AreaSelectValueType
[])
=>
{
if
(
onChange
)
{
onChange
(
value
);
}
};
const
handleSelectChange
=
(
value
:
AreaSelectValueType
,
index
:
number
)
=>
{
let
newInnerValues
=
[...
innerValues
];
newInnerValues
[
index
]
=
value
;
// 如果是清空操作,则把当前层级之后的 选项 及 值 也清空
if
(
!
value
)
{
let
i
=
index
+
1
;
while
(
i
<
newInnerValues
.
length
)
{
newInnerValues
[
i
]
=
undefined
;
i
++
;
}
newInnerValues
=
newInnerValues
.
filter
(
Boolean
);
triggerChange
([]);
}
// 全部选择了才触发 onChange
if
(
newInnerValues
.
length
===
MAX
)
{
triggerChange
(
newInnerValues
);
}
else
{
setInnerValues
(
newInnerValues
);
}
};
return
(
<
div
className=
{
styles
[
'area-select'
]
}
>
<
Row
gutter=
{
parseInt
(
themeConfig
[
'@padding-sm'
])
}
>
<
Col
span=
{
6
}
>
<
AreaSelectItem
pcode=
{
null
}
customClassName=
{
styles
[
'area-select-item'
]
}
value=
{
innerValues
[
0
]
}
onChange=
{
(
value
)
=>
handleSelectChange
(
value
,
0
)
}
/>
</
Col
>
<
Col
span=
{
6
}
>
<
AreaSelectItem
pcode=
{
innerValues
[
0
]?.
code
}
customClassName=
{
styles
[
'area-select-item'
]
}
value=
{
innerValues
[
1
]
}
onChange=
{
(
value
)
=>
handleSelectChange
(
value
,
1
)
}
/>
</
Col
>
<
Col
span=
{
6
}
>
<
AreaSelectItem
pcode=
{
innerValues
[
1
]?.
code
}
customClassName=
{
styles
[
'area-select-item'
]
}
value=
{
innerValues
[
2
]
}
onChange=
{
(
value
)
=>
handleSelectChange
(
value
,
2
)
}
/>
</
Col
>
<
Col
span=
{
6
}
>
<
AreaSelectItem
pcode=
{
innerValues
[
2
]?.
code
}
customClassName=
{
styles
[
'area-select-item'
]
}
value=
{
innerValues
[
3
]
}
onChange=
{
(
value
)
=>
handleSelectChange
(
value
,
3
)
}
/>
</
Col
>
</
Row
>
</
div
>
);
};
export
default
AreaSelect
;
src/pages/authConfig/portalSystem/components/basicLayout.tsx
View file @
3894d36b
...
...
@@ -11,15 +11,15 @@ const BasicLayout: React.FC<{}> = () => {
>
<
Row
gutter=
{
[
48
,
24
]
}
>
<
Col
span=
{
12
}
>
<
Form
.
Item
label=
'门户代码'
name=
''
rules=
{
[{
required
:
true
,
message
:
'请输入门户代码'
}]
}
>
<
Form
.
Item
label=
'门户代码'
name=
'
code
'
rules=
{
[{
required
:
true
,
message
:
'请输入门户代码'
}]
}
>
<
Input
placeholder=
'请输入'
maxLength=
{
12
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'门店名称'
name=
''
rules=
{
[{
required
:
true
,
message
:
'请输门店名称'
}]
}
>
<
Form
.
Item
label=
'门店名称'
name=
'
name
'
rules=
{
[{
required
:
true
,
message
:
'请输门店名称'
}]
}
>
<
Input
placeholder=
'请输入'
maxLength=
{
20
}
/>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
12
}
>
<
Form
.
Item
label=
'门店LOGO'
name=
''
>
<
Form
.
Item
label=
'门店LOGO'
name=
'
logo
'
>
<
UploadImage
imgUrl=
''
fileMaxSize=
{
50
}
...
...
src/pages/authConfig/portalSystem/components/contactLayout.tsx
View file @
3894d36b
...
...
@@ -2,6 +2,7 @@ import React from 'react';
import
{
Button
,
Col
,
Form
,
Input
,
Row
,
Select
}
from
'antd'
;
import
CardLayout
from
'@/pages/transaction/components/card'
import
{
LinkOutlined
}
from
'@ant-design/icons'
;
import
AreaSelect
from
'@/components/AddressSelect/components/AreaSelect'
;
const
ContactLayout
:
React
.
FC
<
{}
>
=
()
=>
{
...
...
@@ -14,20 +15,20 @@ const ContactLayout: React.FC<{}> = () => {
>
<
Row
gutter=
{
[
48
,
24
]
}
>
<
Col
span=
{
12
}
>
<
Form
.
Item
label=
'门店地址'
name=
''
required
>
<
span
>
四级联动
</
span
>
<
Form
.
Item
label=
'门店地址'
name=
'
areaSelect
'
required
>
<
AreaSelect
/
>
</
Form
.
Item
>
<
Form
.
Item
label=
'详细地址'
name=
''
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Form
.
Item
label=
'详细地址'
name=
'
address
'
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Input
.
TextArea
autoSize
maxLength=
{
30
}
placeholder=
'请填写详细地址,路名、门牌号等'
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'联系人姓名'
name=
''
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Form
.
Item
label=
'联系人姓名'
name=
'
contactName
'
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Input
placeholder=
'请输入您的姓名'
maxLength=
{
8
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'联系电话'
name=
''
required
>
<
Form
.
Item
label=
'联系电话'
required
>
<
Row
gutter=
{
16
}
>
<
Col
span=
{
8
}
>
<
Form
.
Item
name=
'
phone
Code'
name=
'
country
Code'
rules=
{
[{
required
:
true
,
message
:
'请选择'
}]
}
>
<
Select
>
...
...
@@ -39,7 +40,7 @@ const ContactLayout: React.FC<{}> = () => {
</
Col
>
<
Col
span=
{
16
}
>
<
Form
.
Item
name=
'
contactP
hone'
name=
'
p
hone'
rules=
{
[{
required
:
true
,
message
:
'请选择'
}]
}
>
<
Input
type=
'number'
maxLength=
{
11
}
/>
...
...
@@ -49,16 +50,16 @@ const ContactLayout: React.FC<{}> = () => {
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
12
}
>
<
Form
.
Item
label=
'邮箱'
name=
''
>
<
Form
.
Item
label=
'邮箱'
name=
'
email
'
>
<
Input
placeholder=
'请输入'
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'邮编'
name=
''
>
<
Form
.
Item
label=
'邮编'
name=
'
postalCode
'
>
<
Input
placeholder=
'请输入'
maxLength=
{
6
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'职位'
name=
''
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Form
.
Item
label=
'职位'
name=
'
position
'
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Input
placeholder=
'请输入'
maxLength=
{
10
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'所属组织机构'
name=
''
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Form
.
Item
label=
'所属组织机构'
name=
'
orgId
'
rules=
{
[{
required
:
true
,
message
:
''
}]
}
>
<
Input
.
Search
readOnly
enterButton=
{
<
div
className=
'connectBtn'
><
LinkOutlined
style=
{
{
marginRight
:
4
}
}
/></
div
>
}
/>
</
Form
.
Item
>
</
Col
>
...
...
src/pages/authConfig/portalSystem/index.tsx
View file @
3894d36b
import
React
,
{
Fragment
,
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Row
,
Col
,
Space
,
Popconfirm
}
from
'antd'
;
import
{
Button
,
Row
,
Col
,
Space
,
Popconfirm
,
Switch
}
from
'antd'
;
import
TableLayout
from
'@/components/TableLayout'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
getMemberStorePage
}
from
'@/services/MemberV2Api/id13430'
;
const
PortalSystem
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
...
...
@@ -15,24 +16,24 @@ const PortalSystem = () => {
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'门店代码'
,
key
:
'
id
'
,
dataIndex
:
'
id
'
,
key
:
'
code
'
,
dataIndex
:
'
code
'
,
},
{
title
:
'门店名称'
,
key
:
'
activityN
ame'
,
dataIndex
:
'
activityN
ame'
,
key
:
'
n
ame'
,
dataIndex
:
'
n
ame'
,
render
:
(
text
,
record
)
=>
<
EyePreview
url=
{
`/marketingManage/marketing/waitAddedMarketing/preview?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'门店地址'
,
key
:
'
activityType
'
,
dataIndex
:
'
activityType
'
,
key
:
'
fullAddress
'
,
dataIndex
:
'
fullAddress
'
,
},
{
title
:
'邮编'
,
key
:
'
startTim
e'
,
dataIndex
:
'
startTim
e'
,
key
:
'
postalCod
e'
,
dataIndex
:
'
postalCod
e'
,
},
{
title
:
'所属机构'
,
...
...
@@ -41,8 +42,8 @@ const PortalSystem = () => {
},
{
title
:
'联系人'
,
key
:
'
signUpStartTi
me'
,
dataIndex
:
'
signUpStartTi
me'
,
key
:
'
contactNa
me'
,
dataIndex
:
'
contactNa
me'
,
},
{
title
:
'联系电话'
,
...
...
@@ -51,8 +52,9 @@ const PortalSystem = () => {
},
{
title
:
'状态'
,
key
:
'signUpEndTime'
,
dataIndex
:
'signUpEndTime'
,
key
:
'showEnable'
,
dataIndex
:
'showEnable'
,
render
:
(
text
,
record
)
=>
<
Switch
/>
},
{
title
:
'操作'
,
...
...
@@ -60,14 +62,14 @@ const PortalSystem = () => {
dataIndex
:
'state'
,
render
:
(
text
,
record
)
=>
(
<
Fragment
>
<
Button
type=
'link'
>
编辑
</
Button
>
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
cancelText=
"否"
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
{
record
.
showUpdate
&&
<
Button
type=
'link'
>
编辑
</
Button
>
}
{
record
.
showDelete
&&
(
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
cancelText=
"否"
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
)
}
</
Fragment
>
)
}
...
...
@@ -78,9 +80,9 @@ const PortalSystem = () => {
selectedRow
reload=
{
ref
}
columns=
{
columns
}
effects=
"
id
"
effects=
"
name
"
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
fetch=
{
[]
}
fetch=
{
getMemberStorePage
}
schema=
{
{
type
:
"object"
,
properties
:
{
...
...
@@ -95,7 +97,7 @@ const PortalSystem = () => {
type
:
"object"
,
"x-component"
:
"controllerBtns"
,
},
id
:
{
name
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
...
...
@@ -126,7 +128,7 @@ const PortalSystem = () => {
inline
:
true
},
properties
:
{
activity
Name
:
{
contact
Name
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'联系人'
,
...
...
@@ -135,7 +137,7 @@ const PortalSystem = () => {
},
},
},
activityType
:
{
status
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'状态'
,
...
...
src/pages/transaction/dealAbility/inquiryOffer/waitAllotOrder/index.tsx
0 → 100644
View file @
3894d36b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
Table
from
'@/components/TableLayout'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
import
{
Row
,
Col
,
Button
,
Tag
,
Badge
}
from
'antd'
;
import
{
WAITALLOTORDERSCHEMA
}
from
'./schema'
;
import
{
EXTERNALSTATE_COLOR
,
INTERNALSTATE_COLOR
}
from
'@/pages/transaction/components/stateColor'
;
import
{
getTransactionAuditProductQuotationList
,
getTransactionProductInquiryExternalStateEnum
,
getTransactionProductInquiryInteriorStateEnum
,
postTransactionProductQuotationtAuditAll
}
from
'@/services/TransactionV2Api'
;
const
intl
=
getIntl
();
const
WaitAllotOrder
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
format
=
(
text
,
fmt
?:
string
)
=>
{
return
<>
{
moment
(
text
).
format
(
fmt
||
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
/** 批量审核 */
const
fetchSubmitBatch
=
async
()
=>
{
const
res
=
await
postTransactionProductQuotationtAuditAll
({
ids
:
rowkeys
});
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.xunjiadanhao'
}),
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/productInquiry/inquirySearch/preview?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.xunjiadanzhaiyao'
}),
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.beixunjiahuiyuan'
}),
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.jiaofuriqi'
}),
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.baojiajiezhishijian'
}),
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.danjushijian'
}),
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.waibuzhuangtai'
}),
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.neibuzhuangtai'
}),
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
intl
.
formatMessage
({
id
:
'dealAbility.caozuo'
}),
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
type=
'link'
>
领取
</
Button
>
},
];
return
(
<
Table
selectedRow
reload=
{
ref
}
schema=
{
WAITALLOTORDERSCHEMA
}
columns=
{
columns
}
effects=
"inquiryListNo"
fetch=
{
getTransactionAuditProductQuotationList
}
externalStatusFetch=
{
getTransactionProductInquiryExternalStateEnum
({
type
:
'2'
})
}
interiorStatusFetch=
{
getTransactionProductInquiryInteriorStateEnum
({
type
:
'2'
})
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
6
}
>
<
Button
disabled=
{
rowkeys
.
length
===
0
}
onClick=
{
fetchSubmitBatch
}
>
批量领取
</
Button
>
</
Col
>
</
Row
>
}
/>
)
}
export
default
WaitAllotOrder
src/pages/transaction/dealAbility/inquiryOffer/waitAllotOrder/schema.ts
0 → 100644
View file @
3894d36b
import
{
ISchema
}
from
"@formily/antd"
;
import
{
FORM_FILTER_PATH
}
from
"@/formSchema/const"
;
import
{
getIntl
}
from
"umi"
;
const
intl
=
getIntl
();
export
const
WAITALLOTORDERSCHEMA
:
ISchema
=
{
type
:
"object"
,
properties
:
{
megalayout
:
{
type
:
"object"
,
"x-component"
:
"mega-layout"
,
"x-component-props"
:
{
grid
:
true
},
properties
:
{
ctl
:
{
type
:
"object"
,
"x-component"
:
"controllerBtns"
,
},
inquiryListNo
:
{
//报价单号
type
:
"string"
,
"x-component"
:
"Search"
,
"x-mega-props"
:
{
},
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'dealAbility.xunjiadanhao'
})
}
}
}
},
[
FORM_FILTER_PATH
]:
{
type
:
"object"
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:
{
rowStyle
:
{
flexWrap
:
"nowrap"
},
colStyle
:
{
marginLeft
:
20
}
},
properties
:
{
PRO_LAYOUT
:
{
type
:
"object"
,
"x-component"
:
"mega-layout"
,
"x-mega-props"
:
{
span
:
5
},
"x-component-props"
:
{
inline
:
true
},
properties
:
{
details
:
{
type
:
"string"
,
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'dealAbility.xunjiadanzhaiyao'
})
}
},
memberName
:
{
type
:
"string"
,
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'dealAbility.beixunjiahuiyuan'
})
}
},
"[startDocumentsTime,endDocumentsTime]"
:
{
type
:
"string"
,
"x-component"
:
"DateRangePickerUnix"
,
"x-component-props"
:
{
placeholder
:
[
intl
.
formatMessage
({
id
:
'dealAbility.kaishishijian'
}),
intl
.
formatMessage
({
id
:
'dealAbility.jieshushijian'
})],
}
},
externalState
:
{
type
:
"string"
,
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'dealAbility.waibuzhuangtai'
}),
style
:
{
width
:
160
}
},
enum
:
[]
},
interiorState
:
{
type
:
"string"
,
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'dealAbility.neibuzhuangtai'
}),
style
:
{
width
:
160
}
},
enum
:
[]
},
}
},
sumbit
:
{
"x-component"
:
"Submit"
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
intl
.
formatMessage
({
id
:
'dealAbility.chaxun'
})
}
}
}
}
}
}
src/utils/index.tsx
View file @
3894d36b
...
...
@@ -6,9 +6,9 @@ import { GlobalConfig } from '@/global/config';
import
queryString
from
'query-string'
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
Tooltip
}
from
'antd'
import
{
getIntl
}
from
'umi'
;
import
{
getIntl
,
getLocale
}
from
'umi'
;
const
intl
=
getIntl
();
const
intl
=
getIntl
(
getLocale
()
);
function
isArray
(
arr
:
any
)
{
return
Array
.
isArray
(
arr
)
...
...
@@ -378,7 +378,7 @@ export const getFieldType = (field) => {
},
'x-component-props'
:
{
size
:
'large'
,
placeholder
:
`
请选择
${
field
.
fieldLocalName
}
`
,
placeholder
:
`
${
intl
.
formatMessage
({
id
:
'common.text.pleaseSelect'
})}
${
field
.
fieldLocalName
}
`
,
dataSource
:
field
.
fieldEnum
,
...
field
.
attr
}
...
...
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