Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-Mob-R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-Mob-R7
提交
4a6c238b
提交
4a6c238b
编写于
8月 12, 2020
作者:
Neuromancer255
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
补充数据视图
上级
7fa5a3fe
变更
7
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
345 行增加
和
107 行删除
+345
-107
CONTROL-BASE.template.ftl
@CONTROL/列表/CONTROL-BASE.template.ftl
+0
-107
CONTROL-BASE.template.ftl
@CONTROL/数据视图/CONTROL-BASE.template.ftl
+113
-0
CONTROL-BASE.vue.ftl
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
+192
-0
CONTROL.html.ftl
@CONTROL/数据视图/CONTROL.html.ftl
+17
-0
CONTROL.less.ftl
@CONTROL/数据视图/CONTROL.less.ftl
+15
-0
CONTROL.vue.ftl
@CONTROL/数据视图/CONTROL.vue.ftl
+4
-0
%CTRL_PKGPATH%-dataviewexpbar-service.ts copy.ftl
...KGPATH%/%CTRL_PKGPATH%-dataviewexpbar-service.ts copy.ftl
+4
-0
未找到文件。
@CONTROL/列表/CONTROL-BASE.template.ftl
浏览文件 @
4a6c238b
...
...
@@ -2,111 +2,5 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class="app-mob-mdctrl <#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<div v-if="listMode==='LISTEXPBAR'">
<van-sidebar v-model="listItem" @change="SwitchView">
<van-sidebar-item class="app-mob-list-item" v-for="item in items" :key="item.srfkey" :title='item.srfmajortext'/>
</van-sidebar>
</div>
<div v-else class="app-mob-mdctrl-${ctrl.name}">
<ion-list class="items">
<template v-if="controlStyle != 'SWIPERVIEW' ">
<ion-item-sliding v-for="(item, index) in items" :key="index" class="app-mob-mdctrl-item">
<#if ctrl.getItemPSLayoutPanel()??>
<#assign layoutpanel=ctrl.getItemPSLayoutPanel()>
<div style="width:100%;">
<layout_${layoutpanel.getName()} :context="{}" :viewparams="{}" :item="item"></layout_${layoutpanel.getName()}>
</div>
<#else>
<#if ctrl.getPSDEUIActionGroup?? && ctrl.getPSDEUIActionGroup()?? && ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="start">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
<ion-item>
<#-- 实体列表项集合-->
<#if ctrl.getPSDEListItems()??>
<!-- 列表视图样式 -->
<app-list-default :item="item" v-if="controlStyle.substring(0,8) === 'LISTVIEW'"></app-list-default>
<!-- 图标视图样式 -->
<app-icon-list :item="item" v-if="controlStyle === 'ICONVIEW'"></app-icon-list>
<#else>
<div>暂无数据</div>
</#if>
</ion-item>
<#if ctrl.getPSDEUIActionGroup2?? && ctrl.getPSDEUIActionGroup2()?? && ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="end">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
</#if>
</ion-item-sliding>
</template>
<#--多数据视图||多数据视图(部件视图)-->
<template v-else-if="controlStyle != 'LISTVIEW' ">
<ion-item-sliding v-for="(item, index) in items" :key="index" class="app-mob-mdctrl-item">
<#if ctrl.getItemPSLayoutPanel()??>
<#assign layoutpanel=ctrl.getItemPSLayoutPanel()>
<div style="width:100%;">
<layout_${layoutpanel.getName()} :context="{}" :viewparams="{}" :item="item"></layout_${layoutpanel.getName()}>
</div>
<#else>
<#if ctrl.getPSDEUIActionGroup?? && ctrl.getPSDEUIActionGroup()?? && ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="start">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
<ion-item>
<#-- 实体列表项集合-->
<#if ctrl.getPSDEListItems()??>
<!-- 列表视图样式 -->
<app-list-default :item="item" v-if="controlStyle.substring(0,8) === 'LISTVIEW'"></app-list-default>
<!-- 图标视图样式 -->
<app-icon-list :item="item" v-if="controlStyle === 'ICONVIEW'"></app-icon-list>
<#else>
<div>暂无数据</div>
</#if>
</ion-item>
<#if ctrl.getPSDEUIActionGroup2?? && ctrl.getPSDEUIActionGroup2()?? && ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="end">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
</#if>
</ion-item-sliding>
</template>
<template v-else-if="controlStyle === 'SWIPERVIEW'">
<app-list-swipe :items="items"></app-list-swipe>
</template>
</ion-list>
</div>
</div>
</#if>
</template>
\ No newline at end of file
@CONTROL/数据视图/CONTROL-BASE.template.ftl
0 → 100644
浏览文件 @
4a6c238b
<template>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class="app-mob-mdctrl <#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<div v-if="listMode==='LISTEXPBAR'">
<van-sidebar v-model="listItem" @change="SwitchView">
<van-sidebar-item class="app-mob-list-item" v-for="item in items" :key="item.srfkey" :title='item.srfmajortext'/>
</van-sidebar>
</div>
<div v-else class="app-mob-mdctrl-${ctrl.name}">
<ion-list class="items">
<template v-if="controlStyle != 'SWIPERVIEW' ">
<ion-item-sliding v-for="(item, index) in items" :key="index" class="app-mob-mdctrl-item">
<#if ctrl.getItemPSLayoutPanel()??>
<#assign layoutpanel=ctrl.getItemPSLayoutPanel()>
<div style="width:100%;">
<layout_${layoutpanel.getName()} :context="{}" :viewparams="{}" :item="item"></layout_${layoutpanel.getName()}>
</div>
<#else>
<#if ctrl.getPSDEUIActionGroup?? && ctrl.getPSDEUIActionGroup()?? && ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="start">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
<ion-item>
<#-- 实体列表项集合-->
<#if ctrl.getPSDEListItems()??>
<!-- 列表视图样式 -->
<app-list-default :item="item" v-if="controlStyle.substring(0,8) === 'LISTVIEW'"></app-list-default>
<!-- 图标视图样式 -->
<app-icon-list :item="item" v-if="controlStyle === 'ICONVIEW'"></app-icon-list>
<#else>
<div>暂无数据</div>
</#if>
</ion-item>
<#if ctrl.getPSDEUIActionGroup2?? && ctrl.getPSDEUIActionGroup2()?? && ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="end">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
</#if>
</ion-item-sliding>
</template>
<#--多数据视图||多数据视图(部件视图)-->
<template v-else-if="controlStyle != 'LISTVIEW' ">
<ion-item-sliding v-for="(item, index) in items" :key="index" class="app-mob-mdctrl-item">
<#if ctrl.getItemPSLayoutPanel()??>
<#assign layoutpanel=ctrl.getItemPSLayoutPanel()>
<div style="width:100%;">
<layout_${layoutpanel.getName()} :context="{}" :viewparams="{}" :item="item"></layout_${layoutpanel.getName()}>
</div>
<#else>
<#if ctrl.getPSDEUIActionGroup?? && ctrl.getPSDEUIActionGroup()?? && ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="start">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
<ion-item>
<#-- 实体列表项集合-->
<#if ctrl.getPSDEListItems()??>
<!-- 列表视图样式 -->
<app-list-default :item="item" v-if="controlStyle.substring(0,8) === 'LISTVIEW'"></app-list-default>
<!-- 图标视图样式 -->
<app-icon-list :item="item" v-if="controlStyle === 'ICONVIEW'"></app-icon-list>
<#else>
<div>暂无数据</div>
</#if>
</ion-item>
<#if ctrl.getPSDEUIActionGroup2?? && ctrl.getPSDEUIActionGroup2()?? && ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()??>
<#assign details = ctrl.getPSDEUIActionGroup2().getPSUIActionGroupDetails()>
<ion-item-options v-if="controlStyle != 'LISTVIEW3'" side="end">
<#list details as detail>
<#if detail.getPSUIAction()??>
<#assign uiaction = detail.getPSUIAction()>
<ion-item-option color="<#if uiaction.getUIActionTag() == "Remove">danger<#else>primary</#if>" @click="mdctrl_click($event, '${detail.getName()}', item)">${uiaction.getCaption()}</ion-item-option>
</#if>
</#list>
</ion-item-options>
</#if>
</#if>
</ion-item-sliding>
</template>
<template v-else-if="controlStyle === 'SWIPERVIEW'">
<app-list-swipe :items="items"></app-list-swipe>
</template>
</ion-list>
</div>
</div>
</#if>
</template>
\ No newline at end of file
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
0 → 100644
浏览文件 @
4a6c238b
<#ibizinclude>
./CONTROL-BASE.template.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
</#ibizinclude>
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public getData(): any {
return null;
}
/**
* 显示处理提示
*
* @type {boolean}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
@Prop({ default: true }) protected showBusyIndicator?: boolean;
/**
* 部件行为--fetch
*
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
@Prop() protected fetchAction!: string;
/**
* 列表数组
*
* @type {Array<any>}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public items: Array<any> = [];
/**
* 列表类型
*
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
@Prop({default:'DATAVIEW'}) protected dataViewMode?: 'LISTEXPBAR' | 'DATAVIEW' | string;
/**
* 列表选中项的索引
*
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public listItem: number = 0;
/**
* 分页大小
*
* @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public pageSize: number = ${ ctrl.getPagingSize()?c};
/**
* 总页数
*
* @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public pageTotal: number = 0;
/**
* 当前页数
*
* @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public pageNumber: number = 0;
/**
* vue生命周期created
*
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public created() {
this.handleCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public handleCreated() {
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
this.load(Object.assign(data, { page: this.pageNumber, size: this.pageSize }), "");
});
}
}
/**
* vue 生命周期
*
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
protected destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
protected afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
<#if destroyed_block??>
${destroyed_block}
</#if>
}
/**
* 列表切换回调
* @param {number} listIndex
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public SwitchView(listIndex:number){
this.items.findIndex((item,index)=>{
if(index === listIndex){
this.$emit('selectionchange', item);
}
})
}
/**
* 数据加载
*
* @protected
* @param {*} data
* @param {*} type
* @returns {Promise<any>}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
protected async load(data: any, type: any): Promise<any> {
const response: any = await this.service.search(this.fetchAction, this.context, data, this.showBusyIndicator);
if (response && response.status === 200) {
let datelist = response.data.records;
this.formatdate(datelist);
this.$emit("load",this.items);
} else if (response && response.status !== 401) {
const { data: _data } = response;
this.$notice.error(_data.message)
}
}
/**
* 格式化数据
*
* @param {*} datelist
* @memberof IBizChartViewController
*/
public formatdate(datelist: any) {
this.items = datelist;
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL-BASE.style.ftl
</#ibizinclude>
\ No newline at end of file
@CONTROL/数据视图/CONTROL.html.ftl
0 → 100644
浏览文件 @
4a6c238b
<#-- content -->
<#assign content>
<#if view.getViewType?? && view.getViewType()??>
listMode="<#if view.getViewType()=='DEMOBLISTEXPVIEW'>LISTEXPBAR<#else>LIST</#if>"
</#if>
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>"
:showBusyIndicator="${ctrl.isShowBusyIndicator()?c}"
fetchAction="<#if ctrl.getFetchPSControlAction?? && ctrl.getFetchPSControlAction()?? && ctrl.getFetchPSControlAction().getPSAppDEMethod()??>${ctrl.getFetchPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"
<#if ctrl.getControlStyle?? && ctrl.getControlStyle()??>controlStyle="${ctrl.getControlStyle()}"</#if>
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
@CONTROL/数据视图/CONTROL.less.ftl
0 → 100644
浏览文件 @
4a6c238b
<#ibizinclude>
../@MACRO/CSS/DEFAULT.less.ftl
</#ibizinclude>
<#if ctrl.getItemPSLayoutPanel()??>
<#assign layoutpanel=ctrl.getItemPSLayoutPanel()>
${P.getCtrlCode(layoutpanel, 'CONTROL.less').code}
</#if>
.van-sidebar{
width: 100%;
}
.van-sidebar-item--select::before{
width: 4%;
height: 100%;
}
\ No newline at end of file
@CONTROL/数据视图/CONTROL.vue.ftl
0 → 100644
浏览文件 @
4a6c238b
<#ibizinclude>
../@MACRO/CONTROL/CONTROL.vue.ftl
</#ibizinclude>
\ No newline at end of file
APP/src/app-core/ctrl-service/%DE_PKGPATH%/%CTRL_PKGPATH%-dataviewexpbar-service.ts copy.ftl
0 → 100644
浏览文件 @
4a6c238b
<#ibiztemplate>
TARGET=PSAPPVIEWCTRL_DATAVIEWEXPBAR
</#ibiztemplate>
${P.getCtrlCode('SERVICE.ts').code}
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录