# 弹窗配置

# 是否显示标题

点击应用系统,打开弹窗,弹窗有标题栏,应用系统页面里也有表头,就会出现如下情况:

多标题

为解决此问题,可设置不展示标题栏.

在系统设置->应用管理->组件注册(展示窗口标题)

便捷菜单

点击组件或应用系统会在打开的窗口url后自动拼接showTitle=true 或者 false。各应用系统接收showTitle参数, 当showTitle为false时,需要在左上角预留一定空间,以防止弹窗的功能按钮和项目左上角内容层叠。

当展示窗口标题开关开启时:

便捷菜单

当展示窗口标题开关关闭时: 窗口选中拖拽(缩放),最小化,最大化,关闭功能在窗口的右上角,如下图:

移除标题

选中拖拽(缩放):增加此功能按钮是因为标题栏不显示,无法对窗口进行选中拖拽操作。

# 窗口宽高的设置

在系统设置->应用管理->快捷方式->新增(类型选择非菜单时)

便捷菜单

可以配置窗口的宽度和高度(不配置时窗口的宽度默认1200px,高度默认800px)

# 打开窗口

将打开的弹出页面单独形成路由,将路由地址,通过postMessage进行传递。

窗口有窗口id,门户接收此消息后会比对窗口id,若有此id的窗口,则激活此窗口;没有则打开新窗口

        list = {id: '窗口id',name:'窗口名称',link:'路由地址'};
        window.parent.postMessage( {embedWindow: list}, "*");
        // 各属性解释:
            // id: 窗口id,为32位uuid不可重复。未避免每次点击按钮都新打开一个窗口,故每个窗口都需要一个唯一标识。
            // 门户接收此消息后会比对窗口id,若有此id的窗口,则激活此窗口;没有则打开新窗口
            // name: 窗口标题的名称
            // link:打开的路由地址
            // width:窗口宽度
            // height:窗口高度
            // *宽度和高度为非必要值,不设置宽度和高度时,使用默认宽高
        // 例:
        var list = {id: '4e11f806aa17cb31b188e7df3dc9a87e', name:'窗口一',link:'https://sunpma.com/other/rgb/'};
        window.parent.postMessage( {embedWindow: list}, "*");

# 最小化窗口

获取打开窗口时门户传递过来的windowId,用于确定操作的是哪个窗口,通过postMessage传递message。

例:

<html>
	<body>
		<button onclick="myClick('windowMinimum')">最小化</button>
	</body>
	<script>
	    var windowId = '';
		window.onload = function(){
				windowId = GetQueryString("windowId");
		}
		function GetQueryString(name){
			var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
			var r = window.location.search.substr(1).match(reg);
			if(r!=null)return  unescape(r[2]); return null;
		}
		function myClick (command){
			window.parent.postMessage(
				{ operatePortalWindow: 
					{
						windowId: windowId,
						operate: command
					} 
				},"*");
	    }
	</script>
<html>

# 最大化窗口

获取打开窗口时门户传递过来的windowId,用于确定操作的是哪个窗口,通过postMessage进行传递。

例:

<html>
    <body>
		<button onclick="myClick('windowChange')">最大化</button>
	</body>
	<script>
	    var windowId = '';
	    window.onload = function(){
			windowId = GetQueryString("windowId");
		}
		function GetQueryString(name){
		    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
			var r = window.location.search.substr(1).match(reg);
			if(r!=null)return  unescape(r[2]); return null;
		}
		function myClick (command){
			window.parent.postMessage(
			{ operatePortalWindow: 
			{
				windowId: windowId,
				operate: command
			} 
			},"*");
		}
	</script>
<html>

# 关闭窗口

获取打开窗口时门户传递过来的windowId,用于确定操作的是哪个窗口,通过postMessage进行传递。

例:

<html>
	<body>
		<button onclick="myClick('windowClose')">关闭</button>
	</body>
	<script>
		var windowId = '';
		window.onload = function(){
			windowId = GetQueryString("windowId");
		}
		function GetQueryString(name){
			var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
			var r = window.location.search.substr(1).match(reg);
			if(r!=null)return  unescape(r[2]); return null;
		}
		function myClick (command){
			window.parent.postMessage(
			{ operatePortalWindow: 
			{
				windowId: windowId,
				operate: command
			} 
			},"*");
		}
	</script>
<html>