起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3996|回复: 2

[处理中3] _iframeWindow .postMessage报错

[复制链接]

197

主题

834

帖子

1511

积分

金牌会员

Rank: 6Rank: 6

积分
1511
QQ
发表于 2018-5-16 18:36:01 | 显示全部楼层 |阅读模式
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;
});

QQ截图20180516183555.png
------回复内容仅供参考

197

主题

834

帖子

1511

积分

金牌会员

Rank: 6Rank: 6

积分
1511
QQ
 楼主| 发表于 2018-5-16 18:38:51 | 显示全部楼层
操作是,点击情况按钮,清空页面数据,会调用值改变方法,调用initialModel这个方法
if (event.col === "fDate") {
         this.initialModel();
   }

------回复内容仅供参考
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-17 08:46:08 | 显示全部楼层
错误已经提示js的那行报错了,自己js中debugger调试跟踪一下
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-11 04:43 , Processed in 0.072142 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表