Browse Source

Pull request #1420: KERNEL-4881 refactor: bi.multifile_editor 简化,自动重置状态, accept 属性与标准统一

Merge in VISUAL/fineui from ~DAILER/fineui:master to master

* commit '93b2cb911696d7b25f39fff3df3931842160d54c':
  KERNEL-4881 refactor: bi.multifile_editor 简化,自动重置状态, accept 属性与标准统一
es6
parent
commit
372d3de2fb
  1. 1
      changelog.md
  2. 7
      src/base/single/editor/editor.multifile.js
  3. 31
      src/base/single/input/file.js

1
changelog.md

@ -1,5 +1,6 @@
# 更新日志
2.0(2020-07)
- bi.file文件上传控件accept属性与 [input accept Attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept) 统一
- 修复了日期类型控件设置一个不在minDate和maxDate之间的日期值时,面板灰化与翻页按钮状态不对的问题
- BI.OB的on方法返回一个解除监听的函数
- 修复了grid_view执行_unMount时不调用子组件的_unMount的问题

7
src/base/single/editor/editor.multifile.js

@ -66,6 +66,10 @@ BI.MultifileEditor = BI.inherit(BI.Widget, {
});
},
_reset: function () {
this.file.reset();
},
select: function () {
this.file.select();
},
@ -75,11 +79,12 @@ BI.MultifileEditor = BI.inherit(BI.Widget, {
},
upload: function () {
this._reset();
this.file.upload();
},
reset: function () {
this.file.reset();
this._reset();
}
});
BI.MultifileEditor.EVENT_CHANGE = "EVENT_CHANGE";

31
src/base/single/input/file.js

@ -403,6 +403,31 @@
return handler;
};
var r1 = /\.([^.]+)$/; // .png
var r2 = /\/([^/]+)$/; // image/png
/**
* 校验文件类型是否合法,同时兼容旧版形式
* @param fileName
* @param fileType
* @returns {boolean}
*/
var fileTypeValidate = function (fileName, fileType) {
var mimes = fileType.split(",");
if (mimes[0] === fileType) {
mimes = (fileType + "").split(";");
}
return BI.some(mimes, function (index, mime) {
var matches;
if (matches = mime.match(r1)) {
return fileName.toLowerCase().indexOf(matches[1]) > -1;
}
if (matches = mime.match(r2)) {
return matches[1] === "*" ? true : fileName.toLowerCase().indexOf(matches[1]) > -1;
}
});
};
BI.File = BI.inherit(BI.Widget, {
_defaultConfig: function () {
var conf = BI.File.superclass._defaultConfig.apply(this, arguments);
@ -415,7 +440,7 @@
name: "",
url: "",
multiple: true,
accept: "", /** '*.jpg; *.zip'**/
accept: "", // .png,.pdf,image/jpg,image/* 等
maxSize: -1 // 1024 * 1024
});
},
@ -428,6 +453,7 @@
}
this.element.attr("name", o.name || this.getName());
this.element.attr("title", o.title || "");
this.element.attr("accept", o.accept);
},
created: function () {
@ -522,7 +548,8 @@
var value = item.fileName || (item.fileName = tempFile.split("\\").pop()),
ext = -1 !== value.indexOf(".") ? value.split(".").pop().toLowerCase() : "unknown",
size = item.fileSize || item.size;
if (wrap.fileType && -1 === wrap.fileType.indexOf("*." + ext)) {
var validateFileType = fileTypeValidate(value, wrap.fileType);
if (!validateFileType) {
// 文件类型不支持
BI.Msg.toast(BI.i18nText("BI-Upload_File_Type_Error"), { level: "error" });
self.fireEvent(BI.File.EVENT_ERROR, {

Loading…
Cancel
Save