(function (factory) { var nameSpace = 'field_88661234567890123457'; if (!window[nameSpace]) { var Builder = factory(); window[nameSpace] = { instance: {} }; window[nameSpace].init = function (options) { window[nameSpace].instance[options.privateId] = new Builder(options); }; } })(function () { function App(options) { var self = this; self.adaptation = options.adaptation; self.privateId = options.privateId; self.preUrl = options.url_prefix; self.adaptation.formMessage = options.formMessage; self.messageObj = options.getData; self.folderId = ''; // 网盘文件夹ID,从弹框返回时更新 self.initDom(); self.events(); } App.prototype = { initDom: function () { var self = this; self.appendChildDom(); }, events: function () { var self = this; self.adaptation.ObserverEvent.listen('Event' + self.privateId, function () { self.messageObj = self.adaptation.childrenGetData(self.privateId); self.appendChildDom(); }); }, appendChildDom: function () { var self = this; const params = new URLSearchParams(window.location.search); console.log(params) const openFrom = params.get('openFrom'); // 返回"2025" const type = params.get('type'); console.log(openFrom) console.log(type) var edit = !((openFrom != null && (openFrom =='listPending' || openFrom =='listDone' || openFrom =='listSent'))||(type != null && type =='browse')); console.log(edit) var domStructure = '
' + '
'+ '
'+ '' + self.messageObj.display.escapeHTML() + '
' + '
' +'
' +'
' + (edit ? '
' : '') + '
' + '
'; document.querySelector('#' + self.privateId).innerHTML = domStructure; var fileRef = function() { self.redirectToNewPage(self.privateId, self.messageObj, self.adaptation) } var attachArea = document.querySelector('.cap4-attach__items' + '.' + self.privateId); attachArea.innerHTML = ""; if (self.messageObj.value) { console.log(self.messageObj.value) var values = JSON.parse(self.messageObj.value); var outFileDiv = document.createElement('div'); attachArea.appendChild(outFileDiv); values.forEach(function(item) { // 创建一个新的 div 来包含超链接和文件名 var fileDiv = document.createElement('div'); fileDiv.className = "cap4-attach__att1 not-custome-btn"; // 创建超链接元素 var fileRightDiv = document.createElement('div'); fileRightDiv.className = "cap4-attach__att"; var innerArea = '
' +'
' +'' + ''+item.name+''+ (edit ? '' : '') +'
' fileRightDiv.innerHTML = innerArea; fileDiv.appendChild(fileRightDiv); outFileDiv.appendChild(fileDiv); }); } var content = self.messageObj.formdata.content; const picker = document.querySelector('.cap4-attach__picker' + '.' + self.privateId); if(picker) { document.querySelector('.cap4-attach__picker' + '.' + self.privateId).removeEventListener( 'click', fileRef); document.querySelector('.cap4-attach__picker' + '.' + self.privateId).addEventListener( 'click', fileRef); } const goNewPages = document.querySelectorAll('.goToNewPage'); if(goNewPages.length > 0){ goNewPages.forEach(element => { element.addEventListener('click', function(e) { console.log(e.currentTarget.dataset.href) window.open(e.currentTarget.dataset.href, '_blank'); // }); }); } const deleteList = document.querySelectorAll('.ico16.' + self.privateId); if (deleteList.length > 0) { deleteList.forEach(element => { element.addEventListener('click', function (e) { console.log("触发删除操作"); let current = e.target; while (current && current !== document.documentElement) { if ( current.classList.contains('cap4-attach__att1') && current.classList.contains('not-custome-btn') ) { console.log("开始清除"); current.remove(); break; } current = current.parentElement; } }); }); } //渲染隐藏权限 if (self.messageObj.auth === 'hide') { document.querySelector('#' + self.privateId).innerHTML = '
***
'; } }, /** 打开致远弹框 */ redirectToNewPage: function (privateId, messageObj, adaptation) { var self = this; // 拼接folderId参数到弹框URL var tableName = messageObj.formdata.alldata.tableInfo.formmain.tableName var targetObj = messageObj.formdata.formmains[adaptation.formMessage.tableName]; var oldValue = targetObj[privateId].showValue; if (!targetObj) return; var assetNo; for (var key in targetObj) { if (targetObj.hasOwnProperty(key) && !/^auxiliary/.test(key)) { if (targetObj[key].display === "资产编号") { assetNo = targetObj[key].showValue; } } } var dialogUrl = self.preUrl + '/html/fileUpload.html?bizId=' + assetNo; var dialog = $.dialog({ id: 'fileRefDialog', url: dialogUrl, width: 1080, height: 720, title: '关联附件', type: 'panel', checkMax: true, transParams: { oldValue: oldValue}, closeParam: { show: false, autoClose: false, handler: function () {} }, buttons: [{ text: '确认', handler: function () { var result = dialog.getReturnValue(); console.log(result) if (result) { try { var data = JSON.parse(result); var selected = data.files || []; if (selected.length > 0) { // 合并到已有文件列表 messageObj = adaptation.childrenGetData(privateId); saveFiles(selected, messageObj.id, messageObj.display, privateId,messageObj, adaptation,tableName); } } catch (e) { console.error('解析返回值失败:', e); } } dialog.close(); } }, { text: '取消', handler: function () { dialog.close(); } }] }); }, }; /** 保存文件列表到表单 */ function saveFiles(files, fieldName, fieldDisplay, privateId, messageObj, adaptation,tableName) { var self = this; var param = new Object(); param.masterId = messageObj.formdata.content.contentDataId; param.formId = messageObj.formdata.content.contentTemplateId; param.fieldDisplay = fieldDisplay; param.value = files; param.isFile = 'true'; $.ajax({ type: "POST", url: '/seeyon/rest/assetsRegion/formBackFill', data: JSON.stringify(param), dataType: "json", contentType: 'application/json;charset=UTF-8', success: function(res) { // 后台解析数据后 将数据填写到表单中 if (res.code == 0) { var backfill = {}; backfill.tableName = tableName; // 回填主表 backfill.tableCategory = 'formmain'; // 后台组装的data数据 console.log(res.data) backfill.updateData = res.data; adaptation.backfillFormControlData(backfill, privateId); } else { // 报错 $.alert(res.message); } }, complete: function() {}, error: function(e) { top.$.error(e.responseText); } }); } var dynamicLoading = { css: function(path) { if (!path || path.length === 0) { throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.href = path; link.rel = 'stylesheet'; link.type = 'text/css'; head.appendChild(link); }, js: function(path) { if (!path || path.length === 0) { throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src = path; script.type = 'text/javascript'; head.appendChild(script); } } return App; });