Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz4jVue
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
iBiz4jVue
提交
7f637496
提交
7f637496
编写于
10月 16, 2020
作者:
ibiz4j
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev' 到 'master'
Dev 查看合并请求
!14
上级
4e649ce9
06574674
变更
83
隐藏空白字符变更
内嵌
并排
正在显示
83 个修改的文件
包含
1235 行增加
和
238 行删除
+1235
-238
CONTROL_HEADER-BASE.vue.ftl
@CONTROL/@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
+4
-0
CONTROL_PORTLET-HEADER-BASE.vue.ftl
@CONTROL/@MACRO/CONTROL/CONTROL_PORTLET-HEADER-BASE.vue.ftl
+5
-1
FORM.ts.ftl
@CONTROL/@MACRO/SERVICE/FORM.ts.ftl
+29
-0
CONTROL.less.ftl
@CONTROL/分页导航面板/CONTROL.less.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/列表/CONTROL-BASE.vue.ftl
+15
-5
CONTROL-BASE.vue.ftl
@CONTROL/列表导航/CONTROL-BASE.vue.ftl
+62
-8
CONTROL-BASE.vue.ftl
@CONTROL/卡片视图导航/CONTROL-BASE.vue.ftl
+60
-6
CONTROL-BASE.vue.ftl
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
+6
-5
CONTROL.html#ITEM_DEUIACTION.ftl
@CONTROL/工具栏/CONTROL.html#ITEM_DEUIACTION.ftl
+4
-0
CONTROL.html#ITEM_ITEMS.ftl
@CONTROL/工具栏/CONTROL.html#ITEM_ITEMS.ftl
+6
-2
CONTROL.html#ITEM_SEPERATOR.ftl
@CONTROL/工具栏/CONTROL.html#ITEM_SEPERATOR.ftl
+6
-2
CONTROL.html.ftl
@CONTROL/工具栏/CONTROL.html.ftl
+5
-0
CONTROL-BASE.vue.ftl
@CONTROL/搜索表单/CONTROL-BASE.vue.ftl
+10
-7
CONTROL-BASE.vue.ftl
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
+18
-0
CONTROL-BASE.vue.ftl
@CONTROL/数据图表 (新)/CONTROL-BASE.vue.ftl
+14
-4
CONTROL-BASE.vue.ftl
@CONTROL/数据图表/CONTROL-BASE.vue.ftl
+14
-4
CONTROL-BASE.vue.ftl
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
+14
-4
CONTROL-BASE.vue.ftl
@CONTROL/日历导航/CONTROL-BASE.vue.ftl
+61
-7
CONTROL-BASE.vue.ftl
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/树表格(增强)/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/树视图/CONTROL-BASE.vue.ftl
+9
-4
CONTROL-BASE.vue.ftl
@CONTROL/树视图导航栏/CONTROL-BASE.vue.ftl
+51
-6
CONTROL-BASE.vue.ftl
@CONTROL/流程导航栏/CONTROL-BASE.vue.ftl
+13
-0
CONTROL-BASE.vue.ftl
@CONTROL/甘特图部件/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/看板视图/CONTROL-BASE.vue.ftl
+25
-2
CONTROL.html.ftl
@CONTROL/看板视图/CONTROL.html.ftl
+10
-0
CONTROL-BASE.vue.ftl
@CONTROL/表单/CONTROL-BASE.vue.ftl
+31
-18
CONTROL-BASE.vue.ftl
@CONTROL/表格/CONTROL-BASE.vue.ftl
+60
-17
SERVICE.ts.ftl
@CONTROL/表格/SERVICE.ts.ftl
+52
-3
CONTROL-BASE.vue.ftl
@CONTROL/表格导航/CONTROL-BASE.vue.ftl
+60
-6
DATA_PANEL.vue.ftl
@CONTROL/视图布局面板/@MACRO/DATA_PANEL.vue.ftl
+9
-3
DEFAULT.vue.ftl
@CONTROL/视图布局面板/@MACRO/DEFAULT.vue.ftl
+9
-3
EDIT.vue.ftl
@CONTROL/视图布局面板/@MACRO/EDIT.vue.ftl
+9
-3
EDIT3.vue.ftl
@CONTROL/视图布局面板/@MACRO/EDIT3.vue.ftl
+9
-2
GRID.vue.ftl
@CONTROL/视图布局面板/@MACRO/GRID.vue.ftl
+22
-9
View_Pos_Body_Msgs.vue.ftl
@CONTROL/视图布局面板/@MACRO/View_Pos_Body_Msgs.vue.ftl
+13
-0
View_Pos_Bottom_Msgs.vue.ftl
@CONTROL/视图布局面板/@MACRO/View_Pos_Bottom_Msgs.vue.ftl
+2
-2
View_Pos_Top_Msgs.vue.ftl
@CONTROL/视图布局面板/@MACRO/View_Pos_Top_Msgs.vue.ftl
+2
-2
WIZARD.vue.ftl
@CONTROL/视图布局面板/@MACRO/WIZARD.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体分页导航视图/VIEW.vue.ftl
+5
-3
VIEW.less.ftl
@CONTROL/视图布局面板/实体分页搜索视图/VIEW.less.ftl
+0
-1
VIEW.vue.ftl
@CONTROL/视图布局面板/实体分页搜索视图/VIEW.vue.ftl
+22
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体列表导航视图/VIEW.vue.ftl
+10
-4
VIEW.vue.ftl
@CONTROL/视图布局面板/实体列表视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体列表视图(部件视图)/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体卡片视图导航视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体图表视图 (部件视图)/VIEW.vue.ftl
+22
-1
VIEW.vue.ftl
@CONTROL/视图布局面板/实体图表视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据多项选择视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据看板视图 (卡片)/VIEW.vue.ftl
+9
-2
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据看板视图(部件视图卡片)/VIEW.vue.ftl
+9
-2
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据视图(部件视图)/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据选择视图/VIEW.vue.ftl
+22
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体数据选择视图(分页关系)/VIEW.vue.ftl
+22
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体日历导航视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体日历视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体日历视图(部件视图)/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体树导航视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体树表格视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体树视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体树视图(部件视图)/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体看板视图/VIEW.vue.ftl
+22
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体编辑视图(上下关系)/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体编辑视图(左右关系)/VIEW.vue.ftl
+7
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体表单选择数据视图(部件视图)/VIEW.vue.ftl
+22
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体表格导航视图/VIEW.vue.ftl
+9
-3
VIEW.vue.ftl
@CONTROL/视图布局面板/实体选择表格视图/VIEW.vue.ftl
+9
-3
CONTROL-BASE.vue.ftl
@CONTROL/门户部件/CONTROL-BASE.vue.ftl
+72
-2
CONTROL-BASE.vue.ftl
@CONTROL/面板/CONTROL-BASE.vue.ftl
+3
-3
EDITOR.vue.ftl
@EDITOR/用户自定义/EDITOR.vue.ftl
+6
-0
VIEW_CONTENT-BASE.vue.ftl
@VIEW/@MACRO/VIEW_CONTENT-BASE.vue.ftl
+30
-0
VIEW_HEADER-BASE.vue.ftl
@VIEW/@MACRO/VIEW_HEADER-BASE.vue.ftl
+15
-0
VIEW-BASE.vue.ftl
@VIEW/实体数据看板视图/VIEW-BASE.vue.ftl
+1
-1
VIEW-BASE.vue.ftl
@VIEW/实体数据看板视图(部件视图卡片)/VIEW-BASE.vue.ftl
+1
-1
VIEW-BASE.vue.ftl
@VIEW/实体数据看板视图(部件视图)/VIEW-BASE.vue.ftl
+1
-1
VIEW-BASE.vue.ftl
@VIEW/实体日历视图/VIEW-BASE.vue.ftl
+0
-13
VIEW-BASE.vue.ftl
@VIEW/应用看板视图 (卡片)/VIEW-BASE.vue.ftl
+10
-0
VIEW-BASE.vue.ftl
@VIEW/应用看板视图/VIEW-BASE.vue.ftl
+10
-0
auth-service.ts.ftl
APP/src/authservice/auth-service.ts.ftl
+9
-1
environment.ts.ftl
APP/src/environments/environment.ts.ftl
+2
-0
%APP_MSG%-message-base.ts.ftl
APP/src/message/%APP_MSG%/%APP_MSG%-message-base.ts.ftl
+17
-9
%DE_PKGPATH%-ui-service-base.ts.ftl
...iservice/%DE_PKGPATH%/%DE_PKGPATH%-ui-service-base.ts.ftl
+1
-1
未找到文件。
@CONTROL/@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -234,3 +234,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
})
}
}
<#if ctrl.render?? && ctrl.render.code2??>
${ctrl.render.code2}
</#if>
@CONTROL/@MACRO/CONTROL/CONTROL_PORTLET-HEADER-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -3,7 +3,7 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util
, ViewTool
} from '@/utils';
import NavDataService from '@/service/app/navdata-service';
<#if ctrl.getPSAppCounterRefs?? && ctrl.getPSAppCounterRefs()??>
<#list ctrl.getPSAppCounterRefs() as singleCounterRef>
...
...
@@ -227,3 +227,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
})
}
}
<#if ctrl.render?? && ctrl.render.code2??>
${ctrl.render.code2}
</#if>
@CONTROL/@MACRO/SERVICE/FORM.ts.ftl
浏览文件 @
7f637496
...
...
@@ -31,6 +31,14 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
</#if>
</#list>
/**
* 远端数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
private remoteCopyData:any = {};
/**
* 处理数据
*
...
...
@@ -287,6 +295,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
result = this.appEntityService.Get(Context,Data, isloading);
}
result.then((response) => {
this.setRemoteCopyData(response);
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
...
...
@@ -323,6 +332,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
result = this.appEntityService.GetDraft(Context,Data, isloading);
}
result.then((response) => {
this.setRemoteCopyData(response);
<#if ctrl.getControlType() != 'SEARCHFORM'>
response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = PrimaryKey;
</#if>
...
...
@@ -459,7 +469,26 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
return item;
}
/**
* 设置远端数据
*
* @param result 远端请求结果
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public setRemoteCopyData(result:any){
if (result && result.status === 200) {
this.remoteCopyData = Util.deepCopy(result.data);
}
}
/**
* 获取远端数据
*
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public getRemoteCopyData(){
return this.remoteCopyData;
}
<#ibizinclude>
./SERVICE_BOTTOM.ts.ftl
</#ibizinclude>
\ No newline at end of file
@CONTROL/分页导航面板/CONTROL.less.ftl
浏览文件 @
7f637496
...
...
@@ -9,7 +9,7 @@
}
>.ivu-tabs-content {
height: calc(100% - 36px);
padding:
0
px !important;
padding:
4
px !important;
.ivu-tabs-tabpane {
height: 100%;
}
...
...
@CONTROL/列表/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -437,7 +437,7 @@ import CodeListService from "@/codelist/codelist-service";
if (!Object.is(this.name, tag)) {
return;
}
if (Object.is(action,'load')) {
if (Object.is(action,'load')
|| Object.is(action,'refresh')
) {
this.refresh(data)
}
});
...
...
@@ -497,13 +497,13 @@ import CodeListService from "@/codelist/codelist-service";
/**
* 刷新
*
* @param {*} [
opt
={}]
* @param {*} [
args
={}]
* @memberof Main
*/
public refresh(
opt: any = {}
) {
public refresh(
args?: any
) {
this.curPage = 1;
this.items = [];
this.load(
opt
);
this.load(
args
);
}
/**
...
...
@@ -559,8 +559,18 @@ import CodeListService from "@/codelist/codelist-service";
}
this.isAddBehind = false;
this.$emit('load', this.items);
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(this.isSelectFirstDefault){
this.handleClick(this.items[0]);
if(this.selections && this.selections.length > 0){
this.selections.forEach((select: any)=>{
const index = this.items.findIndex((item:any) => Object.is(item.srfkey,select.srfkey));
if(index != -1){
this.handleClick(this.items[index]);
}
})
}else{
this.handleClick(this.items[0]);
}
}
<#if ctrl.isEnableGroup?? && ctrl.isEnableGroup()>
this.group();
...
...
@CONTROL/列表导航/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -22,6 +22,7 @@
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -153,7 +154,16 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>;
/**
* 搜素值
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 搜索值
*
* @public
* @type {(string)}
...
...
@@ -474,7 +484,22 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
${destroyed_block}
</#if>
}
/**
* 刷新
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args?: any): void {
<#if ctrl.getXDataPSControl?? && ctrl.getXDataPSControl()??>
<#assign dataControl = ctrl.getXDataPSControl() />
const refs: any = this.$refs;
if (refs && refs.${dataControl.name}) {
refs.${dataControl.name}.refresh();
}
</#if>
}
/**
* ${ctrl.name}的选中数据事件
*
...
...
@@ -484,6 +509,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {};
let tempViewParam:any = {};
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
...
...
@@ -514,6 +540,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
this.calcToolbarItemState(false);
this.$forceUpdate();
}
...
...
@@ -523,9 +550,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.${ctrl.getCodeName()?lower_case}_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
...
...
@@ -534,16 +590,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
<#if ctrl.getCodeName?? && ctrl.getCodeName()??>
<#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if>
}
}
/**
...
...
@CONTROL/卡片视图导航/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -22,6 +22,7 @@
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -153,6 +154,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
*/
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>;
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 搜素值
*
...
...
@@ -476,6 +486,21 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
</#if>
}
/**
* 刷新
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args?: any): void {
<#if ctrl.getXDataPSControl?? && ctrl.getXDataPSControl()??>
<#assign dataControl = ctrl.getXDataPSControl() />
const refs: any = this.$refs;
if (refs && refs.${dataControl.name}) {
refs.${dataControl.name}.refresh();
}
</#if>
}
/**
* 卡片视图导航选中
*
...
...
@@ -489,6 +514,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {};
let tempViewParam:any = {};
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
...
...
@@ -519,6 +545,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
this.calcToolbarItemState(false);
this.$forceUpdate();
}
...
...
@@ -532,9 +559,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void {
this.calcToolbarItemState(true);
this.$emit('load',args);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.${ctrl.getCodeName()?lower_case}_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
...
...
@@ -543,16 +599,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
<#if ctrl.getCodeName?? && ctrl.getCodeName()??>
<#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if>
}
}
/**
...
...
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -35,9 +35,9 @@ ${ctrl.render.code}
</#if>
</i-content>
<footer class="app-wizard-footer">
<i-button
:disabled="isDisabled
('PREV')" @click="onClickPrev()" type="primary">{{$t('app.wizardPanel.back')}}</i-button>
<i-button
:disabled="isDisabled
('NEXT')" @click="onClickNext()" type="primary">{{$t('app.wizardPanel.next')}}</i-button>
<i-button
:disabled="isDisabled
('FINISH')" @click="onClickFinish()" type="primary">{{$t('app.wizardPanel.complete')}}</i-button>
<i-button
v-show="!isHidden
('PREV')" @click="onClickPrev()" type="primary">{{$t('app.wizardPanel.back')}}</i-button>
<i-button
v-show="!isHidden
('NEXT')" @click="onClickNext()" type="primary">{{$t('app.wizardPanel.next')}}</i-button>
<i-button
v-show="!isHidden
('FINISH')" @click="onClickFinish()" type="primary">{{$t('app.wizardPanel.complete')}}</i-button>
</footer>
</layout>
</#if>
...
...
@@ -302,6 +302,7 @@ ${ctrl.render.code}
const data = response.data;
this.$Notice.success({ title: this.$t('app.commonWords.success') as string, desc: this.$t('app.commonWords.startsuccess') as string });
this.$emit("finish", data);
AppCenterService.notifyMessage({name:"${ctrl.getPSAppDataEntity().getCodeName()}",action:'appRefresh',data:data});
}
}).catch((response: any) => {
if (response && response.status === 401) {
...
...
@@ -447,12 +448,12 @@ ${ctrl.render.code}
}
/**
* 是否
禁用
* 是否
隐藏
*
* @param {string} type
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public is
Disabled
(type: string) {
public is
Hidden
(type: string) {
const actions: Array<string> = this.stepActions[this.activeForm].actions;
if(actions && actions.indexOf(type) < 0) {
return true;
...
...
@CONTROL/工具栏/CONTROL.html#ITEM_DEUIACTION.ftl
浏览文件 @
7f637496
...
...
@@ -7,6 +7,9 @@
<#else>
<#assign ModelsName = 'toolBarModels' />
</#if>
<#if item.render??>
${item.render.code}
<#else>
<#assign deuiaction=item.getPSUIAction()>
<#if item.getTooltip()?? && item.getTooltip() != ''>
<tooltip :transfer="true" :max-width="600">
...
...
@@ -46,4 +49,5 @@
</#if>
</#if>
</#if>
</#if>
@CONTROL/工具栏/CONTROL.html#ITEM_ITEMS.ftl
浏览文件 @
7f637496
...
...
@@ -7,6 +7,9 @@
<#else>
<#assign ModelsName = 'toolBarModels' />
</#if>
<#if item.render??>
${item.render.code}
<#else>
<dropdown v-show="${ModelsName}.${item.name}.visabled" trigger='click'>
<#if item.getTooltip()?? && item.getTooltip() != ''>
<tooltip :transfer="true" :max-width="600">
...
...
@@ -37,4 +40,5 @@
</#list>
</dropdown-menu>
</#if>
</dropdown>
\ No newline at end of file
</dropdown>
</#if>
\ No newline at end of file
@CONTROL/工具栏/CONTROL.html#ITEM_SEPERATOR.ftl
浏览文件 @
7f637496
<span class='seperator'>|</span>
\ No newline at end of file
<#if item.render??>
${item.render.code}
<#else>
<span class='seperator'>|</span>
</#if>
\ No newline at end of file
@CONTROL/工具栏/CONTROL.html.ftl
浏览文件 @
7f637496
...
...
@@ -4,6 +4,9 @@
<#assign ModelsName = 'toolBarModels' />
</#if>
<div class='toolbar-container'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<#if (view.getPSWorkflow?? && view.getPSWorkflow()??) && (view.isWFIAMode?? && view.isWFIAMode()) && (view.getWFStepValue?? && view.getWFStepValue() == "") && (view.getViewType?? && (view.getViewType() == 'DEWFEDITVIEW3' || view.getViewType() == 'DEWFEDITVIEW'))><#t>
<template v-for="item in containerModel.wflinks">
<tooltip :transfer="true" :max-width="600">
...
...
@@ -21,4 +24,5 @@
</@ibizindent>
</#list>
</#if>
</#if>
</div>
\ No newline at end of file
@CONTROL/搜索表单/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -298,9 +298,9 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
*/
public createDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()??><#t>
<#if !(formdetail.getCreateDV() == '') || formdetail.getCreateDVT() == 'CURTIME'><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()?? && formdetail.getCreateDV() !=""><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) {
<#if !(formdetail.getCreateDVT() == '')><#t>
<#-- 网页请求 -->
<#if formdetail.getCreateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}'];
...
...
@@ -319,13 +319,16 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
<#-- 当前时间 -->
<#elseif formdetail.getCreateDVT() == 'CURTIME'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(formdetail.getStdDataType())>
this.data['${formdetail.getCodeName()?lower_case}'] = <#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>${formdetail.getCreateDV()}<#else>'${formdetail.getCreateDV()}'</#if>;
<#-- 数据对象属性 -->
<#elseif formdetail.getCreateDVT() == 'PARAM'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.service.getRemoteCopyData().${formdetail.getCreateDV()}?this.service.getRemoteCopyData().${formdetail.getCreateDV()}:null;
</#if>
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(formdetail.getStdDataType())>
this.data['${formdetail.getCodeName()?lower_case}'] = <#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>${formdetail.getCreateDV()}<#else>'${formdetail.getCreateDV()}'</#if>;
</#if>
}
</#if>
</#if>
</#list>
}
...
...
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -158,6 +158,15 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public created(): void {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
...
...
@@ -181,6 +190,15 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
...
...
@CONTROL/数据图表 (新)/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
if (Object.is('load', action)) {
this.load(data);
}
if (Object.is('refresh', action)) {
this.refresh(data);
}
});
}
}
...
...
@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
*/
public chartBaseOPtion:any = {<#if ctrl.getBaseOptionJOString()??>${ctrl.getBaseOptionJOString()}</#if>};
/**
* 图表绘制最终参数
*
* @memberof ${srfclassname('${ctrl.name}')}Base
*/
public chartRenderOption:any = {};
/**
* 初始化图表所需参数
*
...
...
@@ -268,11 +278,11 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
/**
* 刷新
*
* @param {*} [
opt
={}]
* @param {*} [
args
={}]
* @memberof ${srfclassname('${ctrl.name}')}Base
*/
public refresh(
opt: any = {}
) {
this.load(
opt
);
public refresh(
args?: any
) {
this.load(
args
);
}
/**
...
...
@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
this.myChart = echarts.init(element);
}
let _chartOption = this.handleChartOPtion(codelist);
console.log(_chartOption)
;
this.chartRenderOption = {..._chartOption}
;
this.myChart.setOption(_chartOption);
this.myChart.resize();
}
...
...
@CONTROL/数据图表/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
if (Object.is('load', action)) {
this.load(data);
}
if (Object.is('refresh', action)) {
this.refresh(data);
}
});
}
}
...
...
@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
*/
public chartBaseOPtion:any = {<#if ctrl.getBaseOptionJOString()??>${ctrl.getBaseOptionJOString()}</#if>};
/**
* 图表绘制最终参数
*
* @memberof ${srfclassname('${ctrl.name}')}Base
*/
public chartRenderOption:any = {};
/**
* 初始化图表所需参数
*
...
...
@@ -268,11 +278,11 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
/**
* 刷新
*
* @param {*} [
opt
={}]
* @param {*} [
args
={}]
* @memberof ${srfclassname('${ctrl.name}')}Base
*/
public refresh(
opt: any = {}
) {
this.load(
opt
);
public refresh(
args?: any
) {
this.load(
args
);
}
/**
...
...
@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
this.myChart = echarts.init(element);
}
let _chartOption = this.handleChartOPtion(codelist);
console.log(_chartOption)
;
this.chartRenderOption = {..._chartOption}
;
this.myChart.setOption(_chartOption);
this.myChart.resize();
}
...
...
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -548,12 +548,12 @@ import CodeListService from "@/codelist/codelist-service";
/**
* 刷新
*
* @param {*} [
opt
={}]
* @param {*} [
args
={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(
opt: any = {}
) {
public refresh(
args?: any
) {
this.curPage = 1;
this.load(
opt
, true);
this.load(
args
, true);
}
/**
...
...
@@ -638,8 +638,18 @@ import CodeListService from "@/codelist/codelist-service";
}
this.isAddBehind = false;
this.$emit('load', this.items);
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(this.isSelectFirstDefault){
this.handleClick(this.items[0]);
if(this.selections && this.selections.length > 0){
this.selections.forEach((select: any)=>{
const index = this.items.findIndex((item:any) => Object.is(item.srfkey,select.srfkey));
if(index != -1){
this.handleClick(this.items[index]);
}
})
}else{
this.handleClick(this.items[0]);
}
}
<#if ctrl.isEnableGroup?? && ctrl.isEnableGroup()>
this.group();
...
...
@CONTROL/日历导航/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -14,6 +14,7 @@
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -126,6 +127,15 @@
*/
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>;
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 搜素值
*
...
...
@@ -357,7 +367,22 @@
${destroyed_block}
</#if>
}
/**
* 刷新
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args?: any): void {
<#if ctrl.getXDataPSControl?? && ctrl.getXDataPSControl()??>
<#assign dataControl = ctrl.getXDataPSControl() />
const refs: any = this.$refs;
if (refs && refs.${dataControl.name}) {
refs.${dataControl.name}.refresh();
}
</#if>
}
/**
* ${ctrl.name}的选中数据事件
*
...
...
@@ -367,6 +392,7 @@
let tempContext:any = {};
let tempViewParam:any = {};
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
...
...
@@ -402,6 +428,7 @@
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName[arg.itemType] }, context:tempContext,viewparam:tempViewParam });
this.calcToolbarItemState(false);
this.$emit('selectionchange',args);
this.$forceUpdate();
}
...
...
@@ -412,9 +439,38 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.${ctrl.getCodeName()?lower_case}_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
...
...
@@ -423,16 +479,14 @@
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
<#if ctrl.getCodeName?? && ctrl.getCodeName()??>
<#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if>
}
}
/**
...
...
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -640,7 +640,7 @@ FullCalendar,
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh() {
public refresh(
args?:any
) {
if(Object.is(this.calendarType,"TIMELINE")){
this.searchEvents();
} else {
...
...
@CONTROL/树表格(增强)/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -241,7 +241,7 @@
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh() {
public refresh(
args?:any
) {
this.load();
}
...
...
@CONTROL/树视图/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -556,10 +556,10 @@ import UIService from '@/uiservice/ui-service';
/**
* 刷新功能
*
* @param {any
[]
} args
* @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args
: any[]
): void {
public refresh(args
?: any
): void {
this.refresh_all();
<#-- if (Object.keys(this.currentselectedNode).length === 0) {
return;
...
...
@@ -648,10 +648,15 @@ import UIService from '@/uiservice/ui-service';
return;
}
let defaultData: any;
//
导航中选中第一条配置的默认选中,没有
选中第一条
//
在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认
选中第一条
if(this.isSelectFirstDefault){
if(this.isSingleSelect){
let index = items.findIndex((item: any) => item.selected);
let index: number = -1;
if(this.selectedNodes && this.selectedNodes.length > 0){
this.selectedNodes.forEach((select: any) => {
index = items.findIndex((item: any) => Object.is(select.srfkey,item.srfkey));
});
}
if(index === -1) {
if(isRoot){
index = 0;
...
...
@CONTROL/树视图导航栏/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -21,6 +21,7 @@
<div class='search-content'>
<i-input :search="true"
@on-change="($event) => { this.srfnodefilter = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -56,6 +57,10 @@
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/FUNC/MACRO.ftl
</#ibizinclude>
<#if view.getPSAppViewLogics?? && view.getPSAppViewLogics()??>
<#list view.getPSAppViewLogics() as logic>
<#if logic.getPFLogicCodeType() == 'APP_NEWDATA'>
...
...
@@ -123,6 +128,15 @@
*/
public ctrlWidth:number = <#if ctrl.getWidth()??>${ctrl.getWidth()?c}<#else>0</#if>;
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 过滤值
*
...
...
@@ -208,15 +222,18 @@
*/
public ${ctrl.name}_selectionchange(args: any [], tag?: string, $event2?: any): void {
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
if (!arg.id) {
this.calcToolbarItemState(true);
return;
}
const nodetype = arg.id.split(';')[0];
const refview = this.getExpItemView({ nodetype: nodetype });
if (!refview) {
this.calcToolbarItemState(true);
return;
}
let tempViewparam:any = {};
...
...
@@ -260,6 +277,7 @@
this.selection = {};
Object.assign(this.selection, { view: { viewname: refview.viewname } });
Object.assign(this.selection,{'viewparam':tempViewparam,'context':tempContext});
this.calcToolbarItemState(false);
this.$forceUpdate();
}
...
...
@@ -273,6 +291,7 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void {
this.calcToolbarItemState(true);
this.$emit('load',args);
}
...
...
@@ -414,6 +433,34 @@
this.$emit('load', $event);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.${ctrl.getCodeName()?lower_case}_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
...
...
@@ -422,16 +469,14 @@
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
<#if ctrl.getCodeName?? && ctrl.getCodeName()??>
<#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if>
}
}
<#if ctrl.getPSControls()??>
...
...
@CONTROL/流程导航栏/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -13,6 +13,7 @@
<div class='search-content'>
<i-input :search="true"
@on-change="($event: any) => { this.srffilter = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -51,6 +52,10 @@
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/FUNC/MACRO.ftl
</#ibizinclude>
/**
...
...
@@ -82,6 +87,14 @@
*/
public selection: any = {};
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 过滤值
...
...
@CONTROL/甘特图部件/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -315,7 +315,7 @@ GanttElastic,
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh() {
public refresh(
args?: any
) {
this.load();
}
...
...
@CONTROL/看板视图/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -165,6 +165,29 @@ draggable,
*/
@Prop() public isSingleSelect?: boolean;
<#if view.getPSAppViewLogics?? && view.getPSAppViewLogics()??>
<#list view.getPSAppViewLogics() as logic>
<#if logic.getPFLogicCodeType() == 'APP_NEWDATA'>
/**
* 打开新建数据视图
*
* @type {any}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
@Prop() public newdata: any;
</#if>
<#if logic.getPFLogicCodeType() == 'APP_OPENDATA'>
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
@Prop() public opendata: any;
</#if>
</#list>
</#if>
/**
* 数据
*
...
...
@@ -346,9 +369,9 @@ draggable,
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(
opt: any = {}
) {
public refresh(
args?: any
) {
this.curPage = 1;
this.load(
opt
, true);
this.load(
args
, true);
}
/**
...
...
@CONTROL/看板视图/CONTROL.html.ftl
浏览文件 @
7f637496
...
...
@@ -9,6 +9,16 @@
<#if view.getViewType() == 'DEDATAVIEWEXPVIEW'>
:isSelectFirstDefault="true"
</#if>
<#if view.getPSAppViewLogics?? && view.getPSAppViewLogics()??>
<#list view.getPSAppViewLogics() as logic>
<#if logic.getPFLogicCodeType() == 'APP_NEWDATA'>
:newdata="newdata"
</#if>
<#if logic.getPFLogicCodeType() == 'APP_OPENDATA'>
:opendata="opendata"
</#if>
</#list>
</#if>
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
...
...
@CONTROL/表单/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -261,10 +261,8 @@ import { Environment } from '@/environments/environment';
public rules() :any {
return {
<#list ctrl.getAllPSDEFormDetails() as formdetail>
<#if formdetail.getDetailType?? && formdetail.getDetailType() == 'FORMITEM'>
<#if formdetail.getDetailType?? && formdetail.getDetailType() == 'FORMITEM'
&& formdetail.getEditorType() != "HIDDEN"
>
${formdetail.getName()}: [
{ type: '<#assign datatype=srfjavatype(formdetail.getStdDataType())><#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>number<#else>string</#if>', message: '${formdetail.getCaption()} 值必须为<#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>数值<#else>字符串</#if>类型', trigger: 'change' },
{ type: '<#assign datatype=srfjavatype(formdetail.getStdDataType())><#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>number<#else>string</#if>', message: '${formdetail.getCaption()} 值必须为<#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>数值<#else>字符串</#if>类型', trigger: 'blur' },
{ required: this.detailsModel.${formdetail.getName()}.required, type: '<#assign datatype=srfjavatype(formdetail.getStdDataType())><#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>number<#else>string</#if>', message: '${formdetail.getCaption()} 值不能为空', trigger: 'change' },
{ required: this.detailsModel.${formdetail.getName()}.required, type: '<#assign datatype=srfjavatype(formdetail.getStdDataType())><#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>number<#else>string</#if>', message: '${formdetail.getCaption()} 值不能为空', trigger: 'blur' },
<#if formdetail.getEditorType?? && formdetail.getEditorType()?? && formdetail.isAllowEmpty?? && formdetail.isAllowEmpty()??>
...
...
@@ -355,32 +353,38 @@ import { Environment } from '@/environments/environment';
falg.isPast = val;
}
}
rule[name].forEach((item:any) => {
for(let i=0;i<rule[name].length;i++){
let item:any = rule[name][i];
let dataValue = item.deName?this.data[this.service.getItemNameByDeName(item.deName)]:"";
// 常规规则
if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(dataValue,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.data,item.isKeyCond));
falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
}
// 数值范围
if(item.type == 'VALUERANGE2'){
startOp( !this.$verify.checkFieldValueRangeRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
}
// 正则式
if (item.type == "REGEX") {
startOp(!this.$verify.checkFieldRegExRule(dataValue,item.regExCode,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
}
// 长度
if (item.type == "STRINGLENGTH") {
startOp(!this.$verify.checkFieldStringLengthRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
}
// 系统值规则
if(item.type == "SYSVALUERULE") {
startOp(!this.$verify.checkFieldSysValueRule(dataValue,item.sysRule.regExCode,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
}
// 分组
if(item.type == 'GROUP'){
...
...
@@ -388,9 +392,9 @@ import { Environment } from '@/environments/environment';
if(item.isNotMode){
falg.isPast = !falg.isPast;
}
}
}
);
if(!falg.isPast) return falg;
}
}
if(!falg.hasOwnProperty("isPast")){
falg.isPast = true;
}
...
...
@@ -1000,12 +1004,12 @@ import { Environment } from '@/environments/environment';
/**
* 部件刷新
*
* @param {any
[]
} args
* @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args
: any[]
): void {
public refresh(args
?: any
): void {
let arg: any = {};
Object.assign(arg,args
[0]
);
Object.assign(arg,args
?args[0]:{}
);
if (this.data.srfkey && !Object.is(this.data.srfkey, '')) {
Object.assign(arg, { srfkey: this.data.srfkey });
this.load(arg);
...
...
@@ -1706,9 +1710,9 @@ import { Environment } from '@/environments/environment';
*/
public createDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()??><#t>
<#if !(formdetail.getCreateDV() == '') || formdetail.getCreateDVT() == 'CURTIME'><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()?? && formdetail.getCreateDV() !=""><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) {
<#if !(formdetail.getCreateDVT() == '')><#t>
<#-- 网页请求 -->
<#if formdetail.getCreateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}'];
...
...
@@ -1727,13 +1731,16 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 -->
<#elseif formdetail.getCreateDVT() == 'CURTIME'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#else>
<#-- 数据对象属性 -->
<#elseif formdetail.getCreateDVT() == 'PARAM'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.service.getRemoteCopyData().${formdetail.getCreateDV()}?this.service.getRemoteCopyData().${formdetail.getCreateDV()}:null;
</#if>
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(formdetail.getStdDataType())>
this.data['${formdetail.getCodeName()?lower_case}'] = <#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>${formdetail.getCreateDV()}<#else>'${formdetail.getCreateDV()}'</#if>;
</#if>
}
</#if>
}
</#if>
</#list>
}
...
...
@@ -1744,9 +1751,9 @@ import { Environment } from '@/environments/environment';
*/
public updateDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getUpdateDV?? && formdetail.getUpdateDV()??><#t>
<#if !(formdetail.getUpdateDVT() == '')><#t>
<#if formdetail.getUpdateDV?? && formdetail.getUpdateDV()?? && formdetail.getUpdateDV() != ""><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}') && !this.data.${formdetail.getCodeName()?lower_case}) {
<#if !(formdetail.getUpdateDVT() == '')><#t>
<#-- 网页请求 -->
<#if formdetail.getUpdateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getUpdateDV()}'];
...
...
@@ -1762,6 +1769,13 @@ import { Environment } from '@/environments/environment';
<#-- 当前操作用户(编号) -->
<#elseif formdetail.getUpdateDVT() == 'OPERATOR'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.context['srfuserid'];
<#-- 当前时间 -->
<#elseif formdetail.getUpdateDVT() == 'CURTIME'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#-- 数据对象属性 -->
<#elseif formdetail.getUpdateDVT() == 'PARAM'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.service.getRemoteCopyData().${formdetail.getUpdateDV()}?this.service.getRemoteCopyData().${formdetail.getUpdateDV()}:null;
</#if>
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(formdetail.getStdDataType())>
...
...
@@ -1769,7 +1783,6 @@ import { Environment } from '@/environments/environment';
</#if>
}
</#if>
</#if>
</#list>
}
...
...
@CONTROL/表格/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -495,10 +495,10 @@ import { Environment } from '@/environments/environment';
/**
* 部件刷新
*
* @param {any
[]
} args
* @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args
: any[]
): void {
public refresh(args
?: any
): void {
this.load();
}
...
...
@@ -752,7 +752,7 @@ import { Environment } from '@/environments/environment';
this.totalrow = response.total;
this.items = JSON.parse(JSON.stringify(data));
// 清空selections,gridItemsModel
this.selections = [];
//
this.selections = [];
this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{
...
...
@@ -762,8 +762,18 @@ import { Environment } from '@/environments/environment';
// 设置默认选中
let _this = this;
setTimeout(() => {
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(_this.isSelectFirstDefault){
_this.rowClick(_this.items[0]);
if(_this.selections && _this.selections.length > 0){
_this.selections.forEach((select: any)=>{
const index = _this.items.findIndex((item:any) => Object.is(item.srfkey,select.srfkey));
if(index != -1){
_this.rowClick(_this.items[index]);
}
})
}else{
_this.rowClick(this.items[0]);
}
}
if(_this.selectedData){
const refs: any = _this.$refs;
...
...
@@ -2036,7 +2046,7 @@ import { Environment } from '@/environments/environment';
<#assign itemUpdate=editItem.getPSDEGridEditItemUpdate()/>
if(Object.is(property, '${editItem.name}')){
const details: string[] = [<#list itemUpdate.getPSDEGEIUpdateDetails() as detail><#if detail_index gt 0>, </#if>'${detail.getPSDEGridColumnName()?lower_case}'</#list>];
this.updateGridEditItem('${itemUpdate.
codeName
}', row, details, ${itemUpdate.isShowBusyIndicator()?c});
this.updateGridEditItem('${itemUpdate.
getPSAppDEMethod().getCodeName()
}', row, details, ${itemUpdate.isShowBusyIndicator()?c});
}
</#if>
</#list>
...
...
@@ -2163,9 +2173,9 @@ import { Environment } from '@/environments/environment';
*/
public createDefault(row: any){
<#list ctrl.getPSDEGridEditItems() as editItem><#t>
<#if editItem.getCreateDV?? && editItem.getCreateDV()??><#t>
<#if !(editItem.getCreateDV() == '') || editItem.getCreateDVT() == 'CURTIME'><#t>
<#if editItem.getCreateDV?? && editItem.getCreateDV()?? && editItem.getCreateDV() !=""><#t>
if (row.hasOwnProperty('${editItem.getCodeName()?lower_case}')) {
<#if !(editItem.getCreateDVT() == '')><#t>
<#-- 网页请求 -->
<#if editItem.getCreateDVT() == 'CONTEXT'>
row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getCreateDV()}'];
...
...
@@ -2184,13 +2194,16 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 -->
<#elseif editItem.getCreateDVT() == 'CURTIME'>
row['${editItem.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#else>
<#-- 数据对象属性 -->
<#elseif editItem.getCreateDVT() == 'PARAM'>
row['${editItem.getCodeName()?lower_case}'] = this.computeDefaultValueWithParam("CREATE","${editItem.getCreateDV()}",row);
</#if>
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(editItem.getPSAppDEField().getStdDataType())>
row['${editItem.getCodeName()?lower_case}'] = <#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>${editItem.getCreateDV()}<#else>'${editItem.getCreateDV()}'</#if>;
</#if>
}
</#if>
}
</#if>
</#list>
}
...
...
@@ -2202,9 +2215,9 @@ import { Environment } from '@/environments/environment';
*/
public updateDefault(row: any){
<#list ctrl.getPSDEGridEditItems() as editItem><#t>
<#if editItem.getUpdateDV?? && editItem.getUpdateDV()??><#t>
<#if !(editItem.getUpdateDV() == '') || editItem.getUpdateDVT() == 'CURTIME'><#t>
if (row.hasOwnProperty('${editItem.getCodeName()?lower_case}') && !row.${editItem.getCodeName()?lower_case} && !row.hasUpdated) {
<#if editItem.getUpdateDV?? && editItem.getUpdateDV()??
&& editItem.getUpdateDV() !=""
><#t>
if (row.hasOwnProperty('${editItem.getCodeName()?lower_case}') && !row.${editItem.getCodeName()?lower_case} && row.hasUpdated) {
<#if !(editItem.getUpdateDVT() == '')><#t>
<#-- 网页请求 -->
<#if editItem.getUpdateDVT() == 'CONTEXT'>
row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getUpdateDV()}'];
...
...
@@ -2223,17 +2236,47 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 -->
<#elseif editItem.getUpdateDVT() == 'CURTIME'>
row['${editItem.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#else>
<#-- 默认值 -->
<#-- 数据对象属性 -->
<#elseif editItem.getUpdateDVT() == 'PARAM'>
row['${editItem.getCodeName()?lower_case}'] = this.computeDefaultValueWithParam("UPDATE","${editItem.getUpdateDV()}",row);
</#if>
<#else>
<#-- 默认值 -->
<#assign datatype=srfjavatype(editItem.getPSAppDEField().getStdDataType())>
row['${editItem.getCodeName()?lower_case}'] = <#if datatype=='BigInteger' || datatype=='Integer' || datatype=='Double' || datatype=='Decimal' || datatype=='Float' || datatype=='BigDecimal'>${editItem.getUpdateDV()}<#else>'${editItem.getUpdateDV()}'</#if>;
</#if>
}
</#if>
}
</#if>
</#list>
}
/**
* 计算数据对象类型的默认值
* @param {string} action 行为
* @param {string} param 默认值参数
* @param {*} data 当前行数据
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public computeDefaultValueWithParam(action:string,param:string,data:any){
if(Object.is(action,"UPDATE")){
const nativeData:any = this.service.getCopynativeData();
if(nativeData && (nativeData instanceof Array) && nativeData.length >0){
let targetData:any = nativeData.find((item:any) =>{
return item.${appde.getKeyPSAppDEField().getCodeName()?lower_case} === data.srfkey;
})
if(targetData){
return targetData[param]?targetData[param]:null;
}else{
return null;
}
}else{
return null;
}
}else{
return this.service.getRemoteCopyData()[param]?this.service.getRemoteCopyData()[param]:null;
}
}
/**
* 校验属性值规则
*
...
...
@CONTROL/表格/SERVICE.ts.ftl
浏览文件 @
7f637496
...
...
@@ -24,7 +24,15 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public copynativeData:any;
private copynativeData:any;
/**
* 远端数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
private remoteCopyData:any = {};
<#list ctrl.getPSDEGridEditItems() as deItem>
<#if deItem.getPSEditor()?? && deItem.getPSEditor().getPSAppDataEntity?? && deItem.getPSEditor().getPSAppDataEntity()??>
...
...
@@ -259,7 +267,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
result =_appEntityService.FetchDefault(Context,Data, isloading);
}
result.then((response) => {
this.
copynativeData = Util.deepCopy
(response.data);
this.
setCopynativeData
(response.data);
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
...
...
@@ -343,6 +351,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = Util.createUUID();
</#if>
}
this.setRemoteCopyData(response);
this.handleResponse(action, response, true);
resolve(response);
}).catch(response => {
...
...
@@ -540,7 +549,46 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
});
});
}
/**
* 设置远端数据
*
* @param result 远端请求结果
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public setRemoteCopyData(result:any){
if (result && result.status === 200) {
this.remoteCopyData = Util.deepCopy(result.data);
}
}
/**
* 获取远端数据
*
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public getRemoteCopyData(){
return this.remoteCopyData;
}
/**
* 设置备份原生数据
*
* @param data 远端请求结果
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public setCopynativeData(data:any){
this.copynativeData = Util.deepCopy(data);
}
/**
* 获取备份原生数据
*
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public getCopynativeData(){
return this.copynativeData;
}
<#ibizinclude>
../@MACRO/SERVICE/SERVICE_BOTTOM.ts.ftl
</#ibizinclude>
\ No newline at end of file
@CONTROL/表格导航/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -22,6 +22,7 @@
<div class='search-container'>
<i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch">
</i-input>
</div>
...
...
@@ -160,6 +161,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
*/
public selection: any = {};
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 搜素值
*
...
...
@@ -481,6 +491,21 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
}
/**
* 刷新
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args?: any): void {
<#if ctrl.getXDataPSControl?? && ctrl.getXDataPSControl()??>
<#assign dataControl = ctrl.getXDataPSControl() />
const refs: any = this.$refs;
if (refs && refs.${dataControl.name}) {
refs.${dataControl.name}.refresh();
}
</#if>
}
/**
* ${ctrl.name}的选中数据事件
*
...
...
@@ -490,6 +515,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {};
let tempViewParam:any = {};
if (args.length === 0) {
this.calcToolbarItemState(true);
return ;
}
const arg:any = args[0];
...
...
@@ -520,6 +546,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
}
this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName }, context:tempContext,viewparam:tempViewParam });
this.calcToolbarItemState(false);
this.$forceUpdate();
}
...
...
@@ -529,9 +556,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args);
}
/**
* 设置导航区工具栏禁用状态
*
* @param {boolean} state
* @return {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcToolbarItemState(state: boolean) {
let _this: any = this;
const models:any = _this.${ctrl.getCodeName()?lower_case}_toolbarModels;
if (models) {
for (const key in models) {
if (!models.hasOwnProperty(key)) {
return;
}
const _item = models[key];
if (_item.uiaction && (Object.is(_item.uiaction.target, 'SINGLEKEY') || Object.is(_item.uiaction.target, 'MULTIKEY'))) {
_item.disabled = state;
}
_item.visabled = true;
if (_item.noprivdisplaymode && _item.noprivdisplaymode === 6) {
_item.visabled = false;
}
}
this.calcNavigationToolbarState();
}
}
/**
* 计算导航工具栏权限状态
*
...
...
@@ -540,16 +596,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){
let _this: any = this;
// 界面行为
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
<#if ctrl.getCodeName?? && ctrl.getCodeName()??>
<#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){
<#if ctrl.getPSAppDataEntity?? && ctrl.getPSAppDataEntity()??>
<#assign curAppEntity = ctrl.getPSAppDataEntity() />
const curUIService:${srfclassname('${curAppEntity.getCodeName()}')}UIService = new ${srfclassname('${curAppEntity.getCodeName()}')}UIService();
ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if>
}
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
...
...
@CONTROL/视图布局面板/@MACRO/DATA_PANEL.vue.ftl
浏览文件 @
7f637496
...
...
@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??>
<#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if>
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/@MACRO/DEFAULT.vue.ftl
浏览文件 @
7f637496
...
...
@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if>
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/@MACRO/EDIT.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -14,11 +13,20 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('form')>
<@ibizindent blank=8>
${P.getCtrlCode('form', 'CONTROL.html').code}
</@ibizindent>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -26,6 +34,5 @@ ${P.getCtrlCode('form', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/@MACRO/EDIT3.vue.ftl
浏览文件 @
7f637496
...
...
@@ -14,7 +14,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -22,11 +21,20 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('drtab')>
<@ibizindent blank=8>
${P.getCtrlCode('drtab', 'CONTROL.html').code}
</@ibizindent>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -34,6 +42,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
@CONTROL/视图布局面板/@MACRO/GRID.vue.ftl
浏览文件 @
7f637496
...
...
@@ -10,6 +10,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code}
</#if>
...
...
@@ -48,6 +55,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code}
</#if>
...
...
@@ -61,14 +75,14 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
./VIEW_CAPTION.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
./View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
./View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<#-- BEGIN:视图内容 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -76,6 +90,7 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容 -->
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -83,6 +98,5 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/@MACRO/View_Pos_Body_Msgs.vue.ftl
0 → 100644
浏览文件 @
7f637496
<div class='view-body-messages'>
<#if view.getPSViewMsgGroup()??>
<#assign viewMsgGroup = view.getPSViewMsgGroup()/>
<#compress>
<#if viewMsgGroup.getCodeName()??>
<app-alert-group position='BODY' :context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getCodeName()}' viewname='${view.getCodeName()?lower_case}'></app-alert-group>
<#else>
<app-alert-group position='BODY' :context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getName()}' viewname='${view.getCodeName()?lower_case}'></app-alert-group>
</#if>
</#compress>
</#if>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/@MACRO/View_Pos_Bottom_Msgs.vue.ftl
浏览文件 @
7f637496
...
...
@@ -3,9 +3,9 @@
<#assign viewMsgGroup = view.getPSViewMsgGroup()/>
<#compress>
<#if viewMsgGroup.getCodeName()??>
<app-alert-group position='BOTTOM'
infoGroup='${viewMsgGroup.getCodeName()
}'></app-alert-group>
<app-alert-group position='BOTTOM'
:context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getCodeName()}' viewname='${view.getCodeName()?lower_case
}'></app-alert-group>
<#else>
<app-alert-group position='BOTTOM'
infoGroup='${viewMsgGroup.getName()
}'></app-alert-group>
<app-alert-group position='BOTTOM'
:context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getName()}' viewname='${view.getCodeName()?lower_case
}'></app-alert-group>
</#if>
</#compress>
</#if>
...
...
@CONTROL/视图布局面板/@MACRO/View_Pos_Top_Msgs.vue.ftl
浏览文件 @
7f637496
...
...
@@ -3,9 +3,9 @@
<#assign viewMsgGroup = view.getPSViewMsgGroup()/>
<#compress>
<#if viewMsgGroup.getCodeName()??>
<app-alert-group position='TOP'
infoGroup='${viewMsgGroup.getCodeName()
}'></app-alert-group>
<app-alert-group position='TOP'
:context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getCodeName()}' viewname='${view.getCodeName()?lower_case
}'></app-alert-group>
<#else>
<app-alert-group position='TOP'
infoGroup='${viewMsgGroup.getName()
}'></app-alert-group>
<app-alert-group position='TOP'
:context="context" :viewparam="viewparams" infoGroup='${viewMsgGroup.getName()}' viewname='${view.getCodeName()?lower_case
}'></app-alert-group>
</#if>
</#compress>
</#if>
...
...
@CONTROL/视图布局面板/@MACRO/WIZARD.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -14,6 +13,14 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<@ibizindent blank=12>
<#if view.hasPSControl('wizardpanel')>
${P.getCtrlCode('wizardpanel', 'CONTROL.html').code}
...
...
@@ -22,6 +29,7 @@ ${P.getCtrlCode('wizardpanel', 'CONTROL.html').code}
${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code}
</#if>
</@ibizindent>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -29,6 +37,5 @@ ${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体分页导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -5,16 +5,19 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class='content-container'>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
<div class='content-container'>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
<#if view.hasPSControl('tabexppanel')>
${P.getCtrlCode('tabexppanel', 'CONTROL.html').code}
</#if>
</div>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体分页搜索视图/VIEW.less.ftl
浏览文件 @
7f637496
...
...
@@ -4,7 +4,6 @@
.detabsearchview{
.toolbars-container{
margin-bottom: 6px;
overflow:hidden;
.tab-panel-group{
float: right;
.el-radio-button__inner{
...
...
@CONTROL/视图布局面板/实体分页搜索视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -31,10 +31,31 @@
</el-radio-group>
</#if>
</div>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tabexppanel')>
${P.getCtrlCode('tabexppanel', 'CONTROL.html').code}
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体列表导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -14,16 +13,24 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('listexpbar')>
${P.getCtrlCode('listexpbar', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图底部视图消息 -->
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体列表视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -15,6 +14,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...
...
@@ -49,6 +49,13 @@
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('list')>
${P.getCtrlCode('list', 'CONTROL.html').code}
</#if>
...
...
@@ -57,6 +64,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -64,6 +72,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体列表视图(部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -3,7 +3,6 @@
<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>' :bordered="false" :dis-hover="true" >
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -11,6 +10,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...
...
@@ -45,6 +45,13 @@
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('list')>
${P.getCtrlCode('list', 'CONTROL.html').code}
</#if>
...
...
@@ -53,6 +60,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -60,6 +68,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体卡片视图导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -14,9 +13,18 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataviewexpbar')>
${P.getCtrlCode('dataviewexpbar', 'CONTROL.html').code}
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -24,6 +32,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体图表视图 (部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,13 @@
<#ibizinclude>
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#comment><!--开始:快速搜索或工具栏存在--></#comment>
...
...
@@ -28,6 +34,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('chart')>
${P.getCtrlCode('chart', 'CONTROL.html').code}
</#if>
...
...
@@ -37,5 +50,12 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体图表视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -15,6 +14,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#comment><!--开始:快速搜索或工具栏存在--></#comment>
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar'))>
...
...
@@ -35,6 +35,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('chart')>
${P.getCtrlCode('chart', 'CONTROL.html').code}
</#if>
...
...
@@ -43,6 +50,7 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -50,6 +58,5 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体数据多项选择视图/VIEW.vue.ftl
浏览文件 @
7f637496
<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>
<card class='view-card view-no-caption <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -9,6 +8,14 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container pickup-view">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<div class="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<#if view.hasPSControl('pickupviewpanel')>
...
...
@@ -54,6 +61,7 @@
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -61,6 +69,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体数据看板视图 (卡片)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??>
<#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if>
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
@CONTROL/视图布局面板/实体数据看板视图(部件视图卡片)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??>
<#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if>
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
@CONTROL/视图布局面板/实体数据视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
</@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -15,6 +14,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)>
...
...
@@ -48,6 +48,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent>
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataview')>
<@ibizindent blank=12>
${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t>
...
...
@@ -57,6 +64,7 @@
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -64,6 +72,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体数据视图(部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -2,7 +2,6 @@
<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>
<card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :bordered="false">
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -10,6 +9,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)>
...
...
@@ -43,6 +43,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent>
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataview')>
<@ibizindent blank=12>
${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t>
...
...
@@ -53,6 +60,7 @@
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -60,6 +68,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体数据选择视图/VIEW.vue.ftl
浏览文件 @
7f637496
<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>
<card class='view-card view-no-caption <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :padding="0" :bordered="false">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container pickup-view">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('pickupviewpanel')>
<@ibizindent blank=12>
${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code}<#t>
...
...
@@ -15,5 +29,12 @@
</row>
</card>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体数据选择视图(分页关系)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,21 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -20,5 +34,12 @@
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体日历导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -14,9 +13,18 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendarexpbar')>
${P.getCtrlCode('calendarexpbar', 'CONTROL.html').code}
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -24,6 +32,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体日历视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -15,6 +14,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...
...
@@ -49,6 +49,13 @@
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendar')>
${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#if>
...
...
@@ -57,6 +64,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -64,6 +72,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体日历视图(部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -3,7 +3,6 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction>
<card class='view-card view-no-caption <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :bordered="false" :dis-hover="true" >
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -11,6 +10,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...
...
@@ -45,6 +45,13 @@
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendar')>
${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#if>
...
...
@@ -53,6 +60,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -60,6 +68,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体树导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,6 @@
</#ibizinclude>
</@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -15,11 +14,20 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('treeexpbar')>
<@ibizindent blank=12>
${P.getCtrlCode('treeexpbar', 'CONTROL.html').code}<#t>
</@ibizindent>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -27,6 +35,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体树表格视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -19,6 +19,13 @@
</div>
</#if>
<#-- END:快速搜索或工具栏存在 -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('treegridex')>
${P.getCtrlCode('treegridex', 'CONTROL.html').code}
</#if>
...
...
@@ -31,7 +38,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
</@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -39,6 +45,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图内容 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -46,6 +53,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容 -->
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
...
...
@@ -53,6 +61,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体树视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -5,7 +5,6 @@
<#ibizinclude>
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -13,6 +12,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#assign MDContent>
<#-- 搜索框: BEGIN -->
<#if (view.isEnableQuickSearch())>
...
...
@@ -21,6 +21,13 @@
</div>
</#if>
<#-- 搜索框: END -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tree')>
<div class="tree-contant">
${P.getCtrlCode('tree', 'CONTROL.html').code}
...
...
@@ -31,6 +38,7 @@
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -38,6 +46,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体树视图(部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -2,7 +2,6 @@
<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>
<card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :bordered="false">
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -10,6 +9,7 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#-- 搜索框: BEGIN -->
<#if (view.isEnableQuickSearch())>
...
...
@@ -18,6 +18,13 @@
</div>
</#if>
<#-- 搜索框: END -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tree')>
<div class="tree-contant">
${P.getCtrlCode('tree', 'CONTROL.html').code}
...
...
@@ -28,6 +35,7 @@
<#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -35,6 +43,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体看板视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,6 +7,13 @@
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
...
...
@@ -41,6 +48,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent>
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('kanban')>
<@ibizindent blank=12>
${P.getCtrlCode('kanban', 'CONTROL.html').code}<#t>
...
...
@@ -51,5 +65,12 @@
../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体编辑视图(上下关系)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('form')>
<@ibizindent blank=8>
${P.getCtrlCode('form', 'CONTROL.html').code}
...
...
@@ -36,6 +43,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if>
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -43,6 +51,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体编辑视图(左右关系)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -19,6 +19,13 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container edit-view2">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('drbar')>
<@ibizindent blank=8>
${P.getCtrlCode('drbar', 'CONTROL.html').code}
...
...
@CONTROL/视图布局面板/实体表单选择数据视图(部件视图)/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -7,7 +7,21 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
...
...
@@ -20,5 +34,12 @@
</#list>
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体表格导航视图/VIEW.vue.ftl
浏览文件 @
7f637496
...
...
@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -14,9 +13,18 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('gridexpbar')>
${P.getCtrlCode('gridexpbar', 'CONTROL.html').code}
</#if>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -24,6 +32,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/视图布局面板/实体选择表格视图/VIEW.vue.ftl
浏览文件 @
7f637496
<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>
<card class='view-card view-no-caption <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :dis-hover="true" :bordered="false">
<div class='content-container pickup-grid-view'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -9,14 +8,23 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container pickup-grid-view'>
<@ibizindent blank=12>
<#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code}<#t>
</#if>
</@ibizindent>
</div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
...
...
@@ -24,6 +32,5 @@
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</div>
</card>
</div>
\ No newline at end of file
@CONTROL/门户部件/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -8,7 +8,12 @@
<#if !uiactiondetail.isShowCaption()>
<tooltip :transfer="true" :max-width="600">
</#if>
<a @click="uiAction('${uiactiondetail.getName()?lower_case}', $event)">
<#if uiactiondetail.getPSUIAction?? && uiactiondetail.getPSUIAction()?? && uiactiondetail.getPSUIAction().getCodeName?? && uiactiondetail.getPSUIAction().getCodeName()??>
<#assign uiactionname = uiactiondetail.getPSUIAction().getCodeName()?lower_case />
<#else>
<#assign uiactionname = uiactiondetail.getName()?lower_case />
</#if>
<a @click="uiAction('${uiactiondetail.getName()?lower_case}', $event)" v-show="uiactionModel['${uiactionname}'].visabled" :disabled="uiactionModel['${uiactionname}'].disabled">
<#if uiactiondetail.getPSUIAction()??>
<#if uiactiondetail.isShowIcon()>
<#if uiactiondetail.getPSUIAction().getPSSysImage()??>
...
...
@@ -54,7 +59,7 @@
</#if>
<div class="<#if ctrl.isShowTitleBar()>portlet-with-title<#else>portlet-without-title</#if>">
<#assign refview = ctrl.getPortletPSAppView()><#t>
<${srffilepath2(refview.getCodeName())} :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></${srffilepath2(refview.getCodeName())}>
<${srffilepath2(refview.getCodeName())} :
portletState="viewState" :
viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></${srffilepath2(refview.getCodeName())}>
</div>
<#-- 菜单 -->
<#elseif ctrl.getPortletType() == 'APPMENU'><#t>
...
...
@@ -193,6 +198,7 @@
</div>
</template>
<#assign import_block>
import UIService from '@/uiservice/ui-service';
import { Environment } from '@/environments/environment';
</#assign>
<#ibizinclude>
...
...
@@ -215,6 +221,14 @@ import { Environment } from '@/environments/environment';
*/
@Prop() public width?: number;
/**
* 门户部件类型
*
* @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public portletType: string = '<#if ctrl.getPortletType?? && ctrl.getPortletType()??>${ctrl.getPortletType()?lower_case}</#if>';
/**
* 视图默认使用
*
...
...
@@ -274,6 +288,28 @@ import { Environment } from '@/environments/environment';
}
</#if>
/**
* 界面行为模型数据
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public uiactionModel: any = {
<#if ctrl.getPSUIActionGroup?? && ctrl.getPSUIActionGroup()?? && ctrl.getPSUIActionGroup().getPSUIActionGroupDetails()??>
<#assign UIActionDetails=ctrl.getPSUIActionGroup().getPSUIActionGroupDetails() />
<#list UIActionDetails as uiactiondetail>
<#if uiactiondetail.getPSUIAction()??>
<#assign uiaction = uiactiondetail.getPSUIAction() />
<#if uiaction.getCodeName?? && uiaction.getCodeName()??>
<#assign uiactionname = uiaction.getCodeName()?lower_case />
<#else>
<#assign uiactionname = uiactiondetail.getName()?lower_case />
</#if>
${uiactionname}: {name: '${uiactionname}', actiontarget: '${uiaction.getActionTarget()}', <#if uiactiondetail.isShowCaption()>caption: '<#if uiactiondetail.caption??>${uiactiondetail.caption}</#if>',</#if> disabled: false, type: '<#if uiactiondetail.getDetailType?? && uiactiondetail.getDetailType()??>${uiactiondetail.getDetailType()}</#if>', visabled: true, noprivdisplaymode: <#if uiaction.getNoPrivDisplayMode(view)??>${uiaction.getNoPrivDisplayMode(view)}</#if>, dataaccaction: '<#if uiaction.getDataAccessAction()??>${uiaction.getDataAccessAction()}</#if>', uiaction: { tag: '${uiaction.getUIActionTag()}', target: '${uiaction.getActionTarget()}' } },
</#if>
</#list>
</#if>
}
<#if ctrl.getPortletType?? && ctrl.getPortletType()?? && ctrl.getPortletType() == "TOOLBAR" >
<#assign toolbar = ctrl.getContentPSControl()/>
${P.getCtrlCode(toolbar, 'CONTROL.vue').code}
...
...
@@ -329,6 +365,20 @@ import { Environment } from '@/environments/environment';
}
}
/**
* 刷新
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(args?: any) {
<#if ctrl.getPortletType?? && ctrl.getPortletType()?? && ctrl.getPortletType() == "VIEW">
this.viewState.next({ tag: '${ctrl.getPortletPSAppView().getName()}', action: 'refresh', data: args });
</#if>
<#if ctrl.getPortletType?? && ctrl.getPortletType()?? && (ctrl.getPortletType() == "CHART" || ctrl.getPortletType() == "LIST")>
this.viewState.next({ tag: '${ctrl.getContentPSControl().getName()}', action: 'refresh', data: args });
</#if>
}
/**
* vue 生命周期
*
...
...
@@ -346,6 +396,9 @@ import { Environment } from '@/environments/environment';
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if(Object.is(tag, "all-portlet") && Object.is(action,'loadmodel')){
this.calcUIActionAuthState(data);
}
if (!Object.is(tag, this.name)) {
return;
}
...
...
@@ -398,6 +451,23 @@ import { Environment } from '@/environments/environment';
</#if>
</#if>
/**
* 计算界面行为权限
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public calcUIActionAuthState(data:any = {}) {
// 如果是操作栏,不计算权限
if(this.portletType && Object.is('actionbar', this.portletType)) {
return;
}
let _this: any = this;
let uiservice: any = _this.appUIService ? _this.appUIService : new UIService(_this.$store);
if(_this.uiactionModel){
ViewTool.calcActionItemAuthState(data,_this.uiactionModel,uiservice);
}
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
...
...
@CONTROL/面板/CONTROL-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -238,12 +238,12 @@ import CodeListService from "@/codelist/codelist-service";
/**
* 刷新
*
* @param {*} [
opt
={}]
* @param {*} [
args
={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public refresh(
opt
: any = {}) {
public refresh(
args
: any = {}) {
if (this.parentRef.refresh && this.parentRef.refresh instanceof Function) {
this.parentRef.refresh(
opt
);
this.parentRef.refresh(
args
);
}
}
...
...
@EDITOR/用户自定义/EDITOR.vue.ftl
浏览文件 @
7f637496
<#if item.render??>
${item.render.code}
<#else>
</#if>
\ No newline at end of file
@VIEW/@MACRO/VIEW_CONTENT-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -70,6 +70,23 @@
*/
public serviceStateEvent: Subscription | undefined;
/**
* 门户部件状态对象
*
* @type {*}
* @memberof ${srfclassname('${view.name}')}Base
*/
@Prop() public portletState?: any;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof ${srfclassname('${view.name}')}Base
*/
public portletStateEvent: Subscription | undefined;
/**
* 应用上下文
*
...
...
@@ -326,6 +343,16 @@
});
}
});
if(_this.portletState){
_this.portletStateEvent = _this.portletState.subscribe((res:any) =>{
if(!Object.is(res.name,'calendar-view9')){
return;
}
if(Object.is(res.action,'refresh') && _this.refresh && _this.refresh instanceof Function){
_this.refresh();
}
})
}
<#if created_block??>${created_block}</#if>
}
...
...
@@ -483,6 +510,9 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
}
})
}
if(this.portletStateEvent){
this.portletStateEvent.unsubscribe();
}
}
</#if>
</#if>
...
...
@VIEW/@MACRO/VIEW_HEADER-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -231,6 +231,21 @@ export default class ${srfclassname('${view.name}')}Base extends Vue {
</#if>
};
<#if view.getXDataPSControl?? && view.getXDataPSControl()??>
<#assign dataControl = view.getXDataPSControl()/>
/**
* 视图刷新
*
* @param {*} args
* @memberof ${srfclassname('${view.name}')}Base
*/
public refresh(args?: any): void {
const refs: any = this.$refs;
if (refs && refs.${dataControl.name}) {
refs.${dataControl.name}.refresh();
}
}
</#if>
/**
* 计数器刷新
*
...
...
@VIEW/实体数据看板视图/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -16,7 +16,7 @@ this.$forceUpdate();
return;
}
const { data: _data } = response;
this.viewState.next({ tag: 'a
pp-actionbar
', action: 'loadmodel', data:_data});
this.viewState.next({ tag: 'a
ll-portlet
', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){
...
...
@VIEW/实体数据看板视图(部件视图卡片)/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -26,7 +26,7 @@ this.$forceUpdate();
return;
}
const { data: _data } = response;
this.viewState.next({ tag: 'a
pp-actionbar
', action: 'loadmodel', data:_data});
this.viewState.next({ tag: 'a
ll-portlet
', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){
...
...
@VIEW/实体数据看板视图(部件视图)/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -26,7 +26,7 @@ this.$forceUpdate();
return;
}
const { data: _data } = response;
this.viewState.next({ tag: 'a
pp-actionbar
', action: 'loadmodel', data:_data});
this.viewState.next({ tag: 'a
ll-portlet
', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){
...
...
@VIEW/实体日历视图/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -51,19 +51,6 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
}
}
/**
* 视图刷新
*
* @param {*} $event
* @memberof ${srfclassname('${view.name}')}Base
*/
public refresh(): void {
const refs: any = this.$refs;
if (refs.calendar) {
refs.calendar.refresh();
}
}
/**
* calendar 的 beforeload 事件
*
...
...
@VIEW/应用看板视图 (卡片)/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -21,6 +21,16 @@
* @memberof ${srfclassname('${view.name}')}Base
*/
public isDefaultPage: boolean = ${view.isDefaultPage()?c};
/**
* 加载数据
*
* @type {boolean}
* @memberof ${srfclassname('${view.name}')}Base
*/
public loadModel() {
this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data: {}});
}
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
...
...
@VIEW/应用看板视图/VIEW-BASE.vue.ftl
浏览文件 @
7f637496
...
...
@@ -21,6 +21,16 @@
* @memberof ${srfclassname('${view.name}')}Base
*/
public isDefaultPage: boolean = ${view.isDefaultPage()?c};
/**
* 加载数据
*
* @type {boolean}
* @memberof ${srfclassname('${view.name}')}Base
*/
public loadModel() {
this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data: {}});
}
<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
...
...
APP/src/authservice/auth-service.ts.ftl
浏览文件 @
7f637496
...
...
@@ -2,6 +2,8 @@
TARGET=PSSYSAPP
</#ibiztemplate>
import store from '@/store';
import { Environment } from '@/environments/environment';
/**
* 实体权限服务
*
...
...
@@ -125,7 +127,13 @@ export default class AuthService {
if(!this.$store.getters['authresource/getEnablePermissionValid']) {
return true;
}
return this.$store.getters['authresource/getAuthMenu'](item);
if(Object.is(Environment.menuPermissionMode,"RT")){
return this.$store.getters['authresource/getAuthMenuWithRT'](item);
}else if(Object.is(Environment.menuPermissionMode,"RESOURCE")){
return this.$store.getters['authresource/getAuthMenuWithResource'](item);
}else{
return this.$store.getters['authresource/getAuthMenu'](item);
}
}
/**
...
...
APP/src/environments/environment.ts.ftl
浏览文件 @
7f637496
...
...
@@ -28,6 +28,8 @@ export const Environment = {
devMode: true,
// 是否开启权限认证
enablePermissionValid:false,
// 菜单权限模式,可选值:RT(RT模式),RESOURCE(资源模式),MINIX(混合模式),默认MINIX
menuPermissionMode:"MINIX",
// 项目模板地址
ProjectUrl: "http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7",
// 打开目标工具,可选参数:sln、mos
...
...
APP/src/message/%APP_MSG%/%APP_MSG%-message-base.ts.ftl
浏览文件 @
7f637496
...
...
@@ -115,10 +115,15 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/**
* 转化消息模板标题和内容
*
* @target {*} target 返回目标数据
* @param {*} context 应用上下文
* @param {*} viewparam 视图参数
* @param {*} item 源数据
*
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase
*/
public translateMessageTemp(target:any,item?:any){
public translateMessageTemp(target:any,
context:any,viewparam:any,
item?:any){
if(this.hasMessageTemp && Object.is(this.messageType,"HTML")){
Object.assign(target,{title:`<#if item.getPSSysMsgTempl()?? && item.getPSSysMsgTempl().getSubject()??>${item.getPSSysMsgTempl().getSubject()}</#if>`});
Object.assign(target,{content:`<#if item.getPSSysMsgTempl()?? && item.getPSSysMsgTempl().getContent()??>${item.getPSSysMsgTempl().getContent()}</#if>`});
...
...
@@ -134,10 +139,11 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/**
* 获取远程数据
*
* @param {*} context
* @param {*} data
* @param {boolean} [isloading]
* @param {*} context
应用上下文
* @param {*} data
视图参数
* @param {boolean} [isloading]
加载状态
* @returns {Promise<any>}
*
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase
*/
public getItems(context: any={}, data: any={}, isloading?: boolean): Promise<any> {
...
...
@@ -150,7 +156,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
promise.then((response: any) => {
if (response && response.status === 200) {
const data = response.data;
resolve(this.doItems(data));
resolve(this.doItems(data
,tempContext,tempData
));
} else {
resolve([]);
}
...
...
@@ -166,12 +172,14 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/**
* 处理数据
*
* @public
* @param {any[]} items
* @param {any[]} items 源数据
* @param {*} context 应用上下文
* @param {*} data 视图参数
* @returns {any[]}
*
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase
*/
public doItems(items: any[]): any[] {
public doItems(items: any[]
,context:any,viewparam:any
): any[] {
let _items: any[] = [];
items.forEach((item: any) => {
let itemdata:any = {
...
...
@@ -188,7 +196,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
dynamicMode:"DYNAMIC",
messageType:"<#if item.getPSSysMsgTempl()?? && item.getPSSysMsgTempl().getContentType()??>${item.getPSSysMsgTempl().getContentType()}<#else>TEXT</#if>"
};
this.translateMessageTemp(itemdata,item);
this.translateMessageTemp(itemdata,
context,viewparam,
item);
_items.push(itemdata);
});
return _items;
...
...
APP/src/uiservice/%DE_PKGPATH%/%DE_PKGPATH%-ui-service-base.ts.ftl
浏览文件 @
7f637496
...
...
@@ -346,7 +346,7 @@ ${P.getLogicCode(appdeUIAction, "LOGIC.vue").code}
this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){
<#noparse>console.warn(`当前数据对象不包含属性
${singleMainField},可能会发生错误
`);</#noparse>
<#noparse>console.warn(`当前数据对象不包含属性
「${singleMainField}」,根据「${singleMainField}」属性进行的主状态计算默认为空值
`);</#noparse>
}
})
for (let i = 0; i <= 1; i++) {
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录