提交 0ac2aecb 编写于 作者: ibizdev's avatar ibizdev

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

上级 de129e9b
...@@ -483,6 +483,7 @@ function getAppLocale(){ ...@@ -483,6 +483,7 @@ function getAppLocale(){
menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null), menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null),
menuitem258: commonLogic.appcommonhandle("树视图",null), menuitem258: commonLogic.appcommonhandle("树视图",null),
menuitem261: commonLogic.appcommonhandle("选项操作视图",null), menuitem261: commonLogic.appcommonhandle("选项操作视图",null),
menuitem263: commonLogic.appcommonhandle("列表导航测试",null),
}, },
}, },
formpage:{ formpage:{
......
...@@ -483,6 +483,7 @@ function getAppLocale(){ ...@@ -483,6 +483,7 @@ function getAppLocale(){
menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null), menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null),
menuitem258: commonLogic.appcommonhandle("树视图",null), menuitem258: commonLogic.appcommonhandle("树视图",null),
menuitem261: commonLogic.appcommonhandle("选项操作视图",null), menuitem261: commonLogic.appcommonhandle("选项操作视图",null),
menuitem263: commonLogic.appcommonhandle("列表导航测试",null),
}, },
}, },
formpage:{ formpage:{
......
...@@ -483,6 +483,7 @@ function getAppLocale(){ ...@@ -483,6 +483,7 @@ function getAppLocale(){
menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null), menuitem257: commonLogic.appcommonhandle("vue3视图部件测试",null),
menuitem258: commonLogic.appcommonhandle("树视图",null), menuitem258: commonLogic.appcommonhandle("树视图",null),
menuitem261: commonLogic.appcommonhandle("选项操作视图",null), menuitem261: commonLogic.appcommonhandle("选项操作视图",null),
menuitem263: commonLogic.appcommonhandle("列表导航测试",null),
}, },
}, },
formpage:{ formpage:{
......
...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){ ...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书自定义视图",null), title: commonLogic.appcommonhandle("图书自定义视图",null),
}, },
listexpview: {
caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书列表导航视图",null),
},
panelview: { panelview: {
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书面板视图",null), title: commonLogic.appcommonhandle("图书面板视图",null),
......
...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){ ...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书自定义视图",null), title: commonLogic.appcommonhandle("图书自定义视图",null),
}, },
listexpview: {
caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书列表导航视图",null),
},
panelview: { panelview: {
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书面板视图",null), title: commonLogic.appcommonhandle("图书面板视图",null),
......
...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){ ...@@ -364,6 +364,10 @@ function getLocaleResourceBase(){
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书自定义视图",null), title: commonLogic.appcommonhandle("图书自定义视图",null),
}, },
listexpview: {
caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书列表导航视图",null),
},
panelview: { panelview: {
caption: commonLogic.appcommonhandle("图书",null), caption: commonLogic.appcommonhandle("图书",null),
title: commonLogic.appcommonhandle("图书面板视图",null), title: commonLogic.appcommonhandle("图书面板视图",null),
......
...@@ -4383,6 +4383,24 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => { ...@@ -4383,6 +4383,24 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
textcls: '', textcls: '',
appfunctag: 'AppFunc139', appfunctag: 'AppFunc139',
resourcetag: '', resourcetag: '',
},
{
id: '9EE75A84-7609-43AB-BEE2-124292CBA0B4',
name: 'menuitem263',
text: '列表导航测试',
type: 'MENUITEM',
counterid: '',
tooltip: '列表导航测试',
expanded: false,
separator: false,
hidden: false,
hidesidebar: false,
opendefault: false,
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc142',
resourcetag: '',
}, },
], ],
}, },
......
...@@ -3263,6 +3263,19 @@ const router = new Router({ ...@@ -3263,6 +3263,19 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'), component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'),
}, },
{
path: '/ibizbooks/:ibizbook?/listexpview/:listexpview?',
meta: {
caption: 'entities.ibizbook.views.listexpview.caption',
info:'',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'),
},
{ {
path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?', path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?',
meta: { meta: {
......
<template>
<div class="view-container delistexpview ibizbooklist-exp-view">
<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">
<split v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<template slot="left">
<view_listexpbar
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:pViewCtx="viewCtx"
:showBusyIndicator="true"
:viewUID="viewUID"
:newdata="newdata"
:opendata="opendata"
name="listexpbar"
ref='listexpbar'
@selectionchange="listexpbar_selectionchange($event)"
@load="listexpbar_load($event)"
@activated="listexpbar_activated($event)"
@closeview="closeView($event)">
</view_listexpbar>
</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>
// 基于 @VIEW/实体列表导航视图/VIEW-BASE.vue.ftl 生成
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool, Util } from '@/utils';
import axios from 'axios';
import { AppMessageBox } from '@/utils/app-message-box/app-message-box';
import NavDataService from '@/service/app/navdata-service';
import { Subject,Subscription } from 'rxjs';
import IBIZBOOKService from '@/service/ibizbook/ibizbook-service';
import IBIZBOOKAuthService from '@/authservice/ibizbook/ibizbook-auth-service';
import ListExpViewEngine from '@engine/view/list-exp-view-engine';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
@Component({
components: {
},
})
export default class IBIZBOOKListExpViewBase extends Vue {
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof IBIZBOOKListExpViewBase
*/
public appEntityService: IBIZBOOKService = new IBIZBOOKService();
/**
* 实体UI服务对象
*
* @type IBIZBOOKUIService
* @memberof IBIZBOOKListExpViewBase
*/
public appUIService: IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof IBIZBOOKListExpViewBase
*/
@Emit()
public viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
@Prop() public viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
@Prop() public viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof IBIZBOOKListExpViewBase
*/
@Prop({ default: true }) public viewDefaultUsage!: boolean;
/**
* 视图默认使用
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 视图标识
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
public viewtag: string = 'ce761954d47de70419725c986316a6be';
/**
* 视图类型
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
public viewType: string = 'DELISTEXPVIEW';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public model: any = {
srfCaption: 'entities.ibizbook.views.listexpview.caption',
srfTitle: 'entities.ibizbook.views.listexpview.title',
srfSubTitle: 'entities.ibizbook.views.listexpview.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKListExpViewBase
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
this.viewparams = {};
if(typeof newVal == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
}
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKListExpViewBase
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
this.$nextTick(()=>{
_this.parseViewParam();
_this.engine.load();
});
} else if(!Object.is(newVal, oldVal) && _this.refresh && _this.refresh instanceof Function) {
_this.refresh();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public containerModel: any = {
view_listexpbar: { name: 'listexpbar', type: 'LISTEXPBAR' },
};
/**
* 视图操作参数
*
* @type {*}
* @readonly
* @memberof IBIZBOOKListExpViewBase
*/
public viewCtx: any = {};
/**
* 计数器刷新
*
* @memberof IBIZBOOKListExpViewBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof IBIZBOOKListExpViewBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof IBIZBOOKListExpViewBase
*/
public engine: ListExpViewEngine = new ListExpViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof IBIZBOOKListExpViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
listexpbar: this.$refs.listexpbar,
keyPSDEField: 'ibizbook',
majorPSDEField: 'ibizbookname',
isLoadDefault: true,
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKListExpViewBase
*/
public serviceStateEvent: Subscription | undefined;
/**
* 门户部件状态对象
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
@Prop() public portletState?: any;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKListExpViewBase
*/
public portletStateEvent: Subscription | undefined;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKListExpViewBase
*/
public formDruipartEvent: Subscription | undefined;
/**
* 应用上下文
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public viewparams:any = {};
/**
* 视图缓存数据
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public viewCacheData:any;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof IBIZBOOKListExpViewBase
*/
public counterServiceArray:Array<any> = [];
/**
* 解析视图参数
*
* @public
* @memberof IBIZBOOKListExpViewBase
*/
public parseViewParam(inputvalue:any = null): void {
for(let key in this.context){
delete this.context[key];
}
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
if(typeof this.viewdata == 'string') {
Object.assign(this.context, JSON.parse(this.viewdata));
}
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
this.handleCustomViewData();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
if(matchArray[index + 1]){
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: decodeURIComponent(matchArray[index + 1])
});
}
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(inputvalue){
Object.assign(this.context,{'ibizbook':inputvalue});
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavDataWithRoute();
}
/**
* 处理自定义视图数据
*
* @memberof IBIZBOOKListExpViewBase
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof IBIZBOOKListExpViewBase
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()] != null){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()] != null){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* 初始化导航数据(路由模式)
*
* @memberof IBIZBOOKListExpViewBase
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'ibizbooklist-exp-view',tag:this.viewtag,srfkey:isNew ? null : this.context.ibizbook,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof IBIZBOOKListExpViewBase
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'ibizbooklist-exp-view',tag:this.viewtag,srfkey:this.context.ibizbook,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
/**
* Vue声明周期
*
* @memberof IBIZBOOKListExpViewBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof IBIZBOOKListExpViewBase
*/
public afterCreated(){
let _this:any = this;
const secondtag = _this.$util.createUUID();
_this.$store.commit('viewaction/createdView', { viewtag: _this.viewtag, secondtag: secondtag });
_this.viewtag = secondtag;
_this.parseViewParam();
_this.serviceStateEvent = _this.navDataService.serviceState.subscribe(({ action,name, data }:{ action:string,name:any,data:any }) => {
if(!Object.is(name,'ibizbooklist-exp-view')){
return;
}
if (Object.is(action, 'viewrefresh')) {
_this.$nextTick(()=>{
_this.parseViewParam(data);
if(_this.engine){
_this.engine.load();
}
});
}
});
if(_this.portletState){
_this.portletStateEvent = _this.portletState.subscribe((res:any) =>{
if(!Object.is(res.name,'IBIZBOOKListExpView')){
return;
}
if(Object.is(res.action,'refresh') && _this.refresh && _this.refresh instanceof Function){
_this.refresh();
}
})
}
_this.initViewCtx();
}
/**
* 初始化视图操作参数
*
* @memberof IBIZBOOKListExpViewBase
*/
initViewCtx() {
Object.assign(this.viewCtx, {
app: this.$root,
view: this,
viewGlobal: {},
viewNavData: {},
viewNavContext: this.context,
viewNavParam: this.viewparams,
messagebox: AppMessageBox.getInstance(),
});
Object.assign(this.viewCtx, { appGlobal: this.$store.getters.getAppGlobal() });
if (this.$store.getters.getRouteViewGlobal(this.context.srfsessionid)) {
Object.assign(this.viewCtx, { routeViewGlobal: this.$store.getters.getRouteViewGlobal(this.context.srfsessionid) });
} else {
this.$store.commit('addRouteViewGlobal', { tag: this.context.srfsessionid, param: {} });
Object.assign(this.viewCtx, { routeViewGlobal: this.$store.getters.getRouteViewGlobal(this.context.srfsessionid) });
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
// 嵌入视图
Object.assign(this.viewCtx, {
topview: this.$store.getters.getView(this.context.srfsessionid)
});
} else {
// 顶层视图
this.$store.commit('addView', { tag: this.context.srfsessionid, param: this });
Object.assign(this.viewCtx, { topview: this });
}
}
/**
* 销毁之前
*
* @memberof IBIZBOOKListExpViewBase
*/
public beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
let _this: any = this
if (_this.serviceStateEvent) {
_this.serviceStateEvent.unsubscribe();
}
if (_this.portletStateEvent) {
_this.portletStateEvent.unsubscribe();
}
if (_this.formDruipartEvent) {
_this.formDruipartEvent.unsubscribe();
}
if (_this.engine) {
_this.engine.destroy();
}
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof IBIZBOOKListExpViewBase
*/
public mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof IBIZBOOKListExpViewBase
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
}
/**
* listexpbar 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZBOOKListExpViewBase
*/
public listexpbar_selectionchange($event: any, $event2?: any) {
this.engine.onCtrlEvent('listexpbar', 'selectionchange', $event);
}
/**
* listexpbar 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZBOOKListExpViewBase
*/
public listexpbar_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('listexpbar', 'load', $event);
}
/**
* listexpbar 部件 activated 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZBOOKListExpViewBase
*/
public listexpbar_activated($event: any, $event2?: any) {
this.engine.onCtrlEvent('listexpbar', 'activated', $event);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof IBIZBOOKListExpView
*/
public newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
let localContext:any = null;
let localViewParam:any =null;
const data: any = {};
if(args[0].srfsourcekey){
data.srfsourcekey = args[0].srfsourcekey;
}
let tempContext = JSON.parse(JSON.stringify(this.context));
delete tempContext.ibizbook;
if(args.length >0){
Object.assign(tempContext,args[0]);
}
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
const _data: any = { w: (new Date().getTime()) };
Object.assign(_data, data);
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, _data);
this.$router.push(routePath);
}
openIndexViewTab(data);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof IBIZBOOKListExpView
*/
public opendata(args: any[],fullargs?:any,params?: any, $event?: any, xData?: any) {
if(!this.viewDefaultUsage){
if(Object.is(this.navModel,"route")){
this.initNavDataWithRoute(this.viewCacheData, false, true);
}else{
this.initNavDataWithTab(this.viewCacheData, false, true);
}
}
let localContext:any = null;
let localViewParam:any =null;
const data: any = {};
let tempContext = JSON.parse(JSON.stringify(this.context));
if(args.length >0){
Object.assign(tempContext,args[0]);
}
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
if (fullargs && fullargs.length > 0) {
const _args = fullargs[0];
if (_args['srfprocessdefinitionkey'] && _args['srftaskdefinitionkey']) {
Object.assign(data, {
processDefinitionKey: _args['srfprocessdefinitionkey'],
taskDefinitionKey: _args['srftaskdefinitionkey']
});
if (_args['srftaskid']) {
Object.assign(data, { 'srftaskid': _args['srftaskid'] });
}
}
}
if(fullargs && fullargs.copymode){
Object.assign(data,{copymode:true});
}
const openIndexViewTab = (data: any) => {
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
this.$router.push(routePath);
}
openIndexViewTab(data);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof IBIZBOOKListExpViewBase
*/
public closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', Array.isArray(args)?args:[args]);
_view.$emit('close', Array.isArray(args)?args:[args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof IBIZBOOKListExpViewBase
*/
public destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof IBIZBOOKListExpViewBase
*/
public afterDestroyed(){
if (this.viewDefaultUsage) {
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
if(Object.is(this.navModel,"tab")){
this.navDataService.removeNavDataByTag(this.viewtag);
}
}
// 销毁计数器定时器
if(this.counterServiceArray && this.counterServiceArray.length >0){
this.counterServiceArray.forEach((item:any) =>{
if(item.destroyCounter && item.destroyCounter instanceof Function){
item.destroyCounter();
}
})
}
}
/**
* 视图唯一标识
*
* @type {string}
* @memberof IBIZBOOKListExpViewBase
*/
public viewUID: string = 'sample-ibizbooklist-exp-view';
/**
* 分隔值
*
* @type {number}
* @memberof IBIZBOOKListExpViewBase
*/
public split: number = 0.5;
/**
* 导航项
*
* @type {*}
* @memberof IBIZBOOKListExpViewBase
*/
public navItem: any = {};
/**
* split值变化事件
*
* @memberof IBIZBOOKListExpViewBase
*/
public onSplitChange() {
if (this.split) {
this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
}
}
/**
* 初始化分隔值
*
* @memberof IBIZBOOKListExpViewBase
*/
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>
<style lang='less'>
@import './ibizbooklist-exp-view.less';
</style>
\ No newline at end of file
// 基于 @VIEW/实体列表导航视图/VIEW.less.ftl 生成
.ibizbooklist-exp-view{
position: relative;
}
.ibizbooklist-exp-view{
display: block;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import IBIZBOOKListExpViewBase from './ibizbooklist-exp-view-base.vue';
import view_listexpbar from '@widgets/ibizbook/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar.vue';
// 基于 @VIEW/实体列表导航视图/VIEW.vue.ftl 生成
@Component({
components: {
view_listexpbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
if(!Object.is(vm.navModel,"route")){
vm.initNavDataWithTab(vm.viewCacheData);
}
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
})
export default class IBIZBOOKListExpView extends IBIZBOOKListExpViewBase {
}
</script>
\ No newline at end of file
...@@ -167,6 +167,7 @@ export const PageComponents = { ...@@ -167,6 +167,7 @@ export const PageComponents = {
Vue.component('ibizbookusr10-edit-view', () => import('@pages/sample/ibizbookusr10-edit-view/ibizbookusr10-edit-view.vue')); Vue.component('ibizbookusr10-edit-view', () => import('@pages/sample/ibizbookusr10-edit-view/ibizbookusr10-edit-view.vue'));
Vue.component('ibizbookusr3-tree-view', () => import('@pages/sample/ibizbookusr3-tree-view/ibizbookusr3-tree-view.vue')); Vue.component('ibizbookusr3-tree-view', () => import('@pages/sample/ibizbookusr3-tree-view/ibizbookusr3-tree-view.vue'));
Vue.component('ibizbookusr2-option-view', () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue')); Vue.component('ibizbookusr2-option-view', () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'));
Vue.component('ibizbooklist-exp-view', () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'));
Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-view.vue')); Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-view.vue'));
Vue.component('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue')); Vue.component('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue'));
Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue')); Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue'));
......
...@@ -2503,6 +2503,20 @@ const router = new Router({ ...@@ -2503,6 +2503,20 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'), component: () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'),
}, },
{
path: 'ibizbooks/:ibizbook?/listexpview/:listexpview?',
meta: {
caption: 'entities.ibizbook.views.listexpview.caption',
info:'',
parameters: [
{ pathName: 'index', parameterName: 'index' },
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'),
},
{ {
path: 'ibizappviews/:ibizappview?/gridview/:gridview?', path: 'ibizappviews/:ibizappview?/gridview/:gridview?',
meta: { meta: {
...@@ -7027,6 +7041,19 @@ const router = new Router({ ...@@ -7027,6 +7041,19 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'), component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'),
}, },
{
path: '/ibizbooks/:ibizbook?/listexpview/:listexpview?',
meta: {
caption: 'entities.ibizbook.views.listexpview.caption',
info:'',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'),
},
{ {
path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?', path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?',
meta: { meta: {
......
...@@ -167,6 +167,7 @@ export const PageComponents = { ...@@ -167,6 +167,7 @@ export const PageComponents = {
Vue.component('ibizbookusr10-edit-view', () => import('@pages/sample/ibizbookusr10-edit-view/ibizbookusr10-edit-view.vue')); Vue.component('ibizbookusr10-edit-view', () => import('@pages/sample/ibizbookusr10-edit-view/ibizbookusr10-edit-view.vue'));
Vue.component('ibizbookusr3-tree-view', () => import('@pages/sample/ibizbookusr3-tree-view/ibizbookusr3-tree-view.vue')); Vue.component('ibizbookusr3-tree-view', () => import('@pages/sample/ibizbookusr3-tree-view/ibizbookusr3-tree-view.vue'));
Vue.component('ibizbookusr2-option-view', () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue')); Vue.component('ibizbookusr2-option-view', () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'));
Vue.component('ibizbooklist-exp-view', () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'));
Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-view.vue')); Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-view.vue'));
Vue.component('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue')); Vue.component('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue'));
Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue')); Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue'));
......
...@@ -2503,6 +2503,20 @@ const router = new Router({ ...@@ -2503,6 +2503,20 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'), component: () => import('@pages/sample/ibizbookusr2-option-view/ibizbookusr2-option-view.vue'),
}, },
{
path: 'ibizbooks/:ibizbook?/listexpview/:listexpview?',
meta: {
caption: 'entities.ibizbook.views.listexpview.caption',
info:'',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'),
},
{ {
path: 'ibizappviews/:ibizappview?/gridview/:gridview?', path: 'ibizappviews/:ibizappview?/gridview/:gridview?',
meta: { meta: {
...@@ -7027,6 +7041,19 @@ const router = new Router({ ...@@ -7027,6 +7041,19 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'), component: () => import('@pages/sample/ibizbookusr2-custom-view/ibizbookusr2-custom-view.vue'),
}, },
{
path: '/ibizbooks/:ibizbook?/listexpview/:listexpview?',
meta: {
caption: 'entities.ibizbook.views.listexpview.caption',
info:'',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbooklist-exp-view/ibizbooklist-exp-view.vue'),
},
{ {
path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?', path: '/ibizbooks/:ibizbook?/haspanellistview/:haspanellistview?',
meta: { meta: {
......
...@@ -1142,6 +1142,7 @@ export const viewstate: any = { ...@@ -1142,6 +1142,7 @@ export const viewstate: any = {
'237aa26a288713e29a1e733394564d3a', '237aa26a288713e29a1e733394564d3a',
'406f27bfbbbe3bb0f15d8d77ca63e24c', '406f27bfbbbe3bb0f15d8d77ca63e24c',
'33e9f40b8b9255757f792baf79a8e309', '33e9f40b8b9255757f792baf79a8e309',
'ce761954d47de70419725c986316a6be',
], ],
}, },
{ {
...@@ -2397,6 +2398,16 @@ export const viewstate: any = { ...@@ -2397,6 +2398,16 @@ export const viewstate: any = {
refviews: [ refviews: [
], ],
}, },
{
viewtag: 'ce761954d47de70419725c986316a6be',
viewmodule: 'Sample',
viewname: 'IBIZBOOKListExpView',
viewaction: '',
viewdatachange: false,
refviews: [
'58e37ccddda10feedac7c809d5cee02a',
],
},
{ {
viewtag: 'd0683173aefd706f451cf652552c5dd7', viewtag: 'd0683173aefd706f451cf652552c5dd7',
viewmodule: 'Sample', viewmodule: 'Sample',
...@@ -3136,6 +3147,7 @@ export const viewstate: any = { ...@@ -3136,6 +3147,7 @@ export const viewstate: any = {
'237aa26a288713e29a1e733394564d3a', '237aa26a288713e29a1e733394564d3a',
'406f27bfbbbe3bb0f15d8d77ca63e24c', '406f27bfbbbe3bb0f15d8d77ca63e24c',
'33e9f40b8b9255757f792baf79a8e309', '33e9f40b8b9255757f792baf79a8e309',
'ce761954d47de70419725c986316a6be',
], ],
}, },
{ {
......
...@@ -185,6 +185,7 @@ export default class IBIZBOOKUIServiceBase extends UIService { ...@@ -185,6 +185,7 @@ export default class IBIZBOOKUIServiceBase extends UIService {
this.allViewMap.set(':',{viewname:'interfunckanbanview',viewType:'DEKANBANVIEW',srfappde:'ibizbooks',component:'ibizbookinter-func-kan-ban-view'}); this.allViewMap.set(':',{viewname:'interfunckanbanview',viewType:'DEKANBANVIEW',srfappde:'ibizbooks',component:'ibizbookinter-func-kan-ban-view'});
this.allViewMap.set(':',{viewname:'usrgridview_ctrlplugin',viewType:'DEGRIDVIEW',srfappde:'ibizbooks',component:'ibizbookusr-grid-view-ctrl-plugin'}); this.allViewMap.set(':',{viewname:'usrgridview_ctrlplugin',viewType:'DEGRIDVIEW',srfappde:'ibizbooks',component:'ibizbookusr-grid-view-ctrl-plugin'});
this.allViewMap.set(':',{viewname:'usr2customview',viewType:'DECUSTOMVIEW',srfappde:'ibizbooks',component:'ibizbookusr2-custom-view'}); this.allViewMap.set(':',{viewname:'usr2customview',viewType:'DECUSTOMVIEW',srfappde:'ibizbooks',component:'ibizbookusr2-custom-view'});
this.allViewMap.set(':',{viewname:'listexpview',viewType:'DELISTEXPVIEW',srfappde:'ibizbooks',component:'ibizbooklist-exp-view'});
this.allViewMap.set(':',{viewname:'panelview',viewType:'DEPANELVIEW',srfappde:'ibizbooks',component:'ibizbookpanel-view'}); this.allViewMap.set(':',{viewname:'panelview',viewType:'DEPANELVIEW',srfappde:'ibizbooks',component:'ibizbookpanel-view'});
this.allViewMap.set(':',{viewname:'haspanellistview',viewType:'DELISTVIEW',srfappde:'ibizbooks',component:'ibizbookhas-panel-list-view'}); this.allViewMap.set(':',{viewname:'haspanellistview',viewType:'DELISTVIEW',srfappde:'ibizbooks',component:'ibizbookhas-panel-list-view'});
this.allViewMap.set(':',{viewname:'usr10gridview',viewType:'DEGRIDVIEW',srfappde:'ibizbooks',component:'ibizbookusr10-grid-view'}); this.allViewMap.set(':',{viewname:'usr10gridview',viewType:'DEGRIDVIEW',srfappde:'ibizbooks',component:'ibizbookusr10-grid-view'});
......
...@@ -970,6 +970,9 @@ export default class MainMenuBase extends Vue implements ControlInterface { ...@@ -970,6 +970,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case 'AppFunc139': case 'AppFunc139':
this.clickAppFunc139(item); this.clickAppFunc139(item);
return; return;
case 'AppFunc142':
this.clickAppFunc142(item);
return;
default: default:
console.warn('未指定应用功能'); console.warn('未指定应用功能');
} }
...@@ -4864,6 +4867,29 @@ export default class MainMenuBase extends Vue implements ControlInterface { ...@@ -4864,6 +4867,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
this.$router.push(path); this.$router.push(path);
}) })
} }
/**
* 列表导航测试
*
* @param {*} [item={}]
* @memberof MainMenu
*/
public clickAppFunc142(item: any = {}) {
const viewparam: any = {};
Object.assign(viewparam, {});
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.fullPath,path)){
return;
}
this.$nextTick(function(){
this.$router.push(path);
})
}
/** /**
* 数据加载 * 数据加载
......
...@@ -4626,6 +4626,25 @@ export default class MainMenuModel { ...@@ -4626,6 +4626,25 @@ export default class MainMenuModel {
appfunctag: 'AppFunc139', appfunctag: 'AppFunc139',
resourcetag: '', resourcetag: '',
authtag:'Web-MainMenu-menuitem261', authtag:'Web-MainMenu-menuitem261',
},
{
id: '9EE75A84-7609-43AB-BEE2-124292CBA0B4',
name: 'menuitem263',
text: '列表导航测试',
type: 'MENUITEM',
counterid: '',
tooltip: '列表导航测试',
expanded: false,
separator: false,
hidden: false,
hidesidebar: false,
opendefault: false,
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc142',
resourcetag: '',
authtag:'Web-MainMenu-menuitem263',
}, },
], ],
}, },
......
<template>
<div id="listexpviewlistexpbar" class="app-list-exp-bar">
<div class='list-exp-bar-header'>
<div class="list-exp-bar-title">
<icon type='ios-home-outline'/>{{$t('app.listExpBar.title')}}
</div>
</div>
<div class="exp-bar-action-container">
</div>
<div class='list-exp-bar-content'>
<view_listexpbar_list
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:pViewCtx="viewCtx"
createAction="Create"
removeAction="Remove"
updateAction="Update"
fetchAction="FetchDefault"
:showBusyIndicator="true"
:isSelectFirstDefault="true"
:parentType="controlType"
:newdata="newdata"
:opendata="opendata"
name="listexpbar_list"
ref='listexpbar_list'
@selectionchange="listexpbar_list_selectionchange($event)"
@load="listexpbar_list_load($event)"
@closeview="closeView($event)">
</view_listexpbar_list>
</div>
</div>
</template>
// 基于 @CONTROL/列表导航/CONTROL-BASE.vue.ftl 生成
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import IBIZBOOKEntityService from '@/service/ibizbook/ibizbook-service';
import ListExpViewlistexpbarService from './list-exp-viewlistexpbar-listexpbar-service';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
import CodeListService from "@/codelist/codelist-service";
@Component({
components: {
}
})
export default class ListExpViewlistexpbarBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public viewparams!: any;
/**
* 视图操作参数(父级)
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public pViewCtx!: any;
/**
* 视图操作参数
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
public viewCtx: any = {};
/**
* 监听视图操作参数变化
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
@Watch('pViewCtx', { immediate: true })
public onViewCtxChange(newVal: any, oldVal: any) {
Object.assign(this.viewCtx, newVal, { xData: this, ctrl: this });
}
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof ListExpViewlistexpbarBase
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof ListExpViewlistexpbarBase
*/
public getControlType(): string {
return 'LISTEXPBAR'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ListExpViewlistexpbarBase
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {ListExpViewlistexpbarService}
* @memberof ListExpViewlistexpbarBase
*/
public service: ListExpViewlistexpbarService = new ListExpViewlistexpbarService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof ListExpViewlistexpbarBase
*/
public appEntityService: IBIZBOOKEntityService = new IBIZBOOKEntityService({ $store: this.$store });
/**
* listexpbar_list 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ListExpViewlistexpbarBase
*/
public listexpbar_list_selectionchange($event: any, $event2?: any) {
this.listexpbar_selectionchange($event, 'listexpbar_list', $event2);
}
/**
* listexpbar_list 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ListExpViewlistexpbarBase
*/
public listexpbar_list_load($event: any, $event2?: any) {
this.listexpbar_load($event, 'listexpbar_list', $event2);
}
/**
* 转化数据
*
* @param {any} args
* @memberof ListExpViewlistexpbarBase
*/
public transformData(args: any) {
let _this: any = this;
if(_this.service && _this.service.handleRequestData instanceof Function && _this.service.handleRequestData('transform',_this.context,args)){
return _this.service.handleRequestData('transform',_this.context,args)['data'];
}
}
/**
* 关闭视图
*
* @param {any} args
* @memberof ListExpViewlistexpbarBase
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof ListExpViewlistexpbarBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 处理部件事件
*
* @memberof ListExpViewlistexpbarBase
*/
public async handleCtrlEvents(eventName: string, args: any = {}): Promise<boolean> {
const actionData = {
data: this.getData() || {},
context: Util.deepCopy(this.context),
viewparams: Util.deepCopy(this.viewparams),
xData: this
}
let result: boolean = true;
Object.assign(actionData, args);
if (!result) {
return false;
}
this.$emit(eventName, actionData);
return true;
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public newdata: any;
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public opendata: any;
/**
* 视图唯一标识
*
* @type {boolean}
* @memberof ListExpViewlistexpbarBase
*/
@Prop() public viewUID!:string;
/**
* 是否单选
*
* @public
* @type {(boolean)}
* @memberof ListExpViewlistexpbarBase
*/
public isSingleSelect: boolean = true;
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ListExpViewlistexpbarBase
*/
public placeholder="图书名称";
/**
* 搜索值
*
* @public
* @type {(string)}
* @memberof ListExpViewlistexpbarBase
*/
public searchText: string = "";
/**
* 部件类型
*
* @public
* @type {(string)}
* @memberof ListExpViewlistexpbarBase
*/
public controlType: string = "listExpBar";
/**
* 导航视图名称
*
* @type {string}
* @memberof ListExpViewlistexpbarBase
*/
public navViewName: string = "";
/**
* 导航视图参数
*
* @type {string}
* @memberof ListExpViewlistexpbarBase
*/
public navViewParam: string = '{}';
/**
* 导航过滤项
*
* @type {string}
* @memberof ListExpViewlistexpbarBase
*/
public navFilter: string = "";
/**
* 导航关系
*
* @type {string}
* @memberof ListExpViewlistexpbarBase
*/
public navPSDer: string = "";
/**
* 导航上下文参数
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
public navigateContext:any = null;
/**
* 导航视图参数
*
* @type {*}
* @memberof ListExpViewlistexpbarBase
*/
public navigateParams:any = null;
/**
* 显示处理提示
*
* @type {boolean}
* @memberof ListExpViewlistexpbarBase
*/
@Prop({ default: true }) public showBusyIndicator!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof ListExpViewlistexpbarBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof ListExpViewlistexpbarBase
*/
public getData(): any {
return null;
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ListExpViewlistexpbarBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ListExpViewlistexpbarBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
this.viewState.next({ tag: 'listexpbar_list', action: action, data: data });
});
}
}
/**
* 执行mounted后的逻辑
*
* @memberof ListExpViewlistexpbarBase
*/
public afterMounted() { }
/**
* Vue声明周期(组件渲染完毕)
*
* @memberof ListExpViewlistexpbarBase
*/
public mounted() {
this.afterMounted();
}
/**
* vue 生命周期
*
* @memberof ListExpViewlistexpbarBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ListExpViewlistexpbarBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 刷新
*
* @memberof ListExpViewlistexpbarBase
*/
public refresh(args?: any): void {
const refs: any = this.$refs;
if (refs && refs.listexpbar_list) {
refs.listexpbar_list.refresh();
}
}
/**
* listexpbar的选中数据事件
*
* @memberof ListExpViewlistexpbarBase
*/
public listexpbar_selectionchange(args: any [], tag?: string, $event2?: any): void {
const tempContext:any = {};
const tempViewParam:any = {};
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
if (this.context) {
Object.assign(tempContext, JSON.parse(JSON.stringify(this.context)));
}
Object.assign(tempContext, { 'ibizbook': arg['ibizbook'] });
Object.assign(tempContext, { srfparentdename:'IBIZBOOK',srfparentkey: arg['ibizbook'] });
if (this.navFilter && !Object.is(this.navFilter,"")) {
Object.assign(tempViewParam, { [this.navFilter]: arg['ibizbook'] });
}
if (this.navPSDer && !Object.is(this.navPSDer,"")) {
Object.assign(tempViewParam, { [this.navPSDer]:arg['ibizbook'] });
}
if (this.navigateContext && Object.keys(this.navigateContext).length > 0) {
let _context:any = this.$util.computedNavData(arg, tempContext, tempViewParam, this.navigateContext);
Object.assign(tempContext,_context);
}
if (this.navigateParams && Object.keys(this.navigateParams).length > 0) {
let _params:any = this.$util.computedNavData(arg, tempContext, tempViewParam, this.navigateParams);
Object.assign(tempViewParam, _params);
}
const navItem: any = {
navView: this.navViewName,
data: args,
srfnavdata: {
context: tempContext,
viewparams: tempViewParam
}
}
this.handleCtrlEvents('onselectionchange', { data: args }).then((res: boolean) => {
if (!res) {
this.calcToolbarItemState(true);
return;
}
this.calcToolbarItemState(false);
this.$emit('selectionchange', navItem);
})
}
/**
* listexpbar的load完成事件
*
* @memberof ListExpViewlistexpbarBase
*/
public listexpbar_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ListExpViewlistexpbarBase
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.listexpviewlistexpbar_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
* @memberof ListExpViewlistexpbarBase
*/
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
if(_this.listexpviewlistexpbar_toolbarModels){
const curUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
ViewTool.calcActionItemAuthState({},_this.listexpviewlistexpbar_toolbarModels,curUIService);
}
}
/**
* 执行搜索
*
* @memberof ListExpViewlistexpbarBase
*/
public onSearch($event:any) {
this.viewState.next({ tag: 'listexpbar_list', action: "load", data: {query : this.searchText}});
}
}
</script>
<style lang='less'>
@import './list-exp-viewlistexpbar-listexpbar.less';
</style>
\ No newline at end of file
// 基于 @CONTROL/列表导航/MODEL.ts.ftl 生成
/**
* ListExpViewlistexpbar 部件模型
*
* @export
* @class ListExpViewlistexpbarModel
*/
export default class ListExpViewlistexpbarModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ListExpViewlistexpbarListexpbarMode
*/
public getDataItems(): any[] {
return [
]
}
}
\ No newline at end of file
// 基于 @CONTROL/列表导航/SERVICE.ts.ftl 生成
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import IBIZBOOKService from '@/service/ibizbook/ibizbook-service';
import ListExpViewlistexpbarModel from './list-exp-viewlistexpbar-listexpbar-model';
/**
* ListExpViewlistexpbar 部件服务对象
*
* @export
* @class ListExpViewlistexpbarService
*/
export default class ListExpViewlistexpbarService extends ControlService {
/**
* 图书服务对象
*
* @type {IBIZBOOKService}
* @memberof ListExpViewlistexpbarService
*/
public appEntityService: IBIZBOOKService = new IBIZBOOKService();
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof ListExpViewlistexpbarService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of ListExpViewlistexpbarService.
*
* @param {*} [opts={}]
* @memberof ListExpViewlistexpbarService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new ListExpViewlistexpbarModel();
}
}
\ No newline at end of file
// 基于 @CONTROL/列表导航/CONTROL.less.ftl 生成
.app-list-exp-bar {
height: 100%;
display: flex;
flex-direction: column;
.list-exp-bar-header {
line-height: 50px;
border-bottom: 1px solid #ddd;
.list-exp-bar-title {
font-size: 18px;
padding-left: 8px;
i {
font-size: 20px;
margin-top: -2px;
}
}
}
.exp-bar-action-container {
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;
}
}
.list-exp-bar-content {
flex-grow: 1;
overflow: auto;
}
}
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ListExpViewlistexpbarBase from './list-exp-viewlistexpbar-listexpbar-base.vue';
import view_listexpbar_list from '@widgets/ibizbook/booklist-list/booklist-list.vue';
// 基于 @CONTROL/列表导航/CONTROL.vue.ftl 生成
@Component({
components: {
view_listexpbar_list,
}
})
export default class ListExpViewlistexpbar extends ListExpViewlistexpbarBase {
}
</script>
\ No newline at end of file
...@@ -698,7 +698,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -698,7 +698,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/ */
public async load(opt: any = {}, isReset: boolean = false): Promise<any> { public async load(opt: any = {}, isReset: boolean = false): Promise<any> {
if(!this.fetchAction){ if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.list.notConfig.fetchAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.fetchAction') as string) });
return; return;
} }
const arg: any = {...opt}; const arg: any = {...opt};
...@@ -792,7 +792,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -792,7 +792,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/ */
public async remove(datas: any[]): Promise<any> { public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.gridpage.notConfig.removeAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKTestCLDataView' + (this.$t('app.gridpage.notConfig.removeAction') as string) });
return; return;
} }
let _datas:any[] = []; let _datas:any[] = [];
...@@ -908,7 +908,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -908,7 +908,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
try { try {
if(Object.is(item.rowDataState, 'create')){ if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){ if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.list.notConfig.createAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.createAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator); let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
...@@ -916,7 +916,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -916,7 +916,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
} }
}else if(Object.is(item.rowDataState, 'update')){ }else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){ if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.list.notConfig.updateAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.updateAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
if(item.ibizbook){ if(item.ibizbook){
......
...@@ -5520,6 +5520,14 @@ ...@@ -5520,6 +5520,14 @@
"rTMOSFilePath" : "psmodeldata$psdataentities/DashboardView_layout", "rTMOSFilePath" : "psmodeldata$psdataentities/DashboardView_layout",
"realModelSubType" : "DEPORTALVIEW", "realModelSubType" : "DEPORTALVIEW",
"realModelType" : "PSDEVIEWBASE" "realModelType" : "PSDEVIEWBASE"
}, {
"codeName" : "ListExpView",
"logicName" : "列表导航测试",
"mOSFilePath" : "psmodeldata$psdataentities/ListExpView",
"name" : "列表导航测试",
"rTMOSFilePath" : "psmodeldata$psdataentities/ListExpView",
"realModelSubType" : "DELISTEXPVIEW",
"realModelType" : "PSDEVIEWBASE"
}, { }, {
"codeName" : "InterFuncKanBanView_layout", "codeName" : "InterFuncKanBanView_layout",
"logicName" : "实体看板视图(内置功能)(布局面板)", "logicName" : "实体看板视图(内置功能)(布局面板)",
......
...@@ -7863,6 +7863,10 @@ ...@@ -7863,6 +7863,10 @@
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKUsr2CustomView.json", "path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKUsr2CustomView.json",
"viewType" : "DECUSTOMVIEW" "viewType" : "DECUSTOMVIEW"
}, {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKListExpView.json",
"viewType" : "DELISTEXPVIEW"
}, { }, {
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json", "path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json",
......
...@@ -12,18 +12,6 @@ ...@@ -12,18 +12,6 @@
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json" "path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}, },
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "图书名称",
"codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "ibizbookname",
"mOSFilePath" : "psdetreecols/ibizbookname",
"name" : "ibizbookname",
"rTMOSFilePath" : "psdetreecols/ibizbookname",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "归还日期", "caption" : "归还日期",
"codeName" : "returntime", "codeName" : "returntime",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -71,6 +59,18 @@ ...@@ -71,6 +59,18 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "图书名称",
"codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "ibizbookname",
"mOSFilePath" : "psdetreecols/ibizbookname",
"name" : "ibizbookname",
"rTMOSFilePath" : "psdetreecols/ibizbookname",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
...@@ -42,18 +42,6 @@ ...@@ -42,18 +42,6 @@
"id" : "GANTT" "id" : "GANTT"
}, },
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "图书名称",
"codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "ibizbookname",
"mOSFilePath" : "psdetreecols/ibizbookname",
"name" : "ibizbookname",
"rTMOSFilePath" : "psdetreecols/ibizbookname",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "归还日期", "caption" : "归还日期",
"codeName" : "returntime", "codeName" : "returntime",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -101,6 +89,18 @@ ...@@ -101,6 +89,18 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "图书名称",
"codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "ibizbookname",
"mOSFilePath" : "psdetreecols/ibizbookname",
"name" : "ibizbookname",
"rTMOSFilePath" : "psdetreecols/ibizbookname",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
{
"accUserMode" : 2,
"getCapPSLanguageRes" : {
"lanResTag" : "DE.LNAME.IBIZBOOK",
"mOSFilePath" : "pslanguageres/Auto395",
"rTMOSFilePath" : "pslanguageres/Auto395"
},
"caption" : "图书",
"codeName" : "IBIZBOOKListExpView",
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKListExpView.json",
"mOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView",
"name" : "IBIZBOOKListExpView",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSAppModule" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPMODULES/Sample.json"
},
"getPSAppViewEngines" : [ {
"engineCat" : "VIEW",
"engineType" : "ListExpView",
"mOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView/psappviewengines/engine",
"name" : "engine",
"getPSUIEngineParams" : [ {
"ctrlName" : "listexpbar",
"name" : "LISTEXPBAR",
"paramType" : "CTRL"
} ]
} ],
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "SYSUILOGIC",
"name" : "newdata",
"getPSAppUILogic" : {
"actionAfterWizard" : "DEFAULT",
"logicType" : "PREDEFINED",
"name" : "新建数据",
"getNewDataPSAppView" : {
"mOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"rTMOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
},
"getPSAppUILogicRefViews" : [ {
"mOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"rTMOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
} ],
"viewLogicType" : "APP_NEWDATA",
"batchAddOnly" : false,
"enableBatchAdd" : false,
"enableWizardAdd" : false
}
}, {
"logicTrigger" : "CUSTOM",
"logicType" : "SYSUILOGIC",
"name" : "opendata",
"getPSAppUILogic" : {
"logicType" : "PREDEFINED",
"name" : "打开数据",
"getOpenDataPSAppView" : {
"mOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"rTMOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
},
"getPSAppUILogicRefViews" : [ {
"mOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"rTMOSFilePath" : "psappviewlogicrefviews/IBIZBOOKEditView",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
} ],
"viewLogicType" : "APP_OPENDATA",
"editMode" : true
}
} ],
"getPSAppViewRefs" : [ {
"name" : "NEWDATA",
"realTitle" : "图书编辑视图",
"getRealTitlePSLanguageRes" : {
"lanResTag" : "PAGE.TITLE.IBIZBOOK.EDITVIEW",
"mOSFilePath" : "pslanguageres/Auto1395",
"rTMOSFilePath" : "pslanguageres/Auto1395"
},
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
}, {
"name" : "EDITDATA",
"realTitle" : "图书编辑视图",
"getRealTitlePSLanguageRes" : {
"lanResTag" : "PAGE.TITLE.IBIZBOOK.EDITVIEW",
"mOSFilePath" : "pslanguageres/Auto1395",
"rTMOSFilePath" : "pslanguageres/Auto1395"
},
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKEditView.json",
"viewType" : "DEEDITVIEW"
}
} ],
"getPSControls" : [ {
"codeName" : "ListExpViewlistexpbar",
"controlType" : "LISTEXPBAR",
"hookEventNames" : [ "SELECTIONCHANGE", "LOAD", "ACTIVATED" ],
"mOSFilePath" : "psmodules/Sample/psdataentities/IBIZBOOK/psexpbars/ListExpViewlistexpbar",
"name" : "listexpbar",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlHandler" : {
"enableDEFieldPrivilege" : false,
"id" : "listexpbar"
},
"getPSControlLogics" : [ {
"eventNames" : "SELECTIONCHANGE;LOAD;ACTIVATED",
"logicTag" : "listexpbar",
"logicType" : "APPVIEWENGINE",
"name" : "engine_listexpbar",
"getPSAppViewEngine" : {
"modelref" : true,
"id" : "engine"
}
} ],
"getPSControlParam" : {
"autoLoad" : true,
"showBusyIndicator" : true,
"id" : "LISTEXPBAR"
},
"getPSControls" : [ {
"codeName" : "Booklist",
"controlType" : "LIST",
"getCreatePSControlAction" : {
"modelref" : true,
"id" : "create"
},
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSLISTS/Booklist.json",
"getFetchPSControlAction" : {
"modelref" : true,
"id" : "fetch"
},
"getGetPSControlAction" : {
"modelref" : true,
"id" : "load"
},
"groupMode" : "CODELIST",
"getGroupPSAppDEField" : {
"name" : "SAILSTATE",
"codeName" : "Sailstate"
},
"getGroupPSCodeList" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPCODELISTS/BookSailState.json"
},
"hookEventNames" : [ "SELECTIONCHANGE", "LOAD" ],
"logicName" : "Booklist",
"mOSFilePath" : "psmodules/Sample/psdataentities/IBIZBOOK/psdelists/Booklist",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlHandler" : {
"getPSHandlerActions" : [ {
"actionName" : "Get",
"actionType" : "DEACTION",
"dataAccessAction" : "READ",
"name" : "load",
"getPSAppDEMethod" : {
"modelref" : true,
"id" : "Get"
},
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}
}, {
"actionName" : "Create",
"actionType" : "DEACTION",
"dataAccessAction" : "CREATE",
"name" : "create",
"getPSAppDEMethod" : {
"modelref" : true,
"id" : "Create"
},
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}
}, {
"actionName" : "Update",
"actionType" : "DEACTION",
"dataAccessAction" : "UPDATE",
"name" : "update",
"getPSAppDEMethod" : {
"modelref" : true,
"id" : "Update"
},
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}
}, {
"actionName" : "Remove",
"actionType" : "DEACTION",
"dataAccessAction" : "DELETE",
"name" : "remove",
"getPSAppDEMethod" : {
"modelref" : true,
"id" : "Remove"
},
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}
}, {
"actionType" : "DEDATASET",
"name" : "fetch",
"getPSAppDEMethod" : {
"modelref" : true,
"id" : "FetchDefault"
},
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}
} ],
"userDRAction" : "READ",
"enableDEFieldPrivilege" : false,
"id" : "列表控件处理器"
},
"getPSControlLogics" : [ {
"eventNames" : "SELECTIONCHANGE",
"logicTag" : "listexpbar_list",
"logicType" : "CUSTOM",
"name" : "listexpbar_selectionchange"
}, {
"eventNames" : "LOAD",
"logicTag" : "listexpbar_list",
"logicType" : "CUSTOM",
"name" : "listexpbar_load"
} ],
"getPSControlParam" : {
"autoLoad" : true,
"showBusyIndicator" : true,
"id" : "listexpbar_list"
},
"getPSDEDataImport" : {
"modelref" : true,
"id" : "DataImport"
},
"getPSDEListDataItems" : [ {
"dataType" : 25,
"name" : "srfmajortext",
"getPSAppDEField" : {
"name" : "IBIZBOOKNAME",
"codeName" : "IBIZBOOKName"
}
}, {
"dataType" : 25,
"name" : "srfdescription",
"getPSAppDEField" : {
"name" : "SUBTEXT",
"codeName" : "Subtext"
}
}, {
"dataType" : 25,
"name" : "srfdate",
"getPSAppDEField" : {
"name" : "LENDOUTTIME",
"codeName" : "Lendouttime"
}
}, {
"dataType" : 25,
"name" : "srficon",
"getPSAppDEField" : {
"name" : "ICON",
"codeName" : "Icon"
}
}, {
"dataType" : 25,
"name" : "srfkey",
"getPSAppDEField" : {
"name" : "IBIZBOOKID",
"codeName" : "IBIZBOOKId"
}
}, {
"dataType" : 25,
"name" : "srfmstag"
} ],
"pagingSize" : 15,
"rTMOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView/psappviewctrls/listexpbar_list",
"getRemovePSControlAction" : {
"modelref" : true,
"id" : "remove"
},
"getUpdatePSControlAction" : {
"modelref" : true,
"id" : "update"
},
"hasWFDataItems" : false,
"enableGroup" : true,
"enableRowEdit" : false,
"enableRowEditGroup" : false,
"enableRowEditOrder" : false,
"enableRowNew" : false,
"noSort" : true,
"showHeader" : true,
"name" : "listexpbar_list",
"modelid" : "8f8454afed10cc497ead10dd05dad18b",
"modeltype" : "PSDELIST"
} ],
"rTMOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView/psappviewctrls/listexpbar",
"xDataControlName" : "listexpbar_list",
"enableCounter" : true,
"enableSearch" : false,
"showTitleBar" : true,
"modelid" : "ce761954d47de70419725c986316a6be_listexpbar",
"modeltype" : "PSEXPBAR"
} ],
"getPSDEViewCodeName" : "ListExpView",
"getPSDEViewId" : "C8CCF8FD-3E20-4792-8D37-C20ED68E1FFA",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDELISTEXPVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"mOSFilePath" : "psmodules/Sample/psdataentities/IBIZBOOK/pssysviewlayoutpanels/Layoutpanel",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"rTMOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView/psappviewctrls/layoutpanel",
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
},
"rTMOSFilePath" : "pssysapps/Web/psappdeviews/IBIZBOOKListExpView",
"sideBarLayout" : "LEFT",
"title" : "图书列表导航视图",
"viewStyle" : "DEFAULT",
"viewType" : "DELISTEXPVIEW",
"enableDP" : true,
"enableFilter" : false,
"enableQuickSearch" : true,
"showDataInfoBar" : true,
"modelid" : "ce761954d47de70419725c986316a6be",
"modeltype" : "PSAPPDEVIEW"
}
\ No newline at end of file
...@@ -5386,6 +5386,22 @@ ...@@ -5386,6 +5386,22 @@
"layout" : "TABLE" "layout" : "TABLE"
}, },
"tooltip" : "选项操作视图" "tooltip" : "选项操作视图"
}, {
"accUserMode" : 2,
"caption" : "列表导航测试",
"itemType" : "MENUITEM",
"name" : "menuitem263",
"getPSAppFunc" : {
"modelref" : true,
"id" : "AppFunc142"
},
"getPSLayout" : {
"layout" : "TABLE"
},
"getPSLayoutPos" : {
"layout" : "TABLE"
},
"tooltip" : "列表导航测试"
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"layout" : "TABLE" "layout" : "TABLE"
......
...@@ -4507,6 +4507,22 @@ ...@@ -4507,6 +4507,22 @@
"layout" : "TABLE" "layout" : "TABLE"
}, },
"tooltip" : "选项操作视图" "tooltip" : "选项操作视图"
}, {
"accUserMode" : 2,
"caption" : "列表导航测试",
"itemType" : "MENUITEM",
"name" : "menuitem263",
"getPSAppFunc" : {
"modelref" : true,
"id" : "AppFunc142"
},
"getPSLayout" : {
"layout" : "TABLE"
},
"getPSLayoutPos" : {
"layout" : "TABLE"
},
"tooltip" : "列表导航测试"
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"layout" : "TABLE" "layout" : "TABLE"
......
...@@ -3058,6 +3058,16 @@ ...@@ -3058,6 +3058,16 @@
"id" : "AppFunc139" "id" : "AppFunc139"
}, },
"tooltip" : "选项操作视图" "tooltip" : "选项操作视图"
}, {
"accUserMode" : 2,
"caption" : "列表导航测试",
"itemType" : "MENUITEM",
"name" : "menuitem263",
"getPSAppFunc" : {
"modelref" : true,
"id" : "AppFunc142"
},
"tooltip" : "列表导航测试"
} ], } ],
"tooltip" : "vue3视图部件测试" "tooltip" : "vue3视图部件测试"
} ], } ],
......
...@@ -4178,6 +4178,18 @@ ...@@ -4178,6 +4178,18 @@
"viewType" : "DEDATAVIEW" "viewType" : "DEDATAVIEW"
}, },
"rTMOSFilePath" : "pssysapps/Web/psappfuncs/AppFunc16" "rTMOSFilePath" : "pssysapps/Web/psappfuncs/AppFunc16"
}, {
"appFuncType" : "APPVIEW",
"codeName" : "AppFunc142",
"mOSFilePath" : "pssysapps/Web/psappfuncs/AppFunc142",
"name" : "列表导航测试",
"openMode" : "INDEXVIEWTAB",
"getPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKListExpView.json",
"viewType" : "DELISTEXPVIEW"
},
"rTMOSFilePath" : "pssysapps/Web/psappfuncs/AppFunc142"
}, { }, {
"appFuncType" : "APPVIEW", "appFuncType" : "APPVIEW",
"codeName" : "UsrAppFunc1102681676", "codeName" : "UsrAppFunc1102681676",
...@@ -17892,6 +17904,12 @@ ...@@ -17892,6 +17904,12 @@
"viewType" : "DECUSTOMVIEW", "viewType" : "DECUSTOMVIEW",
"resource" : "IBIZBOOK", "resource" : "IBIZBOOK",
"view" : "Usr2CustomView" "view" : "Usr2CustomView"
}, {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKListExpView.json",
"viewType" : "DELISTEXPVIEW",
"resource" : "IBIZBOOK",
"view" : "ListExpView"
}, { }, {
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json", "path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json",
...@@ -22944,6 +22962,22 @@ ...@@ -22944,6 +22962,22 @@
"layout" : "TABLE" "layout" : "TABLE"
}, },
"tooltip" : "选项操作视图" "tooltip" : "选项操作视图"
}, {
"accUserMode" : 2,
"caption" : "列表导航测试",
"itemType" : "MENUITEM",
"name" : "menuitem263",
"getPSAppFunc" : {
"modelref" : true,
"id" : "AppFunc142"
},
"getPSLayout" : {
"layout" : "TABLE"
},
"getPSLayoutPos" : {
"layout" : "TABLE"
},
"tooltip" : "列表导航测试"
} ], } ],
"getPSLayout" : { "getPSLayout" : {
"layout" : "TABLE" "layout" : "TABLE"
...@@ -37005,6 +37039,10 @@ ...@@ -37005,6 +37039,10 @@
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKUsr2CustomView.json", "path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKUsr2CustomView.json",
"viewType" : "DECUSTOMVIEW" "viewType" : "DECUSTOMVIEW"
}, {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKListExpView.json",
"viewType" : "DELISTEXPVIEW"
}, { }, {
"modelref" : true, "modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json", "path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKPanelView.json",
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 --> <!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-1466-7"> <changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-1468-7">
<createTable tableName="T_IBIZBOOK"> <createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)"> <column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column> </column>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册