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
7368fa1b
Commit
7368fa1b
authored
Sep 27, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增采购会员评价管理
parent
e8115f98
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
1198 additions
and
2 deletions
+1198
-2
tranactionRoute.ts
config/routes/tranactionRoute.ts
+33
-0
menu.ts
src/locales/zh-CN/menu.ts
+10
-2
index.less
...pages/transaction/purchaserEvaluation/analysis/index.less
+12
-0
index.tsx
src/pages/transaction/purchaserEvaluation/analysis/index.tsx
+173
-0
index.ts
.../transaction/purchaserEvaluation/analysis/schema/index.ts
+56
-0
index.less
.../purchaserEvaluation/components/EvaluationList/index.less
+0
-0
index.tsx
...n/purchaserEvaluation/components/EvaluationList/index.tsx
+166
-0
index.less
...tion/purchaserEvaluation/components/RecordList/index.less
+84
-0
index.tsx
...ction/purchaserEvaluation/components/RecordList/index.tsx
+59
-0
index.less
...saction/purchaserEvaluation/components/Shelves/index.less
+29
-0
index.tsx
...nsaction/purchaserEvaluation/components/Shelves/index.tsx
+24
-0
constans.tsx
src/pages/transaction/purchaserEvaluation/constans.tsx
+0
-0
index.less
src/pages/transaction/purchaserEvaluation/index.less
+0
-0
index.tsx
src/pages/transaction/purchaserEvaluation/index.tsx
+11
-0
index.less
...pages/transaction/purchaserEvaluation/received/index.less
+0
-0
index.tsx
src/pages/transaction/purchaserEvaluation/received/index.tsx
+11
-0
index.less
src/pages/transaction/purchaserEvaluation/sent/index.less
+0
-0
index.tsx
src/pages/transaction/purchaserEvaluation/sent/index.tsx
+11
-0
index.tsx
...urchaserEvaluation/unevaluated/evaluate/effects/index.tsx
+6
-0
useBusinessEffects.tsx
...ation/unevaluated/evaluate/effects/useBusinessEffects.tsx
+39
-0
index.less
...ction/purchaserEvaluation/unevaluated/evaluate/index.less
+0
-0
index.tsx
...action/purchaserEvaluation/unevaluated/evaluate/index.tsx
+113
-0
index.ts
.../purchaserEvaluation/unevaluated/evaluate/schema/index.ts
+99
-0
index.less
...es/transaction/purchaserEvaluation/unevaluated/index.less
+0
-0
index.tsx
...ges/transaction/purchaserEvaluation/unevaluated/index.tsx
+172
-0
index.tsx
...nsaction/purchaserEvaluation/unevaluated/schema/index.tsx
+90
-0
No files found.
config/routes/tranactionRoute.ts
View file @
7368fa1b
...
...
@@ -471,6 +471,39 @@ const TranactionRoute = {
// },
],
},
// 采购商会员评价管理
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation'
,
name
:
'purchaserEvaluation'
,
routes
:
[
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/unevaluated'
,
name
:
'unevaluated'
,
component
:
'@/pages/transaction/purchaserEvaluation/unevaluated'
,
},
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/unevaluated/evaluate'
,
name
:
'evaluate'
,
component
:
'@/pages/transaction/purchaserEvaluation/unevaluated/evaluate/index'
,
hideInMenu
:
true
,
},
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/analysis'
,
name
:
'analysis'
,
component
:
'@/pages/transaction/purchaserEvaluation/analysis'
,
},
// {
// path: '/memberCenter/tranactionAbility/purchaserEvaluation/received',
// name: 'received',
// component: '@/pages/transaction/purchaserEvaluation/received',
// },
// {
// path: '/memberCenter/tranactionAbility/purchaserEvaluation/sent',
// name: 'sent',
// component: '@/pages/transaction/purchaserEvaluation/sent',
// },
],
},
]
}
...
...
src/locales/zh-CN/menu.ts
View file @
7368fa1b
/*
* @Author: LeeJiancong
* @Date: 2020-07-13 14:08:50
* @LastEditors:
LeeJianc
ong
* @LastEditTime: 2020-09-2
6 17:32:14
* @LastEditors:
XieZhiXi
ong
* @LastEditTime: 2020-09-2
7 11:19:28
*/
export
default
{
...
...
@@ -201,6 +201,14 @@ export default {
'menu.tranactionAbility.supplierEvaluation.analysis'
:
'评价统计'
,
'menu.tranactionAbility.supplierEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.supplierEvaluation.sent'
:
'发出的评价'
,
// 采购商评价
'menu.tranactionAbility.purchaserEvaluation'
:
'采购会员评价管理'
,
'menu.tranactionAbility.purchaserEvaluation.unevaluated'
:
'待评价订单'
,
'menu.tranactionAbility.purchaserEvaluation.evaluate'
:
'评价'
,
'menu.tranactionAbility.purchaserEvaluation.analysis'
:
'评价统计'
,
'menu.tranactionAbility.purchaserEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.purchaserEvaluation.sent'
:
'发出的评价'
,
//物流能力
'menu.logisticsAbility'
:
'物流'
,
...
...
src/pages/transaction/purchaserEvaluation/analysis/index.less
0 → 100644
View file @
7368fa1b
.tabs {
:global {
.ant-tabs-nav {
margin: 0 0 24px 0;
&::before {
border-bottom: none;
}
}
}
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/analysis/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
{
Tabs
,
Row
,
Col
,
Button
}
from
'antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
MellowCard
from
'@/components/MellowCard'
;
import
PolymericTable
from
'@/components/PolymericTable'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
{
Pie
}
from
'@/components/Charts'
;
import
Mood
from
'@/components/Mood'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
searchSchema
}
from
'./schema'
;
import
Shelves
from
'../components/Shelves'
;
import
RecordList
from
'../components/RecordList'
;
import
styles
from
'./index.less'
;
const
{
TabPane
}
=
Tabs
;
const
receivedFormActions
=
createFormActions
();
const
sentFormActions
=
createFormActions
();
const
Analysis
:
React
.
FC
=
()
=>
{
const
evaluateColumns
:
EditableColumns
[]
=
[
{
title
:
' '
,
dataIndex
:
'title'
,
align
:
'center'
,
},
{
title
:
'最近7天'
,
dataIndex
:
'last7days'
,
align
:
'center'
,
},
{
title
:
'最近30天'
,
dataIndex
:
'last30days'
,
align
:
'center'
,
},
{
title
:
'最近180天'
,
dataIndex
:
'last180days'
,
align
:
'center'
,
},
{
title
:
'180天前'
,
dataIndex
:
'before180days'
,
align
:
'center'
,
},
];
const
evaluatePie
=
[
{
x
:
`好评 30%`
,
y
:
100
,
},
{
x
:
`中评 20%`
,
y
:
50
,
},
{
x
:
`差评 10%`
,
y
:
10
,
},
];
const
evaluate
=
[
{
id
:
1
,
title
:
(<
Mood
type=
"smile"
/>),
last7days
:
10
,
last30days
:
20
,
last180days
:
30
,
before180days
:
30
,
},
{
id
:
2
,
title
:
(<
Mood
type=
"notBad"
/>),
last7days
:
10
,
last30days
:
20
,
last180days
:
30
,
before180days
:
30
,
},
{
id
:
3
,
title
:
(<
Mood
type=
"sad"
/>),
last7days
:
10
,
last30days
:
20
,
last180days
:
30
,
before180days
:
30
,
},
];
return
(
<
PageHeaderWrapper
>
<
MellowCard
bodyStyle=
{
{
padding
:
'0 24px 24px'
,
}
}
>
<
Tabs
className=
{
styles
.
tabs
}
>
<
TabPane
tab=
"概览"
key=
"1"
>
<
Shelves
title=
"评价统计"
>
<
Row
gutter=
{
24
}
>
<
Col
flex=
"399px"
>
<
Pie
hasLegend
subTitle=
"累计评价"
total=
{
()
=>
evaluatePie
.
reduce
((
pre
,
now
)
=>
now
.
y
+
pre
,
0
)
}
data=
{
evaluatePie
}
height=
{
200
}
colProps=
{
{
span
:
8
,
}
}
colors=
{
[
'#41CC9E'
,
'#FFC400'
,
'#EF6260'
]
}
/>
</
Col
>
<
Col
flex=
"auto"
>
<
PolymericTable
dataSource=
{
evaluate
}
columns=
{
evaluateColumns
}
loading=
{
false
}
pagination=
{
null
}
rowClassName=
{
()
=>
styles
[
'record-row'
]
}
/>
</
Col
>
</
Row
>
</
Shelves
>
<
Shelves
title=
"评价记录"
>
<
RecordList
list=
{
[]
}
/>
<
div
style=
{
{
padding
:
'24px 0'
,
textAlign
:
'center'
,
}
}
>
<
Button
>
查看更多评论
</
Button
>
</
div
>
</
Shelves
>
</
TabPane
>
<
TabPane
tab=
"收到的评价"
key=
"2"
>
<
NiceForm
actions=
{
receivedFormActions
}
onSubmit=
{
values
=>
{}
}
effects=
{
(
$
,
actions
)
=>
{
}
}
schema=
{
searchSchema
}
/>
<
RecordList
list=
{
[]
}
/>
</
TabPane
>
<
TabPane
tab=
"发出的评价"
key=
"3"
>
<
NiceForm
actions=
{
sentFormActions
}
onSubmit=
{
values
=>
{}
}
effects=
{
(
$
,
actions
)
=>
{
}
}
schema=
{
searchSchema
}
/>
<
RecordList
list=
{
[]
}
/>
</
TabPane
>
</
Tabs
>
</
MellowCard
>
</
PageHeaderWrapper
>
);
};
export
default
Analysis
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/analysis/schema/index.ts
0 → 100644
View file @
7368fa1b
/*
* @Author: XieZhiXiong
* @Date: 2020-09-22 20:34:49
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-09-22 20:52:53
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
export
const
searchSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
inline
:
true
,
},
properties
:
{
star
:
{
type
:
'string'
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'评论星级'
,
allowClear
:
true
,
style
:
{
width
:
206
,
},
},
},
'[startDate, endDate]'
:
{
type
:
'string'
,
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
'交易时间'
,
allowClear
:
true
,
style
:
{
width
:
206
,
},
},
},
name
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
'搜索'
,
align
:
'flex-left'
,
advanced
:
false
,
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/components/EvaluationList/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/components/EvaluationList/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
{
Row
,
Col
,
Button
,
}
from
'antd'
;
import
styled
from
'styled-components'
;
import
{
SchemaForm
,
SchemaField
,
SchemaMarkupField
as
Field
}
from
'@formily/antd'
;
import
{
ArrayList
}
from
'@formily/react-shared-components'
;
import
{
toArr
,
isFn
,
FormPath
}
from
'@formily/shared'
;
import
SmilingFace
from
'@/components/NiceForm/components/SmilingFace'
;
const
ArrayComponents
=
{
CircleButton
:
props
=>
<
Button
{
...
props
}
/>,
TextButton
:
props
=>
<
Button
text
{
...
props
}
/>,
AdditionIcon
:
()
=>
<
div
>
+Add
</
div
>,
RemoveIcon
:
()
=>
<
div
>
Remove
</
div
>,
MoveDownIcon
:
()
=>
<
div
>
Down
</
div
>,
MoveUpIcon
:
()
=>
<
div
>
Up
</
div
>
};
const
RowStyleLayout
=
styled
(
props
=>
<
div
{
...
props
}
/>)
`
padding: 24px 64px 24px 24px;
background: #ffffff;
.ant-btn {
margin-right: 16px;
}
.ant-form-item {
display: flex;
margin-right: 16px;
margin-bottom: 16px;
}
> .ant-form-item {
margin-bottom: 0;
margin-right: 0;
}
.goodInfo {
display: flex;
align-items: align;
&-left {
flex-shrink: 0;
margin-right: 16px;
width: 100px;
height: 100px;
> img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
&-right {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
&-title {
line-height: 14px;
margin-bottom: 18px;
font-size: 14px;
font-weight: 400;
color: #303133;
}
&-desc {
line-height: 12px;
margin-bottom: 16px;
font-size: 12px;
font-weight: 400;
color: #909399;
}
&-price {
line-height: 14px;
font-size: 14px;
font-weight: 500;
color: #303133;
}
}
.main {
position: relative;
padding-left: 24px;
> .ant-form-item {
margin-bottom: 0;
margin-right: 0;
}
::after {
content: ' ';
display: block;
position: absolute;
top: 6%;
left: 0;
bottom: 6%;
border-left: 1px dashed #EEF0F3;
}
}
`
;
const
EvaluationList
=
props
=>
{
const
{
value
,
schema
,
className
,
editable
,
path
,
mutators
}
=
props
;
const
{
renderAddition
,
renderRemove
,
renderMoveDown
,
renderMoveUp
,
renderEmpty
,
renderExtraOperations
,
...
componentProps
}
=
schema
.
getExtendsComponentProps
()
||
{};
return
(
<
ArrayList
value=
{
value
}
minItems=
{
schema
.
minItems
}
maxItems=
{
schema
.
maxItems
}
editable=
{
editable
}
components=
{
ArrayComponents
}
>
{
toArr
(
value
).
map
((
item
,
index
)
=>
{
return
(
<
RowStyleLayout
{
...
componentProps
}
key=
{
index
}
>
<
Row
align=
"middle"
>
<
Col
span=
{
8
}
>
<
div
className=
"goodInfo"
>
<
div
className=
"goodInfo-left"
>
<
img
src=
{
item
.
good
?
item
.
good
.
pic
:
''
}
/>
</
div
>
<
div
className=
"goodInfo-right"
>
<
div
className=
"goodInfo-title"
>
进口头层黄牛皮荔枝纹/红色/XL
</
div
>
<
div
className=
"goodInfo-desc"
>
20 平方英尺
</
div
>
<
div
className=
"goodInfo-price"
>
¥ 400.00
</
div
>
</
div
>
</
div
>
</
Col
>
<
Col
span=
{
16
}
>
<
div
className=
"main"
>
<
SchemaField
path=
{
FormPath
.
parse
(
path
).
concat
(
index
)
}
/>
</
div
>
</
Col
>
</
Row
>
</
RowStyleLayout
>
)
})
}
</
ArrayList
>
)
}
EvaluationList
.
isFieldComponent
=
true
;
export
default
EvaluationList
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/components/RecordList/index.less
0 → 100644
View file @
7368fa1b
@import '../../../../../global/styles/utils.less';
.record {
padding: 0;
margin: 0;
&-item {
padding: 14px 16px;
line-height: 14px;
display: flex;
align-items: center;
background: #FAFBFC;
color: #303133;
&-good {
width: 25%;
&-name {
line-height: 14px;
margin-bottom: 13px;
font-size: 14px;
font-weight: 400;
}
&-price {
margin-right: 16px;
font-weight: 500;
}
&-desc {
line-height: 12px;
font-weight: 400;
color: #909399;
}
}
&-extra {
width: 20%;
&-item {
display: flex;
align-items: center;
&-label {
flex: 0 0 60px;
line-height: 12px;
font-size: 12px;
font-weight: 400;
color: #909399;
}
&-control {
flex: 1;
}
&:not(:last-child) {
margin-bottom: 13px;
}
}
}
&-comment {
width: 40%;
&-main {
margin-top: 6px;
line-height: 14px;
font-weight: 400;
color: #303133;
.textOverflow();
}
}
&-actions {
flex: 1;
text-align: center;
}
&:not(:last-child) {
margin-bottom: 16px;
}
}
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/components/RecordList/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
{
Button
,
Rate
}
from
'antd'
;
import
styles
from
'./index.less'
;
interface
RecordListProps
{
list
:
[];
};
const
RecordList
:
React
.
FC
<
RecordListProps
>
=
()
=>
{
return
(
<
ul
className=
{
styles
.
record
}
>
<
li
className=
{
styles
[
'record-item'
]
}
>
<
div
className=
{
styles
[
'record-item-good'
]
}
>
<
div
className=
{
styles
[
'record-item-good-name'
]
}
>
进口头层黄牛皮荔枝纹/红色/XL
</
div
>
<
div
>
<
span
className=
{
styles
[
'record-item-good-price'
]
}
>
¥400.00
</
span
>
<
span
className=
{
styles
[
'record-item-good-desc'
]
}
>
20 平方英尺
</
span
>
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-extra'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item-label'
]
}
>
交易时间:
</
div
>
<
div
className=
{
styles
[
'record-item-extra-item-control'
]
}
>
2020-05-20 17:09
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-extra-item'
]
}
>
<
div
className=
{
styles
[
'record-item-extra-item-label'
]
}
>
评价方:
</
div
>
<
div
className=
{
styles
[
'record-item-extra-item-control'
]
}
>
温州龙昌手袋有限公司
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-comment'
]
}
>
<
Rate
value=
{
2
}
disabled
/>
<
div
className=
{
styles
[
'record-item-comment-main'
]
}
>
付款准时,合作愉快。付款准时,合作愉快。付款准时,合作愉快。付款准时,合作愉快。付款准时…
</
div
>
</
div
>
<
div
className=
{
styles
[
'record-item-actions'
]
}
>
<
Button
type=
"link"
>
查看
</
Button
>
</
div
>
</
li
>
</
ul
>
);
};
export
default
RecordList
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/components/Shelves/index.less
0 → 100644
View file @
7368fa1b
@import '../../../../../global/styles/index.less';
.shelves {
&-title {
line-height: 14px;
padding: 12px;
position: relative;
font-size: 14px;
font-weight: 400;
color: #606266;
border-bottom: 1px solid #EEF0F3;
&::after {
content: ' ';
display: block;
width: 2px;
position: absolute;
top: 30%;
left: 0;
bottom: 30%;
background: @primary-color;
}
}
&-content {
padding: 30px 0;
}
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/components/Shelves/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
styles
from
'./index.less'
;
interface
ShelvesProps
{
title
?:
string
;
children
?:
React
.
ReactNode
;
};
const
Shelves
:
React
.
FC
<
ShelvesProps
>
=
({
title
=
'标题'
,
children
,
})
=>
{
return
(
<
div
className=
{
styles
.
shelves
}
>
<
div
className=
{
styles
[
'shelves-title'
]
}
>
{
title
}
</
div
>
<
div
className=
{
styles
[
'shelves-content'
]
}
>
{
children
}
</
div
>
</
div
>
);
};
export
default
Shelves
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/constans.tsx
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
styles
from
'./index.less'
;
const
SupplierEvaluation
:
React
.
FC
=
()
=>
{
return
(
<
div
>
123
</
div
>
);
};
export
default
SupplierEvaluation
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/received/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/received/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
styles
from
'./index.less'
;
const
Received
:
React
.
FC
=
()
=>
{
return
(
<
div
>
Received
</
div
>
);
};
export
default
Received
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/sent/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/sent/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
styles
from
'./index.less'
;
const
Sent
:
React
.
FC
=
()
=>
{
return
(
<
div
>
Sent
</
div
>
);
};
export
default
Sent
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/effects/index.tsx
0 → 100644
View file @
7368fa1b
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/effects/useBusinessEffects.tsx
0 → 100644
View file @
7368fa1b
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
// 评论图片限制 4 张
onFieldInputChange$
(
'comments.*.picture'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.picture`
}),
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
value
.
length
>=
4
;
}
);
});
// 评分联动
onFieldInputChange$
(
'comments.*.star'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.smile`
}),
state
=>
{
state
.
value
=
value
;
}
);
});
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/index.tsx
0 → 100644
View file @
7368fa1b
import
React
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
normalizeFiledata
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
evaluateSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EvaluationList
from
'../../components/EvaluationList'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
EvaluateOrder
:
React
.
FC
=
()
=>
{
const
handleSubmit
=
values
=>
{
console
.
log
(
'values'
,
values
);
};
const
beforeUpload
=
file
=>
{
if
(
file
.
size
/
1024
<
10
)
{
message
.
warning
(
'图片大小超过10M'
);
return
Promise
.
reject
();
}
};
const
UploadTip
=
(
<
span
style=
{
{
lineHeight
:
'24px'
,
color
:
'#909399'
,
fontWeight
:
400
,
wordBreak
:
'break-all'
,
position
:
'relative'
,
top
:
'34px'
,
}
}
>
支持JPG/PNG/JPEG
<
br
/>
每张最大不超过 10M,尺寸不限
<
br
/>
最大数量限制 4张
</
span
>
);
return
(
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
'订单号:DPTY12'
}
}
/>
}
extra=
{
(
<>
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
发布
</
Button
>
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"采购会员"
>
BPTY12
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"下单时间"
span=
{
2
}
>
2020-08-25 08:49
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
NiceForm
actions=
{
formActions
}
expressionScope=
{
{
UploadTip
,
beforeUpload
,
}
}
onSubmit=
{
handleSubmit
}
components=
{
{
EvaluationList
,
}
}
effects=
{
(
$
,
actions
)
=>
{
createEffects
(
$
,
actions
);
}
}
schema=
{
evaluateSchema
}
/>
</
PageHeaderWrapper
>
);
};
export
default
EvaluateOrder
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/schema/index.ts
0 → 100644
View file @
7368fa1b
/*
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-09-23 18:06:56
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
evaluateSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
comments
:
{
type
:
'array'
,
'x-component'
:
'EvaluationList'
,
default
:
[
{
name
:
'杰尼'
,
age
:
24
,
small
:
1
,
star2
:
0
,
},
],
items
:
{
type
:
'object'
,
properties
:
{
LEFT_RIGHT
:
{
type
:
'object'
,
'x-component'
:
'LeftRightLayout'
,
'x-component-props'
:
{
rightProps
:
{
span
:
2
,
offset
:
4
,
},
},
properties
:
{
MEGA_LADYOUT
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
labelCol
:
6
,
labelAlign
:
'left'
,
position
:
'left'
,
},
properties
:
{
star
:
{
title
:
'满意程度'
,
required
:
true
,
'x-component'
:
'Rating'
,
'x-component-props'
:
{
allowHalf
:
false
,
},
},
comment
:
{
type
:
'string'
,
title
:
'评价'
,
required
:
true
,
'x-component'
:
'TextArea'
,
'x-component-props'
:
{
rows
:
4
,
},
},
picture
:
{
type
:
'string'
,
title
:
'图片'
,
required
:
true
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
listType
:
'card'
,
action
:
'/api/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/test/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
},
'x-mega-props'
:
{
addonAfter
:
'{{UploadTip}}'
,
},
},
},
},
smile
:
{
type
:
'object'
,
default
:
1
,
'x-component'
:
'SmilingFace'
,
'x-component-props'
:
{
position
:
'right'
,
},
},
},
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/index.less
0 → 100644
View file @
7368fa1b
src/pages/transaction/purchaserEvaluation/unevaluated/index.tsx
0 → 100644
View file @
7368fa1b
import
React
,
{
useState
,
useRef
}
from
'react'
;
import
{
Card
,
Badge
,
Button
}
from
'antd'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
Link
}
from
'umi'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
{
listSearchSchema
}
from
'./schema'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
mock
=
[
{
orderNo
:
'DPTY12'
,
abstract
:
'进口头层黄牛皮荔枝纹'
,
member
:
'广州白马皮具交易有限公司'
,
created
:
'2020-09-22 11:16:00'
,
amount
:
'¥ 50,000.00'
,
orderType
:
'现货采购'
,
outerStatusName
:
'已完成'
,
innerStatusName
:
'已完成'
,
},
{
orderNo
:
'DPTY13'
,
abstract
:
'进口头层黄牛皮荔枝纹'
,
member
:
'广州白马皮具交易有限公司'
,
created
:
'2020-09-22 11:16:00'
,
amount
:
'¥ 50,000.00'
,
orderType
:
'现货采购'
,
outerStatusName
:
'已完成'
,
innerStatusName
:
'已完成'
,
},
];
const
Unevaluated
:
React
.
FC
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
defaultColumns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'订单号'
,
dataIndex
:
'orderNo'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<
EyePreview
url=
{
``
}
>
{
text
}
</
EyePreview
>
),
},
{
title
:
'订单摘要'
,
dataIndex
:
'abstract'
,
align
:
'center'
,
},
{
title
:
'采购会员'
,
dataIndex
:
'member'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
<>
{
text
}
</>,
},
{
title
:
'下单时间'
,
dataIndex
:
'created'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
<>
{
text
}
</>,
},
{
title
:
'订单总额'
,
dataIndex
:
'amount'
,
align
:
'center'
,
},
{
title
:
'订单类型'
,
dataIndex
:
'orderType'
,
align
:
'center'
,
},
{
title
:
'外部状态'
,
dataIndex
:
'outerStatusName'
,
align
:
'center'
,
filters
:
[],
onFilter
:
(
value
,
record
)
=>
record
.
outerStatus
===
value
,
render
:
(
text
,
record
)
=>
(
<
StatusTag
type=
"warnning"
title=
"已完成"
/>
),
},
{
title
:
'内部状态'
,
dataIndex
:
'innerStatusName'
,
align
:
'center'
,
filters
:
[],
onFilter
:
(
value
,
record
)
=>
record
.
innerStatus
===
value
,
render
:
(
text
,
record
)
=>
<
Badge
color=
"#42526E"
text=
"已完成"
/>,
},
{
title
:
'操作'
,
dataIndex
:
'option'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<>
<
Link
to=
{
`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/evaluate`
}
>
<
Button
type=
"link"
>
评价
</
Button
>
</
Link
>
</>
),
},
];
const
[
columns
,
setColumns
]
=
useState
<
any
[]
>
(
defaultColumns
);
const
fetchListData
=
(
params
:
any
)
=>
{
return
Promise
.
resolve
({
total
:
2
,
data
:
mock
,
});
};
// 初始化高级筛选选项
const
fetchSelectOptions
=
async
()
=>
{
return
{};
};
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
tableProps=
{
{
rowKey
:
'orderNo'
,
}
}
columns=
{
columns
}
currentRef=
{
ref
}
fetchTableData=
{
(
params
:
any
)
=>
fetchListData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
onSubmit=
{
values
=>
ref
.
current
.
reload
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'innerStatus'
,
'outerStatus'
],
fetchSelectOptions
,
);
}
}
schema=
{
listSearchSchema
}
/>
}
/>
</
Card
>
</
PageHeaderWrapper
>
);
};
export
default
Unevaluated
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/schema/index.tsx
0 → 100644
View file @
7368fa1b
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
listSearchSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
name
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
'搜索'
,
align
:
'flex-left'
,
tip
:
'输入 订单号、订单摘要 进行搜索'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
grid
:
true
,
full
:
true
,
autoRow
:
true
,
columns
:
6
,
},
properties
:
{
memberTypeId
:
{
type
:
'string'
,
default
:
undefined
,
'x-component-props'
:
{
placeholder
:
'采购会员'
,
allowClear
:
true
,
},
},
'[startDate, endDate]'
:
{
type
:
'string'
,
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
'下单时间'
,
allowClear
:
true
,
},
},
orderType
:
{
type
:
'string'
,
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'订单类型'
,
allowClear
:
true
,
},
},
outerStatus
:
{
type
:
'string'
,
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'外部状态(全部)'
,
allowClear
:
true
,
},
},
innerStatus
:
{
type
:
'string'
,
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'内部状态(全部)'
,
allowClear
:
true
,
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-mega-props'
:
{
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
},
},
},
};
\ No newline at end of file
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