f52f21be
莫红玲
市场活动配置管理列表页面
|
1
2
3
|
import React from 'react';
import { Button, Card, message, Upload } from 'antd';
import CardDetailPreview from '../CardDetailPreview';
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
4
|
import { UploadOutlined } from '@ant-design/icons';
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
5
|
import { UploadProps, UploadFile, UploadChangeParam } from 'antd/lib/upload/interface';
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
6
7
8
9
10
11
12
13
14
15
|
import detailS from './index.less';
import COS from "@/utils/COS";
import { setFormData, stateTransforToStore, beforeUpload } from '@/pages/mkt/ActivityCreate/BasicInformation/entity';
import ImgCropItem from '@/components/ImgCrop';
import { getFidFile } from "@/utils";
// import { useStore } from '../../index';
import Form, { FormInstance } from 'antd/lib/form';
interface Props {
form: FormInstance,
|
42efb549
莫红玲
活动轮播图根据售前售后尺寸调整优化
|
16
17
|
readOnly: boolean,
bizType?: number
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
18
19
20
21
|
}
const FormItem = Form.Item;
|
42efb549
莫红玲
活动轮播图根据售前售后尺寸调整优化
|
22
|
export default function Detail({ form, readOnly, bizType }: Props) {
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
23
|
const uploadProps: UploadProps = {
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
24
|
accept: "image/*",
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
25
26
27
|
action: "/file/upload",
// action: "/activity/util/file/uploadStatic",
listType: "picture-card",
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
28
29
|
showUploadList: { showPreviewIcon: true, showRemoveIcon: !readOnly },
disabled: readOnly,
|
4124acda
莫红玲
banner图限制1张
|
30
|
// beforeUpload
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
31
|
};
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
32
33
34
35
|
const ImageUploadProps: UploadProps = {
accept: "image/*",
// action: "/file/upload",
// action: "/activity/util/file/uploadStatic",
|
4124acda
莫红玲
banner图限制1张
|
36
|
listType: "picture-card",
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
37
38
39
40
41
42
|
showUploadList: { showPreviewIcon: true, showRemoveIcon: !readOnly },
customRequest: (data) => COS.cosUpload({ ...data, uploadPath: "/api/file/upload" }),
disabled: readOnly,
onPreview: (file) => onPreView(file, false),
beforeUpload
};
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
43
44
45
46
47
48
49
|
const onPreView = (file: UploadFile, isFid?: boolean) => {
getFidFile(file.response.data, isFid);
};
const videoProps: UploadProps = {
accept: "video/mp4",
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
50
|
listType: "text",
|
25dde648
莫红玲
变更活动基础信息
|
51
|
disabled: readOnly,
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
customRequest: (data) => COS.cosUpload({ ...data, uploadPath: "/api/file/upload" }),
onPreview: (file) => onPreView(file, false),
beforeUpload(file: any, fileList: any): boolean {
if (file.type !== "video/mp4") {
message.error("仅限传入 MP4 文件!");
return false;
}
if (file.size / 1024 / 1024 > 50) {
message.error("视频上传大小不能超过50MB!");
return false;
}
return true;
},
};
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
66
67
68
69
70
|
function valueFromEvent(e: any) {
if (Array.isArray(e)) {
return e;
}
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
71
|
const { status, response } = e.file;
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
72
73
74
75
76
77
78
|
if (!e.file.status) {
return [];
}
if (e.file.status == "error") {
message.error("图片上传出错,请重新上传");
return [];
}
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
79
80
81
|
if (status == "removed" && response) {
COS.cosDelete({ filePath: response.data });
}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
82
83
84
85
86
87
88
89
|
return e?.fileList;
}
const uploadButton = (
<div>
<Button icon={<UploadOutlined />}>上传</Button>
</div>
);
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
90
91
92
|
return (
<Card
type="inner"
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
93
|
title="活动图片"
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
94
95
96
|
className={detailS.detailBox}
>
<div className={detailS.left}>
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
97
|
<ImgCropItem
|
4124acda
莫红玲
banner图限制1张
|
98
|
// multiple
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
99
|
required
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
100
|
fidFile
|
42efb549
莫红玲
活动轮播图根据售前售后尺寸调整优化
|
101
|
label="活动轮播图"
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
102
103
104
|
name="bannerId"
labelCol={{ span: 4 }}
form={form}
|
42efb549
莫红玲
活动轮播图根据售前售后尺寸调整优化
|
105
106
|
extra={
<div style={{ fontSize: 10 }}>
|
2dbde97d
莫红玲
活动轮播图大小调整
|
107
|
<p style={{ margin: 0 }}>(售前)建议宽高尺寸: 750*750;</p>
|
42efb549
莫红玲
活动轮播图根据售前售后尺寸调整优化
|
108
109
110
|
<p style={{ margin: 0 }}>(售后)建议宽高尺寸: 670*240</p>
</div>
}
|
2dbde97d
莫红玲
活动轮播图大小调整
|
111
|
aspectXY={bizType == 2 ? { width: 670, height: 240 } : { width: 750, height: 750 }}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
112
113
114
|
// setFormStorage={setFormStorage}
{...uploadProps}
>
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
115
|
{!readOnly ? uploadButton : null}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
116
117
118
119
|
</ImgCropItem>
<FormItem
name="bgId"
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
120
|
required
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
121
122
|
label="活动主图"
labelCol={{ span: 4 }}
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
123
124
125
126
127
128
|
extra={
<div style={{ fontSize: 10 }}>
<div>活动概括,用于活动列表展示,(建议尺寸 750*520)</div>
<div>图片格式要求png、jpg、gif、jpeg,大小限制 5 MB 以内</div>
</div>
}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
129
130
131
132
|
valuePropName="fileList"
getValueFromEvent={valueFromEvent}
>
<Upload
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
133
134
|
maxCount={1}
{...ImageUploadProps}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
135
|
>
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
136
|
{!readOnly ? uploadButton : null}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
137
|
</Upload>
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
138
139
140
141
|
</FormItem>
<FormItem
labelCol={{ span: 4 }}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
142
143
|
name="videoId"
label="活动视频"
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
extra="视频格式要求 MP4,大小限制 50 MB 以内"
valuePropName="fileList"
getValueFromEvent={(e) => {
if (Array.isArray(e)) {
return e;
}
const { status, response } = e.file;
if (!status) {
return [];
}
if (status == "error") {
message.error("视频上传出错,请重新上传");
return [];
}
if (status == "removed" && response) {
COS.cosDelete({ filePath: response.data });
}
return e && e.fileList;
}}
>
|
b89ffacc
莫红玲
活动视频限制1
|
164
|
<Upload maxCount={1} multiple {...videoProps}>
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
165
|
{uploadButton}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
166
167
168
169
|
</Upload>
</FormItem>
<FormItem
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
170
171
|
name="content"
label="图文详情"
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
172
|
required
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
173
|
labelCol={{ span: 4 }}
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
174
175
176
177
178
179
|
extra={
<div style={{ fontSize: 10 }}>
<div>图文详情一般上传活动规则,时间,流程等内容,可以多张(建议尺寸 750*任意高)</div>
<div>图片格式要求png、jpg、gif、jpeg,大小限制 5 MB 以内</div>
</div>
}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
180
181
182
183
184
|
valuePropName="fileList"
getValueFromEvent={valueFromEvent}
>
<Upload
multiple
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
185
|
maxCount={10}
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
186
|
{...ImageUploadProps}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
187
|
>
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
188
|
{!readOnly ? uploadButton : null}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
189
190
191
192
193
194
|
</Upload>
</FormItem>
<FormItem
name="shareId"
label="分享图"
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
195
|
required
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
196
|
labelCol={{ span: 4 }}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
197
198
|
extra={
<>
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
199
|
<span style={{ fontSize: 10 }}>建议尺寸 750*1206</span>
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
200
201
|
</>
}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
202
|
valuePropName="fileList"
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
203
|
getValueFromEvent={valueFromEvent}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
204
205
|
>
<Upload
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
206
207
208
209
210
|
// accept="image/*"
// listType="picture"
// action="/api/file/upload"
// beforeUpload={beforeUpload}
// onPreview={(file: UploadFile) => onPreView(file, true)}
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
211
|
maxCount={1}
|
95042a91
莫红玲
活动图片上传地址变更 腾讯云
|
212
|
{...ImageUploadProps}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
213
|
>
|
ff7b0afa
莫红玲
活动图片上传提示优化
|
214
|
{!readOnly ? uploadButton : null}
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
215
216
|
</Upload>
</FormItem>
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
217
218
|
</div>
<div className={detailS.right}>
|
457b0b6b
莫红玲
活动基础内容对接接口,图片上传裁剪...
|
219
|
<CardDetailPreview form={form} />
|
f52f21be
莫红玲
市场活动配置管理列表页面
|
220
221
222
223
|
</div>
</Card>
);
}
|