|
@@ -1,289 +1,3 @@
|
1
|
|
-<<<<<<< HEAD
|
2
|
|
-import React, { useState, useEffect } from 'react';
|
3
|
|
-import { Form, Input, Button, Icon, Select, Card, Radio, DatePicker, message, Upload } from 'antd';
|
4
|
|
-
|
5
|
|
-import apis from '@/services/apis';
|
6
|
|
-import moment from 'moment';
|
7
|
|
-import router from 'umi/router';
|
8
|
|
-import BuildSelect from '@/components/SelectButton/BuildSelect';
|
9
|
|
-import request from '@/utils/request';
|
10
|
|
-import yinhao from '@/assets/yinhao.png';
|
11
|
|
-import logo from '@/assets/logo.svg';
|
12
|
|
-import touxiang from '@/assets/touxiang.jpg';
|
13
|
|
-import poster1 from '@/assets/poster1.png';
|
14
|
|
-import poster2 from '@/assets/poster2.png';
|
15
|
|
-import xiaochengxu from '@/assets/xiaochengxu.png';
|
16
|
|
-import AuthButton from '@/components/AuthButton';
|
17
|
|
-import { getImgURL } from '@/utils/image';
|
18
|
|
-import Share from '@/components/Share';
|
19
|
|
-import Poster from '@/components/Poster';
|
20
|
|
-import PictureQRcode from '@/utils/imageQC'
|
21
|
|
-
|
22
|
|
-const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
|
23
|
|
-const { TextArea } = Input;
|
24
|
|
-
|
25
|
|
-const formItemLayout = {
|
26
|
|
- labelCol: { span: 6 },
|
27
|
|
- wrapperCol: { span: 14 },
|
28
|
|
-};
|
29
|
|
-
|
30
|
|
-const cancelPage = () => {
|
31
|
|
- router.go('-1');
|
32
|
|
-};
|
33
|
|
-
|
34
|
|
-const getSignList = dynamicId => {
|
35
|
|
- router.push({
|
36
|
|
- pathname: '/activity/groupRoomActivity/registrationRecord',
|
37
|
|
- query: {
|
38
|
|
- dynamicId,
|
39
|
|
- },
|
40
|
|
- });
|
41
|
|
-};
|
42
|
|
-
|
43
|
|
-
|
44
|
|
-
|
45
|
|
-// const newQrcode = row => {
|
46
|
|
-// const x = new XMLHttpRequest();
|
47
|
|
-// const resourceUrl = row.qrCode;
|
48
|
|
-// x.open('GET', resourceUrl, true);
|
49
|
|
-// x.responseType = 'blob';
|
50
|
|
-// x.onload = function (e) {
|
51
|
|
-// const url = window.URL.createObjectURL(x.response);
|
52
|
|
-// const a = document.createElement('a');
|
53
|
|
-// a.href = url;
|
54
|
|
-// a.style.display = 'none';
|
55
|
|
-// a.download = '活动二维码.png';
|
56
|
|
-// a.click();
|
57
|
|
-// };
|
58
|
|
-// x.send();
|
59
|
|
-// };
|
60
|
|
-
|
61
|
|
-const BasicForm = props => {
|
62
|
|
- const detailData = props.detailData || {};
|
63
|
|
-
|
64
|
|
- const radioOnChange = e => {
|
65
|
|
- // setIsEnlist(e.target.value)
|
66
|
|
- };
|
67
|
|
-
|
68
|
|
- const { dynamicId } = props;
|
69
|
|
- const handleSubmit = e => {
|
70
|
|
- e.preventDefault();
|
71
|
|
- props.form.validateFields((err, values) => {
|
72
|
|
- if (!err) {
|
73
|
|
- console.log('Received values of form: ', values);
|
74
|
|
- const { activityTime, signupTime } = values;
|
75
|
|
- const [startDate, endDate] = activityTime;
|
76
|
|
- values.startDate = moment(startDate).format('YYYY-MM-DD HH:mm');
|
77
|
|
- values.endDate = moment(endDate).format('YYYY-MM-DD HH:mm');
|
78
|
|
- if (signupTime) {
|
79
|
|
- const [enlistStart, enlistEnd] = signupTime;
|
80
|
|
- values.enlistStart = moment(enlistStart).format('YYYY-MM-DD HH:mm');
|
81
|
|
- values.enlistEnd = moment(enlistEnd).format('YYYY-MM-DD HH:mm');
|
82
|
|
- }
|
83
|
|
- console.log('submit data --->', values);
|
84
|
|
- if (dynamicId) {
|
85
|
|
- values.dynamicId = dynamicId;
|
86
|
|
- request({ ...apis.activity.update, data: values })
|
87
|
|
- .then(data => {
|
88
|
|
- message.info('保存成功');
|
89
|
|
- // router.go(-1)
|
90
|
|
- })
|
91
|
|
- .catch(err => {
|
92
|
|
- message.info(err.msg || err.message);
|
93
|
|
- });
|
94
|
|
- } else {
|
95
|
|
- request({ ...apis.activity.add, data: { ...values } })
|
96
|
|
- .then(data => {
|
97
|
|
- message.info('保存成功');
|
98
|
|
- router.push({
|
99
|
|
- pathname: '/activity/editActivity',
|
100
|
|
- query: {
|
101
|
|
- dynamicId: data.dynamicId,
|
102
|
|
- },
|
103
|
|
- });
|
104
|
|
- // router.go(-1)
|
105
|
|
- })
|
106
|
|
- .catch(err => {
|
107
|
|
- message.info(err.msg || err.message);
|
108
|
|
- });
|
109
|
|
- }
|
110
|
|
- }
|
111
|
|
- });
|
112
|
|
- };
|
113
|
|
-
|
114
|
|
- const { getFieldDecorator } = props.form;
|
115
|
|
- return (
|
116
|
|
- <>
|
117
|
|
- <Form {...formItemLayout} onSubmit={handleSubmit}>
|
118
|
|
- <Form.Item label="所属项目">
|
119
|
|
- {getFieldDecorator('buildingId', {
|
120
|
|
- initialValue: detailData.buildingId,
|
121
|
|
- rules: [
|
122
|
|
- {
|
123
|
|
- required: true,
|
124
|
|
- message: '请选择所属项目',
|
125
|
|
- },
|
126
|
|
- ],
|
127
|
|
- })(<BuildSelect disabled />)}
|
128
|
|
- </Form.Item>
|
129
|
|
- <Form.Item label="活动封面图1">
|
130
|
|
- <img src={getImgURL(detailData.listImgUrl)} height="210px" width="375px" />
|
131
|
|
- </Form.Item>
|
132
|
|
- {/* <Form.Item label="活动封面图2">
|
133
|
|
- <img src={getImgURL(detailData.bannerListImg)} height="125px" width="375px" />
|
134
|
|
- </Form.Item> */}
|
135
|
|
- <Form.Item label="活动详情主图">
|
136
|
|
- <img src={getImgURL(detailData.imgUrl)} height="300px" width="375px" />
|
137
|
|
- </Form.Item>
|
138
|
|
- <Form.Item label="活动标题">
|
139
|
|
- <span>{detailData.title}</span>
|
140
|
|
- </Form.Item>
|
141
|
|
- <Form.Item label="副标题">
|
142
|
|
- <span>{detailData.halfTitle}</span>
|
143
|
|
- </Form.Item>
|
144
|
|
- <Form.Item label="活动时间">
|
145
|
|
- <span>{`${moment(detailData.startDate).format('YYYY-MM-DD HH:mm')} —— ${moment(
|
146
|
|
- detailData.endDate,
|
147
|
|
- ).format('YYYY-MM-DD HH:mm')}`}</span>
|
148
|
|
- </Form.Item>
|
149
|
|
- <Form.Item label="活动地点">
|
150
|
|
- <span>{detailData.address}</span>
|
151
|
|
- </Form.Item>
|
152
|
|
- <Form.Item label="活动人数">
|
153
|
|
- <span>{detailData.personNum}</span>
|
154
|
|
- </Form.Item>
|
155
|
|
- <Form.Item label="团房价">
|
156
|
|
- <span>{detailData.groupBuyPrice}</span>
|
157
|
|
- </Form.Item>
|
158
|
|
- {/* <Form.Item label="阅读量">
|
159
|
|
- <span>{detailData.pvNum}</span>
|
160
|
|
- </Form.Item>
|
161
|
|
- <Form.Item label="转发量">
|
162
|
|
- <span>{detailData.shareNum}</span>
|
163
|
|
- </Form.Item>
|
164
|
|
- <Form.Item label="收藏数">
|
165
|
|
- <span>{detailData.saveNum}</span>
|
166
|
|
- </Form.Item>
|
167
|
|
- <Form.Item label="最大报名人数">
|
168
|
|
- <span>{detailData.maxEnlistByPerson}</span>
|
169
|
|
- </Form.Item> */}
|
170
|
|
- <Form.Item label="活动详情">
|
171
|
|
- <div
|
172
|
|
- style={{ maxHeight: '500px', overflowY: 'auto' }}
|
173
|
|
- dangerouslySetInnerHTML={{ __html: detailData.desc }}
|
174
|
|
- ></div>
|
175
|
|
- </Form.Item>
|
176
|
|
- <Form.Item label="报名时间">
|
177
|
|
- <span>{`${moment(detailData.enlistStart).format('YYYY-MM-DD HH:mm')} —— ${moment(
|
178
|
|
- detailData.enlistEnd,
|
179
|
|
- ).format('YYYY-MM-DD HH:mm')}`}</span>
|
180
|
|
- </Form.Item>
|
181
|
|
- <Form.Item label="权重">
|
182
|
|
- <span>{detailData.heavy}</span>
|
183
|
|
- </Form.Item>
|
184
|
|
- </Form>
|
185
|
|
- <div style={{ textAlign: 'center' }}>
|
186
|
|
- <AuthButton name="admin.SignList.get" noRight={null}>
|
187
|
|
- {(detailData.activityStatus === 0 || detailData.activityStatus === 2) && (
|
188
|
|
- <span
|
189
|
|
- style={{ color: '#1990FF', marginRight: '20px', cursor: 'pointer' }}
|
190
|
|
- onClick={getSignList.bind(this, detailData.dynamicId)}
|
191
|
|
- >
|
192
|
|
- <Button>报名记录</Button>
|
193
|
|
- </span>
|
194
|
|
- )}
|
195
|
|
- </AuthButton>
|
196
|
|
- <AuthButton name="admin.dymic.qrcode" noRight={null}>
|
197
|
|
- {(detailData.activityStatus === 0 || detailData.activityStatus === 2) && (
|
198
|
|
- <span
|
199
|
|
- style={{ color: '#1990FF', marginRight: '20px', cursor: 'pointer' }}
|
200
|
|
- // onClick={newQrcode.bind(this, detailData)}
|
201
|
|
- onClick={() => { PictureQRcode(detailData, '活动二维码') }}
|
202
|
|
- >
|
203
|
|
- {<Button>下载二维码</Button>}
|
204
|
|
- </span>
|
205
|
|
- )}
|
206
|
|
- </AuthButton>
|
207
|
|
- <Button onClick={() => cancelPage()}>取消</Button>
|
208
|
|
- </div>
|
209
|
|
- </>
|
210
|
|
- );
|
211
|
|
-};
|
212
|
|
-
|
213
|
|
-const Basic = Form.create({ name: 'BasicForm' })(BasicForm);
|
214
|
|
-
|
215
|
|
-/**
|
216
|
|
- *
|
217
|
|
- *
|
218
|
|
- * @param {*} props
|
219
|
|
- * @returns
|
220
|
|
- */
|
221
|
|
-const Edit = props => {
|
222
|
|
- const [tab, changeTab] = useState('basic');
|
223
|
|
- const { dynamicId } = props.location.query;
|
224
|
|
- const [detailData, setDetailData] = useState(false);
|
225
|
|
-
|
226
|
|
- const getDynamicData = dynamicId => {
|
227
|
|
- request({ ...apis.activity.details, params: { dynamicId } }).then(data => {
|
228
|
|
- console.log(data);
|
229
|
|
- data.activityTime = [moment(data.startDate), moment(data.endDate)];
|
230
|
|
- data.signupTime = [moment(data.enlistStart), moment(data.enlistEnd)];
|
231
|
|
-
|
232
|
|
- setDetailData(data);
|
233
|
|
- });
|
234
|
|
- };
|
235
|
|
-
|
236
|
|
- useEffect(() => {
|
237
|
|
- if (dynamicId) {
|
238
|
|
- getDynamicData(dynamicId);
|
239
|
|
- }
|
240
|
|
- }, []);
|
241
|
|
-
|
242
|
|
- const target = { id: dynamicId, type: 'activity' };
|
243
|
|
- return (
|
244
|
|
- <Card>
|
245
|
|
- <div>
|
246
|
|
- <Radio.Group value={tab} buttonStyle="solid" onChange={e => changeTab(e.target.value)}>
|
247
|
|
- <Radio.Button value="basic">基本信息</Radio.Button>
|
248
|
|
- {/* <Radio.Button value="poster">海报图片</Radio.Button>
|
249
|
|
- <Radio.Button value="share">分享设置</Radio.Button> */}
|
250
|
|
- </Radio.Group>
|
251
|
|
- </div>
|
252
|
|
- <div>
|
253
|
|
- {tab === 'basic' && <Basic dynamicId={dynamicId} detailData={detailData} />}
|
254
|
|
-
|
255
|
|
- {tab === 'poster' && <Poster target={target} />}
|
256
|
|
- {tab === 'share' && <Share target={target} />}
|
257
|
|
- </div>
|
258
|
|
- {/* <div style={{ textAlign: 'center' }}>
|
259
|
|
- <AuthButton name="admin.SignList.get" noRight={null}>
|
260
|
|
- {(detailData.activityStatus === 0 || detailData.activityStatus === 2) && (
|
261
|
|
- <span
|
262
|
|
- style={{ color: '#1990FF', marginRight: '20px', cursor: 'pointer' }}
|
263
|
|
- onClick={getSignList.bind(this, detailData.dynamicId)}
|
264
|
|
- >
|
265
|
|
- <Button>报名记录</Button>
|
266
|
|
- </span>
|
267
|
|
- )}
|
268
|
|
- </AuthButton>
|
269
|
|
- <AuthButton name="admin.dymic.qrcode" noRight={null}>
|
270
|
|
- {(detailData.activityStatus === 0 || detailData.activityStatus === 2) && (
|
271
|
|
- <span
|
272
|
|
- style={{ color: '#1990FF', marginRight: '20px', cursor: 'pointer' }}
|
273
|
|
- onClick={newQrcode.bind(this, detailData)}
|
274
|
|
- >
|
275
|
|
- {<Button>下载二维码</Button>}
|
276
|
|
- </span>
|
277
|
|
- )}
|
278
|
|
- </AuthButton>
|
279
|
|
- <Button onClick={() => cancelPage()}>取消</Button>
|
280
|
|
- </div> */}
|
281
|
|
- </Card>
|
282
|
|
- );
|
283
|
|
-};
|
284
|
|
-
|
285
|
|
-export default Edit;
|
286
|
|
-=======
|
287
|
1
|
import React, { useState, useEffect } from 'react';
|
288
|
2
|
import { Form, Input, Button, Icon, Select, Card, Radio, DatePicker, message, Upload } from 'antd';
|
289
|
3
|
|
|
@@ -568,4 +282,3 @@ const Edit = props => {
|
568
|
282
|
};
|
569
|
283
|
|
570
|
284
|
export default Edit;
|
571
|
|
->>>>>>> bc4b69cb9010c90ff362a9cb0f07bad2144aa6bf
|