(function (factory) { var nameSpace = 'field_17179215134928371056'; if (!window[nameSpace]) { console.log("开始实例化跳转地图按钮") 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.initParams(options); //初始化dom self.initDom(); //事件 self.events(); } App.prototype = { initParams: function (options) { console.log("开始初始化参数") 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; console.log(self.messageObj) }, initDom: function () { var self = this; console.log("开始渲染dom") dynamicLoading.css(self.preUrl + '/css/goMapBtn.css'); self.appendChildDom(); }, events: function () { var self = this; // 监听是否数据刷新 console.log("设置事件监听") self.adaptation.ObserverEvent.listen('Event' + self.privateId, function () { self.messageObj = self.adaptation.childrenGetData(self.privateId); self.appendChildDom(); }); }, goMap: function (privateId, messageObj, adaptation) { // 获取表单中的资产编号,跳转到资产地图 console.log("privateId:" + privateId) console.log("messageObj:" + messageObj) console.log(adaptation) messageObj = adaptation.childrenGetData(privateId); var targetObj = messageObj.formdata.formmains[adaptation.formMessage.tableName]; 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; break; } } } if (assetNo) { var baseUrl = window.location.origin + '/seeyon/seeyonExtend/assetsMap/map.html'; window.open(baseUrl + '?assetId=' + encodeURIComponent(assetNo), '_blank'); } else { $.alert('未找到资产编号字段'); } }, appendChildDom: function () { var self = this; var doJump = function () { self.goMap(self.privateId, self.messageObj, self.adaptation) } var domStructure = '
' + '
' + self.messageObj.display.escapeHTML() + '
' + '
'; document.querySelector('#' + self.privateId).innerHTML = domStructure; var content = self.messageObj.formdata.content document.querySelector('.' + self.privateId).removeEventListener('click', doJump); document.querySelector('.' + self.privateId).addEventListener('click', doJump); } }; 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; });