114 lines
3.5 KiB
JavaScript
114 lines
3.5 KiB
JavaScript
|
|
(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 = '<section class="customButton_box_content">' +
|
||
|
|
'<div class="customButton_class_box ' + self.privateId + '" title="' + self.messageObj.display.escapeHTML() + '">' + self.messageObj.display.escapeHTML() + '</div>' +
|
||
|
|
'</section>';
|
||
|
|
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;
|
||
|
|
});
|