提交 bbdf29bc 编写于 作者: Mosher's avatar Mosher

update:更新

上级 db1c3eb4
...@@ -22,26 +22,26 @@ ...@@ -22,26 +22,26 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { Component, Prop, Vue, Watch } from "vue-property-decorator"; import { Component, Prop, Vue } from "vue-property-decorator";
@Component({}) @Component({})
export default class AppNavPos extends Vue { export default class AppNavPos extends Vue {
/** /**
* 动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口) * 名称
* *
* @public * @type {string}
* @type {'DYNAMICCOMP' | 'ROUTEVIEW'}
* @memberof AppNavPos * @memberof AppNavPos
*/ */
@Prop({ default: "ROUTEVIEW" }) public dynaNavMode?: "DYNAMICCOMP" | "ROUTEVIEW"; @Prop() public name!: string;
/** /**
* 是否启用动态缓存 * 布局模型详情
* *
* @type {boolean} * @type {*}
* @memberof AppNavPos * @memberof AppNavPos
*/ */
@Prop({ default: false }) public enableCache?: boolean; @Prop() public layoutModelDetails: any;
/** /**
* 导航数据 * 导航数据
...@@ -49,7 +49,35 @@ export default class AppNavPos extends Vue { ...@@ -49,7 +49,35 @@ export default class AppNavPos extends Vue {
* @type {*} * @type {*}
* @memberof AppNavPos * @memberof AppNavPos
*/ */
@Prop() public navData?: any; @Prop() public navData: any;
/**
* 获取动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口)
*
* @type {"DYNAMICCOMP" | "ROUTEVIEW"}
* @memberof AppNavPos
*/
get dynaNavMode(): "DYNAMICCOMP" | "ROUTEVIEW" {
const currentModel = this.layoutModelDetails[this.name];
if (currentModel && currentModel.dynaNavMode) {
return currentModel.dynaNavMode;
}
return 'DYNAMICCOMP';
}
/**
* 是否启用动态缓存
*
* @type {boolean}
* @memberof AppNavPos
*/
get enableCache(): boolean {
const currentModel = this.layoutModelDetails[this.name];
if (currentModel) {
return currentModel.enableCache;
}
return false;
}
/** /**
* 路由列表 * 路由列表
......
...@@ -123,6 +123,7 @@ export class ExpViewEngine extends ViewEngine { ...@@ -123,6 +123,7 @@ export class ExpViewEngine extends ViewEngine {
} }
if (this.view && args && args.srfnavdata && args.srfnavdata.context) { if (this.view && args && args.srfnavdata && args.srfnavdata.context) {
this.view.navItem = args; this.view.navItem = args;
this.setNavPosData(args);
if (this.view.backSplit !== 0) { if (this.view.backSplit !== 0) {
this.view.split = this.view.backSplit; this.view.split = this.view.backSplit;
} }
...@@ -138,7 +139,7 @@ export class ExpViewEngine extends ViewEngine { ...@@ -138,7 +139,7 @@ export class ExpViewEngine extends ViewEngine {
this.isRealSelected = false; this.isRealSelected = false;
} }
} }
// this.view.$forceUpdate(); this.view.$forceUpdate();
} }
this.view.$emit("viewdataschange", args && args.data ? args.data : []); this.view.$emit("viewdataschange", args && args.data ? args.data : []);
} }
...@@ -147,6 +148,24 @@ export class ExpViewEngine extends ViewEngine { ...@@ -147,6 +148,24 @@ export class ExpViewEngine extends ViewEngine {
} }
} }
/**
* 设置导航数据
*
* @protected
* @param {*} data
* @return {*}
* @memberof ExpViewEngine
*/
protected setNavPosData(data: any) {
if (!this.view.layoutModelDetails) {
return;
}
const navPos: any = Object.values(this.view.layoutModelDetails).find((item: any) => {
return item.predefinedType === "NAV_POS";
});
navPos.navData = data;
}
/** /**
* 处理导航栏数据部件事件 * 处理导航栏数据部件事件
* *
......
export { PanelDetailModel } from './panel-detail'; export { PanelDetailModel } from './panel-detail';
export { PanelRawitemModel } from './panel-row-item'; export { PanelRawitemModel } from './panel-raw-item';
export { PanelTabPanelModel } from './panel-tab-panel'; export { PanelTabPanelModel } from './panel-tab-panel';
export { PanelTabPageModel } from './panel-tab-page'; export { PanelTabPageModel } from './panel-tab-page';
export { PanelFieldModel } from './panel-field'; export { PanelFieldModel } from './panel-field';
......
...@@ -176,6 +176,14 @@ export class PanelDetailModel { ...@@ -176,6 +176,14 @@ export class PanelDetailModel {
*/ */
public sysCss: string = '' public sysCss: string = ''
/**
* 预置类型
*
* @type {string}
* @memberof PanelDetailModel
*/
public predefinedType: string = '';
/** /**
* Creates an instance of PanelDetailModel. * Creates an instance of PanelDetailModel.
* PanelDetailModel 实例 * PanelDetailModel 实例
...@@ -205,6 +213,7 @@ export class PanelDetailModel { ...@@ -205,6 +213,7 @@ export class PanelDetailModel {
this.flexParams = opts.flexParams; this.flexParams = opts.flexParams;
this.isShowCaption = opts.isShowCaption; this.isShowCaption = opts.isShowCaption;
this.sysCss = opts.sysCss; this.sysCss = opts.sysCss;
this.predefinedType = opts.predefinedType;
} }
/** /**
......
import { PanelDetailModel } from './panel-detail';
/**
* 直接内容模型
*
* @export
* @class PanelRawitemModel
* @extends {PanelDetailModel}
*/
export class PanelRawitemModel extends PanelDetailModel {
/**
* 导航数据(用于导航区占位)
*
* @private
* @type {*}
* @memberof PanelRawitemModel
*/
public navData: any = {};
/**
* 视图类型
*
* @private
* @type {string}
* @memberof PanelRawitemModel
*/
private readonly viewType: string;
/**
* Creates an instance of PanelRawitemModel.
* @param {*} [opts={}]
* @memberof PanelRawitemModel
*/
constructor(opts: any = {}) {
super(opts);
this.viewType = opts.viewType;
}
/**
* 设置导航数据
*
* @param {*} value
* @memberof PanelRawitemModel
*/
setNavData(value: any) {
this.navData = value;
}
/**
* 获取导航数据
*
* @return {*}
* @memberof PanelRawitemModel
*/
getNavData() {
return this.navData;
}
/**
* 获取动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口)
*
* @readonly
* @type {('DYNAMICCOMP' | 'ROUTEVIEW')}
* @memberof PanelRawitemModel
*/
get dynaNavMode(): 'DYNAMICCOMP' | 'ROUTEVIEW' {
return this.viewType === 'APPINDEXVIEW' ? 'ROUTEVIEW' : 'DYNAMICCOMP';
}
/**
* 是否启用动态缓存
*
* @readonly
* @type {boolean}
* @memberof PanelRawitemModel
*/
get enableCache(): boolean {
if (this.viewType === 'APPINDEXVIEW' && this.panel && this.panel.layoutModelDetails) {
const navPos = Object.values(this.panel.layoutModelDetails).find((item: any) => {
return item.predefinedType === 'NAV_TABS';
})
}
return false;
}
}
\ No newline at end of file
import { PanelDetailModel } from './panel-detail';
/**
* 直接内容模型
*
* @export
* @class PanelRawitemModel
* @extends {PanelDetailModel}
*/
export class PanelRawitemModel extends PanelDetailModel {
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册