|
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var sGJID = "";
var viewerURL = "";
var ipHost = window.location.host;
var _iframeWindow = "";
var Model = function() {
this.callParent();
this.modelCallBack = function() {
};
};
// 清空下拉
Model.prototype.cleBtnClick = function(event) {
var tempData = this.comp("tempData");
tempData.setValue("fID", "");
tempData.setValue("fProjectCode", "");
tempData.setValue("fProjectName", "");
tempData.setValue("fModelID", "");
tempData.setValue("fModelName", "");
tempData.setValue("fModelPath", "");
tempData.setValue("fDate", "");
this.getElementByXid('iframe2').src = "";
this.getElementByXid('viewerIFrame1').src = "";
};
// tempData数据发生变化后
Model.prototype.tempDataValueChanged = function(event) {
if (event.col === "fModelPath") {
var fModelPath = this.comp("tempData").getValue("fModelPath");
if (fModelPath) {alert(viewerURL + "?path=" + fModelPath)
this.getElementByXid('viewerIFrame1').src = viewerURL + "?path=" + fModelPath;
}
}
if (event.col === "fDate") {
this.initialModel();
}
};
// 选择工程
Model.prototype.selectBtnClick = function(event) {
this.comp("selProjectDlg").open();
};
// 工程名称改变后事件
Model.prototype.input2Change = function(event) {
var tempData = this.comp("tempData");
if (tempData.getValue("fID")) {
tempData.setValue("fModelID", "");
tempData.setValue("fModelName", "");
tempData.setValue("fModelPath", "");
this.comp("modMagerData").setFilter("fProjectID", "fProjectID='" + this.comp("tempData").getValue("fID") + "'");
this.comp("modMagerData").refreshData();
var url = "http://" + ipHost + "/plusproject_java/demo/Project.html?id=" + this.comp("tempData").getValue("fID") + "&Operator=true";// 项目进度查看
this.getElementByXid('iframe2').src = url;
}
};
// 导出xml
Model.prototype.exBtnClick = function(event) {
if (this.comp("tempData").getValue("fID")) {
var DCurl = "http://" + ipHost + "/plusproject_java/demo/ExportProject.jsp?id=" + this.comp("tempData").getValue("fID");// 导出
this.getElementByXid('iframe1').src = DCurl;
}
};
Model.prototype.modelLoad = function(event) {
// 获取大象云模型浏览路径
this.getBimPath("viewer");
var me = this;
var iframe = me.getIDByXID("viewerIFrame1");
_iframeWindow = iframe[0].contentWindow;
me.modelCallBack = function(event) {
if (event.target == window) {
var dataObj = JSON.parse(event.data);
switch (dataObj.type) {
case "MSG_ENTITY_SELECTED":
handleEntitySelected(dataObj.data);
break;
case "MSG_MODEL_READY":
me.initialModel();
break;
default:
break;
}
} else {
console.log('This message is not for me: ' + event.origin);
}
};
window.addEventListener('message', me.modelCallBack, false);
function handleEntitySelected(data) {
if (sGJID === "") {
sGJID = data.selectionIds;
}
}
};
Model.prototype.getBimPath = function(type) {
var bimPathData = this.comp("bimPathData");
if (type === "viewer") {
bimPathData.setFilter("fCode", " fCode = '02'");
bimPathData.refreshData();
viewerURL = bimPathData.getValue("fESField01");
}
// else if (type === "import") {
// bimPathData.setFilter("fCode", " fCode = '02'");
// bimPathData.refreshData();
// importURL = bimPathData.getValue("fEsfieldo1");
// } else if (type === "data") {
// bimPathData.setFilter("fCode", " fCode = '02'");
// bimPathData.refreshData();
// queryURL = bimPathData.getValue("fEsfieldo1");
// }
};
Model.prototype.initialModel = function() {
var fDate = this.comp("tempData").getValue("fDate");
if (fDate === null || fDate === undefined || fDate === "") {
var sStates = [];
var encodeID = "";
var msg = {
type : "MSG_SET_ENTITY_STATE",
data : {
states : sStates,
useState : false
}
};
_iframeWindow.postMessage(JSON.stringify(msg), viewerURL);
} else {
var process = "/PM/PM/process/progress_projectProgressQuery/progress_projectProgressQueryProcess";
var activity = "mainActivity";
var params = new biz.Request.ActionParam();
params.setString("fProjectID", this.comp("tempData").getValue("fID"));
params.setString("fDate", fDate);
var options = {};
options.contentType = 'application/json';
options.process = process;
options.activity = activity;
options.dataType = "json";
options.parameters = params;
options.action = "getBIMAndStateAction";
options.callback = function(data) {
if (data.state) {
// var iframe = $("#viewerIFrame1");
// var _iframeWindow = iframe[0].contentWindow;
var encodeID = "";
var sStates = [];
var rows = data.response.rows;
if (rows.length > 0) {
var colorDJ = [ 1, 1, 1 ];
var colorWC = [ 0.5, 0.5, 0.5 ];
var colorZJ = [ 0, 0.5, 5 ];
var colorTQ = [ 0, 200, 0 ];
var colorYQ = [ 255, 0, 0 ];
var colorYJ = [ 255, 255, 0 ];
for (var i = 0; i < rows.length; i++) {
// 待建
// if(rows[i].FZT.value==="DJ"){
// encodeID = window.btoa(rows[i].FGJUID.value);
// sStates.push([encodeID,colorDJ]);
// }
// 完成
if (rows[i].FZT.value === "WC") {
encodeID = window.btoa(rows[i].FGJUID.value);
sStates.push([ encodeID, colorWC ]);
}
// 在建
else if (rows[i].FZT.value === "ZJ") {
encodeID = window.btoa(rows[i].FGJUID.value);
sStates.push([ encodeID, colorZJ ]);
}
// 提前
else if (rows[i].FZT.value === "TQ") {
encodeID = window.btoa(rows[i].FGJUID.value);
sStates.push([ encodeID, colorTQ ]);
}
// 逾期
else if (rows[i].FZT.value === "YQ") {
encodeID = window.btoa(rows[i].FGJUID.value);
sStates.push([ encodeID, colorYQ ]);
}
// 预警
else if (rows[i].FZT.value === "YJ") {
encodeID = window.btoa(rows[i].FGJUID.value);
sStates.push([ encodeID, colorYJ ]);
}
}
var color = [ 1.3, 1.3, 1.3 ];
var msg = {
type : "MSG_SET_ENTITY_STATE",
data : {
states : sStates,
useState : true,
defaultStateColor : color
}
};
_iframeWindow.postMessage(JSON.stringify(msg), viewerURL);
}
} else {
throw new Error("模型渲染失败!请联系系统管理员检查错误原因。");
}
};
biz.Request.sendAsyncBizRequest(options);
}
}
Model.prototype.modelActive = function(event) {
window.addEventListener('message', this.modelCallBack, false);
};
Model.prototype.modelInactive = function(event) {
window.removeEventListener('message', this.modelCallBack, false);
};
Model.prototype.parentDataValueChanged = function(event) {
if (event.col === "fRandNUm") {// 随机数改变渲染模型
this.skipModel();
}
};
Model.prototype.skipModel = function() {
var params = new biz.Request.ActionParam();
params.setString("fProjectID", this.comp("tempData").getValue("fID"));
params.setString("fUID", this.comp("parentData").getValue("fParentValue"));// uid_
params.setString("fID", this.comp("parentData").getValue("fID_"));// 任务id_
var result = DataUtils.sendActionRequest(this.getContext(), "getBimMemberIDAction", params);// 跳转指定构件
if (result.length > 0) {
var sStates = [];
var encodeID = "";
debugger;
var color = [ 0, 0, 1 ];
for (var i = 0; i < result.length; i++) {
// 设置为蓝色
encodeID = window.btoa(result[i]); // 编码
sStates.push([ encodeID, color ]);
}
var msg = {
type : "MSG_SET_ENTITY_STATE",
data : {
states : sStates,
useState : true,
defaultStateColor : [ 1, 1, 1 ]
}
};
//_iframeWindow.postMessage(JSON.stringify(msg), "http://demo.dxbim.com:14004");
} else {
var msg = {
type : "MSG_SET_ENTITY_STATE",
data : {
states : [],
useState : false
}
};
//_iframeWindow.postMessage(JSON.stringify(msg), viewerURL);
}
};
// 显示下拉过滤数据
Model.prototype.gridSelect2ShowOption = function(event) {
var tempData = this.comp("tempData");
var fProjectID = tempData.getValue("fID");
if (fProjectID) {
var modMagerData = this.comp("modMagerData");
modMagerData.setFilter("fProjectID", "fProjectID = '" + fProjectID + "'");
modMagerData.refreshData();
}
};
return Model;
});
|
-
|