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

多选逻辑移植

上级 70df02bf
...@@ -15,6 +15,15 @@ ${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code} ...@@ -15,6 +15,15 @@ ${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code}
<#if view.getViewType()=="DEMOBMPICKUPVIEW"> <#if view.getViewType()=="DEMOBMPICKUPVIEW">
<div class="mpicker_buttons"> <div class="mpicker_buttons">
<div class="${view.getViewType()?lower_case}_button"> <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> <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> <ion-button class="pick-btn" @click="onClickOk" :disabled="viewSelections.length === 0">{{$t('app.button.confirm')}}</ion-button>
</div> </div>
......
...@@ -2,17 +2,18 @@ ...@@ -2,17 +2,18 @@
<div class='pickupviewpanel <#if appde??>${appde.getCodeName()?lower_case}-${ctrl.name}</#if>'> <div class='pickupviewpanel <#if appde??>${appde.getCodeName()?lower_case}-${ctrl.name}</#if>'>
<component <component
v-if="inited && view.viewname && !Object.is(view.viewname, '')" v-if="inited && view.viewname && !Object.is(view.viewname, '')"
ref="pickupview"
viewDefaultUsage="includedView"
:is="view.viewname" :is="view.viewname"
:_context="JSON.stringify(_context)" :_context="JSON.stringify(_context)"
:_viewparams="JSON.stringify(_viewparams)" :_viewparams="JSON.stringify(_viewparams)"
viewDefaultUsage="includedView"
:isSingleSelect="isSingleSelect" :isSingleSelect="isSingleSelect"
:isShowButtons="isShowButtons" :isShowButtons="isShowButtons"
:panelViewState="viewState"
:key="this.$util.createUUID()"
@viewdataschange="onViewDatasChange" @viewdataschange="onViewDatasChange"
@viewdatasactivated="viewDatasActivated" @viewdatasactivated="viewDatasActivated"
@viewload="onViewLoad" @viewload="onViewLoad">
ref="pickupview"
:key="this.$util.createUUID()">
</component> </component>
</div> </div>
</template> </template>
\ No newline at end of file
...@@ -78,6 +78,55 @@ ...@@ -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> <#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl ../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
......
...@@ -35,6 +35,40 @@ ...@@ -35,6 +35,40 @@
this.viewState.next({tag:'mdctrl',action:'quicksearch',data: 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> <#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl ../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册