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
e1c92c5a
Commit
e1c92c5a
authored
Dec 13, 2021
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修改翻译重复引入intl
parent
0609b1f7
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
218 additions
and
198 deletions
+218
-198
tonglian_icon.png
src/assets/icons/tonglian_icon.png
+0
-0
index.tsx
src/pages/payandSettle/paySetting/index.tsx
+29
-1
columns_6.tsx
...transaction/marketingAbility/common/columns/columns_6.tsx
+0
-1
columns_9.tsx
...transaction/marketingAbility/common/columns/columns_9.tsx
+0
-1
index.tsx
...action/marketingAbility/components/addFormGoods/index.tsx
+4
-6
schema.tsx
...y/marketingActivitiesManagement/activePage/add/schema.tsx
+0
-1
activityProductDrawer.tsx
.../components/ActivityAreaSetting/activityProductDrawer.tsx
+57
-58
index.tsx
...tingAbility/merchantCoupon/components/BacisInfo/index.tsx
+128
-129
EditableCell.tsx
...bmitExamine/components/productListLayout/EditableCell.tsx
+0
-1
No files found.
src/assets/icons/tonglian_icon.png
0 → 100644
View file @
e1c92c5a
1.88 KB
src/pages/payandSettle/paySetting/index.tsx
View file @
e1c92c5a
...
...
@@ -13,6 +13,7 @@ import alipay from '@/assets/icons/alipay_icon.png';
import
wechat
from
'@/assets/icons/wechat_icon.png'
;
import
unionpay
from
'@/assets/icons/unionpay_icon.png'
;
import
balance
from
'@/assets/icons/balance_icon.png'
;
import
tonglian
from
'@/assets/icons/tonglian_icon.png'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
NumberInput
from
'./components/number'
;
import
{
getOrderMemberPaymentParameterFind
,
postOrderMemberPaymentParameterCreate
}
from
'@/services/OrderNewV2Api'
;
...
...
@@ -23,6 +24,11 @@ const PIC_MAP = {
2
:
wechat
,
3
:
unionpay
,
4
:
balance
,
11
:
wechat
,
12
:
alipay
,
13
:
tonglian
,
14
:
unionpay
,
15
:
balance
};
const
{
TabPane
}
=
Tabs
...
...
@@ -358,7 +364,29 @@ const PaySettingLayout = () => {
))
}
</
Tabs
>
)
}
{
(
item
.
payType
!==
1
&&
item
.
payType
!==
3
)
&&
(
{
item
.
payType
===
6
&&
(
<
Tabs
onChange=
{
(
key
)
=>
setPayChannel
(
key
)
}
>
{
item
.
channels
.
map
((
_item
,
_index
)
=>
(
<
TabPane
tab=
{
<
Space
><
Image
preview=
{
false
}
width=
{
16
}
height=
{
16
}
src=
{
PIC_MAP
[
_item
.
payChannel
]
}
/>
{
_item
.
payChannelName
}
</
Space
>
}
key=
{
_item
.
payChannel
}
forceRender
>
<
Form
.
Item
label=
{
`${intl.formatMessage({ id: 'payandSettle.paySetting.label' })}${_item.payChannelName}`
}
name=
{
`payChannel_${_item.payChannel}`
}
initialValue=
{
`_${_item.payChannel}`
}
>
<
Radio
.
Group
size=
"small"
buttonStyle=
"solid"
onChange=
{
(
e
)
=>
handleRadioChang
(
e
,
item
.
payType
)
}
>
<
Radio
.
Button
value=
{
_item
.
payChannel
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.paySetting.radio.1'
})
}
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
`_${_item.payChannel}`
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.paySetting.radio.2'
})
}
</
Radio
.
Button
>
</
Radio
.
Group
>
</
Form
.
Item
>
</
TabPane
>
))
}
</
Tabs
>
)
}
{
(
item
.
payType
!==
1
&&
item
.
payType
!==
3
&&
item
.
payType
!==
6
)
&&
(
<
Fragment
>
{
item
.
channels
.
map
((
_item
,
_index
)
=>
(
<
Fragment
key=
{
_item
.
payChannel
}
>
...
...
src/pages/transaction/marketingAbility/common/columns/columns_6.tsx
View file @
e1c92c5a
import
{
useIntl
}
from
'umi'
;
import
React
from
'react'
;
import
{
Tooltip
,
Image
,
Typography
}
from
'antd'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
...
...
src/pages/transaction/marketingAbility/common/columns/columns_9.tsx
View file @
e1c92c5a
import
{
useIntl
}
from
'umi'
;
import
React
from
'react'
;
import
{
Tooltip
,
Typography
}
from
'antd'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
...
...
src/pages/transaction/marketingAbility/components/addFormGoods/index.tsx
View file @
e1c92c5a
import
{
useIntl
}
from
'umi'
;
import
React
,
{
useEffect
,
useState
,
useMemo
}
from
'react'
;
import
{
Table
,
Radio
,
Button
,
Form
,
Input
,
Row
,
Col
,
DatePicker
,
Select
,
FormInstance
,
Space
}
from
'antd'
;
import
{
MinusOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
...
...
@@ -9,7 +8,7 @@ import TableModel from './tableModel';
import
AddGoodsDrawer
from
'./modal/addGoodsDrawer'
;
import
AddCouponsDrawer
from
'./modal/addCouponsDrawer'
;
import
GiveCouponDrawer
from
'./modal/giveCouponDrawer'
;
import
{
getIntl
}
from
'umi'
import
{
getIntl
}
from
'umi'
const
intl
=
getIntl
();
interface
AddFormGoodsProps
{
...
...
@@ -27,7 +26,6 @@ const layout: any = {
}
const
AddFormGoods
:
React
.
FC
<
AddFormGoodsProps
>
=
(
props
:
any
)
=>
{
const
intl
=
useIntl
();
const
{
currentRef
,
layoutId
,
layoutTitle
,
ruleType
}
=
props
;
const
[
form
]
=
Form
.
useForm
();
const
[
dataSource
,
setDataSource
]
=
useState
<
any
>
([{
...
...
@@ -88,13 +86,13 @@ const AddFormGoods: React.FC<AddFormGoodsProps> = (props: any) => {
autoComplete=
'off'
>
<
Space
direction=
'vertical'
style=
{
{
display
:
'flex'
}
}
>
{
ruleType
!=
10
&&
<
Button
type=
"dashed"
block
icon=
{
<
PlusOutlined
/>
}
onClick=
{
()
=>
{
setCouponVisible
(
true
)
}
}
>
{
intl
.
formatMessage
({
id
:
'marketingAbility.xuanzehuodongshangpin'
})
}
</
Button
>
}
{
ruleType
!=
10
&&
<
Button
type=
"dashed"
block
icon=
{
<
PlusOutlined
/>
}
onClick=
{
()
=>
{
setCouponVisible
(
true
)
}
}
>
{
intl
.
formatMessage
({
id
:
'marketingAbility.xuanzehuodongshangpin'
})
}
</
Button
>
}
<
Table
columns=
{
columns
}
dataSource=
{
dataSource
}
pagination=
{
ruleType
!=
10
?
{}
:
false
}
/>
{
ruleType
===
10
&&
<
Button
type=
"dashed"
block
icon=
{
<
PlusOutlined
/>
}
>
{
intl
.
formatMessage
({
id
:
'marketingAbility.tianjiaxinjiangxiang'
})
}
</
Button
>
}
{
ruleType
===
10
&&
<
Button
type=
"dashed"
block
icon=
{
<
PlusOutlined
/>
}
>
{
intl
.
formatMessage
({
id
:
'marketingAbility.tianjiaxinjiangxiang'
})
}
</
Button
>
}
</
Space
>
</
Form
>
<
AddGoodsDrawer
...
...
@@ -117,7 +115,7 @@ const AddFormGoods: React.FC<AddFormGoodsProps> = (props: any) => {
AddFormGoods
.
defaultProps
=
{
layoutId
:
'goodsLayout'
,
layoutTitle
:
`
${
intl
.
formatMessage
({
id
:
'marketingAbility.huodongshangpin'
})}
`
,
layoutTitle
:
`
${
intl
.
formatMessage
({
id
:
'marketingAbility.huodongshangpin'
})}
`
,
}
export
default
AddFormGoods
;
src/pages/transaction/marketingAbility/marketingActivitiesManagement/activePage/add/schema.tsx
View file @
e1c92c5a
import
{
useIntl
}
from
'umi'
;
import
{
ISchema
}
from
"@formily/antd"
;
import
{
environmentList
}
from
'@/constants/environment'
;
import
{
getIntl
}
from
'umi'
...
...
src/pages/transaction/marketingAbility/marketingActivitiesManagement/activePage/fixtures/components/ActivityAreaSetting/activityProductDrawer.tsx
View file @
e1c92c5a
...
...
@@ -15,7 +15,7 @@ import ActivityItem from './activityItem';
import
{
GetMarketingAdornMerchantActivityListAdornResponseDetail
,
getMarketingPlatformActivityGetActivityTypeList
}
from
'@/services/MarketingV2Api'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
moment
from
'moment'
;
import
{
useIntl
,
getIntl
}
from
'umi'
import
{
getIntl
}
from
'umi'
const
intl
=
getIntl
();
const
actions
=
createFormActions
();
...
...
@@ -33,8 +33,8 @@ interface Iprops {
mode
?:
'radio'
|
'checked'
,
/** mode === 'radio'的时候, 禁用的的活动商品 [`${id}_${activityId}`] */
disabledList
?:
string
[],
/** 去除某些高级筛选 */
ignoresFilters
?:
string
[],
/** 去除某些高级筛选 */
ignoresFilters
?:
string
[],
}
type
SubmitType
=
{
...
...
@@ -48,7 +48,7 @@ type SubmitType = {
const
columns
:
ColumnsType
<
GetMarketingAdornMerchantActivityListAdornResponseDetail
[
"goodsList"
][
0
]
>
=
[
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Commodityinformation'
})}
`
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Commodityinformation'
})}
`
,
dataIndex
:
'productInfo'
,
render
:
(
_text
,
_record
)
=>
{
return
(
...
...
@@ -61,22 +61,22 @@ const columns: ColumnsType<GetMarketingAdornMerchantActivityListAdornResponseDet
},
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.category'
})}
`
,
dataIndex
:
'category'
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.category'
})}
`
,
dataIndex
:
'category'
,
render
:
(
_text
)
=>
{
return
<
StatusTag
title=
{
_text
}
type=
"default"
/>;
}
},
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.brand'
})}
`
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.brand'
})}
`
,
dataIndex
:
'brand'
},
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Merchantname'
})}
`
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Merchantname'
})}
`
,
dataIndex
:
'memberName'
,
},
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.UnitPrice'
})}
`
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.UnitPrice'
})}
`
,
dataIndex
:
'unit'
,
render
:
(
_text
,
_record
)
=>
{
return
(
...
...
@@ -88,7 +88,7 @@ const columns: ColumnsType<GetMarketingAdornMerchantActivityListAdornResponseDet
}
},
{
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Activityprice'
})}
`
,
title
:
`
${
intl
.
formatMessage
({
id
:
'activePage.Activityprice'
})}
`
,
dataIndex
:
'activityPrice'
,
render
:
(
_text
,
_record
)
=>
{
return
(
...
...
@@ -103,7 +103,6 @@ const columns: ColumnsType<GetMarketingAdornMerchantActivityListAdornResponseDet
const
ActivityProductDrawer
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
intl
=
useIntl
();
const
{
visible
,
onCancel
,
fetchData
=
null
,
onOk
,
products
=
[],
activityImage
,
mode
=
'checked'
,
disabledList
=
[],
ignoresFilters
=
[]
}
=
props
;
const
[
current
,
setPage
]
=
useState
<
number
>
(
1
);
const
[
currentPageSize
,
setPageSize
]
=
useState
<
number
>
(
10
);
...
...
@@ -142,7 +141,7 @@ const ActivityProductDrawer: React.FC<Iprops> = (props: Iprops) => {
if
(
!
visible
)
{
setSelectKey
(
null
)
setSelectedActivityProductList
([])
return
;
return
;
}
setCheckedProduct
(
products
);
fetchList
({
current
,
pageSize
:
currentPageSize
});
...
...
@@ -255,53 +254,53 @@ const ActivityProductDrawer: React.FC<Iprops> = (props: Iprops) => {
</
div
>
}
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
form
}
>
<
NiceForm
schema=
{
ignoredSchema
}
actions=
{
actions
}
onReset=
{
onReset
}
onSubmit=
{
onSubmit
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'id'
,
FORM_FILTER_PATH
);
useAsyncSelect
(
'activityType'
,
fetchPrimaryOption
,
[
"name"
,
"status"
]);
}
}
></
NiceForm
>
</
div
>
<
div
className=
{
styles
.
table
}
>
{
dataSource
?.
map
((
_item
)
=>
{
const
{
outerStatusName
,
id
,
activityName
,
activityTypeName
}
=
_item
;
const
isActive
=
selectedKey
===
id
;
const
hasChildSelected
=
selectedRowKeys
.
some
((
_rowKey
)
=>
_rowKey
.
split
(
"-"
)[
0
]
===
id
.
toString
());
return
(
<
div
key=
{
_item
.
id
}
className=
{
styles
.
activeItem
}
>
<
ActivityItem
onSelect=
{
onSelect
}
isActive=
{
isActive
}
id=
{
id
}
activityName=
{
activityName
}
statusName=
{
outerStatusName
}
activityTypeName=
{
activityTypeName
}
hasChildSelected=
{
hasChildSelected
}
activityImage=
{
activityImage
}
/>
</
div
>
);
})
}
</
div
>
<
div
className=
{
styles
.
expandableTable
}
>
<
Table
rowSelection=
{
rowSelection
as
any
}
rowKey=
{
(
_record
)
=>
`${_record.activityId!}-${_record.id!}`
}
loading=
{
loading
}
columns=
{
columns
}
dataSource=
{
selectedActivityProductList
}
></
Table
>
</
div
>
<
div
className=
{
styles
.
pagination
}
>
<
Pagination
pageSize=
{
currentPageSize
}
current=
{
current
}
showQuickJumper
total=
{
totalCount
}
onChange=
{
onChange
}
/>
</
div
>
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
form
}
>
<
NiceForm
schema=
{
ignoredSchema
}
actions=
{
actions
}
onReset=
{
onReset
}
onSubmit=
{
onSubmit
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'id'
,
FORM_FILTER_PATH
);
useAsyncSelect
(
'activityType'
,
fetchPrimaryOption
,
[
"name"
,
"status"
]);
}
}
></
NiceForm
>
</
div
>
<
div
className=
{
styles
.
table
}
>
{
dataSource
?.
map
((
_item
)
=>
{
const
{
outerStatusName
,
id
,
activityName
,
activityTypeName
}
=
_item
;
const
isActive
=
selectedKey
===
id
;
const
hasChildSelected
=
selectedRowKeys
.
some
((
_rowKey
)
=>
_rowKey
.
split
(
"-"
)[
0
]
===
id
.
toString
());
return
(
<
div
key=
{
_item
.
id
}
className=
{
styles
.
activeItem
}
>
<
ActivityItem
onSelect=
{
onSelect
}
isActive=
{
isActive
}
id=
{
id
}
activityName=
{
activityName
}
statusName=
{
outerStatusName
}
activityTypeName=
{
activityTypeName
}
hasChildSelected=
{
hasChildSelected
}
activityImage=
{
activityImage
}
/>
</
div
>
);
})
}
</
div
>
<
div
className=
{
styles
.
expandableTable
}
>
<
Table
rowSelection=
{
rowSelection
as
any
}
rowKey=
{
(
_record
)
=>
`${_record.activityId!}-${_record.id!}`
}
loading=
{
loading
}
columns=
{
columns
}
dataSource=
{
selectedActivityProductList
}
></
Table
>
</
div
>
<
div
className=
{
styles
.
pagination
}
>
<
Pagination
pageSize=
{
currentPageSize
}
current=
{
current
}
showQuickJumper
total=
{
totalCount
}
onChange=
{
onChange
}
/>
</
div
>
</
div
>
</
Drawer
>
);
};
...
...
src/pages/transaction/marketingAbility/merchantCoupon/components/BacisInfo/index.tsx
View file @
e1c92c5a
/*
* @Author: XieZhiXiong
* @Date: 2021-06-22 15:34:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-09-30 17:10:42
* @Description: 基本信息
*/
import
React
from
'react'
;
import
{
Badge
}
from
'antd'
;
import
moment
from
'moment'
;
import
{
useIntl
,
getIntl
}
from
'umi'
import
{
MERCHANT_COUPON_TYPE_VOUCHER
,
MERCHANT_COUPON_TYPE_UNIVERSAL
,
MERCHANT_COUPON_TYPE_CATEGORY
,
MERCHANT_COUPON_TYPE_BRAND
,
MERCHANT_COUPON_TYPE_PRODUCT
,
}
from
'@/constants/marketing'
;
import
CustomizeColumn
,
{
IProps
as
CustomizeColumnProps
,
DataItem
}
from
'@/components/CustomizeColumn'
;
export
type
PropsType
=
Omit
<
CustomizeColumnProps
,
'data'
|
'column'
>
&
{
/**
* 数据,模拟数据
*/
dataSource
:
{
/**
* 数据id
*/
id
:
number
,
/**
* 优惠券类型
*/
type
:
number
,
/**
* 优惠券类型名称
*/
typeName
:
string
,
/**
* 领(发)券起始时间
*/
releaseTimeStart
:
number
,
/**
* 领(发)券结束时间
*/
releaseTimeEnd
:
number
,
/**
* 优惠券名称
*/
name
:
string
,
/**
* 券面额
*/
denomination
:
number
,
/**
* 状态名称
*/
statusName
:
string
,
/**
* 发券数量
*/
quantity
:
number
,
},
}
const
intl
=
getIntl
();
const
TIPS_TEXT_MAP
=
{
[
MERCHANT_COUPON_TYPE_VOUCHER
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponUsingCanPurchase'
}),
[
MERCHANT_COUPON_TYPE_UNIVERSAL
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.generalAllCategoriesCommodities'
}),
[
MERCHANT_COUPON_TYPE_CATEGORY
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialCustomerCategoryName'
}),
[
MERCHANT_COUPON_TYPE_BRAND
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialBrandName'
}),
[
MERCHANT_COUPON_TYPE_PRODUCT
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialGoods'
}),
};
const
CouponBacisInfo
:
React
.
FC
<
PropsType
>
=
(
props
:
PropsType
)
=>
{
const
intl
=
useIntl
();
const
{
dataSource
,
...
rest
}
=
props
;
const
basicInfo
:
DataItem
[]
=
[
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.activityID'
}),
value
:
dataSource
.
id
||
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponTypeName'
}),
value
:
dataSource
.
typeName
||
''
,
columnProps
:
{
tips
:
true
,
tipsText
:
TIPS_TEXT_MAP
[
dataSource
.
type
]
||
''
,
},
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponStartTime'
}),
value
:
dataSource
.
releaseTimeStart
?
moment
(
dataSource
.
releaseTimeStart
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.activityName'
}),
value
:
dataSource
.
name
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.moneySize'
}),
value
:
`¥
${
dataSource
.
denomination
||
''
}
`
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponEndTime'
}),
value
:
dataSource
.
releaseTimeEnd
?
moment
(
dataSource
.
releaseTimeEnd
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.innerState'
}),
value
:
(
<
Badge
color=
"blue"
text=
{
dataSource
.
statusName
}
/>
),
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponAmount'
}),
value
:
dataSource
.
quantity
,
},
];
return
(
<
CustomizeColumn
title=
{
intl
.
formatMessage
({
id
:
'merchantCoupon.baseInfo'
})
}
{
...
rest
}
data=
{
basicInfo
}
/>
);
};
export
default
CouponBacisInfo
;
/*
* @Author: XieZhiXiong
* @Date: 2021-06-22 15:34:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-09-30 17:10:42
* @Description: 基本信息
*/
import
React
from
'react'
;
import
{
Badge
}
from
'antd'
;
import
moment
from
'moment'
;
import
{
getIntl
}
from
'umi'
import
{
MERCHANT_COUPON_TYPE_VOUCHER
,
MERCHANT_COUPON_TYPE_UNIVERSAL
,
MERCHANT_COUPON_TYPE_CATEGORY
,
MERCHANT_COUPON_TYPE_BRAND
,
MERCHANT_COUPON_TYPE_PRODUCT
,
}
from
'@/constants/marketing'
;
import
CustomizeColumn
,
{
IProps
as
CustomizeColumnProps
,
DataItem
}
from
'@/components/CustomizeColumn'
;
export
type
PropsType
=
Omit
<
CustomizeColumnProps
,
'data'
|
'column'
>
&
{
/**
* 数据,模拟数据
*/
dataSource
:
{
/**
* 数据id
*/
id
:
number
,
/**
* 优惠券类型
*/
type
:
number
,
/**
* 优惠券类型名称
*/
typeName
:
string
,
/**
* 领(发)券起始时间
*/
releaseTimeStart
:
number
,
/**
* 领(发)券结束时间
*/
releaseTimeEnd
:
number
,
/**
* 优惠券名称
*/
name
:
string
,
/**
* 券面额
*/
denomination
:
number
,
/**
* 状态名称
*/
statusName
:
string
,
/**
* 发券数量
*/
quantity
:
number
,
},
}
const
intl
=
getIntl
();
const
TIPS_TEXT_MAP
=
{
[
MERCHANT_COUPON_TYPE_VOUCHER
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponUsingCanPurchase'
}),
[
MERCHANT_COUPON_TYPE_UNIVERSAL
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.generalAllCategoriesCommodities'
}),
[
MERCHANT_COUPON_TYPE_CATEGORY
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialCustomerCategoryName'
}),
[
MERCHANT_COUPON_TYPE_BRAND
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialBrandName'
}),
[
MERCHANT_COUPON_TYPE_PRODUCT
]:
intl
.
formatMessage
({
id
:
'merchantCoupon.suitForSpecialGoods'
}),
};
const
CouponBacisInfo
:
React
.
FC
<
PropsType
>
=
(
props
:
PropsType
)
=>
{
const
{
dataSource
,
...
rest
}
=
props
;
const
basicInfo
:
DataItem
[]
=
[
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.activityID'
}),
value
:
dataSource
.
id
||
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponTypeName'
}),
value
:
dataSource
.
typeName
||
''
,
columnProps
:
{
tips
:
true
,
tipsText
:
TIPS_TEXT_MAP
[
dataSource
.
type
]
||
''
,
},
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponStartTime'
}),
value
:
dataSource
.
releaseTimeStart
?
moment
(
dataSource
.
releaseTimeStart
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.activityName'
}),
value
:
dataSource
.
name
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.moneySize'
}),
value
:
`¥
${
dataSource
.
denomination
||
''
}
`
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponEndTime'
}),
value
:
dataSource
.
releaseTimeEnd
?
moment
(
dataSource
.
releaseTimeEnd
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.innerState'
}),
value
:
(
<
Badge
color=
"blue"
text=
{
dataSource
.
statusName
}
/>
),
},
{
title
:
intl
.
formatMessage
({
id
:
'merchantCoupon.couponAmount'
}),
value
:
dataSource
.
quantity
,
},
];
return
(
<
CustomizeColumn
title=
{
intl
.
formatMessage
({
id
:
'merchantCoupon.baseInfo'
})
}
{
...
rest
}
data=
{
basicInfo
}
/>
);
};
export
default
CouponBacisInfo
;
src/pages/transaction/marketingAbility/paltformSign/readySubmitExamine/components/productListLayout/EditableCell.tsx
View file @
e1c92c5a
...
...
@@ -47,7 +47,6 @@ const EditableCell = ({
}
const
handleValidator
=
async
(
_rule
,
value
,
dataIndex
)
=>
{
const
intl
=
useIntl
();
const
pattern
=
/^
(\-)?\d
+
(\.\d{1,4})?
$/
;
const
plummetPrice
=
await
form
.
getFieldValue
(
'plummetPrice'
);
if
(
!
value
)
{
...
...
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