Skip to content

Commit 5090f39

Browse files
zhc5253499657insummer
authored andcommitted
feat:image-picker增加maxImageSize属性,可设置最大图片限制;增加linoversize事件 (#623)
* feat:image-picker增加maxImageSize属性,可设置最大图片限制;增加linoversize事件,当有图片超过最大限制时触发。
1 parent 6fb848e commit 5090f39

File tree

3 files changed

+102
-18
lines changed

3 files changed

+102
-18
lines changed

dist/image-picker/index.js

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ Component({
4949
isPreview: {
5050
type: Boolean,
5151
value: true
52+
},
53+
// 所选图片最大限制,单位字节
54+
maxImageSize: {
55+
type: Number,
56+
value: 10000000,
5257
}
5358
},
5459

@@ -78,7 +83,7 @@ Component({
7883
*/
7984
methods: {
8085
handleClear() {
81-
var urls = this.data.urls;
86+
let urls = this.data.urls;
8287
this.setData({
8388
urls: [],
8489
clear: false,
@@ -97,8 +102,8 @@ Component({
97102
onPreviewTap(e) {
98103
const index = e.currentTarget.dataset.index;
99104
const urls = this.data.urls;
100-
var tempFilePath = '';
101-
var previewImageList = [];
105+
let tempFilePath = '';
106+
let previewImageList = [];
102107
const newOrOld = this.data.newOrOld;
103108

104109
if (newOrOld == 'old') {
@@ -107,7 +112,7 @@ Component({
107112

108113
} else {
109114
tempFilePath = this.data.urls[index].url;
110-
for (var i = 0; i < urls.length; i++) {
115+
for (let i = 0; i < urls.length; i++) {
111116
previewImageList.push(urls[i].url);
112117
}
113118
}
@@ -143,15 +148,21 @@ Component({
143148
sourceType: ['album', 'camera'],
144149
success(res) {
145150
// tempFilePath可以作为img标签的src属性显示图片
146-
var tempFilePath = [];
151+
let tempFilePath = [];
147152
if (newOrOld == 'old') {
148153
tempFilePath = res.tempFilePaths;
149154
} else {
150-
for (var i = 0; i < res.tempFilePaths.length; i++) {
155+
for (let i = 0; i < res.tempFilePaths.length; i++) {
151156
tempFilePath.push({
152157
url: res.tempFilePaths[i],
153158
// key: null
159+
imageSize: res.tempFiles[i].size
154160
});
161+
if (res.tempFiles[i].size > that.data.maxImageSize) {
162+
tempFilePath[i].overSize = true;
163+
} else {
164+
tempFilePath[i].overSize = false;
165+
}
155166
}
156167
}
157168
const newtempFilePaths = that.data.urls.concat(tempFilePath);
@@ -174,6 +185,23 @@ Component({
174185

175186
that.triggerEvent('linchange', detail, option);
176187
that.triggerEvent('linpush', detail, option);
188+
189+
// 超过大小的image集合
190+
let overSizeList = [];
191+
for (let n = 0; n < newtempFilePaths.length; n++) {
192+
if (newtempFilePaths[n].overSize) {
193+
overSizeList.push(newtempFilePaths[n]);
194+
}
195+
}
196+
197+
if (overSizeList.length > 0) {
198+
let detail = {
199+
current: tempFilePath,
200+
all: newtempFilePaths,
201+
overSizeList: overSizeList,
202+
};
203+
that.triggerEvent('linoversize', detail, option);
204+
}
177205
}
178206
});
179207

examples/dist/image-picker/index.js

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ Component({
4949
isPreview: {
5050
type: Boolean,
5151
value: true
52+
},
53+
// 所选图片最大限制,单位字节
54+
maxImageSize: {
55+
type: Number,
56+
value: 10000000,
5257
}
5358
},
5459

@@ -78,7 +83,7 @@ Component({
7883
*/
7984
methods: {
8085
handleClear() {
81-
var urls = this.data.urls;
86+
let urls = this.data.urls;
8287
this.setData({
8388
urls: [],
8489
clear: false,
@@ -97,8 +102,8 @@ Component({
97102
onPreviewTap(e) {
98103
const index = e.currentTarget.dataset.index;
99104
const urls = this.data.urls;
100-
var tempFilePath = '';
101-
var previewImageList = [];
105+
let tempFilePath = '';
106+
let previewImageList = [];
102107
const newOrOld = this.data.newOrOld;
103108

104109
if (newOrOld == 'old') {
@@ -107,7 +112,7 @@ Component({
107112

108113
} else {
109114
tempFilePath = this.data.urls[index].url;
110-
for (var i = 0; i < urls.length; i++) {
115+
for (let i = 0; i < urls.length; i++) {
111116
previewImageList.push(urls[i].url);
112117
}
113118
}
@@ -143,15 +148,21 @@ Component({
143148
sourceType: ['album', 'camera'],
144149
success(res) {
145150
// tempFilePath可以作为img标签的src属性显示图片
146-
var tempFilePath = [];
151+
let tempFilePath = [];
147152
if (newOrOld == 'old') {
148153
tempFilePath = res.tempFilePaths;
149154
} else {
150-
for (var i = 0; i < res.tempFilePaths.length; i++) {
155+
for (let i = 0; i < res.tempFilePaths.length; i++) {
151156
tempFilePath.push({
152157
url: res.tempFilePaths[i],
153158
// key: null
159+
imageSize: res.tempFiles[i].size
154160
});
161+
if (res.tempFiles[i].size > that.data.maxImageSize) {
162+
tempFilePath[i].overSize = true;
163+
} else {
164+
tempFilePath[i].overSize = false;
165+
}
155166
}
156167
}
157168
const newtempFilePaths = that.data.urls.concat(tempFilePath);
@@ -174,6 +185,23 @@ Component({
174185

175186
that.triggerEvent('linchange', detail, option);
176187
that.triggerEvent('linpush', detail, option);
188+
189+
// 超过大小的image集合
190+
let overSizeList = [];
191+
for (let n = 0; n < newtempFilePaths.length; n++) {
192+
if (newtempFilePaths[n].overSize) {
193+
overSizeList.push(newtempFilePaths[n]);
194+
}
195+
}
196+
197+
if (overSizeList.length > 0) {
198+
let detail = {
199+
current: tempFilePath,
200+
all: newtempFilePaths,
201+
overSizeList: overSizeList,
202+
};
203+
that.triggerEvent('linoversize', detail, option);
204+
}
177205
}
178206
});
179207

src/image-picker/index.js

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ Component({
4949
isPreview: {
5050
type: Boolean,
5151
value: true
52+
},
53+
// 所选图片最大限制,单位字节
54+
maxImageSize: {
55+
type: Number,
56+
value: 10000000,
5257
}
5358
},
5459

@@ -78,7 +83,7 @@ Component({
7883
*/
7984
methods: {
8085
handleClear() {
81-
var urls = this.data.urls;
86+
let urls = this.data.urls;
8287
this.setData({
8388
urls: [],
8489
clear: false,
@@ -97,8 +102,8 @@ Component({
97102
onPreviewTap(e) {
98103
const index = e.currentTarget.dataset.index;
99104
const urls = this.data.urls;
100-
var tempFilePath = '';
101-
var previewImageList = [];
105+
let tempFilePath = '';
106+
let previewImageList = [];
102107
const newOrOld = this.data.newOrOld;
103108

104109
if (newOrOld == 'old') {
@@ -107,7 +112,7 @@ Component({
107112

108113
} else {
109114
tempFilePath = this.data.urls[index].url;
110-
for (var i = 0; i < urls.length; i++) {
115+
for (let i = 0; i < urls.length; i++) {
111116
previewImageList.push(urls[i].url);
112117
}
113118
}
@@ -143,15 +148,21 @@ Component({
143148
sourceType: ['album', 'camera'],
144149
success(res) {
145150
// tempFilePath可以作为img标签的src属性显示图片
146-
var tempFilePath = [];
151+
let tempFilePath = [];
147152
if (newOrOld == 'old') {
148153
tempFilePath = res.tempFilePaths;
149154
} else {
150-
for (var i = 0; i < res.tempFilePaths.length; i++) {
155+
for (let i = 0; i < res.tempFilePaths.length; i++) {
151156
tempFilePath.push({
152157
url: res.tempFilePaths[i],
153158
// key: null
159+
imageSize: res.tempFiles[i].size
154160
});
161+
if (res.tempFiles[i].size > that.data.maxImageSize) {
162+
tempFilePath[i].overSize = true;
163+
} else {
164+
tempFilePath[i].overSize = false;
165+
}
155166
}
156167
}
157168
const newtempFilePaths = that.data.urls.concat(tempFilePath);
@@ -174,6 +185,23 @@ Component({
174185

175186
that.triggerEvent('linchange', detail, option);
176187
that.triggerEvent('linpush', detail, option);
188+
189+
// 超过大小的image集合
190+
let overSizeList = [];
191+
for (let n = 0; n < newtempFilePaths.length; n++) {
192+
if (newtempFilePaths[n].overSize) {
193+
overSizeList.push(newtempFilePaths[n]);
194+
}
195+
}
196+
197+
if (overSizeList.length > 0) {
198+
let detail = {
199+
current: tempFilePath,
200+
all: newtempFilePaths,
201+
overSizeList: overSizeList,
202+
};
203+
that.triggerEvent('linoversize', detail, option);
204+
}
177205
}
178206
});
179207

0 commit comments

Comments
 (0)