diff --git a/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/modules/cropperImg.js b/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/modules/cropperImg.js new file mode 100644 index 00000000..4fee5bd5 --- /dev/null +++ b/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/modules/cropperImg.js @@ -0,0 +1,364 @@ +layui.define(["layer", "setter"], + function (f) { + var h = layui.jquery; + var k = layui.layer; + var d = layui.setter; + var n = { version: "1.1.0", layerData: {} }; + n.open = function (s) { + if (s.content && s.type === 2) { + s.url = undefined + } + if (s.url && (s.type === 2 || s.type === undefined)) { + s.type = 1 + } + if (s.area === undefined) { + s.area = s.type === 2 ? ["360px", "300px"] : "360px" + } + if (s.offset === undefined) { + s.offset = "70px" + } + if (s.shade === undefined) { + s.shade = 0.1 + } + if (s.fixed === undefined) { + s.fixed = false + } + if (s.resize === undefined) { + s.resize = false + } + if (s.skin === undefined) { + //s.skin = "layui-layer-admin" + s.skin = "layui-layer-admin" + } + var q = s.end; + s.end = function () { + k.closeAll("tips"); + q && q() + }; + if (s.url) { + var r = s.success; + s.success = function (t, u) { + h(t).data("tpl", s.tpl || ""); + n.reloadLayer(u, s.url, r) + } + } else { + if (s.tpl && s.content) { + s.content = n.util.tpl(s.content, s.data, d.tplOpen, d.tplClose) + } + } + var i = k.open(s); + if (s.data) { + n.layerData["d" + i] = s.data + } + return i + }; + n.closeDialog = function (i) { + if (i) { + k.close(n.getLayerIndex(i)) + } else { + parent.layer.close(parent.layer.getFrameIndex(window.name)) + } + }; + n.getLayerIndex = function (i) { + if (!i) { + return parent.layer.getFrameIndex(window.name) + } + var q = h(i).parents(".layui-layer").first().attr("id"); + if (q && q.length >= 11) { + return q.substring(11) + } + }; + n.cropImg = function (s) { + var q = "image/jpeg"; + var x = s.aspectRatio; + var y = s.imgSrc ? s.imgSrc == 'no' ? null : s.imgSrc : "/static/images/common/empty-banner.png"; + + //var y = s.imgSrc == 'no' ? null : s.imgSrc; + + var v = s.imgType; + var t = s.onCrop; + var u = s.limitSize; + var w = s.acceptMime; + var r = s.exts; + var i = s.title; + if (x === undefined) { + x = 1 + } + if (i === undefined) { + i = "裁剪图片" + } + if (v) { + q = v + } + layui.use(["Cropper", "upload"], + function () { + var A = layui.Cropper, z = layui.upload; + + function B() { + var E, F = h("#ew-crop-img"); + var G = { + elem: "#ew-crop-img-upload", + auto: false, + drag: false, + choose: function (H) { + H.preview(function (J, K, I) { + console.log("xuanze"); + q = K.type; + F.attr("src", I); + if (!y || !E) { + y = I; + B() + } else { + E.destroy(); + E = new A(F[0], D) + } + }) + } + }; + if (u !== undefined) { + G.size = u + } + if (w !== undefined) { + G.acceptMime = w + } + if (r !== undefined) { + G.exts = r + } + z.render(G); + if (!y) { + return h("#ew-crop-img-upload").trigger("click") + } + var D = { + aspectRatio: x, preview: ".ew-crop-img-preview", + ready: function (e) { + //console.log("初始准备" + e.type); + }, + cropstart: function (e) { + //console.log(e.type, e.detail.action); + }, + cropmove: function (e) { + //console.log(e.type, e.detail.action); + }, + cropend: function (e) { + //console.log(e.type, e.detail.action); + }, + crop: function (e) { + var data = e.detail; + + var dataX = document.getElementById('dataX'); + var dataY = document.getElementById('dataY'); + var dataHeight = document.getElementById('dataHeight'); + var dataWidth = document.getElementById('dataWidth'); + var dataRotate = document.getElementById('dataRotate'); + var dataScaleX = document.getElementById('dataScaleX'); + var dataScaleY = document.getElementById('dataScaleY'); + dataX.value = Math.round(data.x); + dataY.value = Math.round(data.y); + dataHeight.value = Math.round(data.height); + dataWidth.value = Math.round(data.width); + dataRotate.value = typeof data.rotate !== 'undefined' ? data.rotate : ''; + dataScaleX.value = typeof data.scaleX !== 'undefined' ? data.scaleX : ''; + dataScaleY.value = typeof data.scaleY !== 'undefined' ? data.scaleY : ''; + }, + zoom: function (e) { + console.log(e.type, e.detail.ratio); + } + }; + E = new A(F[0], D); + h(".ew-crop-tool").on("click", + "[data-method]", + function () { + var I = h(this).data(), J, H; + if (!E || !I.method) { + return + } + I = h.extend({}, I); + J = E.cropped; + switch (I.method) { + case "rotate": + if (J && D.viewMode > 0) { + E.clear() + } + break; + case "getCroppedCanvas": + if (q === "image/jpeg") { + if (!I.option) { + I.option = {} + } + I.option.fillColor = "#fff" + } + break + } + H = E[I.method](I.option, I.secondOption); + switch (I.method) { + case "rotate": + if (J && D.viewMode > 0) { + E.crop() + } + break; + case "scaleX": + case "scaleY": + h(this).data("option", -I.option); + break; + case "getCroppedCanvas": + if (H) { + t && t(H.toDataURL(q)); + n.closeDialog("#ew-crop-img") + } else { + k.msg("裁剪失败", { icon: 2, anim: 6 }) + } + break + } + }) + + // docs - toggles + h(".my-toggles").on('click', "[data-value]", + function () { + var data = h(this).data(); + //console.log(data.value); + if (!E) { + return; + } + D.aspectRatio = data.value; + D.ready = function () { + //console.log('重新准备'); + }; + // Restart + E.destroy(); + E = new A(F[0], D); + }); + } + + var C = [ + '