提交 4986b18d 编写于 作者: ibizdev's avatar ibizdev

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

上级 e1537cb0
<template> <template>
<div class="app-full-scren"> <div class="app-full-scren">
<span><Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" size="15" @click="handleScreen"/></span> <span :title="$t('components.scren.all')"><Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" size="15" @click="handleScreen"/></span>
<span class="title" @click="handleScreen">{{$t('components.scren.all')}}</span>
</div> </div>
</template> </template>
<script lang = 'ts'> <script lang='ts'>
import { Vue, Component } from 'vue-property-decorator'; import { Vue, Component } from 'vue-property-decorator';
@Component({}) @Component({})
export default class AppFullScren extends Vue{ export default class AppFullScren extends Vue {
public fullScren: boolean = false; public fullScren: boolean = false;
...@@ -16,7 +15,10 @@ export default class AppFullScren extends Vue{ ...@@ -16,7 +15,10 @@ export default class AppFullScren extends Vue{
if(this.fullscreenEnable()){ if(this.fullscreenEnable()){
this.exitFullScreen(); this.exitFullScreen();
}else{ }else{
this.reqFullScreen(); const viewElement: any = document.querySelector('.app-content .app-content__right .app-nav-pos');
if (viewElement) {
this.elementFullscreen(viewElement);
}
} }
} }
...@@ -80,6 +82,20 @@ export default class AppFullScren extends Vue{ ...@@ -80,6 +82,20 @@ export default class AppFullScren extends Vue{
} }
} }
/**
* 指定节点全屏
*/
public elementFullscreen(element: any) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.msRequestFullscreen){
element.msRequestFullscreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullScreen();
}
}
} }
</script> </script>
\ No newline at end of file
...@@ -6,9 +6,6 @@ ...@@ -6,9 +6,6 @@
&nbsp;&nbsp;<avatar :src="user.avatar" /> &nbsp;&nbsp;<avatar :src="user.avatar" />
</div> </div>
<dropdown-menu class="menu" slot="list"> <dropdown-menu class="menu" slot="list">
<dropdown-item name="fullscren">
<app-full-scren />
</dropdown-item>
<dropdown-item name="lockscren"> <dropdown-item name="lockscren">
<app-lock-scren /> <app-lock-scren />
</dropdown-item> </dropdown-item>
......
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(): VNode {
let content: any = null;
if (this.$uiState.layoutState.styleMode === 'STYLE2') {
content = [<div class="app-style2-content__nav">{this.$slots.left}</div>, this.renderContent(false)];
} else {
content = 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)
);
}
return <div class="app-style2-content">{content}</div>;
}
}
\ 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'; ...@@ -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 AppColorPicker from './common/app-color-picker/app-color-picker.vue';
import AppPortalDesign from './common/app-portal-design/app-portal-design.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 AppNotSupportedEditor from './common/app-not-supported-editor/app-not-supported-editor.vue';
import { AppLayout } from './common/layout/app-layout/app-layout'; import { AppStyle2Layout } from './common/layout/app-style2-layout/app-style2-layout';
import { AppHeader } from './common/layout/app-header/app-header'; import { AppStyle2Header } from './common/layout/app-style2-header/app-style2-header';
import { AppHeaderRightMenus } from './common/app-header-right-menus/app-header-right-menus'; import { AppHeaderRightMenus } from './common/app-header-right-menus/app-header-right-menus';
import { AppContent } from './common/layout/app-content/app-content'; 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 { 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 { 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 { AppContentBottomExp } from './common/layout/app-content-bottom-exp/app-content-bottom-exp';
import { AppFooter } from './common/layout/app-footer/app-footer'; import { AppStyle2Footer } from './common/layout/app-style2-footer/app-style2-footer';
import TabPageExpStyle2 from './common/tab-page-exp-style2/tab-page-exp-style2.vue'; import TabPageExpStyle2 from './common/tab-page-exp-style2/tab-page-exp-style2.vue';
import FilterTree from './common/filter-tree/filter-tree.vue'; import FilterTree from './common/filter-tree/filter-tree.vue';
import DropdownListHidden from './common/dropdown-list-hidden/dropdown-list-hidden.vue' import DropdownListHidden from './common/dropdown-list-hidden/dropdown-list-hidden.vue'
...@@ -295,14 +295,14 @@ export const ComponentsRegister = { ...@@ -295,14 +295,14 @@ export const ComponentsRegister = {
v.component('app-common-microcom', AppCommonMicrocom); v.component('app-common-microcom', AppCommonMicrocom);
v.component('dropdown-list-hidden', DropdownListHidden); v.component('dropdown-list-hidden', DropdownListHidden);
v.component('tab-page-exp-style2', TabPageExpStyle2); v.component('tab-page-exp-style2', TabPageExpStyle2);
v.component('app-layout', AppLayout); v.component('app-layout', AppStyle2Layout);
v.component('app-header', AppHeader); v.component('app-header', AppStyle2Header);
v.component('app-header-right-menus', AppHeaderRightMenus); v.component('app-header-right-menus', AppHeaderRightMenus);
v.component('app-content', AppContent); v.component('app-content', AppStyle2Content);
v.component('app-content-left-exp', AppContentLeftExp); v.component('app-content-left-exp', AppContentLeftExp);
v.component('app-content-left-nav-menu', AppContentLeftNavMenu); v.component('app-content-left-nav-menu', AppContentLeftNavMenu);
v.component('app-content-bottom-exp', AppContentBottomExp); v.component('app-content-bottom-exp', AppContentBottomExp);
v.component('app-footer', AppFooter); v.component('app-footer', AppStyle2Footer);
v.component('app-department-personnel', AppDepartmentPersonnel); v.component('app-department-personnel', AppDepartmentPersonnel);
v.component('app-panel-field', AppPanelField); v.component('app-panel-field', AppPanelField);
v.component('app-full-scren', AppFullScren); v.component('app-full-scren', AppFullScren);
......
...@@ -233,6 +233,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout { ...@@ -233,6 +233,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout {
{this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption} />} {this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption} />}
{this.Environment.showOrg && <app-orgsector />} {this.Environment.showOrg && <app-orgsector />}
<app-user viewStyle={this.viewInstance.viewStyle} /> <app-user viewStyle={this.viewInstance.viewStyle} />
<app-full-scren />
<app-message-popover /> <app-message-popover />
</div> </div>
</header> : null </header> : null
...@@ -272,6 +273,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout { ...@@ -272,6 +273,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout {
{ this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption} style='font-size: 15px;padding: 0 10px;' />} { this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption} style='font-size: 15px;padding: 0 10px;' />}
{ this.Environment.showOrg && <app-orgsector /> } { this.Environment.showOrg && <app-orgsector /> }
<app-user viewStyle={this.viewInstance.viewStyle} /> <app-user viewStyle={this.viewInstance.viewStyle} />
<app-full-scren />
<app-message-popover /> <app-message-popover />
</div> </div>
</header> </header>
...@@ -308,6 +310,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout { ...@@ -308,6 +310,7 @@ export class AppDefaultIndexViewLayout extends AppDefaultViewLayout {
{this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption}></app-lang>} {this.Environment.showLang && <app-lang title={this.model.srfTitle || this.model.srfCaption}></app-lang>}
{this.Environment.showOrg && <app-orgsector></app-orgsector>} {this.Environment.showOrg && <app-orgsector></app-orgsector>}
<app-user viewStyle={this.viewInstance.viewStyle}></app-user> <app-user viewStyle={this.viewInstance.viewStyle}></app-user>
<app-full-scren />
<app-message-popover></app-message-popover> <app-message-popover></app-message-popover>
</div> </div>
</header> </header>
......
...@@ -41,7 +41,7 @@ export class AppStyle2DefaultLayout extends Vue { ...@@ -41,7 +41,7 @@ export class AppStyle2DefaultLayout extends Vue {
/** /**
* 视图模型数据 * 视图模型数据
* *
* @memberof AppDefaultViewLayout * @memberof AppStyle2DefaultLayout
*/ */
@Prop() public model!: any; @Prop() public model!: any;
...@@ -61,33 +61,61 @@ export class AppStyle2DefaultLayout extends Vue { ...@@ -61,33 +61,61 @@ export class AppStyle2DefaultLayout extends Vue {
} }
} }
/**
* 绘制参数
*
* @readonly
* @memberof AppStyle2DefaultLayout
*/
public renderOptions: any = {
viewClassNames: {}
};
/**
* @description Vue生命周期,实例创建完成
* @memberof AppStyle2DefaultLayout
*/
public created() {
this.initRenderOptions();
}
/** /**
* 初始化类名 * 初始化类名
* *
* @memberof AppStyle2DefaultLayout * @memberof AppStyle2DefaultLayout
*/ */
public initRenderClassNames(otherClassNames?: any) { public initRenderOptions(opts: any = {}) {
let classNames: any = { this.renderOptions = {};
"view-style2": true, const { viewType, viewStyle, codeName } = this.viewInstance;
[this.viewInstance.viewType?.toLowerCase()]: true, const viewClassNames: any = {
[Util.srfFilePath2(this.viewInstance?.codeName)]: true, 'view-container': true
}; };
if(this.viewInstance.getPSSysCss() ){ if (viewType) {
Object.assign(classNames, { Object.assign(viewClassNames, { [viewType?.toLowerCase()]: true });
[this.viewInstance.getPSSysCss()?.cssName || '']: true, }
}); if (viewStyle) {
Object.assign(viewClassNames, { [`view-style-${viewStyle.toLowerCase()}`]: true });
} else {
Object.assign(viewClassNames, { [`view-style-default`]: true });
} }
if(otherClassNames) { if (codeName) {
Object.assign(classNames, {...otherClassNames}); Object.assign(viewClassNames, { [Util.srfFilePath2(codeName)]: true });
} }
return classNames; if (this.viewInstance?.getPSSysCss?.()?.cssName) {
Object.assign(viewClassNames, { [this.viewInstance.getPSSysCss()?.cssName]: true });
}
if (!this.showCaption) {
Object.assign(viewClassNames, { 'nocaption': true });
}
Object.assign(viewClassNames, opts);
this.$set(this.renderOptions, 'viewClassNames', viewClassNames);
} }
/** /**
* 是否显示标题栏 * 是否显示标题栏
* *
* @readonly * @readonly
* @memberof AppDefaultViewLayout * @memberof AppStyle2DefaultLayout
*/ */
get showCaption(){ get showCaption(){
if(this.viewInstance && this.$parent && Util.isExist(this.viewInstance.showCaptionBar)){ if(this.viewInstance && this.$parent && Util.isExist(this.viewInstance.showCaptionBar)){
...@@ -128,7 +156,7 @@ export class AppStyle2DefaultLayout extends Vue { ...@@ -128,7 +156,7 @@ export class AppStyle2DefaultLayout extends Vue {
*/ */
public render(h: any): any { public render(h: any): any {
const { codeName } = this.viewInstance; const { codeName } = this.viewInstance;
const viewClassNames = this.initRenderClassNames(); const { viewClassNames } = this.renderOptions;
const styleMode: any = this.$uiState.layoutState.styleMode; const styleMode: any = this.$uiState.layoutState.styleMode;
if (Object.is('DEFAULT', styleMode)) { if (Object.is('DEFAULT', styleMode)) {
return ( return (
...@@ -183,7 +211,6 @@ export class AppStyle2DefaultLayout extends Vue { ...@@ -183,7 +211,6 @@ export class AppStyle2DefaultLayout extends Vue {
} else { } else {
return ( return (
<studio-view-style2 <studio-view-style2
style={{ 'font-family': this.selectFont }}
viewName={codeName?.toLowerCase()} viewName={codeName?.toLowerCase()}
viewTitle={this.model.srfCaption} viewTitle={this.model.srfCaption}
viewInstance={this.viewInstance} viewInstance={this.viewInstance}
......
...@@ -125,11 +125,10 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout { ...@@ -125,11 +125,10 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
* @memberof AppStyle2IndexViewLayout * @memberof AppStyle2IndexViewLayout
*/ */
public render(h: any): any { public render(h: any): any {
const viewClassNames = this.initRenderClassNames(); const { viewClassNames } = this.renderOptions;
if (this.viewInstance && this.viewInstance.mainMenuAlign && Object.is(this.viewInstance.mainMenuAlign, "CENTER")) { if (this.viewInstance && this.viewInstance.mainMenuAlign && Object.is(this.viewInstance.mainMenuAlign, "CENTER")) {
const { codeName } = this.viewInstance; const { codeName } = this.viewInstance;
return (<studio-view return (<studio-view
style={{ 'font-family': this.selectFont }}
viewName={codeName?.toLowerCase()} viewName={codeName?.toLowerCase()}
viewTitle={this.model.srfCaption} viewTitle={this.model.srfCaption}
viewInstance={this.viewInstance} viewInstance={this.viewInstance}
...@@ -149,16 +148,16 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout { ...@@ -149,16 +148,16 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
leftContent = this.$slots.leftNavMenu; leftContent = this.$slots.leftNavMenu;
} }
return ( return (
<app-layout ref="appLayout" style={{ 'font-family': this.selectFont }} class={viewClassNames}> <app-style2-layout ref="appLayout" class={viewClassNames}>
<template slot="app_layout_header"> <template slot="header">
<app-header> <app-style2-header>
<template slot="app_header_left"> <template slot="left">
<div class="tapp_header_caption"> <div class="app-style2-header__left__caption">
{this.viewInstance.enableAppSwitch ? <span class="app-header__caption__menuicon" on-click={() => this.contextMenuDragVisiable = !this.contextMenuDragVisiable}><icon type="md-menu" />&nbsp;</span> : null} {this.viewInstance.enableAppSwitch ? <span class="caption__icon" on-click={() => this.contextMenuDragVisiable = !this.contextMenuDragVisiable}><icon type="md-menu" />&nbsp;</span> : null}
{this.showCaption ? this.model.srfCaption : null} {this.showCaption ? this.model.srfCaption : null}
</div> </div>
</template> </template>
<template slot="app_header_right"> <template slot="right">
{this.$slots.headerMenus} {this.$slots.headerMenus}
{this.$topRenderService.rightItemsRenders.map((fun: any) => fun(h))} {this.$topRenderService.rightItemsRenders.map((fun: any) => fun(h))}
<app-lang title={this.model.srfTitle || this.model.srfCaption}></app-lang> <app-lang title={this.model.srfTitle || this.model.srfCaption}></app-lang>
...@@ -166,33 +165,33 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout { ...@@ -166,33 +165,33 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
{<app-user viewStyle={this.viewInstance.viewStyle} />} {<app-user viewStyle={this.viewInstance.viewStyle} />}
{/* {<app-custom-theme viewStyle={this.viewInstance.viewStyle}></app-custom-theme>} */} {/* {<app-custom-theme viewStyle={this.viewInstance.viewStyle}></app-custom-theme>} */}
</template> </template>
</app-header> </app-style2-header>
{this.$slots.default} {this.$slots.default}
{this.viewInstance.enableAppSwitch ? <context-menu-drag viewStyle={this.viewInstance.viewStyle} contextMenuDragVisiable={this.contextMenuDragVisiable}></context-menu-drag> : null} {this.viewInstance.enableAppSwitch ? <context-menu-drag viewStyle={this.viewInstance.viewStyle} contextMenuDragVisiable={this.contextMenuDragVisiable}></context-menu-drag> : null}
</template> </template>
<app-content> <app-style2-content>
{leftContent ? {leftContent ?
<template slot="app_content_left"> <template slot="left">
{leftContent} {leftContent}
</template> : null} </template> : null}
{styleMode === 'DEFAULT' ? this.$slots.tabPageExp : null} {styleMode === 'DEFAULT' ? this.$slots.tabPageExp : null}
<div class="view-warp" on-click={() => this.contextMenuDragVisiable = false}> <div class="app-style2-content" on-click={() => this.contextMenuDragVisiable = false}>
<app-keep-alive routerList={this.routerList}> <app-keep-alive routerList={this.routerList}>
<router-view key={this.routerViewKey}></router-view> <router-view key={this.routerViewKey}></router-view>
</app-keep-alive> </app-keep-alive>
</div> </div>
{this.$slots.bootomExp ? {this.$slots.bootomExp ?
<template slot="app_content_bottom"> <template slot="bottom">
{this.$slots.bootomExp} {this.$slots.bootomExp}
</template> : null} </template> : null}
</app-content> </app-style2-content>
<template slot="app_layout_footer"> <template slot="footer">
{ this.viewInstance.defaultPage { this.viewInstance.defaultPage
? <app-footer v-notification-signal={this.appLoadingService.isLoading} ref="footer" /> ? <app-style2-footer v-notification-signal={this.appLoadingService.isLoading} ref="footer" />
: <app-footer ref="footer" /> : <app-style2-footer ref="footer" />
} }
</template> </template>
</app-layout> </app-style2-layout>
); );
} }
......
...@@ -13,7 +13,7 @@ export class AppStyle2MPickupViewLayout extends AppStyle2DefaultLayout { ...@@ -13,7 +13,7 @@ export class AppStyle2MPickupViewLayout extends AppStyle2DefaultLayout {
public render() { public render() {
const { codeName } = this.viewInstance; const { codeName } = this.viewInstance;
const viewClassNames = this.initRenderClassNames(); const { viewClassNames } = this.renderOptions;
return ( return (
<studio-view <studio-view
viewName={codeName?.toLowerCase()} viewName={codeName?.toLowerCase()}
......
...@@ -11,7 +11,7 @@ export class AppStyle2WFActionViewLayout extends AppStyle2DefaultLayout { ...@@ -11,7 +11,7 @@ export class AppStyle2WFActionViewLayout extends AppStyle2DefaultLayout {
*/ */
public render(h: any): any { public render(h: any): any {
const { codeName } = this.viewInstance; const { codeName } = this.viewInstance;
const viewClassNames = this.initRenderClassNames(); const { viewClassNames } = this.renderOptions;
const styleMode: any = this.$uiState.layoutState.styleMode; const styleMode: any = this.$uiState.layoutState.styleMode;
if (Object.is('DEFAULT', styleMode)) { if (Object.is('DEFAULT', styleMode)) {
return ( return (
......
...@@ -11,7 +11,7 @@ export class AppStyle2WFDynaActionViewLayout extends AppStyle2DefaultLayout { ...@@ -11,7 +11,7 @@ export class AppStyle2WFDynaActionViewLayout extends AppStyle2DefaultLayout {
*/ */
public render(h: any): any { public render(h: any): any {
const { codeName } = this.viewInstance; const { codeName } = this.viewInstance;
const viewClassNames = this.initRenderClassNames(); const { viewClassNames } = this.renderOptions;
const styleMode: any = this.$uiState.layoutState.styleMode; const styleMode: any = this.$uiState.layoutState.styleMode;
if (Object.is('DEFAULT', styleMode)) { if (Object.is('DEFAULT', styleMode)) {
return ( return (
......
.app-full-scren{ .app-full-scren{
display: flex; display: flex;
cursor: pointer;
margin: 0 6px 0 0;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
cursor:pointer;
} }
.ivu-icon-ios-expand{ .ivu-icon-ios-expand{
font-weight: bolder; font-weight: bolder;
......
.app-style2-header { // .app-style2-header {
display: flex; // display: flex;
justify-content: space-between; // justify-content: space-between;
height: 100%; // height: 100%;
box-shadow: 1px 0 6px 0 rgba(39, 54, 78, 0.12); // box-shadow: 1px 0 6px 0 rgba(39, 54, 78, 0.12);
padding: 0px 6px; // padding: 0px 6px;
> .app-header-left { // > .app-header-left {
.app-header__caption { // .app-header__caption {
font-size: 18px; // font-size: 18px;
font-weight: 700; // font-weight: 700;
} // }
.app-header__caption__menuicon{ // .app-header__caption__menuicon{
cursor: pointer; // cursor: pointer;
} // }
} // }
> .app-header-left, // > .app-header-left,
> .app-header-center, // > .app-header-center,
> .app-header-right { // > .app-header-right {
display: flex; // display: flex;
align-items: center; // align-items: center;
.app-header-menus{ // .app-header-menus{
margin-right: 100px; // margin-right: 100px;
} // }
} // }
} // }
.view-style2 { // .view-style2 {
.ibiz-page-tag { // .ibiz-page-tag {
position: relative; // position: relative;
box-sizing: border-box; // box-sizing: border-box;
height: 34px; // height: 34px;
padding: 0 60px 0 30px; // padding: 0 60px 0 30px;
margin: 0; // margin: 0;
} // }
.ibiz-page-tag__body { // .ibiz-page-tag__body {
position: relative; // position: relative;
width: 100%; // width: 100%;
height: 100%; // height: 100%;
overflow: hidden; // overflow: hidden;
.ivu-tag:hover, // .ivu-tag:hover,
.ivu-tag.tag-is-active { // .ivu-tag.tag-is-active {
.ivu-icon-ios-close { // .ivu-icon-ios-close {
visibility: initial; // visibility: initial;
} // }
} // }
span { // span {
.ivu-tag:last-child { // .ivu-tag:last-child {
border-right: none; // border-right: none;
} // }
} // }
} // }
.move-btn { // .move-btn {
font-size: 18px; // font-size: 18px;
width: 30px; // width: 30px;
height: 34px; // height: 34px;
line-height: 34px; // line-height: 34px;
text-align: center; // text-align: center;
cursor: pointer; // cursor: pointer;
border-right: none; // border-right: none;
} // }
.move-btn:hover { // .move-btn:hover {
background: #efefef; // background: #efefef;
} // }
.ibiz-page-tag__left, // .ibiz-page-tag__left,
.ibiz-page-tag__right, // .ibiz-page-tag__right,
.ivu-dropdown { // .ivu-dropdown {
position: absolute; // position: absolute;
top: 0; // top: 0;
} // }
.ibiz-page-tag__left { // .ibiz-page-tag__left {
left: 0; // left: 0;
} // }
.ibiz-page-tag__right { // .ibiz-page-tag__right {
right: 30px; // right: 30px;
} // }
.ivu-dropdown { // .ivu-dropdown {
right: 0; // right: 0;
} // }
.ibiz-page-tag__body__tags { // .ibiz-page-tag__body__tags {
position: absolute; // position: absolute;
overflow: visible; // overflow: visible;
white-space: nowrap; // white-space: nowrap;
transition: left 0.3s ease; // transition: left 0.3s ease;
.ivu-tag { // .ivu-tag {
margin: 0; // margin: 0;
height: 34px; // height: 34px;
line-height: 34px; // line-height: 34px;
border: 0; // border: 0;
border-radius: 0; // border-radius: 0;
font-size: 14px; // font-size: 14px;
} // }
.ivu-icon-ios-close { // .ivu-icon-ios-close {
visibility: hidden; // visibility: hidden;
} // }
.tag-caption-content__text-icon::before { // .tag-caption-content__text-icon::before {
vertical-align: initial; // vertical-align: initial;
} // }
.tags-transition-move { // .tags-transition-move {
transition: transform 0.3s; // transition: transform 0.3s;
} // }
.tags-transition-enter, // .tags-transition-enter,
.tags-transition-leave-to { // .tags-transition-leave-to {
opacity: 0; // opacity: 0;
} // }
.tag-caption-content__text-image { // .tag-caption-content__text-image {
height: 16px; // height: 16px;
margin-bottom: -3px; // margin-bottom: -3px;
} // }
} // }
.body__tags__tag-text { // .body__tags__tag-text {
cursor: pointer; // cursor: pointer;
display: table-cell; // display: table-cell;
.ivu-tooltip { // .ivu-tooltip {
display: block; // display: block;
} // }
.ivu-tooltip-rel { // .ivu-tooltip-rel {
display: block; // display: block;
max-width: 200px; // max-width: 200px;
overflow: hidden; // overflow: hidden;
text-overflow: ellipsis; // text-overflow: ellipsis;
} // }
.tag-caption-content { // .tag-caption-content {
max-width: 250px; // max-width: 250px;
text-overflow: ellipsis; // text-overflow: ellipsis;
white-space: nowrap; // white-space: nowrap;
overflow: hidden; // overflow: hidden;
} // }
} // }
} // }
.app-theme-default { // .app-theme-default {
.view-style2 .ibiz-page-tag { // .view-style2 .ibiz-page-tag {
background-color: #57A3FD; // background-color: #57A3FD;
} // }
} // }
\ No newline at end of file \ No newline at end of file
...@@ -64,27 +64,27 @@ ...@@ -64,27 +64,27 @@
} }
} }
.view-style2.appindexview{ // .view-style2.appindexview{
.app-header{ // .app-header{
.app-header-left,.app-header-center,.app-header-right{ // .app-header-left,.app-header-center,.app-header-right{
flex-grow: 1; // flex-grow: 1;
display: flex; // display: flex;
} // }
.app-header-right{ // .app-header-right{
justify-content: end; // justify-content: end;
} // }
.ivu-dropdown{ // .ivu-dropdown{
position: static; // position: static;
display: inline-block; // display: inline-block;
font-size: 15px; // font-size: 15px;
padding: 0px 10px // padding: 0px 10px
} // }
} // }
.app-lang{ // .app-lang{
font-size: 15px; // font-size: 15px;
padding: 0 10px; // padding: 0 10px;
} // }
.ivu-split-pane{ // .ivu-split-pane{
height: 100%; // height: 100%;
} // }
} // }
\ No newline at end of file \ No newline at end of file
...@@ -2196,8 +2196,8 @@ body { ...@@ -2196,8 +2196,8 @@ body {
} }
} }
.view-style2{ // .view-style2{
.app-footer{ // .app-footer{
background-color: @color-primary-base; // background-color: @color-primary-base;
} // }
} // }
\ No newline at end of file \ No newline at end of file
...@@ -264,7 +264,7 @@ ...@@ -264,7 +264,7 @@
</changeSet> </changeSet>
<!--输出实体[STUDENT]数据结构 --> <!--输出实体[STUDENT]数据结构 -->
<changeSet author="root" id="tab-student-44-10"> <changeSet author="root" id="tab-student-45-10">
<createTable tableName="T_STUDENT"> <createTable tableName="T_STUDENT">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)"> <column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column> </column>
......
...@@ -24,6 +24,24 @@ ...@@ -24,6 +24,24 @@
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Student.json" "path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Student.json"
}, },
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "form_button1_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "form_button1"
}
} ],
"getPSAppViewUIActions" : [ {
"name" : "form_button1",
"getPSUIAction" : {
"modelref" : true,
"id" : "Refresh"
},
"uIActionTarget" : "SINGLEKEY",
"xDataControlName" : "form"
} ],
"getPSControlLogics" : [ { "getPSControlLogics" : [ {
"eventNames" : "LOAD;SAVE;REMOVE", "eventNames" : "LOAD;SAVE;REMOVE",
"logicTag" : "form", "logicTag" : "form",
...@@ -78,6 +96,13 @@ ...@@ -78,6 +96,13 @@
"id" : "srfsourcekey", "id" : "srfsourcekey",
"hidden" : true, "hidden" : true,
"dataType" : 25 "dataType" : 25
}, {
"id" : "age",
"dataType" : 9,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
}
}, { }, {
"id" : "studentname", "id" : "studentname",
"dataType" : 25, "dataType" : 25,
...@@ -136,12 +161,41 @@ ...@@ -136,12 +161,41 @@
"detailType" : "GROUPPANEL", "detailType" : "GROUPPANEL",
"name" : "group1", "name" : "group1",
"getPSDEFormDetails" : [ { "getPSDEFormDetails" : [ {
"caption" : "年龄",
"codeName" : "age",
"dataType" : 9,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 100,
"name" : "age",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "age"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "学生名称", "caption" : "学生名称",
"codeName" : "studentname", "codeName" : "studentname",
"contentHeight" : 100.0,
"contentWidth" : 200.0,
"dataType" : 25, "dataType" : 25,
"detailStyle" : "DEFAULT", "detailStyle" : "DEFAULT",
"detailType" : "FORMITEM", "detailType" : "FORMITEM",
"enableCond" : 3, "enableCond" : 3,
"height" : 100.0,
"ignoreInput" : 0, "ignoreInput" : 0,
"labelPos" : "LEFT", "labelPos" : "LEFT",
"labelWidth" : 130, "labelWidth" : 130,
...@@ -158,10 +212,52 @@ ...@@ -158,10 +212,52 @@
}, },
"getPSLayoutPos" : { "getPSLayoutPos" : {
"colMD" : 24, "colMD" : 24,
"layout" : "TABLE_24COL" "height" : 100,
"layout" : "TABLE_24COL",
"width" : 200
}, },
"width" : 200.0,
"allowEmpty" : true, "allowEmpty" : true,
"showCaption" : true "showCaption" : true
}, {
"actionType" : "UIACTION",
"caption" : "刷新",
"codeName" : "button1",
"contentHeight" : 100.0,
"contentWidth" : 200.0,
"detailStyle" : "DEFAULT",
"detailType" : "BUTTON",
"height" : 100.0,
"name" : "button1",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "form_button1"
},
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 100,
"layout" : "TABLE_24COL",
"width" : 200
},
"getPSUIAction" : {
"actionTarget" : "SINGLEKEY",
"caption" : "刷新",
"codeName" : "Refresh",
"fullCodeName" : "Refresh",
"name" : "编辑界面_刷新操作",
"getPSSysImage" : {
"glyph" : "xf021@FontAwesome",
"cssClass" : "fa fa-refresh"
},
"predefinedType" : "EDITVIEW_REFRESHACTION",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "Refresh",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "刷新",
"width" : 200.0,
"showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"columnCount" : 24, "columnCount" : 24,
...@@ -1812,6 +1908,53 @@ ...@@ -1812,6 +1908,53 @@
"needSave" : false, "needSave" : false,
"refreshItemsSetParamOnly" : false, "refreshItemsSetParamOnly" : false,
"showCaption" : true "showCaption" : true
}, {
"actionGroupExtractMode" : "ITEM",
"caption" : "分组面板",
"codeName" : "grouppanel1",
"contentHeight" : 484.0,
"contentWidth" : 584.0,
"detailStyle" : "DEFAULT",
"detailType" : "GROUPPANEL",
"height" : 500.0,
"name" : "grouppanel1",
"getPSDEFormDetails" : [ {
"codeName" : "rawitem1",
"contentHeight" : 100.0,
"contentType" : "RAW",
"contentWidth" : 300.0,
"detailStyle" : "DEFAULT",
"detailType" : "RAWITEM",
"height" : 100.0,
"name" : "rawitem1",
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 100,
"layout" : "TABLE_24COL",
"width" : 300
},
"getPSRawItem" : {
"contentType" : "RAW",
"name" : "rawitem1"
},
"rawItemHeight" : -1.0,
"rawItemWidth" : -1.0,
"width" : 300.0,
"showCaption" : true
} ],
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 500,
"layout" : "TABLE_24COL",
"width" : 600
},
"width" : 600.0,
"infoGroupMode" : false,
"showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"columnCount" : 24, "columnCount" : 24,
......
...@@ -926,6 +926,24 @@ ...@@ -926,6 +926,24 @@
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Student.json" "path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Student.json"
}, },
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "form_button1_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "form_button1"
}
} ],
"getPSAppViewUIActions" : [ {
"name" : "form_button1",
"getPSUIAction" : {
"modelref" : true,
"id" : "Refresh"
},
"uIActionTarget" : "SINGLEKEY",
"xDataControlName" : "form"
} ],
"getPSControlHandler" : { "getPSControlHandler" : {
"getPSHandlerActions" : [ { "getPSHandlerActions" : [ {
"actionName" : "GetDraft", "actionName" : "GetDraft",
...@@ -1064,6 +1082,13 @@ ...@@ -1064,6 +1082,13 @@
"id" : "srfsourcekey", "id" : "srfsourcekey",
"hidden" : true, "hidden" : true,
"dataType" : 25 "dataType" : 25
}, {
"id" : "age",
"dataType" : 9,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
}
}, { }, {
"id" : "studentname", "id" : "studentname",
"dataType" : 25, "dataType" : 25,
...@@ -1122,12 +1147,41 @@ ...@@ -1122,12 +1147,41 @@
"detailType" : "GROUPPANEL", "detailType" : "GROUPPANEL",
"name" : "group1", "name" : "group1",
"getPSDEFormDetails" : [ { "getPSDEFormDetails" : [ {
"caption" : "年龄",
"codeName" : "age",
"dataType" : 9,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 100,
"name" : "age",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "AGE",
"codeName" : "Age"
},
"getPSEditor" : {
"editorType" : "TEXTBOX",
"name" : "age"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"allowEmpty" : true,
"showCaption" : true
}, {
"caption" : "学生名称", "caption" : "学生名称",
"codeName" : "studentname", "codeName" : "studentname",
"contentHeight" : 100.0,
"contentWidth" : 200.0,
"dataType" : 25, "dataType" : 25,
"detailStyle" : "DEFAULT", "detailStyle" : "DEFAULT",
"detailType" : "FORMITEM", "detailType" : "FORMITEM",
"enableCond" : 3, "enableCond" : 3,
"height" : 100.0,
"ignoreInput" : 0, "ignoreInput" : 0,
"labelPos" : "LEFT", "labelPos" : "LEFT",
"labelWidth" : 130, "labelWidth" : 130,
...@@ -1144,10 +1198,52 @@ ...@@ -1144,10 +1198,52 @@
}, },
"getPSLayoutPos" : { "getPSLayoutPos" : {
"colMD" : 24, "colMD" : 24,
"layout" : "TABLE_24COL" "height" : 100,
"layout" : "TABLE_24COL",
"width" : 200
}, },
"width" : 200.0,
"allowEmpty" : true, "allowEmpty" : true,
"showCaption" : true "showCaption" : true
}, {
"actionType" : "UIACTION",
"caption" : "刷新",
"codeName" : "button1",
"contentHeight" : 100.0,
"contentWidth" : 200.0,
"detailStyle" : "DEFAULT",
"detailType" : "BUTTON",
"height" : 100.0,
"name" : "button1",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "form_button1"
},
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 100,
"layout" : "TABLE_24COL",
"width" : 200
},
"getPSUIAction" : {
"actionTarget" : "SINGLEKEY",
"caption" : "刷新",
"codeName" : "Refresh",
"fullCodeName" : "Refresh",
"name" : "编辑界面_刷新操作",
"getPSSysImage" : {
"glyph" : "xf021@FontAwesome",
"cssClass" : "fa fa-refresh"
},
"predefinedType" : "EDITVIEW_REFRESHACTION",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "Refresh",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "刷新",
"width" : 200.0,
"showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"columnCount" : 24, "columnCount" : 24,
...@@ -2798,6 +2894,53 @@ ...@@ -2798,6 +2894,53 @@
"needSave" : false, "needSave" : false,
"refreshItemsSetParamOnly" : false, "refreshItemsSetParamOnly" : false,
"showCaption" : true "showCaption" : true
}, {
"actionGroupExtractMode" : "ITEM",
"caption" : "分组面板",
"codeName" : "grouppanel1",
"contentHeight" : 484.0,
"contentWidth" : 584.0,
"detailStyle" : "DEFAULT",
"detailType" : "GROUPPANEL",
"height" : 500.0,
"name" : "grouppanel1",
"getPSDEFormDetails" : [ {
"codeName" : "rawitem1",
"contentHeight" : 100.0,
"contentType" : "RAW",
"contentWidth" : 300.0,
"detailStyle" : "DEFAULT",
"detailType" : "RAWITEM",
"height" : 100.0,
"name" : "rawitem1",
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 100,
"layout" : "TABLE_24COL",
"width" : 300
},
"getPSRawItem" : {
"contentType" : "RAW",
"name" : "rawitem1"
},
"rawItemHeight" : -1.0,
"rawItemWidth" : -1.0,
"width" : 300.0,
"showCaption" : true
} ],
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getPSLayoutPos" : {
"colMD" : 24,
"height" : 500,
"layout" : "TABLE_24COL",
"width" : 600
},
"width" : 600.0,
"infoGroupMode" : false,
"showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"columnCount" : 24, "columnCount" : 24,
......
...@@ -549,6 +549,21 @@ ...@@ -549,6 +549,21 @@
"uIActionMode" : "SYS", "uIActionMode" : "SYS",
"uIActionTag" : "Print", "uIActionTag" : "Print",
"uIActionType" : "DEUIACTION" "uIActionType" : "DEUIACTION"
}, {
"actionTarget" : "SINGLEKEY",
"caption" : "刷新",
"codeName" : "Refresh",
"fullCodeName" : "Refresh",
"name" : "编辑界面_刷新操作",
"getPSSysImage" : {
"glyph" : "xf021@FontAwesome",
"cssClass" : "fa fa-refresh"
},
"predefinedType" : "EDITVIEW_REFRESHACTION",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "Refresh",
"uIActionType" : "DEUIACTION"
}, { }, {
"actionTarget" : "MULTIKEY", "actionTarget" : "MULTIKEY",
"getCapPSLanguageRes" : { "getCapPSLanguageRes" : {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册