提交 309709f9 编写于 作者: ibizdev's avatar ibizdev

lxm1993 发布系统代码 [TrainSys,网页端]

上级 08c77efe
import { Vue, Component, Prop } from 'vue-property-decorator';
import { UIStateService } from '../../../../app-service';
import { LogUtil } from 'ibiz-core';
/**
* 应用内容区底部导航区
*
* @export
* @class AppContentBottomExp
* @extends {Vue}
*/
@Component({})
export class AppContentBottomExp extends Vue {
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentBottomExp
*/
protected uiState: UIStateService = new UIStateService();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentBottomExp
*/
@Prop()
public ctrlName!: string;
/**
* 菜单部件服务
*
* @memberof AppContentBottomExp
*/
@Prop()
protected service!: any;
/**
* 传入数据
*
* @type {any[]}
* @memberof AppContentBottomExp
*/
@Prop({ default: () => [] })
public items!: any[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@Prop() public modelService!:any;
/**
* 菜单数据
*
* @memberof AppContentBottomExp
*/
protected menus: any[] = [];
/**
* 当前激活项下标
*
* @protected
* @type {number}
* @memberof AppContentBottomExp
*/
protected activeIndex: number = -1;
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentBottomExp
*/
protected activeItem: any;
/**
* 组件创建完毕
*
* @memberof AppContentBottomExp
*/
public async created(){
const i: number = this.uiState.layoutState.bottomExpActiveIndex;
await this.replenishData(this.items);
if (this.menus.length >= i+1) {
this.itemClick(this.menus[i], i);
}
}
/**
* 填充数据
*
* @memberof AppContentBottomExp
*/
protected async replenishData(items: any[]){
this.menus = [];
let menus = [...items];
if(menus && menus.length>0){
for(let i = 0; i < menus.length; i++){
if (menus[i].getPSAppFunc) {
const appFuncs: Array<any> = this.service.getAllFuncs();
const appFunc = appFuncs.find((element:any) =>{
return element.appfunctag === menus[i].getPSAppFunc.codeName;
});
if (appFunc && Object.is(appFunc.appFuncType, 'APPVIEW')) {
if(appFunc.getPSAppView){
await appFunc.getPSAppView.fill();
Object.assign(menus[i], { viewname: 'app-view-shell', viewModelData: appFunc.getPSAppView });
}
}
}
}
}
this.menus = menus;
}
/**
* 激活分页
*
* @protected
* @param {string} name
* @memberof AppContentBottomExp
*/
protected activeTab(name: string): void {
try {
const item: any = this.menus[parseInt(name)];
this.itemClick(item, parseInt(name));
} catch (error) {
LogUtil.warn(error);
}
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentBottomExp
*/
protected itemClick(item: any, index: number): void {
this.uiState.layoutState.bottomExpActiveIndex = index;
this.activeIndex = index;
this.activeItem = item;
this.activeItem.isActivated = true;
}
/**
* 绘制标题
*
* @protected
* @param {*} h
* @param {*} item
* @returns {*}
* @memberof AppContentBottomExp
*/
protected renderTitle(h: any, item: any): any {
return (
<div title={this.$tl(item.tooltipTag, item.tooltip)} class="tab-exp-title">
<menu-icon item={item} />
{this.$tl(item.captionTag, item.caption)}
</div>
);
}
/**
* 绘制内容
*
* @returns {*}
* @memberof AppContentBottomExp
*/
public render(): any {
return (
<div class="app-content-bottom-exp">
<tabs
size="small"
animated={false}
value={this.activeIndex.toString()}
on-on-click={(name: string) => this.activeTab(name)}
>
{this.menus.map((item: any, i: number) => {
if (item.hidden) {
return;
}
return (
<tabPane label={(h: any) => this.renderTitle(h, item)} name={i.toString()}>
{item.isActivated ? (
<div key={i} class="tab-exp-item-content">
{this.$createElement(item.viewname,{
class: "view-container",
props: {
staticProps: {
viewDefaultUsage: false,
viewModelData: item.viewModelData
}
},
})}
</div>
) : null}
</tabPane>
);
})}
</tabs>
</div>
);
}
}
import { Vue, Component, Prop, Emit } from 'vue-property-decorator';
import { VNode } from 'vue';
import { UIStateService } from '../../../../app-service';
/**
* 应用左侧导航
*
* @export
* @class AppContentLeftExp
* @extends {Vue}
*/
@Component({})
export class AppContentLeftExp extends Vue {
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentLeftExp
*/
protected uiState: UIStateService = new UIStateService();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentLeftExp
*/
@Prop()
public ctrlName!: string;
/**
* 传入数据
*
* @protected
* @type {any[]}
* @memberof AppContentLeftExp
*/
@Prop({ default: () => [] })
protected items!: any[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@Prop() public modelService!:any;
/**
* 菜单部件服务
*
* @memberof AppContentLeftExp
*/
@Prop()
protected service!: any;
/**
* 当前激活项下标
*
* @protected
* @type {number}
* @memberof AppContentLeftExp
*/
protected activeIndex: number = -1;
/**
* 菜单数据
*
* @memberof AppContentLeftExp
*/
protected menus: any[] = [];
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentLeftExp
*/
protected activeItem: any;
/**
* 组件创建完毕
*
* @protected
* @memberof AppContentLeftExp
*/
protected async created() {
const i: number = this.uiState.layoutState.leftExpActiveIndex;
await this.replenishData(this.items);
if (this.menus.length >= i + 1) {
this.changeActiveItem(this.menus[i], i);
}
}
/**
* 填充数据
*
* @memberof AppContentLeftExp
*/
protected async replenishData(items: any[]) {
this.menus = [];
let menus = [...items];
if (menus && menus.length > 0) {
for (let i = 0; i < menus.length; i++) {
if (menus[i].getPSAppFunc) {
const appFuncs: Array<any> = this.service.getAllFuncs();
const appFunc = appFuncs.find((element:any) =>{
return element.appfunctag === menus[i].getPSAppFunc.codeName;
});
if (appFunc && Object.is(appFunc.appFuncType, 'APPVIEW')) {
if(appFunc.getPSAppView){
await appFunc.getPSAppView.fill();
Object.assign(menus[i], { viewname: 'app-view-shell', viewModelData: appFunc.getPSAppView });
}
}
}
}
}
this.menus = menus;
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentLeftExp
*/
protected itemClick(item: any, index: number): void {
if (this.activeIndex === index) {
this.uiState.leftExpContentShowChange();
} else {
this.uiState.leftExpContentShowChange(true);
this.changeActiveItem(item, index);
}
}
/**
* 当前激活菜单切换时抛出事件
*
* @param {*} item
* @memberof AppContentLeftExp
*/
@Emit('active-item-change')
public activeItemChange(item: any): any { }
/**
* 改变激活项
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentLeftExp
*/
protected changeActiveItem(item: any, index: number): void {
this.uiState.layoutState.leftExpActiveIndex = index;
this.activeIndex = index;
this.activeItem = item;
this.activeItem.isActivated = true;
this.activeItemChange(item);
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppContentLeftExp
*/
public render(): VNode {
return (
<div class="app-content-left-exp">
<div class="exp-actions">
{this.menus.map((item: any, index: number) => {
this.handleMenuItemLocale(item);
if (item.hidden) {
return;
}
return (
<div
title={this.$tl(item.tooltipTag, item.tooltip)}
on-click={() => this.itemClick(item, index)}
class={{ 'action-item': true, active: this.activeIndex === index }}
>
<div class="active-item-indicator" />
<menu-icon item={item} />
</div>
);
})}
</div>
<div class="exp-content">
{this.menus.map((item: any, index: number) => {
if (!item.isActivated || item.hidden) {
return;
}
return (
<div v-show={this.activeIndex === index} key={index} class="exp-item">
{this.$createElement(item.viewname, {
class: "view-container",
props: {
staticProps: {
viewDefaultUsage: false,
viewModelData: item.viewModelData
}
},
})}
</div>
);
})}
</div>
</div>
);
}
/**
* 计算菜单项多语言资源
*
* @returns {*}
* @memberof AppContentLeftExp
*/
public handleMenuItemLocale(item: any) {
if (!item.localetag) {
return;
}
let localeContent: any = this.$t(item.localetag);
if (localeContent) {
item.text = localeContent;
item.tooltip = localeContent;
}
}
}
import { Vue, Component, Prop, Emit, Watch } from 'vue-property-decorator';
import { UIStateService } from '../../../../app-service';
/**
* 左侧导航菜单
*
* @export
* @class AppContentLeftNavMenu
* @extends {Vue}
*/
@Component({})
export class AppContentLeftNavMenu extends Vue {
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentLeftNavMenu
*/
protected uiState: UIStateService = new UIStateService();
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentLeftNavMenu
*/
protected activeItem: any = {};
/**
* 菜单Map表
*
* @protected
* @type {Map<string, any>}
* @memberof AppContentLeftNavMenu
*/
protected menuMap: Map<string, any> = new Map();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentLeftNavMenu
*/
@Prop()
public ctrlName!: string;
/**
* 菜单数据
*
* @type {any[]}
* @memberof AppContentLeftNavMenu
*/
@Prop({ default: () => [] })
public menus!: any[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@Prop() public modelService!:any;
/**
* 监控菜单数据变更
*
* @memberof AppContentLeftNavMenu
*/
@Watch('menus', { immediate: true })
public watchMenus(): void {
this.fillMenuMap(this.menus);
}
/**
* 菜单项点击
*
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
@Emit('menu-click')
public menuClick(item: any): any {}
/**
* 底部绘制实例
*
* @memberof AppContentLeftNavMenu
*/
public footerRenderItem!: any;
/**
* 组件创建完毕
*
* @memberof AppContentLeftNavMenu
*/
public created(): void {
if (this.$route && this.$route.matched.length === 1) {
this.openDefault();
}
this.footerRenderItem = this.$footerRenderService.registerLeftItem((h: any) => {
return (
<icon
title={this.uiState.layoutState.leftNavMenuCollapse ? this.$t('components.content.open') : this.$t('components.content.close')}
type="md-menu"
style="font-size: 20px;vertical-align: -3px;"
on-click={() => this.uiState.leftNavMenuCollapseChange()}
/>
);
}, 0);
}
/**
* 组件销毁
*
* @memberof AppContentLeftNavMenu
*/
public destroyed(): void {
this.footerRenderItem?.remove();
}
/**
* 打开默认菜单
*
* @protected
* @memberof AppContentLeftNavMenu
*/
protected openDefault(): void {
let menu: any;
for (const [key, item] of this.menuMap) {
if (item.openDefault === true) {
menu = item;
break;
}
}
if (menu) {
this.itemClick(menu);
}
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @memberof AppContentLeftExp
*/
protected itemClick(item: any): void {
const styleMode: any = this.$uiState.layoutState.styleMode;
if ((Object.is(styleMode,'DEFAULT') && item.name !== this.activeItem.name) || Object.is(styleMode,'STYLE2')) {
this.changeActiveItem(item);
this.menuClick(item);
}
}
/**
* 改变激活项
*
* @protected
* @param {*} item
* @memberof AppContentLeftExp
*/
protected changeActiveItem(item: any): void {
this.activeItem = item;
this.activeItem.isActivated = true;
}
/**
* 菜单项选中
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected select(name: string): void {
const item = this.menuMap.get(name);
if (item) {
this.itemClick(item);
}
}
/**
* 填充菜单Map表
*
* @protected
* @param {any[]} menus
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected fillMenuMap(menus: any[]): any {
menus.forEach((item: any) => {
this.menuMap.set(item.name, item);
if (item.getPSAppMenuItems) {
this.fillMenuMap(item.getPSAppMenuItems);
}
});
}
/**
* 展开菜单项
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected open(name: string): void {
const i: number = this.uiState.layoutState.leftNavOpenedMenus.findIndex((str: any) => Object.is(str, name));
if (i === -1) {
this.uiState.layoutState.leftNavOpenedMenus.push(name);
}
}
/**
* 收起菜单项
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected close(name: string): void {
const i: number = this.uiState.layoutState.leftNavOpenedMenus.findIndex((str: any) => Object.is(str, name));
if (i !== -1) {
this.uiState.layoutState.leftNavOpenedMenus.splice(i, 1);
this.$forceUpdate();
}
}
/**
* 绘制子菜单
*
* @protected
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected renderGroup(item: any): any {
return (
<el-submenu index={item.name}>
<template slot="title">
<menu-icon item={item} />
<span slot="title">{this.$tl(item.captionTag,item.caption)}</span>
</template>
{this.renderItems(item.getPSAppMenuItems)}
</el-submenu>
);
}
/**
* 绘制菜单项
*
* @protected
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected renderItem(item: any): any {
return (
<el-menu-item index={item.name}>
<menu-icon item={item} />
<span slot="title">{this.$tl(item.captionTag,item.caption)}</span>
</el-menu-item>
);
}
/**
* 绘制菜单
*
* @protected
* @param {any[]} items
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected renderItems(items: any[]): any {
return items.map((item: any) => {
if (item.hidden) {
return;
}
if (item.getPSAppMenuItems) {
return this.renderGroup(item);
}
return this.renderItem(item);
});
}
/**
* 绘制内容
*
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
public render(): any {
return (
<div class="app-content-lef-nav-menu">
<el-menu
default-active={this.activeItem.name}
default-openeds={this.uiState.layoutState.leftNavOpenedMenus}
collapse={this.uiState.layoutState.leftNavMenuCollapse}
on-select={(i: any) => this.select(i)}
on-open={(i: any) => this.open(i)}
on-close={(i: any) => this.close(i)}
>
{this.renderItems(this.menus)}
</el-menu>
</div>
);
}
}
import { Vue, Component } from 'vue-property-decorator';
import { on } from '../../../../utils';
import { VNode } from 'vue';
/**
* 应用头部
*
* @export
* @class AppStyle2Content
* @extends {Vue}
*/
@Component({})
export class AppStyle2Content extends Vue {
/**
* Creates an instance of AppStyle2Content.
* @memberof AppStyle2Content
*/
constructor() {
super();
on(window, 'keydown', (e: KeyboardEvent) => {
if (e.ctrlKey && e.keyCode === 192) {
this.changeBottom();
}
});
}
/**
* 组件创建完毕
*
* @protected
* @memberof AppStyle2Content
*/
protected created(): void {
if (this.$slots.bottom) {
this.$footerRenderService.registerRightItem(() => {
return (
<div
title={this.$t('components.content.title')}
class="action-item"
on-click={() => this.changeBottom()}
>
<svg
t="1562669728550"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1118"
width="18"
height="18"
class="icon"
>
<path
d="M170.666667 170.666667h682.666666a85.333333 85.333333 0 0 1 85.333334 85.333333v512a85.333333 85.333333 0 0 1-85.333334 85.333333H170.666667a85.333333 85.333333 0 0 1-85.333334-85.333333V256a85.333333 85.333333 0 0 1 85.333334-85.333333z m0 85.333333v512h682.666666V256H170.666667z m341.333333 341.333333h256v85.333334h-256v-85.333334z m-43.306667-103.637333L317.866667 644.565333l-60.330667-60.373333 90.453333-90.453333-90.453333-90.538667L317.866667 342.869333l150.826666 150.826667z"
p-id="1119"
></path>
</svg>
</div>
);
}, 0);
}
}
/**
* 内容区底部区域,显示变更
*
* @protected
* @param {boolean} [judge]
* @memberof AppStyle2Content
*/
protected changeBottom(judge?: boolean): void {
if (judge !== undefined) {
this.$uiState.changeLayoutState({
contentBottomShow: judge,
});
} else {
this.$uiState.changeLayoutState({
contentBottomShow: !this.$uiState.layoutState.contentBottomShow,
});
}
}
/**
* 绘制内容
*
* @protected
* @param {boolean} isSlot
* @returns {*}
* @memberof AppStyle2Content
*/
protected renderContent(isSlot: boolean): any {
return (
<div
slot={isSlot ? 'right' : null}
class={{
'app-style2-content__right': true,
'is-hidden': !this.$uiState.layoutState.contentBottomShow || !this.$slots.bottom,
}}
>
<split mode="vertical" v-model={this.$uiState.layoutState.contentVerticalSplit} max={0.1}>
<div slot="top" class="app-style2-content__right__top">
{this.$slots.default}
</div>
{this.$slots.bottom ? (
<div slot="bottom" class="app-style2-content__right__bottom">
<div class="bottom__icon" on-click={() => this.changeBottom(false)}>
<icon type="ios-arrow-down" />
</div>
{this.$slots.bottom}
</div>
) : null}
</split>
</div>
);
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Content
*/
public render() {
if (this.$uiState.layoutState.styleMode === 'STYLE2') {
return [<div class="app-style2-content__left">{this.$slots.left}</div>, this.renderContent(false)];
} else {
return this.$slots.left ? (
<split
class={{ 'app-style2-content__split': true, 'is-hidden': !this.$uiState.layoutState.leftExpContentShow }}
v-model={this.$uiState.layoutState.contentHorizontalSplit}
min={0.1}
max={0.5}
>
<div slot="left">
{this.$slots.left}
</div>
{this.renderContent(true)}
</split>
) : (
this.renderContent(false)
);
}
}
}
\ No newline at end of file
import { Vue, Component } from 'vue-property-decorator';
import { VNode, CreateElement } from 'vue';
import { FooterItemsService } from '../../../../app-service';
import { Subscription } from 'rxjs';
/**
* 应用头部
*
* @export
* @class AppStyle2Footer
* @extends {Vue}
*/
@Component({})
export class AppStyle2Footer extends Vue {
/**
* 底部项绘制服务
*
* @private
* @memberof AppStyle2Footer
*/
private footerItemsService = new FooterItemsService();
/**
* @description 组件事件
* @type {(Subscription | undefined)}
* @memberof AppStyle2Footer
*/
public footerEvent: Subscription | undefined;
/**
* 组件创建完毕
*
* @memberof AppStyle2Footer
*/
public created(): void {
this.footerEvent = this.footerItemsService.tickTrigger().subscribe(() => {
this.$nextTick();
});
}
public destroyed() {
if (this.footerEvent) {
this.footerEvent.unsubscribe();
}
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Footer
*/
public render(h: CreateElement): VNode {
return (
<div class="app-style2-footer">
<div class="app-style2-footer__left">
{this.footerItemsService.leftItemsRenders.map((item) => {
return <div class="item">{item(h)}</div>;
})}
</div>
<div class="app-style2-footer__content">
{this.footerItemsService.centerItemsRenders.map((item) => {
return <div class="item">{item(h)}</div>;
})}
</div>
<div class="app-style2-footer__right">
{this.footerItemsService.rightItemsRenders.map((item) => {
return <div class="item">{item(h)}</div>;
})}
</div>
</div>
);
}
}
import { Vue, Component } from 'vue-property-decorator';
import { VNode } from 'vue';
/**
* 应用头部
*
* @export
* @class AppStyle2Header
* @extends {Vue}
*/
@Component({})
export class AppStyle2Header extends Vue {
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Header
*/
public render(h: any): VNode {
return (
<div class="app-style2-header">
<div class="app-style2-header__left">
{this.$slots.left}
{Object.is(this.$uiState.layoutState.styleMode, 'STYLE2') ? (
<app-breadcrumb></app-breadcrumb>
) : null}
</div>
<div class="app-style2-header__right">{this.$slots.right}</div>
</div>
);
}
}
import { Vue, Component } from 'vue-property-decorator';
import { VNode } from 'vue';
/**
* 应用布局容器
*
* @export
* @class AppStyle2Layout
* @extends {Vue}
*/
@Component({})
export class AppStyle2Layout extends Vue {
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Layout
*/
public render(): VNode {
return (
<div class='app-style2-layout'>
<div class="app-style2-header">{this.$slots.header}</div>
<div class="app-style2-content">{this.$slots.default}</div>
<div class="app-style2-footer">{this.$slots.footer}</div>
</div>
);
}
}
......@@ -97,14 +97,14 @@ import AppColorSpan from './common/app-color-span/app-color-span.vue';
import AppColorPicker from './common/app-color-picker/app-color-picker.vue';
import AppPortalDesign from './common/app-portal-design/app-portal-design.vue';
import AppNotSupportedEditor from './common/app-not-supported-editor/app-not-supported-editor.vue';
import { AppStyle2Layout } from './common/layout/app-style2-layout/app-style2-layout';
import { AppStyle2Header } from './common/layout/app-style2-header/app-style2-header';
import { AppStyle2Layout } from './common/app-style2-layout/app-style2-layout/app-style2-layout';
import { AppStyle2Header } from './common/app-style2-layout/app-style2-header/app-style2-header';
import { AppHeaderRightMenus } from './common/app-header-right-menus/app-header-right-menus';
import { AppStyle2Content } from './common/layout/app-style2-content/app-style2-content';
import { AppContentLeftExp } from './common/layout/app-content-left-exp/app-content-left-exp';
import { AppContentLeftNavMenu } from './common/layout/app-content-left-nav-menu/app-content-left-nav-menu';
import { AppContentBottomExp } from './common/layout/app-content-bottom-exp/app-content-bottom-exp';
import { AppStyle2Footer } from './common/layout/app-style2-footer/app-style2-footer';
import { AppStyle2Content } from './common/app-style2-layout/app-style2-content/app-style2-content';
import { AppContentLeftExp } from './common/app-style2-layout/app-content-left-exp/app-content-left-exp';
import { AppContentLeftNavMenu } from './common/app-style2-layout/app-content-left-nav-menu/app-content-left-nav-menu';
import { AppContentBottomExp } from './common/app-style2-layout/app-content-bottom-exp/app-content-bottom-exp';
import { AppStyle2Footer } from './common/app-style2-layout/app-style2-footer/app-style2-footer';
import TabPageExpStyle2 from './common/tab-page-exp-style2/tab-page-exp-style2.vue';
import FilterTree from './common/filter-tree/filter-tree.vue';
import DropdownListHidden from './common/dropdown-list-hidden/dropdown-list-hidden.vue'
......
......@@ -88,7 +88,7 @@ export class AppStyle2DefaultLayout extends Vue {
this.renderOptions = {};
const { viewType, viewStyle, codeName } = this.viewInstance;
const viewClassNames: any = {
'view-container': true
'view-style2-container': true
};
if (viewType) {
Object.assign(viewClassNames, { [viewType?.toLowerCase()]: true });
......
......@@ -153,7 +153,7 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
<app-style2-header>
<template slot="left">
<div class="app-style2-header__left__caption">
{this.viewInstance.enableAppSwitch ? <span class="caption__icon" on-click={() => this.contextMenuDragVisiable = !this.contextMenuDragVisiable}><icon type="md-menu" />&nbsp;</span> : null}
{true ? <span class="caption__icon" on-click={() => this.contextMenuDragVisiable = !this.contextMenuDragVisiable}><icon type="md-menu" />&nbsp;</span> : null}
{this.showCaption ? this.model.srfCaption : null}
</div>
</template>
......@@ -163,11 +163,10 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
<app-lang title={this.model.srfTitle || this.model.srfCaption}></app-lang>
{<app-orgsector />}
{<app-user viewStyle={this.viewInstance.viewStyle} />}
{/* {<app-custom-theme viewStyle={this.viewInstance.viewStyle}></app-custom-theme>} */}
</template>
</app-style2-header>
{this.$slots.default}
{this.viewInstance.enableAppSwitch ? <context-menu-drag viewStyle={this.viewInstance.viewStyle} contextMenuDragVisiable={this.contextMenuDragVisiable}></context-menu-drag> : null}
{true ? <context-menu-drag viewStyle={this.viewInstance.viewStyle} contextMenuDragVisiable={this.contextMenuDragVisiable}></context-menu-drag> : null}
</template>
<app-style2-content>
{leftContent ?
......@@ -175,14 +174,14 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
{leftContent}
</template> : null}
{styleMode === 'DEFAULT' ? this.$slots.tabPageExp : null}
<div class="app-style2-content" on-click={() => this.contextMenuDragVisiable = false}>
<div class="app-style2-content__body" on-click={() => this.contextMenuDragVisiable = false}>
<app-keep-alive routerList={this.routerList}>
<router-view key={this.routerViewKey}></router-view>
</app-keep-alive>
</div>
{this.$slots.bootomExp ?
{this.$slots.bottomExp ?
<template slot="bottom">
{this.$slots.bootomExp}
{this.$slots.bottomExp}
</template> : null}
</app-style2-content>
<template slot="footer">
......
......@@ -336,12 +336,12 @@ export class AppStyle2IndexView extends AppIndexViewBase {
*
* @memberof AppStyle2IndexView
*/
public renderBootomExp(){
public renderBottomExp(){
return (
this.bottom_exp?.getPSAppMenuItems ?
<app-content-bottom-exp
slot="bootomExp"
ref="bootomExp"
slot="bottomExp"
ref="bottomExp"
service={this.service}
ctrlName={this.menuInstance?.codeName?.toLowerCase()}
modelService={this.modelService}
......@@ -378,7 +378,7 @@ export class AppStyle2IndexView extends AppIndexViewBase {
this.renderHeaderMenus(),
this.renderTabPageExp(),
this.renderMainContent(),
this.renderBootomExp(),
this.renderBottomExp(),
]);
}
......
......@@ -1275,6 +1275,7 @@
"enableQuickSearch" : true,
"enableRowEdit" : false,
"enableSearch" : true,
"loadDefault" : false,
"rowEditDefault" : false,
"modelid" : "8d77cd231589f99e58c37b2201aa3160",
"modeltype" : "PSAPPDEVIEW"
......
......@@ -9948,6 +9948,7 @@
"enableQuickSearch" : true,
"enableRowEdit" : false,
"enableSearch" : true,
"loadDefault" : false,
"rowEditDefault" : false,
"modelid" : "8d77cd231589f99e58c37b2201aa3160",
"modeltype" : "PSAPPDEVIEW"
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册