/** layui-v2.5.6 MIT License By https://www.layui.com */ ;layui.define("layer", function(e) { "use strict"; var t = layui.$ , i = layui.layer , n = layui.hint() , o = layui.device() , a = { config: {}, set: function(e) { var i = this; return i.config = t.extend({}, i.config, e), i }, on: function(e, t) { return layui.onevent.call(this, r, e, t) } } , l = function() { var e = this; return { upload: function(t) { e.upload.call(e, t) }, reload: function(t) { e.reload.call(e, t) }, config: e.config } } , r = "upload" , u = "layui-upload-file" , c = "layui-upload-form" , f = "layui-upload-iframe" , s = "layui-upload-choose" , p = function(e) { var i = this; i.config = t.extend({}, i.config, a.config, e), i.render() }; p.prototype.config = { accept: "images", exts: "", auto: !0, bindAction: "", url: "", field: "file", acceptMime: "", method: "post", data: {}, drag: !0, size: 0, number: 0, multiple: !1 }, p.prototype.render = function(e) { var i = this , e = i.config; e.elem = t(e.elem), e.bindAction = t(e.bindAction), i.file(), i.events() } , p.prototype.file = function() { var e = this , i = e.config , n = e.elemFile = t(['"].join("")) , a = i.elem.next(); (a.hasClass(u) || a.hasClass(c)) && a.remove(), o.ie && o.ie < 10 && i.elem.wrap('
'), e.isFile() ? (e.elemFile = i.elem, i.field = i.elem[0].name) : i.elem.after(n), o.ie && o.ie < 10 && e.initIE() } , p.prototype.initIE = function() { var e = this , i = e.config , n = t('') , o = t(['"].join("")); t("#" + f)[0] || t("body").append(n), i.elem.next().hasClass(c) || (e.elemFile.wrap(o), i.elem.next("." + c).append(function() { var e = []; return layui.each(i.data, function(t, i) { i = "function" == typeof i ? i() : i, e.push('') }), e.join("") }())) } , p.prototype.msg = function(e) { return i.msg(e, { icon: 2, shift: 6 }) } , p.prototype.isFile = function() { var e = this.config.elem[0]; if (e) return "input" === e.tagName.toLocaleLowerCase() && "file" === e.type } , p.prototype.preview = function(e) { var t = this; window.FileReader && layui.each(t.chooseFiles, function(t, i) { var n = new FileReader; n.readAsDataURL(i), n.onload = function() { e && e(t, i, this.result) } }) } , p.prototype.upload = function(e, i) { var n, a = this, l = a.config, r = a.elemFile[0], u = function() { var i = 0 , n = 0 , o = e || a.files || a.chooseFiles || r.files , u = function() { l.multiple && i + n === a.fileLength && "function" == typeof l.allDone && l.allDone({ total: a.fileLength, successful: i, aborted: n }) }; layui.each(o, function(e, o) { var r = new FormData; r.append(l.field, o), layui.each(l.data, function(e, t) { t = "function" == typeof t ? t() : t, r.append(e, t) }); var c = { url: l.url, type: "post", data: r, contentType: !1, processData: !1, dataType: "json", headers: l.headers || {}, success: function(t) { i++, d(e, t), u() }, error: function() { n++, a.msg("请求上传接口出现异常"), m(e), u() } }; "function" == typeof l.progress && (c.xhr = function() { var e = t.ajaxSettings.xhr(); return e.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var t = Math.floor(e.loaded / e.total * 100); l.progress(t, l.item[0], e) } }), e } ), t.ajax(c) }) }, c = function() { var e = t("#" + f); a.elemFile.parent().submit(), clearInterval(p.timer), p.timer = setInterval(function() { var t, i = e.contents().find("body"); try { t = i.text() } catch (n) { a.msg("获取上传后的响应信息出现异常"), clearInterval(p.timer), m() } t && (clearInterval(p.timer), i.html(""), d(0, t)) }, 30) }, d = function(e, t) { if (a.elemFile.next("." + s).remove(), r.value = "", "object" != typeof t) try { t = JSON.parse(t) } catch (i) { return t = {}, a.msg("请对上传接口返回有效JSON") } "function" == typeof l.done && l.done(t, e || 0, function(e) { a.upload(e) }) }, m = function(e) { l.auto && (r.value = ""), "function" == typeof l.error && l.error(e || 0, function(e) { a.upload(e) }) }, h = l.exts, v = function() { var t = []; return layui.each(e || a.chooseFiles, function(e, i) { t.push(i.name) }), t }(), g = { preview: function(e) { a.preview(e) }, upload: function(e, t) { var i = {}; i[e] = t, a.upload(i) }, pushFile: function() { return a.files = a.files || {}, layui.each(a.chooseFiles, function(e, t) { a.files[e] = t }), a.files }, resetFile: function(e, t, i) { var n = new File([t],i); a.files = a.files || {}, a.files[e] = n } }, y = function() { if ("choose" !== i && !l.auto || (l.choose && l.choose(g), "choose" !== i)) return l.before && l.before(g), o.ie ? o.ie > 9 ? u() : c() : void u() }; if (v = 0 === v.length ? r.value.match(/[^\/\\]+\..+/g) || [] || "" : v, 0 !== v.length) { switch (l.accept) { case "file": if (h && !RegExp("\\w\\.(" + h + ")$", "i").test(escape(v))) return a.msg("选择的文件中包含不支持的格式"), r.value = ""; break; case "video": if (!RegExp("\\w\\.(" + (h || "avi|mp4|wma|rmvb|rm|flash|3gp|flv") + ")$", "i").test(escape(v))) return a.msg("选择的视频中包含不支持的格式"), r.value = ""; break; case "audio": if (!RegExp("\\w\\.(" + (h || "mp3|wav|mid") + ")$", "i").test(escape(v))) return a.msg("选择的音频中包含不支持的格式"), r.value = ""; break; default: if (layui.each(v, function(e, t) { RegExp("\\w\\.(" + (h || "jpg|png|gif|bmp|jpeg$") + ")", "i").test(escape(t)) || (n = !0) }), n) return a.msg("选择的图片中包含不支持的格式"), r.value = "" } if (a.fileLength = function() { var t = 0 , i = e || a.files || a.chooseFiles || r.files; return layui.each(i, function() { t++ }), t }(), l.number && a.fileLength > l.number) return a.msg("同时最多只能上传的数量为:" + l.number); if (l.size > 0 && !(o.ie && o.ie < 10)) { var F; if (layui.each(a.chooseFiles, function(e, t) { if (t.size > 1024 * l.size) { var i = l.size / 1024; i = i >= 1 ? i.toFixed(2) + "MB" : l.size + "KB", r.value = "", F = i } }), F) return a.msg("文件不能超过" + F) } y() } } , p.prototype.reload = function(e) { e = e || {}, delete e.elem, delete e.bindAction; var i = this , e = i.config = t.extend({}, i.config, a.config, e) , n = e.elem.next(); n.attr({ name: e.name, accept: e.acceptMime, multiple: e.multiple }) } , p.prototype.events = function() { var e = this , i = e.config , a = function(t) { e.chooseFiles = {}, layui.each(t, function(t, i) { var n = (new Date).getTime(); e.chooseFiles[n + "-" + t] = i }) } , l = function(t, n) { var o = e.elemFile , a = t.length > 1 ? t.length + "个文件" : (t[0] || {}).name || o[0].value.match(/[^\/\\]+\..+/g) || [] || ""; o.next().hasClass(s) && o.next().remove(), e.upload(null, "choose"), e.isFile() || i.choose || o.after('' + a + "") }; i.elem.off("upload.start").on("upload.start", function() { var o = t(this) , a = o.attr("lay-data"); if (a) try { a = new Function("return " + a)(), e.config = t.extend({}, i, a) } catch (l) { n.error("Upload element property lay-data configuration item has a syntax error: " + a) } e.config.item = o, e.elemFile[0].click() }), o.ie && o.ie < 10 || i.elem.off("upload.over").on("upload.over", function() { var e = t(this); e.attr("lay-over", "") }).off("upload.leave").on("upload.leave", function() { var e = t(this); e.removeAttr("lay-over") }).off("upload.drop").on("upload.drop", function(n, o) { var r = t(this) , u = o.originalEvent.dataTransfer.files || []; r.removeAttr("lay-over"), a(u), i.auto ? e.upload(u) : l(u) }), e.elemFile.off("upload.change").on("upload.change", function() { var t = this.files || []; a(t), i.auto ? e.upload() : l(t) }), i.bindAction.off("upload.action").on("upload.action", function() { e.upload() }), i.elem.data("haveEvents") || (e.elemFile.on("change", function() { t(this).trigger("upload.change") }), i.elem.on("click", function() { e.isFile() || t(this).trigger("upload.start") }), i.drag && i.elem.on("dragover", function(e) { e.preventDefault(), t(this).trigger("upload.over") }).on("dragleave", function(e) { t(this).trigger("upload.leave") }).on("drop", function(e) { e.preventDefault(), t(this).trigger("upload.drop", e) }), i.bindAction.on("click", function() { t(this).trigger("upload.action") }), i.elem.data("haveEvents", !0)) } , a.render = function(e) { var t = new p(e); return l.call(t) } , e(r, a) });