diff --git a/wg-basic/page-unit.md b/wg-basic/page-unit.md index 4045731..b6958e4 100644 --- a/wg-basic/page-unit.md +++ b/wg-basic/page-unit.md @@ -2,7 +2,7 @@ title: 页面组件 description: 页面上使用的组件 published: true -date: 2021-09-08T06:49:56.594Z +date: 2021-09-08T06:50:38.758Z tags: wg-basic editor: markdown dateCreated: 2021-09-08T06:41:19.351Z @@ -215,4 +215,135 @@ top.dialog.open({ }); ``` # 9. 文件上传(图片示例) +依赖 +```html + + +``` +表单代码 +```html +
+ +
+ +
+ +
+
+``` + +js代码 +```js +var viewerObj = {}; + +function refreshDownloadTemplet(fileName, file) { + var dataRander = {}; + dataRander[fileName] = file; + + laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) { + document.getElementById(fileName +'FileBox').innerHTML = html; + }); +} + +// 初始化文件列表 +function initFileList(fileName, ids, callback) { + var dataForm = {}; + dataForm[fileName] = ids; + form.val('dataForm', dataForm); + + if(!ids) { + refreshDownloadTemplet(fileName, []); + if(callback) { + callback(fileName, []); + } + return; + } + + top.restAjax.get(top.restAjax.path('api/file/listfilebyfileid', []), { + ids: ids + }, null, function(code, data) { + refreshDownloadTemplet(fileName, data); + if(callback) { + callback(fileName, data); + } + }, function(code, data) { + top.dialog.msg(data.msg); + }); +} + +function initFactoryGateUploadFile() { + var files = $('#factoryGate').val(); + initFileList('factoryGate', files, function(fileName) { + var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false}); + viewerObj[fileName] = viewer; + }); + + form.on('button(factoryGateUploadFile)', function(obj) { + var name = this.dataset.name; + var explain = this.dataset.explain; + top.dialog.file({ + type: 'image', + title: '上传'+ explain, + width: '400px', + height: '420px', + maxFileCount: '1', + onClose: function() { + var uploadFileArray = top.dialog.dialogData.uploadFileArray; + if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) { + var files = $('#'+ name).val(); + for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) { + if(files.length > 0) { + files += ','; + } + files += file.data; + } + initFileList(name, files, function(fileName) { + viewerObj[fileName].update(); + }); + } + } + }); + }); + + form.on('button(factoryGateRemoveFile)', function(obj) { + var name = this.dataset.name; + var id = this.dataset.id; + var files = $('#'+ name).val().replace(id, ''); + files = files.replace(/\,+/g, ','); + if(files.charAt(0) == ',') { + files = files.substring(1); + } + if(files.charAt(files.length - 1) == ',') { + files = files.substring(0, files.length - 1); + } + initFileList(name, files, function(fileName) { + viewerObj[fileName].update(); + }); + }); +} +``` + +代码以厂区图片为例,实际只需要替换对应的内容即可:模板名称、模板BOX名称