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

update:更新数据关系栏

上级 df4c63e0
<template> <template>
<#if ctrl.render??> <#if ctrl.render??>
${ctrl.render.code} ${ctrl.render.code}
<#else> <#else>
<layout class='app-dr-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'> <div class='app-dr-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' :style="{ width: <#noparse>`${width}px`</#noparse> }">
<sider :width="width"> </div>
<el-menu <el-menu
:default-openeds="defaultOpeneds" :mode="menuDir"
:default-active="items[0].id" :default-openeds="defaultOpeneds"
@select="onSelect" :default-active="items[0].id"
@open="onOpen" @select="onSelect"
@close="onClose"> @open="onOpen"
<app-sider-menus :menus="items"></app-sider-menus> @close="onClose">
</el-menu> <app-sider-menus :menus="items"></app-sider-menus>
</sider> </el-menu>
<content <#noparse>:style="{ width: `calc(100% - ${this.width + 1}px)` }"</#noparse>> </#if>
<div class='main-data' v-show="Object.is(this.selection.id, 'form')"> </template>
<slot></slot> <#ibizinclude>
</div> ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
<component </#ibizinclude>
v-if="!Object.is(this.selection.id, 'form') && this.selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname" <#ibizinclude>
class="viewcontainer2" ../@MACRO/FUNC/MACRO.ftl
:viewDefaultUsage="false" </#ibizinclude>
:viewdata="JSON.stringify(selection.data)"
:viewparam="JSON.stringify(selection.param)" /**
:key="this.$util.createUUID()"> * 菜单方向
</component>
</content> * @type {('horizontal' | 'vertical')}
</layout> * @memberof ${srfclassname('${ctrl.codeName}')}Base
</#if> */
</template> @Prop({ default: 'vertical' }) public menuDir?: 'horizontal' | 'vertical';
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl /**
</#ibizinclude> * 获取多项数据
*
<#ibizinclude> * @returns {any[]}
../@MACRO/FUNC/MACRO.ftl * @memberof ${srfclassname('${ctrl.codeName}')}Base
</#ibizinclude> */
public getDatas(): any[] {
/** return this.items;
* 获取多项数据 }
*
* @returns {any[]} /**
* @memberof ${srfclassname('${ctrl.codeName}')}Base * 获取单项树
*/ *
public getDatas(): any[] { * @returns {*}
return this.items; * @memberof ${srfclassname('${ctrl.codeName}')}Base
} */
public getData(): any {
/** return this.selection;
* 获取单项树 }
*
* @returns {*} /**
* @memberof ${srfclassname('${ctrl.codeName}')}Base * 加载行为
*/ *
public getData(): any { * @type {string}
return this.selection; * @memberof ${srfclassname('${ctrl.codeName}')}Base
} */
@Prop() public loadAction?: string;
/**
* 加载行为 /**
* * 表单数据
* @type {string} *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @type {*}
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
@Prop() public loadAction?: string; */
@Prop({default:{}}) public formData?:any;
/**
* 表单数据 /**
* * 数据选中项
* @type {*} *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @type {*}
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
@Prop({default:{}}) public formData?:any; */
public selection: any = {};
/**
* 数据选中项 /**
* * 关系栏数据项
* @type {*} *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @type {any[]}
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
public selection: any = {}; */
public items: any[] = [
/** <#list ctrl.getPSDEDataRelation().getPSDEDRDetails() as item>
* 关系栏数据项 {
* text: "${item.getCaption()}",
* @type {any[]} disabled: false,
* @memberof ${srfclassname('${ctrl.codeName}')}Base id: "${item.getName()?lower_case}",
*/ <#if item.getPSSysImage()??>
public items: any[] = [ iconcls: '${item.getPSSysImage().getCssClass()}',
<#if view.hasPSControl('form')> icon: '${item.getPSSysImage().getImagePath()}',
{ </#if>
text: "主表单", },
disabled: false, </#list>
id: "form", ];
},
</#if> /**
<#list ctrl.getPSDEDataRelation().getPSDEDRDetails() as item> * 关系栏数据项导航参数集合
{ *
text: "${item.getCaption()}", * @type {any[]}
disabled: false, * @memberof ${srfclassname('${ctrl.codeName}')}Base
id: "${item.getName()?lower_case}", */
<#if item.getPSSysImage()??> public navParamsArray:Array<any> = [
iconcls: '${item.getPSSysImage().getCssClass()}', <#if ctrl.getPSDEDRCtrlItems?? && ctrl.getPSDEDRCtrlItems()??>
icon: '${item.getPSSysImage().getImagePath()}', <#list ctrl.getPSDEDRCtrlItems() as appdeDrCtrlItem>
</#if> {
}, id:'${appdeDrCtrlItem.getName()?lower_case}',
</#list> localContext:<#if appdeDrCtrlItem.getPSNavigateContexts?? && appdeDrCtrlItem.getPSNavigateContexts()??><@getNavigateContext appdeDrCtrlItem /><#else>null</#if>,
]; localViewParam:<#if appdeDrCtrlItem.getPSNavigateParams?? && appdeDrCtrlItem.getPSNavigateParams()??><@getNavigateParams appdeDrCtrlItem /><#else>null</#if>
}<#if appdeDrCtrlItem_has_next>,</#if>
/** </#list>
* 关系栏数据项导航参数集合 </#if>
* ];
* @type {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}Base /**
*/ * 默认打开项
public navParamsArray:Array<any> = [ *
<#if ctrl.getPSDEDRCtrlItems?? && ctrl.getPSDEDRCtrlItems()??> * @type {string[]}
<#list ctrl.getPSDEDRCtrlItems() as appdeDrCtrlItem> * @memberof ${srfclassname('${ctrl.codeName}')}Base
{ */
id:'${appdeDrCtrlItem.getName()?lower_case}', public defaultOpeneds: string[] = [];
localContext:<#if appdeDrCtrlItem.getPSNavigateContexts?? && appdeDrCtrlItem.getPSNavigateContexts()??><@getNavigateContext appdeDrCtrlItem /><#else>null</#if>,
localViewParam:<#if appdeDrCtrlItem.getPSNavigateParams?? && appdeDrCtrlItem.getPSNavigateParams()??><@getNavigateParams appdeDrCtrlItem /><#else>null</#if> /**
}<#if appdeDrCtrlItem_has_next>,</#if> * 父数据
</#list> *
</#if> * @public
]; * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/** */
* 默认打开项 public parentData: any = {};
*
* @type {string[]} /**
* @memberof ${srfclassname('${ctrl.codeName}')}Base * 宽度
*/ *
public defaultOpeneds: string[] = []; * @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/** */
* 父数据 public width: number = <#if ctrl.getWidth() gt 240><#else>240</#if>;
*
* @public /**
* @type {*} * 生命周期
* @memberof ${srfclassname('${ctrl.codeName}')}Base *
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
public parentData: any = {}; */
public created(): void {
/** this.afterCreated();
* 宽度 }
*
* @type {number} /**
* @memberof ${srfclassname('${ctrl.codeName}')}Base * 执行created后的逻辑
*/ *
public width: number = <#if ctrl.getWidth() gt 240><#else>240</#if>; * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
/** public afterCreated(){
* 生命周期 if (this.viewState) {
* this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
* @memberof ${srfclassname('${ctrl.codeName}')}Base if (!Object.is(tag, this.name)) {
*/ return;
public created(): void { }
this.afterCreated(); if (Object.is('state', action)) {
} const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false;
this.setItemDisabled(this.items, state);
/** }
* 执行created后的逻辑 });
* }
* @memberof ${srfclassname('${ctrl.codeName}')}Base this.$nextTick(() => {
*/ this.onSelect(this.items[0].id)
public afterCreated(){ this.$emit('selectionchange', [this.items[0]]);
if (this.viewState) { });
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { }
if (!Object.is(tag, this.name)) {
return; /**
} * vue 生命周期
if (Object.is('state', action)) { *
const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false; * @memberof ${srfclassname('${ctrl.codeName}')}Base
this.setItemDisabled(this.items, state); */
} public destroyed() {
}); this.afterDestroy();
} }
this.$nextTick(() => {
this.onSelect(this.items[0].id) /**
this.$emit('selectionchange', [this.items[0]]); * 执行destroyed后的逻辑
}); *
} * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
/** public afterDestroy() {
* vue 生命周期 if (this.viewStateEvent) {
* this.viewStateEvent.unsubscribe();
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ <#if destroyed_block??>
public destroyed() { ${destroyed_block}
this.afterDestroy(); </#if>
} }
/** /**
* 执行destroyed后的逻辑 * 获取关系项
* *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @public
*/ * @param {*} [arg={}]
public afterDestroy() { * @returns {*}
if (this.viewStateEvent) { * @memberof ${srfclassname('${ctrl.codeName}')}Base
this.viewStateEvent.unsubscribe(); */
} public getDRBarItem(arg: any = {}): any {
<#if destroyed_block??> let expmode = arg.nodetype;
${destroyed_block} if (!expmode) {
</#if> expmode = '';
} }
<#list ctrl.getPSAppViewRefs() as item>
/** <#if (item.getName()?index_of("DRITEM:")==0)>
* 获取关系项 <#assign refview = item.getRefPSAppView()>
* if (Object.is(expmode, '${item.getName()?substring(7)?lower_case}')) {
* @public return {
* @param {*} [arg={}] viewname: '${srffilepath2(refview.codeName)}',
* @returns {*} parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if>
* @memberof ${srfclassname('${ctrl.codeName}')}Base };
*/ }
public getDRBarItem(arg: any = {}): any { </#if>
let expmode = arg.nodetype; </#list>
if (!expmode) { return undefined;
expmode = ''; }
}
<#list ctrl.getPSAppViewRefs() as item> /**
<#if (item.getName()?index_of("DRITEM:")==0)> * 处理数据
<#assign refview = item.getRefPSAppView()> *
if (Object.is(expmode, '${item.getName()?substring(7)?lower_case}')) { * @public
return { * @param {any[]} items
viewname: '${srffilepath2(refview.codeName)}', * @memberof ${srfclassname('${ctrl.codeName}')}Base
parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if> */
}; public dataProcess(items: any[]): void {
} items.forEach((_item: any) => {
</#if> if (_item.expanded) {
</#list> this.defaultOpeneds.push(_item.id);
return undefined; }
}
_item.disabled = false;
/** if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
* 处理数据 this.dataProcess(_item.items);
* }
* @public });
* @param {any[]} items }
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ /**
public dataProcess(items: any[]): void { * 获取子项
items.forEach((_item: any) => { *
if (_item.expanded) { * @param {any[]} items
this.defaultOpeneds.push(_item.id); * @param {string} id
} * @returns {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
_item.disabled = false; */
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) { public getItem(items: any[], id: string): any {
this.dataProcess(_item.items); const item: any = {};
} items.some((_item: any) => {
}); if (Object.is(_item.id, id)) {
} Object.assign(item, _item);
return true;
/** }
* 获取子项 if (_item.items && _item.items.length > 0) {
* const subItem = this.getItem(_item.items, id);
* @param {any[]} items if (Object.keys(subItem).length > 0) {
* @param {string} id Object.assign(item, subItem);
* @returns {*} return true;
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ }
public getItem(items: any[], id: string): any { return false;
const item: any = {}; });
items.some((_item: any) => { return item;
if (Object.is(_item.id, id)) { }
Object.assign(item, _item);
return true; /**
} * 初始化导航参数
if (_item.items && _item.items.length > 0) { *
const subItem = this.getItem(_item.items, id); * @param {*} drItem
if (Object.keys(subItem).length > 0) { * @memberof ${srfclassname('${ctrl.codeName}')}Base
Object.assign(item, subItem); */
return true; public initNavParam(drItem:any){
} let returnNavParam:any = {};
} if(drItem && drItem.id){
return false; let curDRItem:any = this.navParamsArray.find((item:any) =>{
}); return Object.is(item.id,drItem.id);
return item; })
} if(curDRItem){
let localContext:any = curDRItem.localContext;
/** let localViewParam:any = curDRItem.localViewParam;
* 初始化导航参数 if(localContext && Object.keys(localContext).length >0){
* let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
* @param {*} drItem returnNavParam.localContext = _context;
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ if(localViewParam && Object.keys(localViewParam).length >0){
public initNavParam(drItem:any){ let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
let returnNavParam:any = {}; returnNavParam.localViewParam = _params;
if(drItem && drItem.id){ }
let curDRItem:any = this.navParamsArray.find((item:any) =>{ return returnNavParam;
return Object.is(item.id,drItem.id); }else{
}) return null;
if(curDRItem){ }
let localContext:any = curDRItem.localContext; }
let localViewParam:any = curDRItem.localViewParam; }
if(localContext && Object.keys(localContext).length >0){
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext); /**
returnNavParam.localContext = _context; * 节点选中
} *
if(localViewParam && Object.keys(localViewParam).length >0){ * @param {*} $event
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam); * @memberof ${srfclassname('${ctrl.codeName}')}Base
returnNavParam.localViewParam = _params; */
} public onSelect($event: any): void {
return returnNavParam; const item = this.getItem(this.items, $event);
}else{ if (Object.is(item.id, this.selection.id)) {
return null; return;
} }
} this.$emit('selectionchange', [item]);
} let localNavParam:any = this.initNavParam(item);
const refview = this.getDRBarItem({ nodetype: item.id });
/** this.selection = {};
* 节点选中 const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
* if(localNavParam && localNavParam.localContext){
* @param {*} $event Object.assign(_context,localNavParam.localContext);
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ const _params: any = {};
public onSelect($event: any): void { if(localNavParam && localNavParam.localViewParam){
const item = this.getItem(this.items, $event); Object.assign(_params,localNavParam.localViewParam);
if (Object.is(item.id, this.selection.id)) { }
return; if (refview && refview.parentdatajo) {
} Object.assign(_context, refview.parentdatajo);
this.$emit('selectionchange', [item]); Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
let localNavParam:any = this.initNavParam(item); }
const refview = this.getDRBarItem({ nodetype: item.id }); Object.assign(this.selection, item);
this.selection = {}; }
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){ /**
Object.assign(_context,localNavParam.localContext); * 子节点打开
} *
const _params: any = {}; * @param {*} $event
if(localNavParam && localNavParam.localViewParam){ * @memberof ${srfclassname('${ctrl.codeName}')}Base
Object.assign(_params,localNavParam.localViewParam); */
} public onOpen($event: any): void {
if (refview && refview.parentdatajo) { const item = this.getItem(this.items, $event);
Object.assign(_context, refview.parentdatajo); if (Object.is(item.id, this.selection.id)) {
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params }); return;
} }
Object.assign(this.selection, item); this.selection = {};
} Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
/** this.$emit('selectionchange', [this.selection]);
* 子节点打开 }
* }
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}Base /**
*/ * 子节点关闭
public onOpen($event: any): void { *
const item = this.getItem(this.items, $event); * @param {*} $event
if (Object.is(item.id, this.selection.id)) { * @memberof ${srfclassname('${ctrl.codeName}')}Base
return; */
} public onClose($event: any): void {
this.selection = {}; const item = this.getItem(this.items, $event);
Object.assign(this.selection, item); if (Object.is(item.id, this.selection.id)) {
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) { return;
this.$emit('selectionchange', [this.selection]); }
} this.selection = {};
} Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
/** this.$emit('selectionchange', [this.selection]);
* 子节点关闭 }
* }
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}Base /**
*/ * 设置关系项状态
public onClose($event: any): void { *
const item = this.getItem(this.items, $event); * @param {any[]} items
if (Object.is(item.id, this.selection.id)) { * @param {boolean} state
return; * @memberof ${srfclassname('${ctrl.codeName}')}Base
} */
this.selection = {}; public setItemDisabled(items: any[], state: boolean) {
Object.assign(this.selection, item); items.forEach((item: any) => {
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) { if (!Object.is(item.id, 'form')) {
this.$emit('selectionchange', [this.selection]); item.disabled = state;
} }
} if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
/** }
* 设置关系项状态 });
* }
* @param {any[]} items
* @param {boolean} state <#ibizinclude>
* @memberof ${srfclassname('${ctrl.codeName}')}Base ../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
*/ </#ibizinclude>
public setItemDisabled(items: any[], state: boolean) {
items.forEach((item: any) => { <#ibizinclude>
if (!Object.is(item.id, 'form')) { ../@MACRO/CONTROL/CONTROL-BASE.style.ftl
item.disabled = state;
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
}
});
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL-BASE.style.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
<#-- ctrl document --> <#-- ctrl document -->
<view_${ctrl.getName()} <view_${ctrl.getName()}
:viewState="viewState" :viewState="viewState"
loadAction='get' loadAction='get'
name='${ctrl.name}' name='${ctrl.name}'
ref='${ctrl.name}' ref='${ctrl.name}'
:viewparams="viewparams" :viewparams="viewparams"
:context="context" :context="context"
:formData="formData" :formData="formData"
<#if ctrl.getHookEventNames()??> <#if ctrl.getHookEventNames()??>
<#list ctrl.getHookEventNames() as eventName> <#list ctrl.getHookEventNames() as eventName>
@${eventName?lower_case}="${ctrl.name}_${eventName?lower_case}($event)" @${eventName?lower_case}="${ctrl.name}_${eventName?lower_case}($event)"
</#list> </#list>
</#if> </#if>
@closeview="closeView($event)"> @closeview="closeView($event)">
<#if view.hasPSControl('form')>
${P.getCtrlCode('form', 'CONTROL.html').code}
</#if>
</view_${ctrl.getName()}> </view_${ctrl.getName()}>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册