Skip to content

Commit

Permalink
0.2.3 ZLRouter 默认使用自身坐标来初始化推入的页面坐标
Browse files Browse the repository at this point in the history
  • Loading branch information
gm958spanda committed Jun 23, 2021
1 parent 72f6a87 commit c19b241
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 56 deletions.
54 changes: 18 additions & 36 deletions src/zlkit/zlview/ZLRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { BrowserRouter,HashRouter,
Switch
} from 'react-router-dom'

import {ZLViewPage, ZLViewPageClass} from './ZLViewPage'
import {ZLViewPage, ZLViewPageClass, ZLViewPageInitParas} from './ZLViewPage'

import * as History from 'history';
import { ZLPoint, ZLRect, ZLSize } from './ZLUIDef';
Expand Down Expand Up @@ -74,54 +74,35 @@ function ZLRouteRenderFunction( p:any )
return page.reactElement();
}

interface ZLRouterInitParas extends ZLViewPageInitParas
{
/** 路由匹配的根路径,默认 "/" */
rootPath? : string;
/** 是否使用HashRouter。默认不使用 */
useHashRouter? : boolean;
}

export class ZLRouter extends ZLViewPage
{
/**
* 构造函数
*/
constructor(paras?:{
/** 路由匹配的根路径,默认 "/" */
rootPath? : string;
/** 打开新页面时的默认大小 */
pageSize? : ZLSize,
/** 打开新页面时的默认x,y */
pageOrigin? : ZLPoint,
/** 是否使用HashRouter。默认不使用 */
useHashRouter? : boolean})
constructor(paras?:ZLRouterInitParas)
{
let pageSize = ZLSize.getWindowContentSize();
let pageOrigin = ZLPoint.Zero;
super(paras);

let rootPath = "/";
let useHashRouter = false;
if (arguments.length > 0 && typeof arguments[0] === "string")
{
rootPath = arguments[0];
if (arguments.length > 1) {
pageSize = arguments[1];
}
if (arguments.length > 2) {
useHashRouter = arguments[2];
}
}
else if (paras)
if (paras)
{
if (paras.rootPath) {
rootPath = paras.rootPath;
}
if (paras.pageSize) {
pageSize = paras.pageSize;
}
if (paras.pageOrigin) {
pageOrigin = paras.pageOrigin;
}
if (paras.useHashRouter) {
useHashRouter = paras.useHashRouter;
}
}

super({pageSize:pageSize,pageOrigin:pageOrigin});

if (rootPath === undefined || rootPath.length === 0) {
this.__zl_router_rootPath__ = "/";
}
Expand All @@ -140,10 +121,6 @@ export class ZLRouter extends ZLViewPage
this.__zl_router_pathPages__ = new Map();

let v = new ZLRouterWrapperView(this);
v.width = pageSize.width;
v.height = pageSize.height;
v.x = pageOrigin.x;
v.y = pageOrigin.y;
this.__zl_router_wrapperView__ = v;
}
/**
Expand Down Expand Up @@ -325,7 +302,12 @@ export class ZLRouter extends ZLViewPage

protected loadView(pageRect:ZLRect) : ZLView
{
return this.__zl_router_wrapperView__;
let v = this.__zl_router_wrapperView__;
v.x = pageRect.x;
v.y = pageRect.y;
v.width = pageRect.width;
v.height = pageRect.height;
return v;
}

// /**
Expand Down
20 changes: 16 additions & 4 deletions src/zlkit/zlview/ZLUIDef.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,24 @@ export class ZLSize

public static getWindowContentSize()
{
let sz = new ZLSize(window.document.body.clientWidth,window.innerHeight)
let sz = new ZLSize(this.getWindowContentWidth(),this.getWindowContentHeight());
return sz;
}
public static getWindowContentWidth()
{
let w = window.document.body.clientWidth;
if (ZLCurrentSizeUnit !== ZLSizeUnit.px) {
sz.width /= ZLCurrentSizeUnitOneRemToPx;
sz.height /= ZLCurrentSizeUnitOneRemToPx;
w /= ZLCurrentSizeUnitOneRemToPx;
}
return sz;
return w;
}
public static getWindowContentHeight()
{
let h = window.innerHeight;
if (ZLCurrentSizeUnit !== ZLSizeUnit.px) {
h /= ZLCurrentSizeUnitOneRemToPx;
}
return h;
}
}

Expand Down
92 changes: 76 additions & 16 deletions src/zlkit/zlview/ZLViewPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,90 @@ import { ZLPoint, ZLRect, ZLSize } from './ZLUIDef';
import { ZLRouter } from './ZLRouter';
import {ZLObject} from './ZLObject'

export type ZLViewPageClass = new (paras? : {pageSize?: ZLSize, pageOrigin?:ZLPoint}) => ZLViewPage

export interface ZLViewPageInitParas
{
/** 页面坐标*/
x?: number;
/** 页面坐标*/
y?: number;
/** 页面坐标*/
width?:number;
/** 页面坐标*/
height?:number;

/** 页面坐标 优先使用x-y-width-height*/
pageSize?:ZLSize;
/** 页面坐标 优先使用x-y-width-height*/
pageOrigin?:ZLPoint;
}

export type ZLViewPageClass = new (paras? : ZLViewPageInitParas) => ZLViewPage
export class ZLViewPage extends ZLObject
{
/**
* 构造函数
*/
constructor(paras? : {pageSize?: ZLSize, pageOrigin?:ZLPoint})
constructor(paras? : ZLViewPageInitParas )
{
super();
if (paras)
if (paras instanceof ZLSize) {
this.__zl_defaultRect__ = new ZLRect(0,0,(paras as ZLSize).width,(paras as ZLSize).height);
}
else
{
if (paras instanceof ZLSize) {
this.__zl_defaultRect__ = new ZLRect(0,0,(paras as ZLSize).width,(paras as ZLSize).height);
} else {
let sz = paras.pageSize;
let origin = paras.pageOrigin;
if (sz === undefined) {
sz = ZLSize.getWindowContentSize();
}
if (origin === undefined) {
origin = ZLPoint.Zero;
let x : number | undefined = undefined;
let y : number | undefined = undefined;
let w : number | undefined = undefined;
let h : number | undefined = undefined;
let sz : ZLSize | undefined = undefined;
let origin : ZLPoint | undefined = undefined;
if (paras) {
x = paras.x;
y = paras.y;
w = paras.width;
h = paras.height;
sz = paras.pageSize;
origin = paras.pageOrigin;
}
if (origin !== undefined)
{
if (x === undefined ) {
x = origin.x
}
if (y === undefined ) {
y = origin.y
}
}
else
{
if (x === undefined){
x = 0;
}
if (x === undefined){
y = 0;
}
}

if (sz !== undefined)
{
if (w === undefined ) {
w = sz.width
}
if (h === undefined ) {
h = sz.height
}
}
else
{
if (w === undefined){
w = ZLSize.getWindowContentWidth();
}
if (h === undefined){
h = ZLSize.getWindowContentHeight();
}
this.__zl_defaultRect__ = new ZLRect(origin.x,origin.y,sz.width,sz.height);
}
this.__zl_defaultRect__ = new ZLRect(x,y,w,h);
}
}

Expand All @@ -47,7 +107,7 @@ export class ZLViewPage extends ZLObject
/**
* 创建视图,子类可重写
*/
protected loadView( pageRect?: ZLRect ): ZLView
protected loadView( pageRect: ZLRect ): ZLView
{
let v = new ZLView();
if (pageRect !== undefined )
Expand Down Expand Up @@ -103,7 +163,7 @@ export class ZLViewPage extends ZLObject
/**
* 默认尺寸
*/
private __zl_defaultRect__? : ZLRect;
private __zl_defaultRect__ : ZLRect;
/**
* 视图
*/
Expand Down

0 comments on commit c19b241

Please sign in to comment.