|
@@ -1,14 +1,18 @@
|
1
|
1
|
import React, { useState, useEffect } from 'react';
|
2
|
|
-import { Form, Input, Button, Icon, Select, Tabs, Radio, DatePicker,message } from 'antd';
|
|
2
|
+import { Form, Input, Button, Icon, Select, Tabs, Radio, DatePicker, message } from 'antd';
|
3
|
3
|
import { FormattedMessage } from 'umi-plugin-react/locale';
|
4
|
|
-import styles from '../style/GoodsList.less';
|
5
|
4
|
import moment from 'moment';
|
6
|
5
|
import router from 'umi/router';
|
|
6
|
+import styles from '../style/GoodsList.less';
|
7
|
7
|
import BuildSelect from '../../components/SelectButton/BuildSelect'
|
8
|
|
-import XForm, { FieldTypes } from '../../components/XForm';
|
|
8
|
+import { createForm, FieldTypes } from '../../components/XForm';
|
9
|
9
|
import Wangedit from '../../components/Wangedit/Wangedit'
|
10
|
10
|
import apis from '../../services/apis';
|
11
|
11
|
import request from '../../utils/request'
|
|
12
|
+import SelectHelp from './SelectHelp';
|
|
13
|
+import SelectGroup from './SelectGroup';
|
|
14
|
+import SelectNews from './SelectNews';
|
|
15
|
+import SelectActivity from './SelectActivity';
|
12
|
16
|
|
13
|
17
|
const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
|
14
|
18
|
/**
|
|
@@ -17,130 +21,195 @@ const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
|
17
|
21
|
* @param {*} props
|
18
|
22
|
* @returns
|
19
|
23
|
*/
|
20
|
|
- const Edit = (props) => {
|
21
|
|
- const [ tab, changeTab ] = useState('basic')
|
22
|
|
- const contentId = props.location.query.contentId
|
23
|
|
- const [ data, setData ] = useState({})
|
24
|
|
- if(contentId){
|
25
|
|
- useEffect(() => {
|
26
|
|
- getDetail(contentId);
|
27
|
|
- },[])
|
|
24
|
+ const Edit = props => {
|
|
25
|
+ let contentVisible = false
|
|
26
|
+ let activityVisible = false
|
|
27
|
+ let newsVisible = false
|
|
28
|
+ let helpVisible = false
|
|
29
|
+ let groupVisible = false
|
|
30
|
+ let buildingId = ''
|
28
|
31
|
|
29
|
|
- // 查询列表
|
30
|
|
- const getDetail = (contentId) => {
|
31
|
|
- request({ ...apis.carsuseFigure.getExtendContent,urlData:{id: contentId}}).then((data) => {
|
32
|
|
- console.log(data)
|
33
|
|
- setData(data)
|
34
|
|
- })
|
35
|
|
- }
|
|
32
|
+ const setExtraData = data => {
|
|
33
|
+ contentVisible = data.contentType === 'other';
|
|
34
|
+ activityVisible = data.contentType === 'activity';
|
|
35
|
+ newsVisible = data.contentType === 'news';
|
|
36
|
+ helpVisible = data.contentType === 'help';
|
|
37
|
+ groupVisible = data.contentType === 'group';
|
|
38
|
+
|
|
39
|
+ buildingId = data.buildingId
|
36
|
40
|
}
|
37
|
41
|
|
38
|
|
- const cancelPage = () =>{
|
39
|
|
- router.push({
|
40
|
|
- pathname: '/carouselFigure/carouselFigureList',
|
41
|
|
- });
|
|
42
|
+
|
|
43
|
+ const handleFormValueChange = (props, changedValues, allValues) => {
|
|
44
|
+ setExtraData(allValues)
|
42
|
45
|
}
|
43
|
|
-
|
44
|
|
- const fields = [
|
45
|
|
- {
|
46
|
|
- label: '所属项目',
|
47
|
|
- name: 'buildingId',
|
48
|
|
- render: <BuildSelect />,
|
49
|
|
- value: data.buildingId,
|
50
|
|
- },
|
51
|
|
- {
|
52
|
|
- label: '商品图片',
|
53
|
|
- name: 'image',
|
54
|
|
- type: FieldTypes.ImageUploader,
|
55
|
|
- value: data.image,
|
56
|
|
- help: '建议图片尺寸:640px*330px',
|
57
|
|
- },
|
58
|
|
- {
|
59
|
|
- label: '标题',
|
60
|
|
- name: 'title',
|
61
|
|
- type: FieldTypes.Text,
|
62
|
|
- value: data.title,
|
63
|
|
- },
|
64
|
|
- {
|
65
|
|
- label: '发布位置',
|
66
|
|
- name: 'showPosition',
|
67
|
|
- type: FieldTypes.Select,
|
68
|
|
- dict: [{
|
69
|
|
- label: '首页',
|
70
|
|
- value: 'index'
|
|
46
|
+
|
|
47
|
+ const XForm = createForm({ onValuesChange: handleFormValueChange })
|
|
48
|
+
|
|
49
|
+ return (props) => {
|
|
50
|
+
|
|
51
|
+ const [tab, changeTab] = useState('basic')
|
|
52
|
+ const { contentId } = props.location.query
|
|
53
|
+ const [data, setData] = useState({})
|
|
54
|
+ if (contentId) {
|
|
55
|
+ // eslint-disable-next-line react-hooks/rules-of-hooks
|
|
56
|
+ useEffect(() => {
|
|
57
|
+ getDetail(contentId);
|
|
58
|
+ }, [])
|
|
59
|
+
|
|
60
|
+ // 查询列表
|
|
61
|
+ const getDetail = contentId => {
|
|
62
|
+ request({ ...apis.carsuseFigure.getExtendContent, urlData: { id: contentId } }).then(data => {
|
|
63
|
+ console.log(data)
|
|
64
|
+ setExtraData(data)
|
|
65
|
+ setData(data)
|
|
66
|
+ })
|
|
67
|
+ }
|
|
68
|
+ }
|
|
69
|
+
|
|
70
|
+ const cancelPage = () => {
|
|
71
|
+ router.push({
|
|
72
|
+ pathname: '/carouselFigure/carouselFigureList',
|
|
73
|
+ });
|
|
74
|
+ }
|
|
75
|
+
|
|
76
|
+ const fields = [
|
|
77
|
+ {
|
|
78
|
+ label: '所属项目',
|
|
79
|
+ name: 'buildingId',
|
|
80
|
+ render: <BuildSelect />,
|
|
81
|
+ value: data.buildingId,
|
71
|
82
|
},
|
72
|
83
|
{
|
73
|
|
- label: '商城',
|
74
|
|
- value: 'mall'
|
75
|
|
- }],
|
76
|
|
- value: data.showPosition,
|
77
|
|
- },
|
78
|
|
- {
|
79
|
|
- label: '类型',
|
80
|
|
- name: 'contentType',
|
81
|
|
- type: FieldTypes.Select,
|
82
|
|
- dict: [{
|
83
|
|
- label: '活动',
|
84
|
|
- value: 'activity'
|
|
84
|
+ label: '商品图片',
|
|
85
|
+ name: 'image',
|
|
86
|
+ type: FieldTypes.ImageUploader,
|
|
87
|
+ value: data.image,
|
|
88
|
+ help: '建议图片尺寸:640px*330px',
|
85
|
89
|
},
|
86
|
90
|
{
|
87
|
|
- label: '项目',
|
88
|
|
- value: 'project'
|
|
91
|
+ label: '标题',
|
|
92
|
+ name: 'title',
|
|
93
|
+ type: FieldTypes.Text,
|
|
94
|
+ value: data.title,
|
89
|
95
|
},
|
90
|
96
|
{
|
91
|
|
- label: '资讯',
|
92
|
|
- value: 'news'
|
|
97
|
+ label: '发布位置',
|
|
98
|
+ name: 'showPosition',
|
|
99
|
+ type: FieldTypes.Select,
|
|
100
|
+ dict: [{
|
|
101
|
+ label: '首页',
|
|
102
|
+ value: 'index',
|
|
103
|
+ },
|
|
104
|
+ {
|
|
105
|
+ label: '商城',
|
|
106
|
+ value: 'mall',
|
|
107
|
+ }],
|
|
108
|
+ value: data.showPosition,
|
93
|
109
|
},
|
94
|
110
|
{
|
95
|
|
- label: '其他',
|
96
|
|
- value: 'other'
|
97
|
|
- }],
|
98
|
|
- value: data.contentType,
|
99
|
|
- },
|
100
|
|
- {
|
101
|
|
- label: '发布内容',
|
102
|
|
- name: 'content',
|
103
|
|
- render: <Wangedit />,
|
104
|
|
- value: data.content,
|
105
|
|
- },
|
106
|
|
- {
|
107
|
|
- label: '状态',
|
108
|
|
- name: 'status',
|
109
|
|
- type: FieldTypes.Select,
|
110
|
|
- dict: [{
|
111
|
|
- label: "启用",
|
112
|
|
- value: 1
|
|
111
|
+ label: '类型',
|
|
112
|
+ name: 'contentType',
|
|
113
|
+ type: FieldTypes.Select,
|
|
114
|
+ dict: [{
|
|
115
|
+ label: '活动',
|
|
116
|
+ value: 'activity',
|
|
117
|
+ },
|
|
118
|
+ {
|
|
119
|
+ label: '项目',
|
|
120
|
+ value: 'project',
|
|
121
|
+ },
|
|
122
|
+ {
|
|
123
|
+ label: '资讯',
|
|
124
|
+ value: 'news',
|
|
125
|
+ },
|
|
126
|
+ {
|
|
127
|
+ label: '其他',
|
|
128
|
+ value: 'other',
|
|
129
|
+ },
|
|
130
|
+ {
|
|
131
|
+ label: '拼团',
|
|
132
|
+ value: 'group',
|
|
133
|
+ },
|
|
134
|
+ {
|
|
135
|
+ label: '助力',
|
|
136
|
+ value: 'help',
|
|
137
|
+ }],
|
|
138
|
+ value: data.contentType,
|
113
|
139
|
},
|
114
|
140
|
{
|
115
|
|
- label: "停用",
|
116
|
|
- value: 0
|
117
|
|
- },],
|
118
|
|
- value: data.status != null ? data.status : 1,
|
119
|
|
- },
|
120
|
|
- ]
|
121
|
|
-
|
122
|
|
- const handleSubmit = val => {
|
123
|
|
- val.showType = 'banner'
|
124
|
|
- if(contentId){
|
125
|
|
- request({ ...apis.carsuseFigure.updataExtendContent,urlData:{id: contentId}, data: val,}).then((data) => {
|
126
|
|
- cancelPage()
|
127
|
|
- }).catch((err) => {
|
128
|
|
- message.info(err.msg || err.message)
|
129
|
|
- })
|
130
|
|
- }else{
|
131
|
|
- request({ ...apis.carsuseFigure.addExtendContent, data: val,}).then((data) => {
|
132
|
|
- cancelPage()
|
133
|
|
- }).catch((err) => {
|
134
|
|
- message.info(err.msg || err.message)
|
135
|
|
- })
|
|
141
|
+ label: '发布活动',
|
|
142
|
+ name: 'targetId',
|
|
143
|
+ render: <SelectActivity buildingId={() => buildingId} />,
|
|
144
|
+ hidden: () => !activityVisible,
|
|
145
|
+ value: data.targetId,
|
|
146
|
+ },
|
|
147
|
+ {
|
|
148
|
+ label: '发布资讯',
|
|
149
|
+ name: 'targetId',
|
|
150
|
+ render: <SelectNews buildingId={() => buildingId} />,
|
|
151
|
+ hidden: () => !newsVisible,
|
|
152
|
+ value: data.targetId,
|
|
153
|
+ },
|
|
154
|
+ {
|
|
155
|
+ label: '发布内容',
|
|
156
|
+ name: 'content',
|
|
157
|
+ render: <Wangedit />,
|
|
158
|
+ value: data.content,
|
|
159
|
+ hidden: () => !contentVisible,
|
|
160
|
+ },
|
|
161
|
+ {
|
|
162
|
+ label: '发布助力',
|
|
163
|
+ name: 'targetId',
|
|
164
|
+ render: <SelectHelp buildingId={() => buildingId} />,
|
|
165
|
+ hidden: () => !helpVisible,
|
|
166
|
+ value: data.targetId,
|
|
167
|
+ },
|
|
168
|
+ {
|
|
169
|
+ label: '发布拼团',
|
|
170
|
+ name: 'targetId',
|
|
171
|
+ render: <SelectGroup buildingId={() => buildingId} />,
|
|
172
|
+ hidden: () => !groupVisible,
|
|
173
|
+ value: data.targetId,
|
|
174
|
+ },
|
|
175
|
+ {
|
|
176
|
+ label: '状态',
|
|
177
|
+ name: 'status',
|
|
178
|
+ type: FieldTypes.Select,
|
|
179
|
+ dict: [{
|
|
180
|
+ label: '启用',
|
|
181
|
+ value: 1,
|
|
182
|
+ },
|
|
183
|
+ {
|
|
184
|
+ label: '停用',
|
|
185
|
+ value: 0,
|
|
186
|
+ } ],
|
|
187
|
+ value: data.status != null ? data.status : 1,
|
|
188
|
+ },
|
|
189
|
+ ]
|
|
190
|
+
|
|
191
|
+ const handleSubmit = val => {
|
|
192
|
+ val.showType = 'banner'
|
|
193
|
+ if (contentId) {
|
|
194
|
+ request({ ...apis.carsuseFigure.updataExtendContent, urlData: { id: contentId }, data: val }).then(data => {
|
|
195
|
+ cancelPage()
|
|
196
|
+ }).catch(err => {
|
|
197
|
+ message.info(err.msg || err.message)
|
|
198
|
+ })
|
|
199
|
+ } else{
|
|
200
|
+ request({ ...apis.carsuseFigure.addExtendContent, data: val }).then(data => {
|
|
201
|
+ cancelPage()
|
|
202
|
+ }).catch(err => {
|
|
203
|
+ message.info(err.msg || err.message)
|
|
204
|
+ })
|
|
205
|
+ }
|
136
|
206
|
}
|
137
|
|
- }
|
138
|
207
|
|
139
|
|
- return (
|
140
|
|
- <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
|
141
|
|
- );
|
|
208
|
+ return (
|
|
209
|
+ <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
|
|
210
|
+ );
|
|
211
|
+ }
|
142
|
212
|
}
|
143
|
213
|
|
144
|
214
|
|
145
|
|
-
|
146
|
|
-export default Edit
|
|
215
|
+export default Edit()
|