提交 6673a09a 编写于 作者: KK's avatar KK

多选逻辑移植

上级 70df02bf
......@@ -15,6 +15,15 @@ ${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code}
<#if view.getViewType()=="DEMOBMPICKUPVIEW">
<div class="mpicker_buttons">
<div class="${view.getViewType()?lower_case}_button">
<#-- 树多选视图单独ui -->
<#if view.getAllEmbeddedPSAppViews?? && view.getAllEmbeddedPSAppViews()?? && view.getAllEmbeddedPSAppViews().getViewType()=='DEMOBPICKUPTREEVIEW'>
<van-action-sheet :get-container="container" class="ibiz_sheet_tree" v-model="show" @click-overlay="onOverlayClick" >
<div class="header">
<div>已选择:{{viewSelections.length}}</div>
</div>
<app-select-tree-list :items="viewSelections" @item_delete="item_delete"></app-select-tree-list>
</van-action-sheet>
</#if>
<div class="selectedCount">已选择:{{viewSelections.length}}<ion-icon name="chevron-up-outline"></ion-icon></div>
<ion-button class="pick-btn" @click="onClickOk" :disabled="viewSelections.length === 0">{{$t('app.button.confirm')}}</ion-button>
</div>
......
......@@ -2,17 +2,18 @@
<div class='pickupviewpanel <#if appde??>${appde.getCodeName()?lower_case}-${ctrl.name}</#if>'>
<component
v-if="inited && view.viewname && !Object.is(view.viewname, '')"
ref="pickupview"
viewDefaultUsage="includedView"
:is="view.viewname"
:_context="JSON.stringify(_context)"
:_viewparams="JSON.stringify(_viewparams)"
viewDefaultUsage="includedView"
:isSingleSelect="isSingleSelect"
:isShowButtons="isShowButtons"
:panelViewState="viewState"
:key="this.$util.createUUID()"
@viewdataschange="onViewDatasChange"
@viewdatasactivated="viewDatasActivated"
@viewload="onViewLoad"
ref="pickupview"
:key="this.$util.createUUID()">
@viewload="onViewLoad">
</component>
</div>
</template>
\ No newline at end of file
......@@ -78,6 +78,55 @@
}
}
<#-- 树多选视图单独逻辑 -->
<#if view.getAllEmbeddedPSAppViews?? && view.getAllEmbeddedPSAppViews()?? && view.getAllEmbeddedPSAppViews().getViewType()=='DEMOBPICKUPTREEVIEW'>
/**
* 已选择点击事件
*
* @memberof ${srfclassname('${view.name}')}
*/
public select_click() {
if(this.viewSelections.length == 0 ){
return
}
this.viewState.next({ tag: 'pickupviewpanel', action: 'refresh', data: this.viewSelections});
this.show = true
}
/**
* 显示状态
*
* @memberof ${srfclassname('${view.name}')}
*/
public show = false;
/**
* 收起已选择
*
* @memberof ${srfclassname('${view.name}')}
*/
public onOverlayClick() {
this.viewState.next({ tag: 'pickupviewpanel', action: 'refresh', data: this.viewSelections});
}
/**
* 删除
*
* @memberof ${srfclassname('${view.name}')}
*/
public item_delete(data:any) {
this.viewSelections.splice(this.viewSelections.findIndex((i: any) => i.srfkey === data.srfkey), 1)
this.pickupviewpanel_selectionchange(this.viewSelections);
Object.assign(this.viewparams,{selectedData:this.viewSelections})
}
get container(){
let ele = document.getElementsByClassName('${srffilepath2(view.getCodeName())}');
return ele && ele.length>0 ?ele[0]:null;
}
</#if>
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>
......
......@@ -34,7 +34,41 @@
this.query = value;
this.viewState.next({tag:'mdctrl',action:'quicksearch',data: value});
}
/**
* 面板通知对象
*
* @type {Subject<ViewState>}
* @memberof ${srfclassname('${view.name}')}Base
*/
@Prop() protected panelViewState?: Subject<ViewState>;
/**
* 面板订阅对象
*
* @type {Subject<ViewState>}
* @memberof ${srfclassname('${view.name}')}Base
*/
public panelStateEvent :Subscription | undefined;
<#-- 附加生命周期内容 -->
<#assign created_block>
if (this.panelViewState) {
this.panelStateEvent = this.panelViewState.subscribe((res: any) => {
if (Object.is(res.tag, 'pickupviewpanel')) {
if (Object.is(res.action, 'refresh')) {
this.viewState.next({ tag: 'tree', action: 'refresh', data: res.data });
}
}
});
}
</#assign>
<#assign destroyed_block>
if (this.panelStateEvent) {
this.panelStateEvent.unsubscribe();
}
</#assign>
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册