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

update:更新

上级 89ea9d11
<template> <template>
<#if ctrl.render??> <#if ctrl.render??>
${ctrl.render.code} ${ctrl.render.code}
<#else> <#else>
<div class = "drtab<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>"> <div class="app-dr-tab<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<tabs :animated='false' class='app-dr-tab' name='${ctrl.getCodeName()?lower_case}' @on-click="tabPanelClick"> <div v-for="(item, index) in items" :class="{ 'app-dr-tab-item': true, 'dr-tab-item': true, 'is-disabled': item.disabled, 'is-active': selection.id === item.id">
<#list ctrl.getRootItem().getAllItems() as dritem> <span class="text">{{ item.text }}</span>
<tab-pane <#if dritem_index == 0>v-if="isShowSlot"</#if> :index='${dritem_index?c}' name='${dritem.getId()?lower_case}' tab='${ctrl.getCodeName()?lower_case}' class='' :disabled='items[${dritem_index?c}].disabled' </div>
label='${dritem.text}'> </div>
<#if dritem.getId()?lower_case == 'form'> </#if>
<div class='main-data'> </template>
<slot></slot>
</div> <#ibizinclude>
<#else> ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
<component </#ibizinclude>
v-if="Object.is(this.selection.id, '${dritem.getId()?lower_case}') && this.selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname" <#ibizinclude>
class="viewcontainer2" ../@MACRO/FUNC/MACRO.ftl
:viewdata="JSON.stringify(selection.data)" </#ibizinclude>
:viewparam="JSON.stringify(selection.param)"
:viewDefaultUsage="false" /**
:key="this.$util.createUUID()"> * 是否显示插槽
</component> *
</#if> * @type {string}
</tab-pane> * @memberof ${srfclassname('${ctrl.codeName}')}Base
</#list> */
</tabs> @Prop({default:true}) public isShowSlot?: boolean;
</div>
</#if> /**
</template> * 应用实体参数名称
*
<#ibizinclude> * @type string
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl * @memberof ${srfclassname('${ctrl.codeName}')}Base
</#ibizinclude> */
@Prop() public parentName!: string;
<#ibizinclude>
../@MACRO/FUNC/MACRO.ftl /**
</#ibizinclude> * 表单数据
*
/** * @type {*}
* 是否显示插槽 * @memberof ${srfclassname('${ctrl.codeName}')}Base
* */
* @type {string} public formData: any;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ /**
@Prop({default:true}) public isShowSlot?: boolean; * 获取多项数据
*
/** * @returns {any[]}
* 应用实体参数名称 * @memberof ${srfclassname('${ctrl.codeName}')}Base
* */
* @type string public getDatas(): any[] {
* @memberof ${srfclassname('${ctrl.codeName}')}Base return this.items;
*/ }
@Prop() public parentName!: string;
/**
/** * 获取单项树
* 表单数据 *
* * @returns {*}
* @type {*} * @memberof ${srfclassname('${ctrl.codeName}')}Base
* @memberof ${srfclassname('${ctrl.codeName}')}Base */
*/ public getData(): any {
public formData:any; return this.selection;
}
/**
* 获取多项数据 /**
* * 数据选中项
* @returns {any[]} *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @type {*}
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
public getDatas(): any[] { */
return this.items; public selection: any = {};
}
/**
/** * 父数据
* 获取单项树 *
* * @public
* @returns {*} * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public getData(): any { public parentData: any = {};
return this.selection;
} /**
* 关系栏数据项
/** *
* 数据选中项 * @type {any[]}
* * @memberof ${srfclassname('${ctrl.codeName}')}Base
* @type {*} */
* @memberof ${srfclassname('${ctrl.codeName}')}Base public items: any[] = [
*/ <#if ctrl.getPSDEDRTabPages?? && ctrl.getPSDEDRTabPages()??>
public selection: any = {}; <#list ctrl.getPSDEDRTabPages() as item>
{
/** id: '${item.getId()?lower_case}',
* 父数据 name: '${item.getId()?lower_case}',
* text: '${item.getCaption()}',
* @public disabled: true,
* @type {*} navView: '<#if item.getPSAppView?? && item.getPSAppView()??>${srffilepath2(item.getPSAppView().codeName)}</#if>',
* @memberof ${srfclassname('${ctrl.codeName}')}Base <#if drItem.getPSSysImage()??>
*/ iconcls: '${item.getPSSysImage().getCssClass()}',
public parentData: any = {}; icon: '${item.getPSSysImage().getImagePath()}',
</#if>
/** localContext: <#if item.getPSNavigateContexts?? && item.getPSNavigateContexts()??><@getNavigateContext item /><#else>null</#if>,
* 关系栏数据项 localViewParam: <#if item.getPSNavigateParams?? && item.getPSNavigateParams()??><@getNavigateParams item /><#else>null</#if>
* }
* @type {any[]} </#list>
* @memberof ${srfclassname('${ctrl.codeName}')}Base </#if>
*/ ];
public items: any[] = [
<#list ctrl.getRootItem().getAllItems() as dritem> /**
{ * 生命周期
index: ${dritem_index?c}, *
id: '${dritem.getId()?lower_case}', * @memberof ${srfclassname('${ctrl.codeName}')}Base
name: '${dritem.getId()?lower_case}', */
text: '${dritem.text}', public created(): void {
disabled: false, this.afterCreated();
}, }
</#list>
]; /**
* 仿真选中第一项
/** *
* 关系栏数据项导航参数集合 * @memberof ${srfclassname('${ctrl.codeName}')}Base
* */
* @type {any[]} public selectFirst(){
* @memberof ${srfclassname('${ctrl.codeName}')}Base if (this.items.length > 0){
*/ this.isShowSlot?this.tabPanelClick(this.items[0].name):this.items.length>1?this.tabPanelClick(this.items[1].name):()=>{};
public navParamsArray:Array<any> = [ }
<#if ctrl.getPSDEDRCtrlItems?? && ctrl.getPSDEDRCtrlItems()??> }
<#list ctrl.getPSDEDRCtrlItems() as appdeDrCtrlItem>
{ /**
id:'${appdeDrCtrlItem.getName()?lower_case}', * 执行created后的逻辑
localContext:<#if appdeDrCtrlItem.getPSNavigateContexts?? && appdeDrCtrlItem.getPSNavigateContexts()??><@getNavigateContext appdeDrCtrlItem /><#else>null</#if>, *
localViewParam:<#if appdeDrCtrlItem.getPSNavigateParams?? && appdeDrCtrlItem.getPSNavigateParams()??><@getNavigateParams appdeDrCtrlItem /><#else>null</#if> * @memberof ${srfclassname('${ctrl.codeName}')}Base
}<#if appdeDrCtrlItem_has_next>,</#if> */
</#list> public afterCreated(){
</#if> if (this.viewState) {
]; this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
/** return;
* 生命周期 }
* if (Object.is('state', action)) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false;
*/ this.setItemDisabled(state);
public created(): void { this.formData = data;
this.afterCreated(); this.selectFirst();
} }
});
/** }
* 仿真选中第一项 }
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base /**
*/ * vue 生命周期
public selectFirst(){ *
if(this.items.length>0){ * @memberof ${srfclassname('${ctrl.codeName}')}Base
this.isShowSlot?this.tabPanelClick(this.items[0].name):this.items.length>1?this.tabPanelClick(this.items[1].name):()=>{}; */
} public destroyed() {
} this.afterDestroy();
}
/**
* 执行created后的逻辑 /**
* * 执行destroyed后的逻辑
* @memberof ${srfclassname('${ctrl.codeName}')}Base *
*/ * @memberof ${srfclassname('${ctrl.codeName}')}Base
public afterCreated(){ */
if (this.viewState) { public afterDestroy() {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { if (this.viewStateEvent) {
if (!Object.is(tag, this.name)) { this.viewStateEvent.unsubscribe();
return; }
} <#if destroyed_block??>
if (Object.is('state', action)) { ${destroyed_block}
const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false; </#if>
this.setItemDisabled(state); }
this.formData = data;
this.selectFirst(); /**
} * 获取关系项
}); *
} * @public
this.$nextTick(() => { * @param {*} [arg={}]
this.$emit('selectionchange', [this.items[0]]); * @returns {*}
}); * @memberof ${srfclassname('${ctrl.codeName}')}Base
} */
public getDRTabItem(arg: any = {}): any {
/** let expmode = arg.nodetype.toUpperCase();
* vue 生命周期 if (!expmode) {
* expmode = '';
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ <#list ctrl.getPSAppViewRefs() as item>
public destroyed() { <#if (item.getName()?index_of("DRITEM:")==0)>
this.afterDestroy(); <#assign refview = item.getRefPSAppView()>
} if (Object.is(expmode, '${item.getName()?substring(7)}')) {
return {
/** viewname: '${srffilepath2(refview.codeName)}',
* 执行destroyed后的逻辑 parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if>
* };
* @memberof ${srfclassname('${ctrl.codeName}')}Base }
*/ </#if>
public afterDestroy() { </#list>
if (this.viewStateEvent) { return undefined;
this.viewStateEvent.unsubscribe(); }
}
<#if destroyed_block??> /**
${destroyed_block} * 获取数据项
</#if> *
} * @public
* @param {string} id
/** * @returns {*}
* 获取关系项 * @memberof ${srfclassname('${ctrl.codeName}')}Base
* */
* @public public getItem(id: string): any {
* @param {*} [arg={}] const arr: any[] = this.items.filter((_item: any) => Object.is(_item.id, id));
* @returns {*} if (arr) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base return arr[0];
*/ }
public getDRTabItem(arg: any = {}): any { return null;
let expmode = arg.nodetype.toUpperCase(); }
if (!expmode) {
expmode = ''; public handleFormDataChange(data: any) {
} this.formData = data;
<#list ctrl.getPSAppViewRefs() as item> if (data && Object.is(data.srfuf, '1')) {
<#if (item.getName()?index_of("DRITEM:")==0)> this.items.forEach((item: any) => {
<#assign refview = item.getRefPSAppView()> item.disabled = false;
if (Object.is(expmode, '${item.getName()?substring(7)}')) { })
return { } else {
viewname: '${srffilepath2(refview.codeName)}', this.items.forEach((item: any) => {
parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if> item.disabled = true;
}; })
} }
</#if> }
</#list>
return undefined; /**
} * 选中节点
*
/** * @param {*} $event
* 设置关系项状态 * @memberof ${srfclassname('${ctrl.codeName}')}Base
* */
* @param {boolean} state public tabPanelClick($event: any): void {
* @memberof ${srfclassname('${ctrl.codeName}')}Base // const item = this.getItem($event);
*/ // if (Object.is(item.id, this.selection.id)) {
public setItemDisabled(state: boolean): void { // return;
this.items.forEach((item: any) => { // }
if (Object.is(item.name, 'form')) { // this.$emit('selectionchange', [item]);
item.disabled = false; // let localNavParam:any = this.initNavParam(item);
} else { // const refview = this.getDRTabItem({ nodetype: item.id });
item.disabled = state; // this.selection = {};
} // const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
}); // if(localNavParam && localNavParam.localContext){
} // Object.assign(_context,localNavParam.localContext);
// }
/** // Object.assign(_context,{srfparentdename:this.parentName,srfparentkey:_context[this.parentName.toLowerCase()]});
* 获取数据项 // const _params: any = {};
* // if(localNavParam && localNavParam.localViewParam){
* @public // Object.assign(_params,localNavParam.localViewParam);
* @param {string} id // }
* @returns {*} // if (refview && refview.parentdatajo) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base // Object.assign(_context, refview.parentdatajo);
*/ // Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
public getItem(id: string): any { // }
const arr: any[] = this.items.filter((_item: any) => Object.is(_item.id, id)); // Object.assign(this.selection, item);
if (arr) { }
return arr[0];
} <#ibizinclude>
return null; ../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
} </#ibizinclude>
/** <#ibizinclude>
* 初始化导航参数 ../@MACRO/CONTROL/CONTROL-BASE.style.ftl
*
* @param {*} drItem
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public initNavParam(drItem:any){
let returnNavParam:any = {};
if(drItem && drItem.id){
let curDRItem:any = this.navParamsArray.find((item:any) =>{
return Object.is(item.id,drItem.id);
})
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){
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
returnNavParam.localViewParam = _params;
}
return returnNavParam;
}else{
return null;
}
}
}
/**
* 选中节点
*
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public tabPanelClick($event: any): void {
const item = this.getItem($event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.$emit('selectionchange', [item]);
let localNavParam:any = this.initNavParam(item);
const refview = this.getDRTabItem({ nodetype: item.id });
this.selection = {};
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){
Object.assign(_context,localNavParam.localContext);
}
Object.assign(_context,{srfparentdename:this.parentName,srfparentkey:_context[this.parentName.toLowerCase()]});
const _params: any = {};
if(localNavParam && localNavParam.localViewParam){
Object.assign(_params,localNavParam.localViewParam);
}
if (refview && refview.parentdatajo) {
Object.assign(_context, refview.parentdatajo);
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
}
Object.assign(this.selection, item);
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL-BASE.style.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
<div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>"> <div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction>
<card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :bordered="false"> <card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :bordered="false">
<#if view.hasPSControl('toolbar')> <#if view.hasPSControl('toolbar')>
<#assign selfToolbarRender> <#assign selfToolbarRender>
<template v-if="Object.is(this.selection.id, 'form')"> <template v-if="Object.is(this.selection.id, 'form')">
${P.getCtrlCode('toolbar', 'CONTROL.html').code} ${P.getCtrlCode('toolbar', 'CONTROL.html').code}
</template> </template>
</#assign> </#assign>
</#if> </#if>
<#ibizinclude>
<#ibizinclude> ./VIEW_CAPTION_DATAINFO.vue.ftl
./VIEW_CAPTION_DATAINFO.vue.ftl </#ibizinclude>
</#ibizinclude> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#-- BEGIN:视图顶部视图消息 --> <#ibizinclude>
<@ibizindent blank=8> ./View_Pos_Top_Msgs.vue.ftl
<#ibizinclude> </#ibizinclude>
./View_Pos_Top_Msgs.vue.ftl </@ibizindent>
</#ibizinclude> <#-- END:视图顶部视图消息 -->
</@ibizindent> <div class="content-container">
<#-- END:视图顶部视图消息 --> <#-- BEGIN:视图内容区视图消息 -->
<div class="content-container"> <@ibizindent blank=8>
<#-- BEGIN:视图内容区视图消息 --> <#ibizinclude>
<@ibizindent blank=8> ./View_Pos_Body_Msgs.vue.ftl
<#ibizinclude> </#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl </@ibizindent>
</#ibizinclude> <#-- END:视图内容区视图消息 -->
</@ibizindent> <div class="edit-view3">
<#-- END:视图内容区视图消息 --> <div class="edit-view3-drheader">
<#if view.hasPSControl('drtab')> <span :class="{ 'dr-tab-item': true, 'is-active': drItem && drItem.id !== 'form' }" @click="handleDrTabChange"><#if view.getPSControl('drtab').getEditItemCaption?? && view.getPSControl('drtab').getEditItemCaption()??>${view.getPSControl('drtab').getEditItemCaption()}</#if></span>
<@ibizindent blank=8> <#if view.hasPSControl('drtab')>
${P.getCtrlCode('drtab', 'CONTROL.html').code} <@ibizindent blank=8>
</@ibizindent> ${P.getCtrlCode('drtab', 'CONTROL.html').code}
</#if> </@ibizindent>
</div> </#if>
<#-- BEGIN:视图底部视图消息 --> </div>
<@ibizindent blank=8> <div class="edit-view3-content">
<#ibizinclude> <div class="edit-view3-content__form" :style="drItem && drItem.id !== 'form' ? 'display: none;' : ''">
./View_Pos_Bottom_Msgs.vue.ftl <#if view.hasPSControl('form')>
</#ibizinclude> <@ibizindent blank=8>
</@ibizindent> ${P.getCtrlCode('form', 'CONTROL.html').code}
<#-- END:视图底部视图消息 --> </@ibizindent>
</card> </#if>
</div> </div>
<component
class="view-container2"
v-if="drItem && drItem.id && drItem.id !== 'form'"
:is="drItem.navView"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(drItem.srfnavdata.context)"
:viewparam="JSON.stringify(drItem.srfnavdata.viewparams)">
</component>
</div>
</div>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
<div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>"> <div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction>
<card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :disHover="true" :padding="0" :bordered="false"> <card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :disHover="true" :padding="0" :bordered="false">
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl ../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container"> <div class="content-container">
<#-- BEGIN:视图内容区视图消息 --> <#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl ./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图内容区视图消息 --> <#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('form')> <div class="edit-view4">
<@ibizindent blank=8> <div class="edit-view4-form">
${P.getCtrlCode('form', 'CONTROL.html').code} <#if view.hasPSControl('form')>
</@ibizindent> <@ibizindent blank=8>
</#if> ${P.getCtrlCode('form', 'CONTROL.html').code}
<#if view.getAllPSControls()??> </@ibizindent>
<#list view.getAllPSControls() as ctrl> </#if>
<#if ctrl.getControlType() != "TOOLBAR" && ctrl.getControlType() != "FORM">
<#if P.getCtrlCode(ctrl, 'CONTROL.html')??> </div>
<@ibizindent blank=12> <div class="edit-view4-content">
${P.getCtrlCode(ctrl, 'CONTROL.html').code} <#if view.hasPSControl('drtab')>
</@ibizindent> <@ibizindent blank=8>
</#if> ${P.getCtrlCode('drtab', 'CONTROL.html').code}
</#if> </@ibizindent>
</#list> </#if>
</#if> <component
</div> class="view-container2"
<#-- BEGIN:视图底部视图消息 --> v-if="drItem && !drItem.disabled"
<@ibizindent blank=8> :is="drItem.navView"
<#ibizinclude> :viewDefaultUsage="false"
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl :viewdata="JSON.stringify(drItem.srfnavdata.context)"
</#ibizinclude> :viewparam="JSON.stringify(drItem.srfnavdata.viewparams)">
</@ibizindent> </component>
<#-- END:视图底部视图消息 --> </div>
</card> </div>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div> </div>
\ No newline at end of file
<#ibizinclude> <#ibizinclude>
./LAYOUTPANEL_VIEW.template.ftl ./LAYOUTPANEL_VIEW.template.ftl
</#ibizinclude> </#ibizinclude>
<#ibizinclude> <#ibizinclude>
./VIEW_HEADER-BASE.vue.ftl ./VIEW_HEADER-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
<#ibizinclude> <#ibizinclude>
./VIEW_CONTENT-BASE.vue.ftl ./VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
/** /**
* 选中数据 * 选中数据
* *
* @type {*} * @type {*}
* @memberof ${srfclassname('${view.name}')}Base * @memberof ${srfclassname('${view.name}')}Base
*/ */
public selection: any = {}; public drItem: any = {};
<#ibizinclude> /**
./VIEW_BOTTOM-BASE.vue.ftl * 处理分页项变化
</#ibizinclude> *
* @memberof ${srfclassname('${view.name}')}Base
<#ibizinclude> */
./VIEW-BASE.style.ftl public handleDrTabChange() {
}
<#ibizinclude>
./VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
./VIEW-BASE.style.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
<#assign self_content> <#assign self_content>
/** /**
* 选中数据 * 选中数据
* *
* @type {*} * @type {*}
* @memberof ${srfclassname('${view.name}')}Base * @memberof ${srfclassname('${view.name}')}Base
*/ */
public selection: any = {}; public drItem: any = {};
</#assign> </#assign>
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW-BASE.vue.ftl ../@MACRO/VIEW-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册