提交 5cbbe3c9 编写于 作者: KK's avatar KK

Revert "Revert "删除dataview相关""

This reverts commit 03ec3b3d.
上级 03ec3b3d
<template>
<div class = "card-view ">
<div v-if="dataViewMode==='DATAVIEWEXPVIEW'" class="nav-card">
<ion-card v-for="(item,index) in items" :key="index" @click="switchView(index)">
<ion-card-header>
<ion-card-title>{{item.srfkey}}</ion-card-title>
</ion-card-header>
<ion-card-content>{{item.mobentityname}}</ion-card-content>
</ion-card>
</div>
<ion-row v-else>
<ion-col size="12" v-show="showCheack">
<div class="selectall">
<ion-checkbox :checked="selectAllIschecked" v-show="showCheack" @ionChange="checkboxAll"></ion-checkbox>
<ion-label class="selectal-label" v-show="showCheack">全选</ion-label>
</div>
</ion-col>
<ion-col :size="size" v-for="(item,index) in items" :key="index" >
<ion-checkbox :checked="item.checked" v-show="showCheack" class="ionic-checkbox" @click.stop="checkboxSelect(item)"></ion-checkbox>
<ion-card :class="[size == '12'? 'ios hydrated ibz-card-12':' ios hydrated ibz-card-6']">
<div :class="{'line':size == '12'}">
<img class="cardimg" :style="{width :size == '6' ?'':'30%'}" src="assets/images/card.jpg" />
<div :style="{width :size == '6' ?'':'70%'}">
<ion-card-header class="ibz-header">
<ion-card-title class="ibz-title">{{item.<#if appde.getMajorPSAppDEField()??>${appde.getMajorPSAppDEField().getCodeName()?lower_case}<#else>srfmajortext</#if>}}</ion-card-title>
</ion-card-header>
<#if ctrl.getPSDEDataViewItems?? && ctrl.getPSDEDataViewItems()??>
<#list ctrl.getPSDEDataViewItems() as cardItem>
<ion-card-content class="ibz-content">
{{item.<#if cardItem.getName?? && cardItem.getName()??>${cardItem.getName()?lower_case}</#if>}}
</ion-card-content>
</#list>
</#if>
</div>
</div>
<ion-icon v-show="!showCheack" :style="{color :size == '6' ?'#fff':'#333'}" @click="remove([item])" class="card-delete" name="close-outline"></ion-icon>
</ion-card>
</ion-col>
</ion-row>
</div>
</template>
\ No newline at end of file
<#-- content -->
<#assign content>
updateAction="<#if ctrl.getUpdatePSControlAction?? && ctrl.getUpdatePSControlAction()?? && ctrl.getUpdatePSControlAction().getPSAppDEMethod()??>${ctrl.getUpdatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
removeAction="<#if ctrl.getRemovePSControlAction?? && ctrl.getRemovePSControlAction()?? && ctrl.getRemovePSControlAction().getPSAppDEMethod()??>${ctrl.getRemovePSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
loaddraftAction="<#if ctrl.getGetDraftPSControlAction?? && ctrl.getGetDraftPSControlAction()?? && ctrl.getGetDraftPSControlAction().getPSAppDEMethod()??>${ctrl.getGetDraftPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
loadAction="<#if ctrl.getGetPSControlAction?? && ctrl.getGetPSControlAction()?? && ctrl.getGetPSControlAction().getPSAppDEMethod()??>${ctrl.getGetPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
createAction="<#if ctrl.getCreatePSControlAction?? && ctrl.getCreatePSControlAction()?? && ctrl.getCreatePSControlAction().getPSAppDEMethod()??>${ctrl.getCreatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
fetchAction="<#if ctrl.getFetchPSControlAction?? && ctrl.getFetchPSControlAction()?? && ctrl.getFetchPSControlAction().getPSAppDEMethod()??>${ctrl.getFetchPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
<#if view.getViewType?? && view.getViewType()??>
dataViewMode="<#if view.getViewType()=='DEMOBDATAVIEWEXPVIEW'>DATAVIEWEXPVIEW<#else>DATAVIEW</#if>"
</#if>
<#if view.getViewType?? && view.getViewType()?? && view.getViewType() != 'DEMOBDATAVIEWEXPVIEW'>
:size="size"
:showCheack="showCheack"
@showCheackChange="showCheackChange"
</#if>
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
\ No newline at end of file
<#ibizinclude>
../@MACRO/CSS/DEFAULT.less.ftl
</#ibizinclude>
.ibz-ionic-item{
--inner-border-width:0;
}
.nav-card{
height: 40vh;
overflow: hidden;
overflow-y: scroll;
}
.card-view{
.ibz-card {
margin-bottom: 0;
}
.ibz-header {
padding: 10px;
}
.card-delete{
position: absolute;
top: 2px;
right: 2px;
font-size: 20px;
}
.ibz-title {
font-size: 15px;
}
.ibz-card-12 {
margin: 12px 12px 0 35px;
}
.ibz-card-6{
margin: 5px 10px 5px 30px;
}
.ibz-content {
padding: 10px;
padding-top: 0;
font-size: 12px;
}
.line {
display: flex;
justify-content: space-between;
}
.cardimg{
height: auto;
}
.ionic-checkbox {
position: absolute;
top: calc(50% - 13px);
}
.selectall{
padding: 0;
display: flex;
}
.selectal-label{
padding-left: 15px;
}
}
\ No newline at end of file
<#ibizinclude>
../@MACRO/CONTROL/CONTROL.vue.ftl
</#ibizinclude>
\ No newline at end of file
<#ibizinclude>
../@MACRO/MODEL/DEFAULT.ts.ftl
</#ibizinclude>
\ No newline at end of file
## ibiz数据视图部件相关文档(移动端)
### 一、卡片视图
##### (1)支持功能:样式切换、排序、删除、长按多选、长按显示批操工具栏
##### (2)界面UI
<div style = "display:flex; overflow:hidden;">
<div>
<img src="images/README/card_list.png" ></img>
<img src="images/README/card_box.png" ></img>
</div>
<div>
<img src="images/README/each.png" ></img>
<img src="images/README/each_box.png" ></img>
</div>
</div>
<#assign extendsClass>MdServiceBase</#assign>
<#ibizinclude>
../@MACRO/SERVICE/SERVICE_HEADER.ts.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/SERVICE/SERVICE_BOTTOM.ts.ftl
</#ibizinclude>
\ No newline at end of file
<#ibizinclude>
../@MACRO/DEFAULT.less.ftl
</#ibizinclude>
.view-tool {
display: flex;
justify-content: space-between;
padding: 0 15px;
}
.batch_btn{
display: flex;
justify-content: center;
}
\ No newline at end of file
<#if view.hasPSControl('dataview')>
<#assign dataview = view.getPSControl('dataview')>
<#if !dataview.isNoSort()>
<#assign state = false />
<#list dataview.getPSDEDataViewItems() as item>
<#if item.isEnableSort()>
<#assign state = true/>
<#break>
</#if>
</#list>
<#if state>
<#assign view_header_botton>
<ion-toolbar class="${srffilepath2(view.getCodeName())}-toolbar default-sort">
<div class="view-tool">
<div class="view-tool-sorts">
<div class="view-tool-sorts">
<#list dataview.getPSDEDataViewItems() as item>
<#if item.isEnableSort()>
<div class="view-tool-sorts-item">
<span class="text" @click="setSort('<#if item.getName()??>${item.getName()}</#if>')"><#if item.getCaption()??>${item.getCaption()}</#if></span>
<span class="sort-icon" @click="setSort('<#if item.getName()??>${item.getName()}</#if>')">
<ion-icon :class="{'ios' : true ,'hydrated': true ,'sort-select': sort.asc == '<#if item.getName()??>${item.getName()}</#if>'}" name="chevron-up-outline" ></ion-icon>
<ion-icon :class="{'ios' : true ,'hydrated': true ,'sort-select': sort.desc == '<#if item.getName()??>${item.getName()}</#if>'}" name="chevron-down-outline" ></ion-icon>
</span>
</div>
</#if>
</#list>
</div>
<div class="view-tool-searchform">
<!-- <span>过滤<ion-icon name="filter-outline"></ion-icon></span> -->
</div>
</div>
<div class="view-tool-searchform">
<ion-icon @click="changeSize" :name="iconname"></ion-icon>
</div>
</div>
</ion-toolbar>
</#assign>
</#if>
</#if>
<#assign view_content>
${P.getCtrlCode('dataview', 'CONTROL.html').code}
</#assign>
<#assign view_footer>
<#if dataview.getBatchPSDEToolbar?? && dataview.getBatchPSDEToolbar()??>
<#assign batchToolbar = dataview.getBatchPSDEToolbar()>
<div v-show="showCheack" class="batch_btn">
<@ibizindent blank=8>
${P.getCtrlCode(batchToolbar, 'CONTROL.html').code}
</@ibizindent>
<ion-button class="app-view-toolbar-button" @click="cancelSelect" >
<ion-icon name="arrow-undo-outline"></ion-icon>
{{$t('app.button.cancel')}}
</ion-button>
</div>
</#if>
</#assign>
</#if>
<#ibizinclude>
../@MACRO/VIEW_LAYOUT_BASE.ftl
</#ibizinclude>
\ No newline at end of file
CTRLTYPE=VIEWLAYOUTPANEL#APPDEMOBDATAVIEW
\ No newline at end of file
<#ibizinclude>
../@MACRO/DEFAULT.less.ftl
</#ibizinclude>
\ No newline at end of file
<#if view.hasPSControl('dataviewexpbar')>
<#assign view_content>
${P.getCtrlCode('dataviewexpbar', 'CONTROL.html').code}
</#assign>
</#if>
<#ibizinclude>
../@MACRO/VIEW_LAYOUT_BASE.ftl
</#ibizinclude>
\ No newline at end of file
CTRLTYPE=VIEWLAYOUTPANEL#APPDEMOBDATAVIEWEXPVIEW
\ No newline at end of file
<#ibizinclude>
../@MACRO/LAYOUTPANEL_VIEW.template.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW_HEADER-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude>
/**
* 布局大小
*
* @protected
* @memberof ${srfclassname('${view.name}')}Base
*/
protected size = "6"
/**
* 按钮icon
*
* @protected
* @memberof ${srfclassname('${view.name}')}Base
*/
protected iconname = "grid-outline"
/**
* 布局切换事件
*
* @protected
* @memberof ${srfclassname('${view.name}')}Base
*/
protected changeSize(){
if (this.size == "6") {
this.size = "12";
this.iconname = "list-outline"
} else {
this.size = "6";
this.iconname = "grid-outline"
}
}
/**
* 排序对象
*
* @type {*}
* @memberof ${srfclassname('${view.name}')}Base
*/
public sort: any = { asc: "", desc: "" };
/**
* 排序
*
* @param {*} field
* @memberof ${srfclassname('${view.name}')}Base
*/
public setSort(field: any) {
if (this.sort.desc == field) {
this.sort.desc = "";
this.viewState.next({ tag: 'dataview', action: 'load', data: {} });
return
}
if (this.sort.asc == field) {
this.sort.asc = "";
this.sort.desc = field;
this.viewState.next({ tag: 'dataview', action: 'load', data: { sort: field + ",desc" } });
} else {
this.sort.asc = field;
this.sort.desc = "";
this.viewState.next({ tag: 'dataview', action: 'load', data: { sort: field + ",asc" } });
}
}
/**
* 打开搜索表单
*
* @memberof ${srfclassname('${view.name}')}Base
*/
public openSearchform() {
let search :any = this.$refs.searchform<#if view.getName()??>${view.getName()?lower_case}</#if>;
if(search){
search.open();
}
}
/**
* 关闭搜索表单
*
* @memberof ${srfclassname('${view.name}')}Base
*/
public closeSearchform(){
let search :any = this.$refs.searchform<#if view.getName()??>${view.getName()?lower_case}</#if>;
if(search){
search.close();
}
}
/**
* 多选状态改变事件
*
* @memberof ${srfclassname('${view.name}')}Base
*/
public showCheackChange(value:any){
this.showCheack = value;
}
/**
* 多选状态
*
* @memberof ${srfclassname('${view.name}')}Base
*/
public showCheack = false;
/**
* 取消选择状态
* @memberof ${srfclassname('${view.name}')}Base
*/
public cancelSelect() {
this.showCheackChange(false);
}
<#if view.hasPSControl('dataview')>
<#assign dataview = view.getPSControl('dataview')>
<#if dataview.getBatchPSDEToolbar?? && dataview.getBatchPSDEToolbar()??>
<#assign batchToolbar = dataview.getBatchPSDEToolbar()>
public <#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if>(tag:string,event:any) {
let dataview: any = this.$refs.dataview;
if(dataview && dataview.<#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if> instanceof Function){
dataview.<#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if>(tag,event);
}
}
</#if>
</#if>
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW-BASE.style.ftl
</#ibizinclude>
\ No newline at end of file
${P.getLayoutCode().code}
\ No newline at end of file
<#ibizinclude>
../@MACRO/VIEW.vue.ftl
</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMOBDATAVIEW
\ No newline at end of file
<#ibizinclude>
../@MACRO/LAYOUTPANEL_VIEW.template.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW_HEADER-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/VIEW-BASE.style.ftl
</#ibizinclude>
\ No newline at end of file
${P.getLayoutCode().code}
\ No newline at end of file
<#ibizinclude>
../@MACRO/VIEW.vue.ftl
</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMOBDATAVIEWEXPVIEW
\ No newline at end of file
<#ibiztemplate>
TARGET=PSAPPVIEWCTRL_DATAVIEW
</#ibiztemplate>
${P.getCtrlCode('CONTROL-BASE.vue').code}
\ No newline at end of file
<#ibiztemplate>
TARGET=PSAPPVIEWCTRL_DATAVIEW
</#ibiztemplate>
${P.getCtrlCode('CONTROL.less').code}
\ No newline at end of file
<#ibiztemplate>
TARGET=PSAPPVIEWCTRL_DATAVIEW
</#ibiztemplate>
${P.getCtrlCode('CONTROL.vue').code}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册