提交 94c1446b 编写于 作者: ibizdev's avatar ibizdev

Mosher 发布系统代码 [后台服务,演示应用]

上级 bb1d22cd
import ViewEngine from './view-engine';
import { ExpViewEngine } from './exp-view-engine';
/**
* 日历导航视图界面引擎
......@@ -7,24 +7,7 @@ import ViewEngine from './view-engine';
* @class CalendarExpViewEngine
* @extends {ViewEngine}
*/
export default class CalendarExpViewEngine extends ViewEngine {
/**
* 日历导航栏部件
*
* @type {*}
* @memberof CalendarExpViewEngine
*/
public calendarExpBar: any = null;
/**
* Creates an instance of CalendarExpViewEngine.
*
* @memberof CalendarExpViewEngine
*/
constructor() {
super();
}
export default class CalendarExpViewEngine extends ExpViewEngine {
/**
* 初始化引擎
......@@ -33,78 +16,17 @@ export default class CalendarExpViewEngine extends ViewEngine {
* @memberof CalendarExpViewEngine
*/
public init(options: any): void {
this.calendarExpBar = options.calendarexpbar;
this.expBar = options.calendarexpbar;
super.init(options);
}
/**
* 引擎加载
*
* @memberof CalendarExpViewEngine
*/
public load(): void {
super.load();
if (this.getCalendarExpBar() && this.isLoadDefault) {
const tag = this.getCalendarExpBar().name;
this.setViewState2({ tag: tag, action: 'load', viewdata: this.view.viewparams });
} else {
this.isLoadDefault = true;
}
}
/**
* 部件事件机制
*
* @param {string} ctrlName
* @param {string} eventName
* @param {*} args
* @memberof CalendarExpViewEngine
*/
public onCtrlEvent(ctrlName: string, eventName: string, args: any): void {
super.onCtrlEvent(ctrlName, eventName, args);
if (Object.is(ctrlName, 'calendarexpbar')) {
this.calendarExpBarEvent(eventName, args);
}
}
/**
* 日历导航事件
*
* @param {string} eventName
* @param {*} args
* @memberof CalendarExpViewEngine
*/
public calendarExpBarEvent(eventName: string, args: any): void {
if (Object.is(eventName, 'load')) {
this.view.$emit('viewload', args);
}
if (Object.is(eventName, 'selectionchange')) {
this.view.$emit('viewdataschange', args);
}
if (Object.is(eventName, 'activated')) {
this.view.$emit('viewdatasactivated', args);
}
}
/**
* 获取部件对象
*
* @returns {*}
* @memberof CalendarExpViewEngine
*/
public getCalendarExpBar(): any {
return this.calendarExpBar;
}
/**
* @description 销毁
* @description 视图销毁
* @memberof CalendarExpViewEngine
*/
public destroy() {
super.destroy();
this.calendarExpBar = null;
public destroyed() {
super.destroyed();
this.expBar = null;
}
}
\ No newline at end of file
import ViewEngine from './view-engine';
import { ExpViewEngine } from './exp-view-engine';
/**
* 卡片视图导航视图界面引擎
......@@ -7,24 +7,7 @@ import ViewEngine from './view-engine';
* @class DataViewExpViewEngine
* @extends {ViewEngine}
*/
export default class DataViewExpViewEngine extends ViewEngine {
/**
* 卡片导航栏部件
*
* @type {*}
* @memberof DataViewExpViewEngine
*/
public dataviewExpBar: any = null;
/**
* Creates an instance of DataViewExpViewEngine.
*
* @memberof DataViewExpViewEngine
*/
constructor() {
super();
}
export default class DataViewExpViewEngine extends ExpViewEngine {
/**
* 初始化引擎
......@@ -33,79 +16,17 @@ export default class DataViewExpViewEngine extends ViewEngine {
* @memberof DataViewExpViewEngine
*/
public init(options: any): void {
this.dataviewExpBar = options.dataviewexpbar;
this.expBar = options.dataviewexpbar;
super.init(options);
}
/**
* 引擎加载
*
* @description 视图销毁
* @memberof DataViewExpViewEngine
*/
public load(): void {
super.load();
if (this.getDataviewExpBar() && this.isLoadDefault) {
const tag = this.getDataviewExpBar().name;
this.setViewState2({ tag: tag, action: 'load', viewdata: this.view.viewparams });
} else {
this.isLoadDefault = true;
}
}
/**
* 部件事件机制
*
* @param {string} ctrlName
* @param {string} eventName
* @param {*} args
* @memberof DataViewExpViewEngine
*/
public onCtrlEvent(ctrlName: string, eventName: string, args: any): void {
super.onCtrlEvent(ctrlName, eventName, args);
if (Object.is(ctrlName, 'dataviewexpbar')) {
this.dataviewExpBarEvent(eventName, args);
}
public destroyed() {
super.destroyed();
this.expBar = null;
}
/**
* 卡片导航事件
*
* @param {string} eventName
* @param {*} args
* @memberof DataViewExpViewEngine
*/
public dataviewExpBarEvent(eventName: string, args: any): void {
if (Object.is(eventName, 'load')) {
this.view.$emit('viewload', args);
}
if (Object.is(eventName, 'selectionchange')) {
this.view.$emit('viewdataschange', args);
}
if (Object.is(eventName, 'activated')) {
this.view.$emit('viewdatasactivated', args);
}
}
/**
* 获取部件对象
*
* @returns {*}
* @memberof DataViewExpViewEngine
*/
public getDataviewExpBar(): any {
return this.dataviewExpBar;
}
/**
* @description 销毁
* @memberof DataViewExpViewEngine
*/
public destroy() {
super.destroy();
this.dataviewExpBar = null;
}
}
\ No newline at end of file
import ViewEngine from './view-engine';
import { ExpViewEngine } from './exp-view-engine';
/**
* 实体树导航视图界面引擎
*
* @export
* @class TreeExpView
* @class TreeExpViewEngine
* @extends {ViewEngine}
*/
export default class TreeExpView extends ViewEngine {
/**
* 选择视图面板
*
* @type {*}
* @memberof TreeExpView
*/
public treeExpBar: any = null;
/**
* Creates an instance of TreeExpView.
*
* @memberof TreeExpView
*/
constructor() {
super();
}
export default class TreeExpViewEngine extends ExpViewEngine {
/**
* 初始化引擎
*
* @param {*} options
* @memberof TreeExpView
* @memberof TreeExpViewEngine
*/
public init(options: any): void {
this.treeExpBar = options.treeexpbar;
this.expBar = options.treeexpbar;
super.init(options);
}
/**
* 引擎加载
*
* @memberof TreeExpView
*/
public load(): void {
super.load();
if (this.getTreeExpBar() && this.isLoadDefault) {
const tag = this.getTreeExpBar().name;
this.setViewState2({ tag: tag, action: 'load', viewdata: this.view.context });
} else {
this.isLoadDefault = true;
}
}
/**
* 部件事件机制
*
* @param {string} ctrlName
* @param {string} eventName
* @param {*} args
* @memberof TreeExpView
*/
public onCtrlEvent(ctrlName: string, eventName: string, args: any): void {
super.onCtrlEvent(ctrlName, eventName, args);
if (Object.is(ctrlName, 'treeexpbar')) {
this.treeExpBarEvent(eventName, args);
}
}
/**
* 树导航事件
*
* @param {string} eventName
* @param {*} args
* @memberof TreeExpView
*/
public treeExpBarEvent(eventName: string, args: any): void {
if (Object.is(eventName, 'load')) {
this.view.$emit('viewload', args);
}
if (Object.is(eventName, 'selectionchange')) {
this.view.$emit('viewdataschange', args);
}
if (Object.is(eventName, 'activated')) {
this.view.$emit('viewdatasactivated', args);
}
}
/**
* 获取部件对象那
*
* @returns {*}
* @memberof TreeExpView
*/
public getTreeExpBar(): any {
return this.treeExpBar;
}
/**
* @description 销毁
* @memberof TreeExpView
* @description 视图销毁
* @memberof TreeExpViewEngine
*/
public destroy() {
super.destroy();
this.treeExpBar = null;
public destroyed() {
super.destroyed();
this.expBar = null;
}
}
\ No newline at end of file
<template>
<div class="view-container dedataviewexpview ibizbookdata-view-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookdataviewexpview"></app-studioaction>
<card class='view-card view-no-toolbar' :dis-hover="true" :bordered="false">
<div class="view-container dedataviewexpview ibizbookdata-view-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookdataviewexpview"></app-studioaction>
<card class='view-card view-no-toolbar' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div>
<div class="content-container">
<view_dataviewexpbar
<div class="content-container">
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_dataviewexpbar
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -24,13 +24,25 @@
@load="dataviewexpbar_load($event)"
@activated="dataviewexpbar_activated($event)"
@closeview="closeView($event)">
</view_dataviewexpbar>
</div>
</card>
</view_dataviewexpbar>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -43,8 +55,6 @@ import DataViewExpViewEngine from '@engine/view/data-view-exp-view-engine';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
import CodeListService from "@/codelist/codelist-service";
@Component({
components: {
......@@ -227,8 +237,8 @@ export default class IBIZBOOKDataViewExpViewBase extends Vue {
* @memberof IBIZBOOKDataViewExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -567,7 +577,6 @@ export default class IBIZBOOKDataViewExpViewBase extends Vue {
_this.loadModel();
}
}
......@@ -713,50 +722,59 @@ export default class IBIZBOOKDataViewExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public viewUID: string = 'sample-ibizbookdata-view-exp-view';
/**
* 搜索值
*
* @type {string}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public query: string = '';
/**
* 是否展开搜索表单
*
* @type {boolean}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public isExpandSearchForm: boolean = false;
/**
* 快速搜索
*
* @param {*} $event
* @memberof IBIZBOOKDataViewExpViewBase
*/
public onSearch($event: any): void {
const refs: any = this.$refs;
if (refs.kanban) {
refs.kanban.refresh({});
}
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public viewUID: string = 'sample-ibizbookdata-view-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZBOOKDataViewExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZBOOKDataViewExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZBOOKDataViewExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizbookdata-view-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class="view-container decalendarexpview ibizorder-calendar-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizordercalendarexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class="view-container decalendarexpview ibizorder-calendar-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizordercalendarexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup46' viewname='ibizordercalendarexpview'></app-alert-group> </div>
<div class="content-container">
<view_calendarexpbar
<div class="content-container">
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_calendarexpbar
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -23,12 +23,25 @@
@load="calendarexpbar_load($event)"
@activated="calendarexpbar_activated($event)"
@closeview="closeView($event)">
</view_calendarexpbar>
</div>
</card>
</view_calendarexpbar>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -224,8 +237,8 @@ export default class IBIZOrderCalendarExpViewBase extends Vue {
* @memberof IBIZOrderCalendarExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -760,18 +773,60 @@ export default class IBIZOrderCalendarExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderCalendarExpViewBase
*/
public viewUID: string = 'sample-ibizorder-calendar-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderCalendarExpViewBase
*/
public viewUID: string = 'sample-ibizorder-calendar-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZOrderCalendarExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZOrderCalendarExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZOrderCalendarExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZOrderCalendarExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizorder-calendar-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class="view-container dedataviewexpview ibizorder-data-view-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderdataviewexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class="view-container dedataviewexpview ibizorder-data-view-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderdataviewexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup49' viewname='ibizorderdataviewexpview'></app-alert-group> </div>
<div class="content-container">
<view_dataviewexpbar
<div class="content-container">
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_dataviewexpbar
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -23,13 +23,25 @@
@load="dataviewexpbar_load($event)"
@activated="dataviewexpbar_activated($event)"
@closeview="closeView($event)">
</view_dataviewexpbar>
</div>
</card>
</view_dataviewexpbar>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -42,8 +54,6 @@ import DataViewExpViewEngine from '@engine/view/data-view-exp-view-engine';
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import CodeListService from "@/codelist/codelist-service";
@Component({
components: {
......@@ -227,8 +237,8 @@ export default class IBIZOrderDataViewExpViewBase extends Vue {
* @memberof IBIZOrderDataViewExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -567,7 +577,6 @@ export default class IBIZOrderDataViewExpViewBase extends Vue {
_this.loadModel();
}
}
......@@ -764,50 +773,59 @@ export default class IBIZOrderDataViewExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderDataViewExpViewBase
*/
public viewUID: string = 'sample-ibizorder-data-view-exp-view';
/**
* 搜索值
*
* @type {string}
* @memberof IBIZOrderDataViewExpViewBase
*/
public query: string = '';
/**
* 是否展开搜索表单
*
* @type {boolean}
* @memberof IBIZOrderDataViewExpViewBase
*/
public isExpandSearchForm: boolean = false;
/**
* 快速搜索
*
* @param {*} $event
* @memberof IBIZOrderDataViewExpViewBase
*/
public onSearch($event: any): void {
const refs: any = this.$refs;
if (refs.kanban) {
refs.kanban.refresh({});
}
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderDataViewExpViewBase
*/
public viewUID: string = 'sample-ibizorder-data-view-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZOrderDataViewExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZOrderDataViewExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZOrderDataViewExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZOrderDataViewExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizorder-data-view-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class='view-container detreeexpview ibizorder-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizordertreeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-container detreeexpview ibizorder-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizordertreeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup48' viewname='ibizordertreeexpview'></app-alert-group> </div>
<div class='content-container'>
<div class='content-container'>
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_treeexpbar
:viewState="viewState"
:viewparams="viewparams"
......@@ -22,11 +23,24 @@
@activated="treeexpbar_activated($event)"
@closeview="closeView($event)">
</view_treeexpbar>
</div>
</card>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -222,7 +236,7 @@ export default class IBIZOrderTreeExpViewBase extends Vue {
* @memberof IBIZOrderTreeExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -757,18 +771,60 @@ export default class IBIZOrderTreeExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderTreeExpViewBase
*/
public viewUID: string = 'sample-ibizorder-tree-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderTreeExpViewBase
*/
public viewUID: string = 'sample-ibizorder-tree-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZOrderTreeExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZOrderTreeExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZOrderTreeExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZOrderTreeExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 500 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizorder-tree-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class="view-container decalendarexpview ibizorder-usr2-calendar-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderusr2calendarexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class="view-container decalendarexpview ibizorder-usr2-calendar-exp-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderusr2calendarexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup47' viewname='ibizorderusr2calendarexpview'></app-alert-group> </div>
<div class="content-container">
<view_calendarexpbar
<div class="content-container">
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_calendarexpbar
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -23,12 +23,25 @@
@load="calendarexpbar_load($event)"
@activated="calendarexpbar_activated($event)"
@closeview="closeView($event)">
</view_calendarexpbar>
</div>
</card>
</view_calendarexpbar>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -224,8 +237,8 @@ export default class IBIZOrderUsr2CalendarExpViewBase extends Vue {
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -760,18 +773,60 @@ export default class IBIZOrderUsr2CalendarExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public viewUID: string = 'sample-ibizorder-usr2-calendar-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public viewUID: string = 'sample-ibizorder-usr2-calendar-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZOrderUsr2CalendarExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizorder-usr2-calendar-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class='view-container detreeexpview ibizsample0003-f1-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f1treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-container detreeexpview ibizsample0003-f1-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f1treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup54' viewname='ibizsample0003f1treeexpview'></app-alert-group> </div>
<div class='content-container'>
<div class='content-container'>
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_treeexpbar
:viewState="viewState"
:viewparams="viewparams"
......@@ -22,11 +23,24 @@
@activated="treeexpbar_activated($event)"
@closeview="closeView($event)">
</view_treeexpbar>
</div>
</card>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -221,7 +235,7 @@ export default class IBIZSample0003F1TreeExpViewBase extends Vue {
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -705,18 +719,60 @@ export default class IBIZSample0003F1TreeExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f1-tree-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f1-tree-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZSample0003F1TreeExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizsample0003-f1-tree-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class='view-container detreeexpview ibizsample0003-f2-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f2treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-container detreeexpview ibizsample0003-f2-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f2treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup55' viewname='ibizsample0003f2treeexpview'></app-alert-group> </div>
<div class='content-container'>
<div class='content-container'>
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_treeexpbar
:viewState="viewState"
:viewparams="viewparams"
......@@ -22,11 +23,24 @@
@activated="treeexpbar_activated($event)"
@closeview="closeView($event)">
</view_treeexpbar>
</div>
</card>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -221,7 +235,7 @@ export default class IBIZSample0003F2TreeExpViewBase extends Vue {
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -705,18 +719,60 @@ export default class IBIZSample0003F2TreeExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f2-tree-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f2-tree-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZSample0003F2TreeExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizsample0003-f2-tree-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class='view-container detreeexpview ibizsample0003-f3-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f3treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-container detreeexpview ibizsample0003-f3-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f3treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup56' viewname='ibizsample0003f3treeexpview'></app-alert-group> </div>
<div class='content-container'>
<div class='content-container'>
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_treeexpbar
:viewState="viewState"
:viewparams="viewparams"
......@@ -22,11 +23,24 @@
@activated="treeexpbar_activated($event)"
@closeview="closeView($event)">
</view_treeexpbar>
</div>
</card>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -221,7 +235,7 @@ export default class IBIZSample0003F3TreeExpViewBase extends Vue {
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -705,18 +719,60 @@ export default class IBIZSample0003F3TreeExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f3-tree-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f3-tree-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZSample0003F3TreeExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizsample0003-f3-tree-exp-view.less';
</style>
\ No newline at end of file
<template>
<div class='view-container detreeexpview ibizsample0003-f4-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f4treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-container detreeexpview ibizsample0003-f4-tree-exp-view'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003f4treeexpview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup57' viewname='ibizsample0003f4treeexpview'></app-alert-group> </div>
<div class='content-container'>
<div class='content-container'>
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_treeexpbar
:viewState="viewState"
:viewparams="viewparams"
......@@ -22,11 +23,24 @@
@activated="treeexpbar_activated($event)"
@closeview="closeView($event)">
</view_treeexpbar>
</div>
</card>
</template>
<template slot="right">
<component
v-if="navItem && navItem.navView"
:is="navItem.navView"
:key="navItem.data && navItem.data.length ? navItem.data[0].srfkey : ''"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(navItem.srfnavdata.context)"
:viewparam="JSON.stringify(navItem.srfnavdata.viewparams)">
</component>
</template>
</split>
</div>
</card>
</div>
</template>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
......@@ -221,7 +235,7 @@ export default class IBIZSample0003F4TreeExpViewBase extends Vue {
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
......@@ -705,18 +719,60 @@ export default class IBIZSample0003F4TreeExpViewBase extends Vue {
}
this.viewState.complete();
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f4-tree-exp-view';
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public viewUID: string = 'sample-ibizsample0003-f4-tree-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZSample0003F4TreeExpViewBase
*/
public initSplit() {
if (this.$store.getters.getViewSplit(this.viewUID)) {
this.split = this.$store.getters.getViewSplit(this.viewUID);
} else {
const containerWidth = (this.$el as any).offsetWidth;
this.split = 0 / containerWidth;
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
}
</script>
</script>
<style lang='less'>
@import './ibizsample0003-f4-tree-exp-view.less';
</style>
\ No newline at end of file
<template>
<split id="dataviewexpviewdataviewexpbar" class="app-dataview-exp-bar" v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<div id="dataviewexpviewdataviewexpbar" class="app-dataview-exp-bar">
<div slot='left'>
<div class='dataview-exp-bar-header'>
<div class="dataview-exp-bar-title">
<icon type='ios-home-outline'/>{{ $t('app.dataViewExpBar.title') }}
</div>
</div>
<div class="container-header">
<div class="exp-bar-action-container">
</div>
<div class='dataview-exp-bar-content'>
<view_dataviewexpbar_dataview
</div>
<div class='dataview-exp-bar-content'>
<view_dataviewexpbar_dataview
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -28,19 +29,8 @@
@load="dataviewexpbar_dataview_load($event)"
@closeview="closeView($event)">
</view_dataviewexpbar_dataview>
</div>
</div>
<div slot='right'>
<component
v-if="selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(selection.context)"
:viewparam="JSON.stringify(selection.viewparam)">
</component>
</div>
</split>
</div>
</template>
......@@ -243,31 +233,6 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
public isSingleSelect:boolean = true;
/**
* 呈现模式,可选值:horizontal或者vertical
*
* @public
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public showMode:string ="horizontal";
/**
* 控件宽度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public ctrlWidth:number = 0;
/**
* 控件高度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public ctrlHeight: number = 0;
/**
* 可搜索字段名称
*
......@@ -275,7 +240,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public placeholder="图书名称";
public placeholder = "图书名称";
/**
* 搜素值
......@@ -284,15 +249,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public searchText:string = "";
/**
* 分割宽度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public split: number = 0.5;
public searchText: string = "";
/**
......@@ -372,32 +329,13 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
return null;
}
/**
* 选中数据
*
* @type {*}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public selection: any = {};
/**
* split值变化事件
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public onSplitChange() {
if(this.split){
this.$store.commit("setViewSplit",{viewUID:this.viewUID,viewSplit:this.split});
}
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public created() {
this.afterCreated();
this.afterCreated();
}
/**
......@@ -430,24 +368,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public afterMounted(){
if(this.$store.getters.getViewSplit(this.viewUID)){
this.split = this.$store.getters.getViewSplit(this.viewUID);
}else{
let containerWidth:number = (document.getElementById("dataviewexpviewdataviewexpbar") as any).offsetWidth;
let containerHeight:number = (document.getElementById("dataviewexpviewdataviewexpbar") as any).offsetHeight;
if(Object.is(this.showMode,'horizontal')){
if(this.ctrlWidth && containerWidth != 0){
this.split = this.ctrlWidth/containerWidth;
}
}else{
if(this.ctrlHeight && containerHeight != 0){
this.split = this.ctrlHeight/containerHeight;
}
}
this.$store.commit("setViewSplit",{viewUID:this.viewUID,viewSplit:this.split});
}
}
public afterMounted() { }
/**
* vue 生命周期
......@@ -517,10 +438,16 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
let _params:any = this.$util.computedNavData(arg,tempContext,tempViewParam,this.navigateParams);
Object.assign(tempViewParam,_params);
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
const navItem: any = {
navView: this.navViewName,
data: args,
srfnavdata: {
context: tempContext,
viewparams: tempViewParam
}
}
this.calcToolbarItemState(false);
this.$forceUpdate();
this.$emit('selectionchange', navItem);
}
/**
......
.app-dataview-exp-bar {
> .ivu-split-horizontal {
> .ivu-split-trigger-con {
height: 100%;
width: 1px;
}
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
.dataview-exp-bar-content {
height: calc(100% - 40px);
overflow: auto;
padding: 16px 0;
margin-bottom: 10px;
}
.dataview-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .right-pane.ivu-split-pane {
> div {
padding-left: 10px;
}
}
> .left-pane.ivu-split-pane {
padding-right: 10px;
}
}
> .ivu-split-vertical{
> .ivu-split-pane {
> div {
height: 100%;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container{
padding-top: 8px;
padding-right: 20px;
}
}
.dataview-exp-bar-content {
height: calc(100% - 40px);
overflow: auto;
margin-bottom: 10px;
}
.dataview-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .top-pane.ivu-split-pane {
> div {
padding-bottom: 10px;
}
}
> .bottom-pane.ivu-split-pane {
padding-top: 10px;
}
}
}
.app-dataview-exp-bar {
height: 100%;
display: flex;
flex-direction: column;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.exp-bar-action-container {
display: flex;
align-items: center;
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
}
.dataview-exp-bar-content {
flex-grow: 1;
overflow: auto;
}
}
// this is less
......@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -621,7 +621,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -657,7 +657,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
.app-calendar-exp-bar {
> .ivu-split-horizontal {
> .ivu-split-trigger-con {
height: 100%;
width: 1px;
}
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
.calendar-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
padding: 16px 0;
margin-bottom: 10px;
}
.calendar-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .right-pane.ivu-split-pane {
> div {
padding-left: 10px;
}
}
> .left-pane.ivu-split-pane {
padding-right: 10px;
}
}
> .ivu-split-vertical{
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
}
.calendar-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
margin-bottom: 10px;
}
.calendar-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .top-pane.ivu-split-pane {
> div {
padding-bottom: 10px;
}
}
> .bottom-pane.ivu-split-pane {
padding-top: 10px;
}
}
}
.app-calendar-exp-bar {
height: 100%;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.exp-bar-action-container {
display: flex;
align-items: center;
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
}
.calendar-exp-bar-content {
flex-grow: 1;
overflow: auto;
}
}
// this is less
<template>
<split id="dataviewexpviewdataviewexpbar" class="app-dataview-exp-bar" v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<div id="dataviewexpviewdataviewexpbar" class="app-dataview-exp-bar">
<div slot='left'>
<div class='dataview-exp-bar-header'>
<div class="dataview-exp-bar-title">
<icon type='ios-home-outline'/>{{ $t('app.dataViewExpBar.title') }}
</div>
</div>
<div class="container-header">
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
<div class="exp-bar-action-container">
<div class='search-container'>
<i-input
v-model="searchText"
:search="true"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="dataviewexpviewdataviewexpbar_toolbarModels.deuiaction3.visabled" :disabled="dataviewexpviewdataviewexpbar_toolbarModels.deuiaction3.disabled" class='' v-loading:i-button @click="dataviewexpbar_toolbar_click({ tag: 'deuiaction3' }, $event)">
......@@ -24,8 +25,9 @@
</tooltip>
</div>
</div>
<div class='dataview-exp-bar-content'>
<view_dataviewexpbar_dataview
</div>
<div class='dataview-exp-bar-content'>
<view_dataviewexpbar_dataview
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -44,19 +46,8 @@
@load="dataviewexpbar_dataview_load($event)"
@closeview="closeView($event)">
</view_dataviewexpbar_dataview>
</div>
</div>
<div slot='right'>
<component
v-if="selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(selection.context)"
:viewparam="JSON.stringify(selection.viewparam)">
</component>
</div>
</split>
</div>
</template>
......@@ -326,31 +317,6 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
public isSingleSelect:boolean = true;
/**
* 呈现模式,可选值:horizontal或者vertical
*
* @public
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public showMode:string ="horizontal";
/**
* 控件宽度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public ctrlWidth:number = 0;
/**
* 控件高度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public ctrlHeight: number = 0;
/**
* 可搜索字段名称
*
......@@ -358,7 +324,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public placeholder="订单名称";
public placeholder = "订单名称";
/**
* 搜素值
......@@ -367,15 +333,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
* @type {(string)}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public searchText:string = "";
/**
* 分割宽度
*
* @type {number}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public split: number = 0.5;
public searchText: string = "";
/**
......@@ -467,32 +425,13 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
return null;
}
/**
* 选中数据
*
* @type {*}
* @memberof DataViewExpViewdataviewexpbarBase
*/
public selection: any = {};
/**
* split值变化事件
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public onSplitChange() {
if(this.split){
this.$store.commit("setViewSplit",{viewUID:this.viewUID,viewSplit:this.split});
}
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public created() {
this.afterCreated();
this.afterCreated();
}
/**
......@@ -525,24 +464,7 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
*
* @memberof DataViewExpViewdataviewexpbarBase
*/
public afterMounted(){
if(this.$store.getters.getViewSplit(this.viewUID)){
this.split = this.$store.getters.getViewSplit(this.viewUID);
}else{
let containerWidth:number = (document.getElementById("dataviewexpviewdataviewexpbar") as any).offsetWidth;
let containerHeight:number = (document.getElementById("dataviewexpviewdataviewexpbar") as any).offsetHeight;
if(Object.is(this.showMode,'horizontal')){
if(this.ctrlWidth && containerWidth != 0){
this.split = this.ctrlWidth/containerWidth;
}
}else{
if(this.ctrlHeight && containerHeight != 0){
this.split = this.ctrlHeight/containerHeight;
}
}
this.$store.commit("setViewSplit",{viewUID:this.viewUID,viewSplit:this.split});
}
}
public afterMounted() { }
/**
* vue 生命周期
......@@ -612,10 +534,16 @@ export default class DataViewExpViewdataviewexpbarBase extends Vue implements Co
let _params:any = this.$util.computedNavData(arg,tempContext,tempViewParam,this.navigateParams);
Object.assign(tempViewParam,_params);
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
const navItem: any = {
navView: this.navViewName,
data: args,
srfnavdata: {
context: tempContext,
viewparams: tempViewParam
}
}
this.calcToolbarItemState(false);
this.$forceUpdate();
this.$emit('selectionchange', navItem);
}
/**
......
.app-dataview-exp-bar {
> .ivu-split-horizontal {
> .ivu-split-trigger-con {
height: 100%;
width: 1px;
}
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
.dataview-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
padding: 16px 0;
margin-bottom: 10px;
}
.dataview-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .right-pane.ivu-split-pane {
> div {
padding-left: 10px;
}
}
> .left-pane.ivu-split-pane {
padding-right: 10px;
}
}
> .ivu-split-vertical{
> .ivu-split-pane {
> div {
height: 100%;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container{
padding-top: 8px;
padding-right: 20px;
}
}
.dataview-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
margin-bottom: 10px;
}
.dataview-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .top-pane.ivu-split-pane {
> div {
padding-bottom: 10px;
}
}
> .bottom-pane.ivu-split-pane {
padding-top: 10px;
}
}
}
.app-dataview-exp-bar {
height: 100%;
display: flex;
flex-direction: column;
.dataview-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.dataview-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.exp-bar-action-container {
display: flex;
align-items: center;
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
}
.dataview-exp-bar-content {
flex-grow: 1;
overflow: auto;
}
}
// this is less
......@@ -7,8 +7,9 @@
</div>
<div class="exp-bar-action-container">
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
<i-input
v-model="searchText"
:search="true"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
......@@ -529,7 +530,7 @@ export default class ListExpViewlistexpbarBase extends Vue implements ControlInt
}
if (this.navigateContext && Object.keys(this.navigateContext).length > 0) {
let _context:any = this.$util.computedNavData(arg, tempContext, tempViewParam, this.navigateContext);
Object.assign(tempContext, _context);
Object.assign(tempContext,_context);
}
if (this.navigateParams && Object.keys(this.navigateParams).length > 0) {
let _params:any = this.$util.computedNavData(arg, tempContext, tempViewParam, this.navigateParams);
......
.app-calendar-exp-bar {
> .ivu-split-horizontal {
> .ivu-split-trigger-con {
height: 100%;
width: 1px;
}
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
.calendar-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
padding: 16px 0;
margin-bottom: 10px;
}
.calendar-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .right-pane.ivu-split-pane {
> div {
padding-left: 10px;
}
}
> .left-pane.ivu-split-pane {
padding-right: 10px;
}
}
> .ivu-split-vertical{
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
}
.calendar-exp-bar-content {
height: calc(100% - 88px);
overflow: auto;
margin-bottom: 10px;
}
.calendar-exp-bar-content2 {
height: 100%;
overflow: auto;
flex-grow: 1;
}
}
}
> .top-pane.ivu-split-pane {
> div {
padding-bottom: 10px;
}
}
> .bottom-pane.ivu-split-pane {
padding-top: 10px;
}
}
}
.app-calendar-exp-bar {
height: 100%;
display: flex;
flex-direction: column;
.calendar-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.calendar-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.exp-bar-action-container {
display: flex;
align-items: center;
}
.container-header{
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.search-container {
width: 30%;
height: 48px;
padding: 10px 10px 10px 0;
min-width: 200px;
max-width: 400px;
}
.toolbar-container{
padding: 4px;
}
.quick-group-container {
padding-top: 8px;
padding-right: 20px;
}
}
.calendar-exp-bar-content {
flex-grow: 1;
overflow: auto;
}
}
// this is less
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册