F.openProgressModal = function () { $pgEditModal.modal('show'); setProgressForm(progressForm, utils.json2obj($(this).data('pg'))); };
attachments.each(function() { _count -= 1; var fileId = this.id; var $target = $(this); // 此处判断有问题,如果页面某部分重新加载了,id不变的话,上传将不会被初始化 // 改判断方法为对象data属性 if (fileId && $target.data('ke-upload-inited')) { return true; } $target.data('ke-upload-inited', true); var btnId = utils.random('fileBtn'), options = utils.json2obj($target.data('attachment')), length = options.length, maxSize = options.maxSize || 10, viewer = $(options.target); viewer.addClass('upload-ctrl'); $target.after('<div class="file-upload"><input type="button" value="上传附件" id="' + btnId + '" /><span class="file-upload-descn">请上传<10M的附件</span></div>'); if (!fileId) { fileId = utils.random('file'); this.id = fileId; } F.uploaders[fileId] = KindEditor.uploadbutton({ button : document.getElementById(btnId), fieldName : 'file', extraParams : { entityKey : $target.val(), maxSize: maxSize }, url : webContext + '/file/upload', afterUpload : function(data) { if (!data.error) { var link = generateFile(data, fileId); viewer.append(link); if (!$target.val()) { $target.val(data.entityKey); $target.data('old-entity-key', data.entityKey); $(F.uploaders[fileId].form[0]).find('[name=entityKey]').val(data.entityKey); } } else { $.alert(data.errorMsg); } } }); F.uploaders[fileId].fileBox.change(function(e) { var old_entityKey = $target.data('old-entity-key'); var entityKey = $target.val(); if (!entityKey && old_entityKey) { // 如果当前input:hidden的value为空,且之前有值 // 说明这是清空了附件之后的再次上传附件操作,此时还原旧entityKey,以保证原key中的附件还关联在业务中 entityKey = old_entityKey; $target.val(old_entityKey); $(F.uploaders[fileId].form[0]).find('[name=entityKey]').val(old_entityKey); } if (length > 0 && entityKey) { var fileLength = viewer.find('.file-item').length; if (length === 1 && fileLength === 1) { $.alert('只能上传一份附件,如需修改,请先删除之前上传的附件。'); } else if (fileLength >= length) { $.alert('最多只能上传 <b>' + length + '</b> 份附件。'); } else { F.uploaders[fileId].submit(); } } else { F.uploaders[fileId].submit(); } }); if (this.value && viewer.length) { $.getJSON(webContext + '/file/getFileList/' + this.value) .done(function (data) { if (data.data.length > 0) { var list = $.map(data.data, function (file) { return generateFile(file, fileId); }).join(''); viewer.html(list); } else { this.value = ''; // key中包含的全是无效被删除的附件,清空值 } }); } });