From 9d92273bcd2e5e0dc413f85486fb97d4d96bdc36 Mon Sep 17 00:00:00 2001 From: Karson Date: Thu, 23 Oct 2025 15:47:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=9B=BE=E7=89=87=E7=9B=B8=E5=86=8C=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/js/require-upload.js | 34 ++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/public/assets/js/require-upload.js b/public/assets/js/require-upload.js index 04139390..aecf8c8d 100755 --- a/public/assets/js/require-upload.js +++ b/public/assets/js/require-upload.js @@ -29,7 +29,7 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, } var url = Config.upload.fullmode ? (data.fullurl ? data.fullurl : Fast.api.cdnurl(data.url)) : data.url; urlArr.push(url); - inputObj.val(urlArr.join(",")).trigger("change").trigger("validate"); + inputObj.val(urlArr.join(",")).trigger("change", [data]).trigger("validate"); } //如果有回调函数 var onDomUploadSuccess = $(button).data("upload-success"); @@ -348,7 +348,7 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, textarea.val(JSON.stringify(result)); }; if (preview_id && input_id) { - $(document.body).on("keyup change", "#" + input_id, function (e) { + $(document.body).on("keyup change", "#" + input_id, function (e, data) { var inputStr = $("#" + input_id).val(); var inputArr = inputStr.split(/\,/); var previewObj = $("#" + preview_id); @@ -370,8 +370,9 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, var fullurl = typeof btnData.cdnurl !== 'undefined' ? Fast.api.cdnurl(j, btnData.cdnurl) : Fast.api.cdnurl(j); j = Config.upload.fullmode ? fullurl : j; var value = (json && typeof json[i] !== 'undefined' ? json[i] : null); - var data = {url: j, fullurl: fullurl, data: btnData, key: i, index: i, value: value, row: value, suffix: suffix}; - var html = tpl ? Template(tpl, data) : Template.render(Upload.config.previewtpl, data); + // 只有最后一项才是透传的附件相关信息 + var renderData = $.extend(true, data && typeof inputArr[i + 1] === 'undefined' ? data : {}, {url: j, fullurl: fullurl, data: btnData, key: i, index: i, value: value, row: value, suffix: suffix}); + var html = tpl ? Template(tpl, renderData) : Template.render(Upload.config.previewtpl, renderData); previewObj.append(html); }); refresh(previewObj.data("name")); @@ -379,25 +380,40 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, $("#" + input_id).trigger("change"); } if (preview_id) { + var previewObj = $("#" + preview_id); + var mode = previewObj.data("mode") ? previewObj.data("mode") : "blank"; + // 如果是相册预览模式 + if (mode === 'photo') { + previewObj.on('click', "a.thumbnail", function () { + var photoData = []; + $("[data-url]", previewObj).each(function (i, j) { + photoData.push({"src": $(j).attr("href")}); + }); + Layer.photos({ + photos: {start: previewObj.find("a.thumbnail").index(this), data: photoData} + }); + return false; + }); + } //监听文本框改变事件 - $("#" + preview_id).on('change keyup', "input,textarea,select", function () { + previewObj.on('change keyup', "input,textarea,select", function () { refresh($(this).closest("ul").data("name")); }); // 监听事件 $(document.body).on("fa.preview.change", "#" + preview_id, function () { var urlArr = []; - $("#" + preview_id + " [data-url]").each(function (i, j) { + $("[data-url]", previewObj).each(function (i, j) { urlArr.push($(this).data("url")); }); if (input_id) { $("#" + input_id).val(urlArr.join(",")); } - refresh($("#" + preview_id).data("name")); + refresh(previewObj.data("name")); }); // 移除按钮事件 $(document.body).on("click", "#" + preview_id + " .btn-trash", function () { $(this).closest("li").remove(); - $("#" + preview_id).trigger("fa.preview.change"); + previewObj.trigger("fa.preview.change"); }); } if (input_id) { @@ -444,7 +460,7 @@ define(['jquery', 'bootstrap', 'dropzone', 'template'], function ($, undefined, var index = Layer.msg(__('Uploading'), {offset: 't', time: 0}); var id = "dropzone-" + Dropzone.uuidv4(); var button = $('