Files
AssetsMap/seeyon/apps_res/cap/customeCtrlResources/goMapBtnResources/js/goMapInit.js
2026-06-18 16:26:31 +08:00

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;
});