提交 7f637496 编写于 作者: ibiz4j's avatar ibiz4j

合并分支 'dev' 到 'master'

Dev

查看合并请求 !14
...@@ -234,3 +234,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code} ...@@ -234,3 +234,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
}) })
} }
} }
<#if ctrl.render?? && ctrl.render.code2??>
${ctrl.render.code2}
</#if>
...@@ -3,7 +3,7 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr ...@@ -3,7 +3,7 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue'; import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs'; import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control'; import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils'; import { UIActionTool,Util, ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
<#if ctrl.getPSAppCounterRefs?? && ctrl.getPSAppCounterRefs()??> <#if ctrl.getPSAppCounterRefs?? && ctrl.getPSAppCounterRefs()??>
<#list ctrl.getPSAppCounterRefs() as singleCounterRef> <#list ctrl.getPSAppCounterRefs() as singleCounterRef>
...@@ -227,3 +227,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code} ...@@ -227,3 +227,7 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
}) })
} }
} }
<#if ctrl.render?? && ctrl.render.code2??>
${ctrl.render.code2}
</#if>
...@@ -31,6 +31,14 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi ...@@ -31,6 +31,14 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
</#if> </#if>
</#list> </#list>
/**
* 远端数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
private remoteCopyData:any = {};
/** /**
* 处理数据 * 处理数据
* *
...@@ -287,6 +295,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi ...@@ -287,6 +295,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
result = this.appEntityService.Get(Context,Data, isloading); result = this.appEntityService.Get(Context,Data, isloading);
} }
result.then((response) => { result.then((response) => {
this.setRemoteCopyData(response);
this.handleResponse(action, response); this.handleResponse(action, response);
resolve(response); resolve(response);
}).catch(response => { }).catch(response => {
...@@ -323,6 +332,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi ...@@ -323,6 +332,7 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
result = this.appEntityService.GetDraft(Context,Data, isloading); result = this.appEntityService.GetDraft(Context,Data, isloading);
} }
result.then((response) => { result.then((response) => {
this.setRemoteCopyData(response);
<#if ctrl.getControlType() != 'SEARCHFORM'> <#if ctrl.getControlType() != 'SEARCHFORM'>
response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = PrimaryKey; response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = PrimaryKey;
</#if> </#if>
...@@ -459,7 +469,26 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi ...@@ -459,7 +469,26 @@ import ${srfclassname('${_appde.getCodeName()}')}Service from '@/service/${srffi
return item; 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> <#ibizinclude>
./SERVICE_BOTTOM.ts.ftl ./SERVICE_BOTTOM.ts.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
} }
>.ivu-tabs-content { >.ivu-tabs-content {
height: calc(100% - 36px); height: calc(100% - 36px);
padding: 0px !important; padding: 4px !important;
.ivu-tabs-tabpane { .ivu-tabs-tabpane {
height: 100%; height: 100%;
} }
......
...@@ -437,7 +437,7 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -437,7 +437,7 @@ import CodeListService from "@/codelist/codelist-service";
if (!Object.is(this.name, tag)) { if (!Object.is(this.name, tag)) {
return; return;
} }
if (Object.is(action,'load')) { if (Object.is(action,'load') || Object.is(action,'refresh')) {
this.refresh(data) this.refresh(data)
} }
}); });
...@@ -497,13 +497,13 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -497,13 +497,13 @@ import CodeListService from "@/codelist/codelist-service";
/** /**
* 刷新 * 刷新
* *
* @param {*} [opt={}] * @param {*} [args={}]
* @memberof Main * @memberof Main
*/ */
public refresh(opt: any = {}) { public refresh(args?: any) {
this.curPage = 1; this.curPage = 1;
this.items = []; this.items = [];
this.load(opt); this.load(args);
} }
/** /**
...@@ -559,8 +559,18 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -559,8 +559,18 @@ import CodeListService from "@/codelist/codelist-service";
} }
this.isAddBehind = false; this.isAddBehind = false;
this.$emit('load', this.items); this.$emit('load', this.items);
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(this.isSelectFirstDefault){ 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()> <#if ctrl.isEnableGroup?? && ctrl.isEnableGroup()>
this.group(); this.group();
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<div class='search-container'> <div class='search-container'>
<i-input :search="true" <i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }" @on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -153,7 +154,16 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -153,7 +154,16 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>; public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>;
/** /**
* 搜素值 * 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/**
* 搜索值
* *
* @public * @public
* @type {(string)} * @type {(string)}
...@@ -474,7 +484,22 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -474,7 +484,22 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
${destroyed_block} ${destroyed_block}
</#if> </#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}的选中数据事件 * ${ctrl.name}的选中数据事件
* *
...@@ -484,6 +509,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -484,6 +509,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {}; let tempContext:any = {};
let tempViewParam:any = {}; let tempViewParam:any = {};
if (args.length === 0) { if (args.length === 0) {
this.calcToolbarItemState(true);
return ; return ;
} }
const arg:any = args[0]; const arg:any = args[0];
...@@ -514,6 +540,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -514,6 +540,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
} }
this.selection = {}; this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam}); Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
this.calcToolbarItemState(false);
this.$forceUpdate(); this.$forceUpdate();
} }
...@@ -523,9 +550,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -523,9 +550,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){ public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args); 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 ...@@ -534,16 +590,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){ public calcNavigationToolbarState(){
let _this: any = this; 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> <#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){ 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); ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if> </#if>
}
} }
/** /**
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<div class='search-container'> <div class='search-container'>
<i-input :search="true" <i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }" @on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -153,6 +154,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -153,6 +154,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
*/ */
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>; 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 ...@@ -476,6 +486,21 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
</#if> </#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 ...@@ -489,6 +514,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {}; let tempContext:any = {};
let tempViewParam:any = {}; let tempViewParam:any = {};
if (args.length === 0) { if (args.length === 0) {
this.calcToolbarItemState(true);
return ; return ;
} }
const arg:any = args[0]; const arg:any = args[0];
...@@ -519,6 +545,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -519,6 +545,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
} }
this.selection = {}; this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam}); Object.assign(this.selection, { view: { viewname: this.navViewName },context:tempContext,viewparam:tempViewParam});
this.calcToolbarItemState(false);
this.$forceUpdate(); this.$forceUpdate();
} }
...@@ -532,9 +559,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -532,9 +559,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void { public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void {
this.calcToolbarItemState(true);
this.$emit('load',args); 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 ...@@ -543,16 +599,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){ public calcNavigationToolbarState(){
let _this: any = this; 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> <#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){ 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); ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if> </#if>
}
} }
/** /**
......
...@@ -35,9 +35,9 @@ ${ctrl.render.code} ...@@ -35,9 +35,9 @@ ${ctrl.render.code}
</#if> </#if>
</i-content> </i-content>
<footer class="app-wizard-footer"> <footer class="app-wizard-footer">
<i-button :disabled="isDisabled('PREV')" @click="onClickPrev()" type="primary">{{$t('app.wizardPanel.back')}}</i-button> <i-button v-show="!isHidden('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 v-show="!isHidden('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('FINISH')" @click="onClickFinish()" type="primary">{{$t('app.wizardPanel.complete')}}</i-button>
</footer> </footer>
</layout> </layout>
</#if> </#if>
...@@ -302,6 +302,7 @@ ${ctrl.render.code} ...@@ -302,6 +302,7 @@ ${ctrl.render.code}
const data = response.data; const data = response.data;
this.$Notice.success({ title: this.$t('app.commonWords.success') as string, desc: this.$t('app.commonWords.startsuccess') as string }); this.$Notice.success({ title: this.$t('app.commonWords.success') as string, desc: this.$t('app.commonWords.startsuccess') as string });
this.$emit("finish", data); this.$emit("finish", data);
AppCenterService.notifyMessage({name:"${ctrl.getPSAppDataEntity().getCodeName()}",action:'appRefresh',data:data});
} }
}).catch((response: any) => { }).catch((response: any) => {
if (response && response.status === 401) { if (response && response.status === 401) {
...@@ -447,12 +448,12 @@ ${ctrl.render.code} ...@@ -447,12 +448,12 @@ ${ctrl.render.code}
} }
/** /**
* 是否禁用 * 是否隐藏
* *
* @param {string} type * @param {string} type
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public isDisabled(type: string) { public isHidden(type: string) {
const actions: Array<string> = this.stepActions[this.activeForm].actions; const actions: Array<string> = this.stepActions[this.activeForm].actions;
if(actions && actions.indexOf(type) < 0) { if(actions && actions.indexOf(type) < 0) {
return true; return true;
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<#else> <#else>
<#assign ModelsName = 'toolBarModels' /> <#assign ModelsName = 'toolBarModels' />
</#if> </#if>
<#if item.render??>
${item.render.code}
<#else>
<#assign deuiaction=item.getPSUIAction()> <#assign deuiaction=item.getPSUIAction()>
<#if item.getTooltip()?? && item.getTooltip() != ''> <#if item.getTooltip()?? && item.getTooltip() != ''>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
...@@ -46,4 +49,5 @@ ...@@ -46,4 +49,5 @@
</#if> </#if>
</#if> </#if>
</#if> </#if>
</#if>
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<#else> <#else>
<#assign ModelsName = 'toolBarModels' /> <#assign ModelsName = 'toolBarModels' />
</#if> </#if>
<#if item.render??>
${item.render.code}
<#else>
<dropdown v-show="${ModelsName}.${item.name}.visabled" trigger='click'> <dropdown v-show="${ModelsName}.${item.name}.visabled" trigger='click'>
<#if item.getTooltip()?? && item.getTooltip() != ''> <#if item.getTooltip()?? && item.getTooltip() != ''>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
...@@ -37,4 +40,5 @@ ...@@ -37,4 +40,5 @@
</#list> </#list>
</dropdown-menu> </dropdown-menu>
</#if> </#if>
</dropdown> </dropdown>
\ No newline at end of file </#if>
\ No newline at end of file
<span class='seperator'>|</span> <#if item.render??>
\ No newline at end of file ${item.render.code}
<#else>
<span class='seperator'>|</span>
</#if>
\ No newline at end of file
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
<#assign ModelsName = 'toolBarModels' /> <#assign ModelsName = 'toolBarModels' />
</#if> </#if>
<div class='toolbar-container'> <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> <#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"> <template v-for="item in containerModel.wflinks">
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
...@@ -21,4 +24,5 @@ ...@@ -21,4 +24,5 @@
</@ibizindent> </@ibizindent>
</#list> </#list>
</#if> </#if>
</#if>
</div> </div>
\ No newline at end of file
...@@ -298,9 +298,9 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; ...@@ -298,9 +298,9 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
*/ */
public createDefault(){ public createDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t> <#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()??><#t> <#if formdetail.getCreateDV?? && formdetail.getCreateDV()?? && formdetail.getCreateDV() !=""><#t>
<#if !(formdetail.getCreateDV() == '') || formdetail.getCreateDVT() == 'CURTIME'><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) { if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) {
<#if !(formdetail.getCreateDVT() == '')><#t>
<#-- 网页请求 --> <#-- 网页请求 -->
<#if formdetail.getCreateDVT() == 'CONTEXT'> <#if formdetail.getCreateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}']; this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}'];
...@@ -319,13 +319,16 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; ...@@ -319,13 +319,16 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
<#-- 当前时间 --> <#-- 当前时间 -->
<#elseif formdetail.getCreateDVT() == 'CURTIME'> <#elseif formdetail.getCreateDVT() == 'CURTIME'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date()); this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date());
<#else> <#-- 数据对象属性 -->
<#-- 默认值 --> <#elseif formdetail.getCreateDVT() == 'PARAM'>
<#assign datatype=srfjavatype(formdetail.getStdDataType())> this.data['${formdetail.getCodeName()?lower_case}'] = this.service.getRemoteCopyData().${formdetail.getCreateDV()}?this.service.getRemoteCopyData().${formdetail.getCreateDV()}:null;
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>
<#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> </#if>
</#list> </#list>
} }
......
...@@ -158,6 +158,15 @@ ...@@ -158,6 +158,15 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public created(): void { public created(): void {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public afterCreated(){
if (this.viewState) { if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) { if (!Object.is(tag, this.name)) {
...@@ -181,6 +190,15 @@ ...@@ -181,6 +190,15 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public destroyed() { public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public afterDestroy() {
if (this.viewStateEvent) { if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe(); this.viewStateEvent.unsubscribe();
} }
......
...@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data);
} }
if (Object.is('refresh', action)) {
this.refresh(data);
}
}); });
} }
} }
...@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
*/ */
public chartBaseOPtion:any = {<#if ctrl.getBaseOptionJOString()??>${ctrl.getBaseOptionJOString()}</#if>}; 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 ...@@ -268,11 +278,11 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
/** /**
* 刷新 * 刷新
* *
* @param {*} [opt={}] * @param {*} [args={}]
* @memberof ${srfclassname('${ctrl.name}')}Base * @memberof ${srfclassname('${ctrl.name}')}Base
*/ */
public refresh(opt: any = {}) { public refresh(args?: any) {
this.load(opt); this.load(args);
} }
/** /**
...@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
this.myChart = echarts.init(element); this.myChart = echarts.init(element);
} }
let _chartOption = this.handleChartOPtion(codelist); let _chartOption = this.handleChartOPtion(codelist);
console.log(_chartOption); this.chartRenderOption = {..._chartOption};
this.myChart.setOption(_chartOption); this.myChart.setOption(_chartOption);
this.myChart.resize(); this.myChart.resize();
} }
......
...@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -79,6 +79,9 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data);
} }
if (Object.is('refresh', action)) {
this.refresh(data);
}
}); });
} }
} }
...@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -175,6 +178,13 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
*/ */
public chartBaseOPtion:any = {<#if ctrl.getBaseOptionJOString()??>${ctrl.getBaseOptionJOString()}</#if>}; 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 ...@@ -268,11 +278,11 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
/** /**
* 刷新 * 刷新
* *
* @param {*} [opt={}] * @param {*} [args={}]
* @memberof ${srfclassname('${ctrl.name}')}Base * @memberof ${srfclassname('${ctrl.name}')}Base
*/ */
public refresh(opt: any = {}) { public refresh(args?: any) {
this.load(opt); this.load(args);
} }
/** /**
...@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char ...@@ -318,7 +328,7 @@ import { ChartDataSetField,ChartLineSeries,ChartFunnelSeries,ChartPieSeries,Char
this.myChart = echarts.init(element); this.myChart = echarts.init(element);
} }
let _chartOption = this.handleChartOPtion(codelist); let _chartOption = this.handleChartOPtion(codelist);
console.log(_chartOption); this.chartRenderOption = {..._chartOption};
this.myChart.setOption(_chartOption); this.myChart.setOption(_chartOption);
this.myChart.resize(); this.myChart.resize();
} }
......
...@@ -548,12 +548,12 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -548,12 +548,12 @@ import CodeListService from "@/codelist/codelist-service";
/** /**
* 刷新 * 刷新
* *
* @param {*} [opt={}] * @param {*} [args={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(opt: any = {}) { public refresh(args?: any) {
this.curPage = 1; this.curPage = 1;
this.load(opt, true); this.load(args, true);
} }
/** /**
...@@ -638,8 +638,18 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -638,8 +638,18 @@ import CodeListService from "@/codelist/codelist-service";
} }
this.isAddBehind = false; this.isAddBehind = false;
this.$emit('load', this.items); this.$emit('load', this.items);
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(this.isSelectFirstDefault){ 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()> <#if ctrl.isEnableGroup?? && ctrl.isEnableGroup()>
this.group(); this.group();
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<div class='search-container'> <div class='search-container'>
<i-input :search="true" <i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }" @on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -126,6 +127,15 @@ ...@@ -126,6 +127,15 @@
*/ */
public ctrlHeight: number = <#if ctrl.getHeight()??>${ctrl.getHeight()?c}<#else>0</#if>; 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 @@ ...@@ -357,7 +367,22 @@
${destroyed_block} ${destroyed_block}
</#if> </#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}的选中数据事件 * ${ctrl.name}的选中数据事件
* *
...@@ -367,6 +392,7 @@ ...@@ -367,6 +392,7 @@
let tempContext:any = {}; let tempContext:any = {};
let tempViewParam:any = {}; let tempViewParam:any = {};
if (args.length === 0) { if (args.length === 0) {
this.calcToolbarItemState(true);
return ; return ;
} }
const arg:any = args[0]; const arg:any = args[0];
...@@ -402,6 +428,7 @@ ...@@ -402,6 +428,7 @@
} }
this.selection = {}; this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName[arg.itemType] }, context:tempContext,viewparam:tempViewParam }); Object.assign(this.selection, { view: { viewname: this.navViewName[arg.itemType] }, context:tempContext,viewparam:tempViewParam });
this.calcToolbarItemState(false);
this.$emit('selectionchange',args); this.$emit('selectionchange',args);
this.$forceUpdate(); this.$forceUpdate();
} }
...@@ -412,9 +439,38 @@ ...@@ -412,9 +439,38 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){ public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args); 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 @@ ...@@ -423,16 +479,14 @@
public calcNavigationToolbarState(){ public calcNavigationToolbarState(){
let _this: any = this; 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> <#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){ 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); ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if> </#if>
}
} }
/** /**
......
...@@ -640,7 +640,7 @@ FullCalendar, ...@@ -640,7 +640,7 @@ FullCalendar,
* *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh() { public refresh(args?:any) {
if(Object.is(this.calendarType,"TIMELINE")){ if(Object.is(this.calendarType,"TIMELINE")){
this.searchEvents(); this.searchEvents();
} else { } else {
......
...@@ -241,7 +241,7 @@ ...@@ -241,7 +241,7 @@
* *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh() { public refresh(args?:any) {
this.load(); this.load();
} }
......
...@@ -556,10 +556,10 @@ import UIService from '@/uiservice/ui-service'; ...@@ -556,10 +556,10 @@ import UIService from '@/uiservice/ui-service';
/** /**
* 刷新功能 * 刷新功能
* *
* @param {any[]} args * @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(args: any[]): void { public refresh(args?: any): void {
this.refresh_all(); this.refresh_all();
<#-- if (Object.keys(this.currentselectedNode).length === 0) { <#-- if (Object.keys(this.currentselectedNode).length === 0) {
return; return;
...@@ -648,10 +648,15 @@ import UIService from '@/uiservice/ui-service'; ...@@ -648,10 +648,15 @@ import UIService from '@/uiservice/ui-service';
return; return;
} }
let defaultData: any; let defaultData: any;
// 导航中选中第一条配置的默认选中,没有选中第一条 //在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(this.isSelectFirstDefault){ if(this.isSelectFirstDefault){
if(this.isSingleSelect){ 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(index === -1) {
if(isRoot){ if(isRoot){
index = 0; index = 0;
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<div class='search-content'> <div class='search-content'>
<i-input :search="true" <i-input :search="true"
@on-change="($event) => { this.srfnodefilter = $event.target.value; }" @on-change="($event) => { this.srfnodefilter = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -56,6 +57,10 @@ ...@@ -56,6 +57,10 @@
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
<#ibizinclude>
../@MACRO/FUNC/MACRO.ftl
</#ibizinclude>
<#if view.getPSAppViewLogics?? && view.getPSAppViewLogics()??> <#if view.getPSAppViewLogics?? && view.getPSAppViewLogics()??>
<#list view.getPSAppViewLogics() as logic> <#list view.getPSAppViewLogics() as logic>
<#if logic.getPFLogicCodeType() == 'APP_NEWDATA'> <#if logic.getPFLogicCodeType() == 'APP_NEWDATA'>
...@@ -123,6 +128,15 @@ ...@@ -123,6 +128,15 @@
*/ */
public ctrlWidth:number = <#if ctrl.getWidth()??>${ctrl.getWidth()?c}<#else>0</#if>; 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 @@ ...@@ -208,15 +222,18 @@
*/ */
public ${ctrl.name}_selectionchange(args: any [], tag?: string, $event2?: any): void { public ${ctrl.name}_selectionchange(args: any [], tag?: string, $event2?: any): void {
if (args.length === 0) { if (args.length === 0) {
this.calcToolbarItemState(true);
return ; return ;
} }
const arg:any = args[0]; const arg:any = args[0];
if (!arg.id) { if (!arg.id) {
this.calcToolbarItemState(true);
return; return;
} }
const nodetype = arg.id.split(';')[0]; const nodetype = arg.id.split(';')[0];
const refview = this.getExpItemView({ nodetype: nodetype }); const refview = this.getExpItemView({ nodetype: nodetype });
if (!refview) { if (!refview) {
this.calcToolbarItemState(true);
return; return;
} }
let tempViewparam:any = {}; let tempViewparam:any = {};
...@@ -260,6 +277,7 @@ ...@@ -260,6 +277,7 @@
this.selection = {}; this.selection = {};
Object.assign(this.selection, { view: { viewname: refview.viewname } }); Object.assign(this.selection, { view: { viewname: refview.viewname } });
Object.assign(this.selection,{'viewparam':tempViewparam,'context':tempContext}); Object.assign(this.selection,{'viewparam':tempViewparam,'context':tempContext});
this.calcToolbarItemState(false);
this.$forceUpdate(); this.$forceUpdate();
} }
...@@ -273,6 +291,7 @@ ...@@ -273,6 +291,7 @@
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void { public ${ctrl.name}_load(args: any[], tag?: string, $event2?: any): void {
this.calcToolbarItemState(true);
this.$emit('load',args); this.$emit('load',args);
} }
...@@ -414,6 +433,34 @@ ...@@ -414,6 +433,34 @@
this.$emit('load', $event); 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 @@ ...@@ -422,16 +469,14 @@
public calcNavigationToolbarState(){ public calcNavigationToolbarState(){
let _this: any = this; 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> <#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){ 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); ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if> </#if>
}
} }
<#if ctrl.getPSControls()??> <#if ctrl.getPSControls()??>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<div class='search-content'> <div class='search-content'>
<i-input :search="true" <i-input :search="true"
@on-change="($event: any) => { this.srffilter = $event.target.value; }" @on-change="($event: any) => { this.srffilter = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -51,6 +52,10 @@ ...@@ -51,6 +52,10 @@
</template> </template>
<#ibizinclude> <#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/FUNC/MACRO.ftl
</#ibizinclude> </#ibizinclude>
/** /**
...@@ -82,6 +87,14 @@ ...@@ -82,6 +87,14 @@
*/ */
public selection: any = {}; public selection: any = {};
/**
* 可搜索字段名称
*
*
* @type {(string)}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public placeholder="<@getQuickSearchPlaceholder view />";
/** /**
* 过滤值 * 过滤值
......
...@@ -315,7 +315,7 @@ GanttElastic, ...@@ -315,7 +315,7 @@ GanttElastic,
* *
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh() { public refresh(args?: any) {
this.load(); this.load();
} }
......
...@@ -165,6 +165,29 @@ draggable, ...@@ -165,6 +165,29 @@ draggable,
*/ */
@Prop() public isSingleSelect?: boolean; @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, ...@@ -346,9 +369,9 @@ draggable,
* @param {*} [opt={}] * @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(opt: any = {}) { public refresh(args?: any) {
this.curPage = 1; this.curPage = 1;
this.load(opt, true); this.load(args, true);
} }
/** /**
......
...@@ -9,6 +9,16 @@ ...@@ -9,6 +9,16 @@
<#if view.getViewType() == 'DEDATAVIEWEXPVIEW'> <#if view.getViewType() == 'DEDATAVIEWEXPVIEW'>
:isSelectFirstDefault="true" :isSelectFirstDefault="true"
</#if> </#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> </#assign>
<#ibizinclude> <#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl ../@MACRO/HTML/DEFAULT.html.ftl
......
...@@ -261,10 +261,8 @@ import { Environment } from '@/environments/environment'; ...@@ -261,10 +261,8 @@ import { Environment } from '@/environments/environment';
public rules() :any { public rules() :any {
return { return {
<#list ctrl.getAllPSDEFormDetails() as formdetail> <#list ctrl.getAllPSDEFormDetails() as formdetail>
<#if formdetail.getDetailType?? && formdetail.getDetailType() == 'FORMITEM'> <#if formdetail.getDetailType?? && formdetail.getDetailType() == 'FORMITEM' && formdetail.getEditorType() != "HIDDEN">
${formdetail.getName()}: [ ${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: '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' }, { 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()??> <#if formdetail.getEditorType?? && formdetail.getEditorType()?? && formdetail.isAllowEmpty?? && formdetail.isAllowEmpty()??>
...@@ -355,32 +353,38 @@ import { Environment } from '@/environments/environment'; ...@@ -355,32 +353,38 @@ import { Environment } from '@/environments/environment';
falg.isPast = val; 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)]:""; let dataValue = item.deName?this.data[this.service.getItemNameByDeName(item.deName)]:"";
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(dataValue,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.data,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(dataValue,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.data,item.isKeyCond));
falg.infoMessage = item.ruleInfo; falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
} }
// 数值范围 // 数值范围
if(item.type == 'VALUERANGE2'){ if(item.type == 'VALUERANGE2'){
startOp( !this.$verify.checkFieldValueRangeRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond)); startOp( !this.$verify.checkFieldValueRangeRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo; falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
} }
// 正则式 // 正则式
if (item.type == "REGEX") { if (item.type == "REGEX") {
startOp(!this.$verify.checkFieldRegExRule(dataValue,item.regExCode,item.ruleInfo,item.isKeyCond)); startOp(!this.$verify.checkFieldRegExRule(dataValue,item.regExCode,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo; falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
} }
// 长度 // 长度
if (item.type == "STRINGLENGTH") { if (item.type == "STRINGLENGTH") {
startOp(!this.$verify.checkFieldStringLengthRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond)); startOp(!this.$verify.checkFieldStringLengthRule(dataValue,item.minValue,item.isIncludeMinValue,item.maxValue,item.isIncludeMaxValue,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo; falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
} }
// 系统值规则 // 系统值规则
if(item.type == "SYSVALUERULE") { if(item.type == "SYSVALUERULE") {
startOp(!this.$verify.checkFieldSysValueRule(dataValue,item.sysRule.regExCode,item.ruleInfo,item.isKeyCond)); startOp(!this.$verify.checkFieldSysValueRule(dataValue,item.sysRule.regExCode,item.ruleInfo,item.isKeyCond));
falg.infoMessage = item.ruleInfo; falg.infoMessage = item.ruleInfo;
if(!falg.isPast) return falg;
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
...@@ -388,9 +392,9 @@ import { Environment } from '@/environments/environment'; ...@@ -388,9 +392,9 @@ import { Environment } from '@/environments/environment';
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
} if(!falg.isPast) return falg;
}
}); }
if(!falg.hasOwnProperty("isPast")){ if(!falg.hasOwnProperty("isPast")){
falg.isPast = true; falg.isPast = true;
} }
...@@ -1000,12 +1004,12 @@ import { Environment } from '@/environments/environment'; ...@@ -1000,12 +1004,12 @@ import { Environment } from '@/environments/environment';
/** /**
* 部件刷新 * 部件刷新
* *
* @param {any[]} args * @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(args: any[]): void { public refresh(args?: any): void {
let arg: any = {}; let arg: any = {};
Object.assign(arg,args[0]); Object.assign(arg,args?args[0]:{});
if (this.data.srfkey && !Object.is(this.data.srfkey, '')) { if (this.data.srfkey && !Object.is(this.data.srfkey, '')) {
Object.assign(arg, { srfkey: this.data.srfkey }); Object.assign(arg, { srfkey: this.data.srfkey });
this.load(arg); this.load(arg);
...@@ -1706,9 +1710,9 @@ import { Environment } from '@/environments/environment'; ...@@ -1706,9 +1710,9 @@ import { Environment } from '@/environments/environment';
*/ */
public createDefault(){ public createDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t> <#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getCreateDV?? && formdetail.getCreateDV()??><#t> <#if formdetail.getCreateDV?? && formdetail.getCreateDV()?? && formdetail.getCreateDV() !=""><#t>
<#if !(formdetail.getCreateDV() == '') || formdetail.getCreateDVT() == 'CURTIME'><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) { if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}')) {
<#if !(formdetail.getCreateDVT() == '')><#t>
<#-- 网页请求 --> <#-- 网页请求 -->
<#if formdetail.getCreateDVT() == 'CONTEXT'> <#if formdetail.getCreateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}']; this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getCreateDV()}'];
...@@ -1727,13 +1731,16 @@ import { Environment } from '@/environments/environment'; ...@@ -1727,13 +1731,16 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 --> <#-- 当前时间 -->
<#elseif formdetail.getCreateDVT() == 'CURTIME'> <#elseif formdetail.getCreateDVT() == 'CURTIME'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date()); 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())> <#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>; 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>
}
</#if> </#if>
</#list> </#list>
} }
...@@ -1744,9 +1751,9 @@ import { Environment } from '@/environments/environment'; ...@@ -1744,9 +1751,9 @@ import { Environment } from '@/environments/environment';
*/ */
public updateDefault(){ public updateDefault(){
<#list ctrl.getAllPSDEFormDetails() as formdetail><#t> <#list ctrl.getAllPSDEFormDetails() as formdetail><#t>
<#if formdetail.getUpdateDV?? && formdetail.getUpdateDV()??><#t> <#if formdetail.getUpdateDV?? && formdetail.getUpdateDV()?? && formdetail.getUpdateDV() != ""><#t>
<#if !(formdetail.getUpdateDVT() == '')><#t>
if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}') && !this.data.${formdetail.getCodeName()?lower_case}) { if (this.data.hasOwnProperty('${formdetail.getCodeName()?lower_case}') && !this.data.${formdetail.getCodeName()?lower_case}) {
<#if !(formdetail.getUpdateDVT() == '')><#t>
<#-- 网页请求 --> <#-- 网页请求 -->
<#if formdetail.getUpdateDVT() == 'CONTEXT'> <#if formdetail.getUpdateDVT() == 'CONTEXT'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getUpdateDV()}']; this.data['${formdetail.getCodeName()?lower_case}'] = this.viewparams['${formdetail.getUpdateDV()}'];
...@@ -1762,6 +1769,13 @@ import { Environment } from '@/environments/environment'; ...@@ -1762,6 +1769,13 @@ import { Environment } from '@/environments/environment';
<#-- 当前操作用户(编号) --> <#-- 当前操作用户(编号) -->
<#elseif formdetail.getUpdateDVT() == 'OPERATOR'> <#elseif formdetail.getUpdateDVT() == 'OPERATOR'>
this.data['${formdetail.getCodeName()?lower_case}'] = this.context['srfuserid']; 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> <#else>
<#-- 默认值 --> <#-- 默认值 -->
<#assign datatype=srfjavatype(formdetail.getStdDataType())> <#assign datatype=srfjavatype(formdetail.getStdDataType())>
...@@ -1769,7 +1783,6 @@ import { Environment } from '@/environments/environment'; ...@@ -1769,7 +1783,6 @@ import { Environment } from '@/environments/environment';
</#if> </#if>
} }
</#if> </#if>
</#if>
</#list> </#list>
} }
......
...@@ -495,10 +495,10 @@ import { Environment } from '@/environments/environment'; ...@@ -495,10 +495,10 @@ import { Environment } from '@/environments/environment';
/** /**
* 部件刷新 * 部件刷新
* *
* @param {any[]} args * @param {any} args
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(args: any[]): void { public refresh(args?: any): void {
this.load(); this.load();
} }
...@@ -752,7 +752,7 @@ import { Environment } from '@/environments/environment'; ...@@ -752,7 +752,7 @@ import { Environment } from '@/environments/environment';
this.totalrow = response.total; this.totalrow = response.total;
this.items = JSON.parse(JSON.stringify(data)); this.items = JSON.parse(JSON.stringify(data));
// 清空selections,gridItemsModel // 清空selections,gridItemsModel
this.selections = []; //this.selections = [];
this.gridItemsModel = []; this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())}); this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{ this.items.forEach((item:any)=>{
...@@ -762,8 +762,18 @@ import { Environment } from '@/environments/environment'; ...@@ -762,8 +762,18 @@ import { Environment } from '@/environments/environment';
// 设置默认选中 // 设置默认选中
let _this = this; let _this = this;
setTimeout(() => { setTimeout(() => {
//在导航视图中,如已有选中数据,则右侧展开已选中数据的视图,如无选中数据则默认选中第一条
if(_this.isSelectFirstDefault){ 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){ if(_this.selectedData){
const refs: any = _this.$refs; const refs: any = _this.$refs;
...@@ -2036,7 +2046,7 @@ import { Environment } from '@/environments/environment'; ...@@ -2036,7 +2046,7 @@ import { Environment } from '@/environments/environment';
<#assign itemUpdate=editItem.getPSDEGridEditItemUpdate()/> <#assign itemUpdate=editItem.getPSDEGridEditItemUpdate()/>
if(Object.is(property, '${editItem.name}')){ 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>]; 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> </#if>
</#list> </#list>
...@@ -2163,9 +2173,9 @@ import { Environment } from '@/environments/environment'; ...@@ -2163,9 +2173,9 @@ import { Environment } from '@/environments/environment';
*/ */
public createDefault(row: any){ public createDefault(row: any){
<#list ctrl.getPSDEGridEditItems() as editItem><#t> <#list ctrl.getPSDEGridEditItems() as editItem><#t>
<#if editItem.getCreateDV?? && editItem.getCreateDV()??><#t> <#if editItem.getCreateDV?? && editItem.getCreateDV()?? && editItem.getCreateDV() !=""><#t>
<#if !(editItem.getCreateDV() == '') || editItem.getCreateDVT() == 'CURTIME'><#t>
if (row.hasOwnProperty('${editItem.getCodeName()?lower_case}')) { if (row.hasOwnProperty('${editItem.getCodeName()?lower_case}')) {
<#if !(editItem.getCreateDVT() == '')><#t>
<#-- 网页请求 --> <#-- 网页请求 -->
<#if editItem.getCreateDVT() == 'CONTEXT'> <#if editItem.getCreateDVT() == 'CONTEXT'>
row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getCreateDV()}']; row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getCreateDV()}'];
...@@ -2184,13 +2194,16 @@ import { Environment } from '@/environments/environment'; ...@@ -2184,13 +2194,16 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 --> <#-- 当前时间 -->
<#elseif editItem.getCreateDVT() == 'CURTIME'> <#elseif editItem.getCreateDVT() == 'CURTIME'>
row['${editItem.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date()); 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())> <#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>; 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>
}
</#if> </#if>
</#list> </#list>
} }
...@@ -2202,9 +2215,9 @@ import { Environment } from '@/environments/environment'; ...@@ -2202,9 +2215,9 @@ import { Environment } from '@/environments/environment';
*/ */
public updateDefault(row: any){ public updateDefault(row: any){
<#list ctrl.getPSDEGridEditItems() as editItem><#t> <#list ctrl.getPSDEGridEditItems() as editItem><#t>
<#if editItem.getUpdateDV?? && editItem.getUpdateDV()??><#t> <#if editItem.getUpdateDV?? && 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 (row.hasOwnProperty('${editItem.getCodeName()?lower_case}') && !row.${editItem.getCodeName()?lower_case} && !row.hasUpdated) { <#if !(editItem.getUpdateDVT() == '')><#t>
<#-- 网页请求 --> <#-- 网页请求 -->
<#if editItem.getUpdateDVT() == 'CONTEXT'> <#if editItem.getUpdateDVT() == 'CONTEXT'>
row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getUpdateDV()}']; row['${editItem.getCodeName()?lower_case}'] = this.viewparams['${editItem.getUpdateDV()}'];
...@@ -2223,17 +2236,47 @@ import { Environment } from '@/environments/environment'; ...@@ -2223,17 +2236,47 @@ import { Environment } from '@/environments/environment';
<#-- 当前时间 --> <#-- 当前时间 -->
<#elseif editItem.getUpdateDVT() == 'CURTIME'> <#elseif editItem.getUpdateDVT() == 'CURTIME'>
row['${editItem.getCodeName()?lower_case}'] = this.$util.dateFormat(new Date()); 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())> <#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>; 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>
}
</#if> </#if>
</#list> </#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;
}
}
/** /**
* 校验属性值规则 * 校验属性值规则
* *
......
...@@ -24,7 +24,15 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi ...@@ -24,7 +24,15 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
* @type {*} * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service * @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> <#list ctrl.getPSDEGridEditItems() as deItem>
<#if deItem.getPSEditor()?? && deItem.getPSEditor().getPSAppDataEntity?? && deItem.getPSEditor().getPSAppDataEntity()??> <#if deItem.getPSEditor()?? && deItem.getPSEditor().getPSAppDataEntity?? && deItem.getPSEditor().getPSAppDataEntity()??>
...@@ -259,7 +267,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi ...@@ -259,7 +267,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
result =_appEntityService.FetchDefault(Context,Data, isloading); result =_appEntityService.FetchDefault(Context,Data, isloading);
} }
result.then((response) => { result.then((response) => {
this.copynativeData = Util.deepCopy(response.data); this.setCopynativeData(response.data);
this.handleResponse(action, response); this.handleResponse(action, response);
resolve(response); resolve(response);
}).catch(response => { }).catch(response => {
...@@ -343,6 +351,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi ...@@ -343,6 +351,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = Util.createUUID(); response.data.${appde.getKeyPSAppDEField().getCodeName()?lower_case} = Util.createUUID();
</#if> </#if>
} }
this.setRemoteCopyData(response);
this.handleResponse(action, response, true); this.handleResponse(action, response, true);
resolve(response); resolve(response);
}).catch(response => { }).catch(response => {
...@@ -540,7 +549,46 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi ...@@ -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> <#ibizinclude>
../@MACRO/SERVICE/SERVICE_BOTTOM.ts.ftl ../@MACRO/SERVICE/SERVICE_BOTTOM.ts.ftl
</#ibizinclude> </#ibizinclude>
\ No newline at end of file
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<div class='search-container'> <div class='search-container'>
<i-input :search="true" <i-input :search="true"
@on-change="($event) => { this.searchText = $event.target.value; }" @on-change="($event) => { this.searchText = $event.target.value; }"
:placeholder="placeholder"
@on-search="onSearch"> @on-search="onSearch">
</i-input> </i-input>
</div> </div>
...@@ -160,6 +161,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -160,6 +161,15 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
*/ */
public selection: any = {}; 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 ...@@ -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}的选中数据事件 * ${ctrl.name}的选中数据事件
* *
...@@ -490,6 +515,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -490,6 +515,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
let tempContext:any = {}; let tempContext:any = {};
let tempViewParam:any = {}; let tempViewParam:any = {};
if (args.length === 0) { if (args.length === 0) {
this.calcToolbarItemState(true);
return ; return ;
} }
const arg:any = args[0]; const arg:any = args[0];
...@@ -520,6 +546,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -520,6 +546,7 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
} }
this.selection = {}; this.selection = {};
Object.assign(this.selection, { view: { viewname: this.navViewName }, context:tempContext,viewparam:tempViewParam }); Object.assign(this.selection, { view: { viewname: this.navViewName }, context:tempContext,viewparam:tempViewParam });
this.calcToolbarItemState(false);
this.$forceUpdate(); this.$forceUpdate();
} }
...@@ -529,9 +556,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -529,9 +556,38 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){ public ${ctrl.name}_load(args:any, tag?: string, $event2?: any){
this.calcToolbarItemState(true);
this.$emit('load',args); 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 ...@@ -540,16 +596,14 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co
public calcNavigationToolbarState(){ public calcNavigationToolbarState(){
let _this: any = this; 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> <#assign ModelsName>${ctrl.getCodeName()?lower_case}_toolbarModels</#assign>
if(_this.${ModelsName}){ 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); ViewTool.calcActionItemAuthState({},_this.${ModelsName},curUIService);
}
</#if>
</#if> </#if>
}
} }
<#ibizinclude> <#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl ../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??> <#if view.getPSControls()??>
<#list view.getPSControls() as ctrl> <#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if> </#if>
</#list> </#list>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??> <#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl> <#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if> </#if>
</#list> </#list>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl ./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -14,11 +13,20 @@ ...@@ -14,11 +13,20 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('form')> <#if view.hasPSControl('form')>
<@ibizindent blank=8> <@ibizindent blank=8>
${P.getCtrlCode('form', 'CONTROL.html').code} ${P.getCtrlCode('form', 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -26,6 +34,5 @@ ${P.getCtrlCode('form', 'CONTROL.html').code} ...@@ -26,6 +34,5 @@ ${P.getCtrlCode('form', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl ./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -22,11 +21,20 @@ ...@@ -22,11 +21,20 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('drtab')> <#if view.hasPSControl('drtab')>
<@ibizindent blank=8> <@ibizindent blank=8>
${P.getCtrlCode('drtab', 'CONTROL.html').code} ${P.getCtrlCode('drtab', 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -34,6 +42,5 @@ ...@@ -34,6 +42,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
...@@ -10,6 +10,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code} ...@@ -10,6 +10,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')> <#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code} ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#if> </#if>
...@@ -48,6 +55,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code} ...@@ -48,6 +55,13 @@ ${P.getCtrlCode('searchbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')> <#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code} ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#if> </#if>
...@@ -61,14 +75,14 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code} ...@@ -61,14 +75,14 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
./VIEW_CAPTION.vue.ftl ./VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
./View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'> <div class='content-container'>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
./View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<#-- BEGIN:视图内容 --> <#-- BEGIN:视图内容 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -76,6 +90,7 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code} ...@@ -76,6 +90,7 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图内容 --> <#-- END:视图内容 -->
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -83,6 +98,5 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code} ...@@ -83,6 +98,5 @@ ${P.getCtrlCode('grid', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
<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
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
<#assign viewMsgGroup = view.getPSViewMsgGroup()/> <#assign viewMsgGroup = view.getPSViewMsgGroup()/>
<#compress> <#compress>
<#if viewMsgGroup.getCodeName()??> <#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> <#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> </#if>
</#compress> </#compress>
</#if> </#if>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
<#assign viewMsgGroup = view.getPSViewMsgGroup()/> <#assign viewMsgGroup = view.getPSViewMsgGroup()/>
<#compress> <#compress>
<#if viewMsgGroup.getCodeName()??> <#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> <#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> </#if>
</#compress> </#compress>
</#if> </#if>
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
./VIEW_CAPTION_DATAINFO.vue.ftl ./VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -14,6 +13,14 @@ ...@@ -14,6 +13,14 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
./View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#if view.hasPSControl('wizardpanel')> <#if view.hasPSControl('wizardpanel')>
${P.getCtrlCode('wizardpanel', 'CONTROL.html').code} ${P.getCtrlCode('wizardpanel', 'CONTROL.html').code}
...@@ -22,6 +29,7 @@ ${P.getCtrlCode('wizardpanel', 'CONTROL.html').code} ...@@ -22,6 +29,7 @@ ${P.getCtrlCode('wizardpanel', 'CONTROL.html').code}
${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code} ${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code}
</#if> </#if>
</@ibizindent> </@ibizindent>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -29,6 +37,5 @@ ${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code} ...@@ -29,6 +37,5 @@ ${P.getCtrlCode('statewizardpanel', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -5,16 +5,19 @@ ...@@ -5,16 +5,19 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class='content-container'>
<#ibizinclude> <#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl ../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class='content-container'>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
<#if view.hasPSControl('tabexppanel')> <#if view.hasPSControl('tabexppanel')>
${P.getCtrlCode('tabexppanel', 'CONTROL.html').code} ${P.getCtrlCode('tabexppanel', 'CONTROL.html').code}
</#if> </#if>
</div>
<#ibizinclude> <#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl ../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
.detabsearchview{ .detabsearchview{
.toolbars-container{ .toolbars-container{
margin-bottom: 6px; margin-bottom: 6px;
overflow:hidden;
.tab-panel-group{ .tab-panel-group{
float: right; float: right;
.el-radio-button__inner{ .el-radio-button__inner{
......
...@@ -31,10 +31,31 @@ ...@@ -31,10 +31,31 @@
</el-radio-group> </el-radio-group>
</#if> </#if>
</div> </div>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'> <div class='content-container'>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tabexppanel')> <#if view.hasPSControl('tabexppanel')>
${P.getCtrlCode('tabexppanel', 'CONTROL.html').code} ${P.getCtrlCode('tabexppanel', 'CONTROL.html').code}
</#if> </#if>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -14,16 +13,24 @@ ...@@ -14,16 +13,24 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('listexpbar')> <#if view.hasPSControl('listexpbar')>
${P.getCtrlCode('listexpbar', 'CONTROL.html').code} ${P.getCtrlCode('listexpbar', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图底部视图消息 --> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl ../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -15,6 +14,7 @@ ...@@ -15,6 +14,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??> <#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() /> <#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...@@ -49,6 +49,13 @@ ...@@ -49,6 +49,13 @@
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('list')> <#if view.hasPSControl('list')>
${P.getCtrlCode('list', 'CONTROL.html').code} ${P.getCtrlCode('list', 'CONTROL.html').code}
</#if> </#if>
...@@ -57,6 +64,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code} ...@@ -57,6 +64,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -64,6 +72,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code} ...@@ -64,6 +72,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction> <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" > <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -11,6 +10,7 @@ ...@@ -11,6 +10,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??> <#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() /> <#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...@@ -45,6 +45,13 @@ ...@@ -45,6 +45,13 @@
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('list')> <#if view.hasPSControl('list')>
${P.getCtrlCode('list', 'CONTROL.html').code} ${P.getCtrlCode('list', 'CONTROL.html').code}
</#if> </#if>
...@@ -53,6 +60,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code} ...@@ -53,6 +60,7 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -60,6 +68,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code} ...@@ -60,6 +68,5 @@ ${P.getCtrlCode('list', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -14,9 +13,18 @@ ...@@ -14,9 +13,18 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataviewexpbar')> <#if view.hasPSControl('dataviewexpbar')>
${P.getCtrlCode('dataviewexpbar', 'CONTROL.html').code} ${P.getCtrlCode('dataviewexpbar', 'CONTROL.html').code}
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -24,6 +32,5 @@ ...@@ -24,6 +32,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,13 @@ ...@@ -6,7 +6,13 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'> <div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#comment><!--开始:快速搜索或工具栏存在--></#comment> <#comment><!--开始:快速搜索或工具栏存在--></#comment>
...@@ -28,6 +34,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code} ...@@ -28,6 +34,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('chart')> <#if view.hasPSControl('chart')>
${P.getCtrlCode('chart', 'CONTROL.html').code} ${P.getCtrlCode('chart', 'CONTROL.html').code}
</#if> </#if>
...@@ -37,5 +50,12 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code} ...@@ -37,5 +50,12 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -15,6 +14,7 @@ ...@@ -15,6 +14,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#comment><!--开始:快速搜索或工具栏存在--></#comment> <#comment><!--开始:快速搜索或工具栏存在--></#comment>
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar'))> <#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar'))>
...@@ -35,6 +35,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code} ...@@ -35,6 +35,13 @@ ${P.getCtrlCode('toolbar', 'CONTROL.html').code}
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('chart')> <#if view.hasPSControl('chart')>
${P.getCtrlCode('chart', 'CONTROL.html').code} ${P.getCtrlCode('chart', 'CONTROL.html').code}
</#if> </#if>
...@@ -43,6 +50,7 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code} ...@@ -43,6 +50,7 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -50,6 +58,5 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code} ...@@ -50,6 +58,5 @@ ${P.getCtrlCode('chart', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
<div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>"> <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> <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"> <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -9,6 +8,14 @@ ...@@ -9,6 +8,14 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- 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="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}"> <div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<#if view.hasPSControl('pickupviewpanel')> <#if view.hasPSControl('pickupviewpanel')>
...@@ -54,6 +61,7 @@ ...@@ -54,6 +61,7 @@
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button> <i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row> </row>
</card> </card>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -61,6 +69,5 @@ ...@@ -61,6 +69,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??> <#if view.getPSControls()??>
<#list view.getPSControls() as ctrl> <#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if> </#if>
</#list> </#list>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getPSControls()??> <#if view.getPSControls()??>
<#list view.getPSControls() as ctrl> <#list view.getPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -31,6 +38,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if> </#if>
</#list> </#list>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -38,6 +46,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -15,6 +14,7 @@ ...@@ -15,6 +14,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 --> <#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)> <#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)>
...@@ -48,6 +48,13 @@ ...@@ -48,6 +48,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t> ${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent> </@ibizindent>
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataview')> <#if view.hasPSControl('dataview')>
<@ibizindent blank=12> <@ibizindent blank=12>
${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t> ${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t>
...@@ -57,6 +64,7 @@ ...@@ -57,6 +64,7 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -64,6 +72,5 @@ ...@@ -64,6 +72,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<div class='view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>'> <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> <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"> <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -10,6 +9,7 @@ ...@@ -10,6 +9,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 --> <#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
<#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)> <#if (view.isEnableQuickSearch() || view.hasPSControl('toolbar') || view.isEnableQuickGroup() || view.getQuickPSDESearchForm()??)>
...@@ -43,6 +43,13 @@ ...@@ -43,6 +43,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t> ${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent> </@ibizindent>
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=12>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('dataview')> <#if view.hasPSControl('dataview')>
<@ibizindent blank=12> <@ibizindent blank=12>
${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t> ${P.getCtrlCode('dataview', 'CONTROL.html').code}<#t>
...@@ -53,6 +60,7 @@ ...@@ -53,6 +60,7 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -60,6 +68,5 @@ ...@@ -60,6 +68,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
<div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>"> <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> <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"> <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"> <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')> <#if view.hasPSControl('pickupviewpanel')>
<@ibizindent blank=12> <@ibizindent blank=12>
${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code}<#t> ${P.getCtrlCode('pickupviewpanel', 'CONTROL.html').code}<#t>
...@@ -15,5 +29,12 @@ ...@@ -15,5 +29,12 @@
</row> </row>
</card> </card>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,21 @@ ...@@ -7,7 +7,21 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container"> <div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??> <#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl> <#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -20,5 +34,12 @@ ...@@ -20,5 +34,12 @@
</#list> </#list>
</#if> </#if>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -14,9 +13,18 @@ ...@@ -14,9 +13,18 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendarexpbar')> <#if view.hasPSControl('calendarexpbar')>
${P.getCtrlCode('calendarexpbar', 'CONTROL.html').code} ${P.getCtrlCode('calendarexpbar', 'CONTROL.html').code}
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -24,6 +32,5 @@ ...@@ -24,6 +32,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -15,6 +14,7 @@ ...@@ -15,6 +14,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??> <#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() /> <#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...@@ -49,6 +49,13 @@ ...@@ -49,6 +49,13 @@
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendar')> <#if view.hasPSControl('calendar')>
${P.getCtrlCode('calendar', 'CONTROL.html').code} ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#if> </#if>
...@@ -57,6 +64,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code} ...@@ -57,6 +64,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -64,6 +72,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code} ...@@ -64,6 +72,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction> <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" > <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -11,6 +10,7 @@ ...@@ -11,6 +10,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??> <#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() /> <#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
...@@ -45,6 +45,13 @@ ...@@ -45,6 +45,13 @@
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code} ${P.getCtrlCode('searchform', 'CONTROL.html').code}
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('calendar')> <#if view.hasPSControl('calendar')>
${P.getCtrlCode('calendar', 'CONTROL.html').code} ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#if> </#if>
...@@ -53,6 +60,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code} ...@@ -53,6 +60,7 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -60,6 +68,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code} ...@@ -60,6 +68,5 @@ ${P.getCtrlCode('calendar', 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -15,11 +14,20 @@ ...@@ -15,11 +14,20 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('treeexpbar')> <#if view.hasPSControl('treeexpbar')>
<@ibizindent blank=12> <@ibizindent blank=12>
${P.getCtrlCode('treeexpbar', 'CONTROL.html').code}<#t> ${P.getCtrlCode('treeexpbar', 'CONTROL.html').code}<#t>
</@ibizindent> </@ibizindent>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -27,6 +35,5 @@ ...@@ -27,6 +35,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -19,6 +19,13 @@ ...@@ -19,6 +19,13 @@
</div> </div>
</#if> </#if>
<#-- END:快速搜索或工具栏存在 --> <#-- END:快速搜索或工具栏存在 -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('treegridex')> <#if view.hasPSControl('treegridex')>
${P.getCtrlCode('treegridex', 'CONTROL.html').code} ${P.getCtrlCode('treegridex', 'CONTROL.html').code}
</#if> </#if>
...@@ -31,7 +38,6 @@ ...@@ -31,7 +38,6 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<div class='content-container'>
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -39,6 +45,7 @@ ...@@ -39,6 +45,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#-- BEGIN:视图内容 --> <#-- BEGIN:视图内容 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -46,6 +53,7 @@ ...@@ -46,6 +53,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图内容 --> <#-- END:视图内容 -->
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=12> <@ibizindent blank=12>
<#ibizinclude> <#ibizinclude>
...@@ -53,6 +61,5 @@ ...@@ -53,6 +61,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -13,6 +12,7 @@ ...@@ -13,6 +12,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#assign MDContent> <#assign MDContent>
<#-- 搜索框: BEGIN --> <#-- 搜索框: BEGIN -->
<#if (view.isEnableQuickSearch())> <#if (view.isEnableQuickSearch())>
...@@ -21,6 +21,13 @@ ...@@ -21,6 +21,13 @@
</div> </div>
</#if> </#if>
<#-- 搜索框: END --> <#-- 搜索框: END -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tree')> <#if view.hasPSControl('tree')>
<div class="tree-contant"> <div class="tree-contant">
${P.getCtrlCode('tree', 'CONTROL.html').code} ${P.getCtrlCode('tree', 'CONTROL.html').code}
...@@ -31,6 +38,7 @@ ...@@ -31,6 +38,7 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -38,6 +46,5 @@ ...@@ -38,6 +46,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<div class='view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>'> <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> <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"> <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -10,6 +9,7 @@ ...@@ -10,6 +9,7 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#-- 搜索框: BEGIN --> <#-- 搜索框: BEGIN -->
<#if (view.isEnableQuickSearch())> <#if (view.isEnableQuickSearch())>
...@@ -18,6 +18,13 @@ ...@@ -18,6 +18,13 @@
</div> </div>
</#if> </#if>
<#-- 搜索框: END --> <#-- 搜索框: END -->
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('tree')> <#if view.hasPSControl('tree')>
<div class="tree-contant"> <div class="tree-contant">
${P.getCtrlCode('tree', 'CONTROL.html').code} ${P.getCtrlCode('tree', 'CONTROL.html').code}
...@@ -28,6 +35,7 @@ ...@@ -28,6 +35,7 @@
<#ibizinclude> <#ibizinclude>
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -35,6 +43,5 @@ ...@@ -35,6 +43,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -7,6 +7,13 @@ ...@@ -7,6 +7,13 @@
../@MACRO/VIEW_CAPTION.vue.ftl ../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class='content-container'> <div class='content-container'>
<#assign MDContent> <#assign MDContent>
<#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 --> <#-- BEGIN:快速搜索框或工具栏或支持快速分组搜索或快速搜索表单部件存在 -->
...@@ -41,6 +48,13 @@ ...@@ -41,6 +48,13 @@
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t> ${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</@ibizindent> </@ibizindent>
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('kanban')> <#if view.hasPSControl('kanban')>
<@ibizindent blank=12> <@ibizindent blank=12>
${P.getCtrlCode('kanban', 'CONTROL.html').code}<#t> ${P.getCtrlCode('kanban', 'CONTROL.html').code}<#t>
...@@ -51,5 +65,12 @@ ...@@ -51,5 +65,12 @@
../@MACRO/VIEW_MD_CONTENT.vue.ftl ../@MACRO/VIEW_MD_CONTENT.vue.ftl
</#ibizinclude> </#ibizinclude>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ...@@ -20,6 +19,14 @@ ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('form')> <#if view.hasPSControl('form')>
<@ibizindent blank=8> <@ibizindent blank=8>
${P.getCtrlCode('form', 'CONTROL.html').code} ${P.getCtrlCode('form', 'CONTROL.html').code}
...@@ -36,6 +43,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -36,6 +43,7 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#if> </#if>
</#list> </#list>
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -43,6 +51,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code} ...@@ -43,6 +51,5 @@ ${P.getCtrlCode(ctrl, 'CONTROL.html').code}
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -19,6 +19,13 @@ ...@@ -19,6 +19,13 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container edit-view2"> <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')> <#if view.hasPSControl('drbar')>
<@ibizindent blank=8> <@ibizindent blank=8>
${P.getCtrlCode('drbar', 'CONTROL.html').code} ${P.getCtrlCode('drbar', 'CONTROL.html').code}
......
...@@ -7,7 +7,21 @@ ...@@ -7,7 +7,21 @@
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code} ${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent> </@ibizindent>
</#if> </#if>
<#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Top_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图顶部视图消息 -->
<div class="content-container"> <div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.getAllPSControls()??> <#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl> <#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR"> <#if ctrl.getControlType() != "TOOLBAR">
...@@ -20,5 +34,12 @@ ...@@ -20,5 +34,12 @@
</#list> </#list>
</#if> </#if>
</div> </div>
<#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Bottom_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图底部视图消息 -->
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl ../@MACRO/VIEW_CAPTION_DATAINFO.vue.ftl
</#ibizinclude> </#ibizinclude>
<div class="content-container">
<#-- BEGIN:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -14,9 +13,18 @@ ...@@ -14,9 +13,18 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class="content-container">
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('gridexpbar')> <#if view.hasPSControl('gridexpbar')>
${P.getCtrlCode('gridexpbar', 'CONTROL.html').code} ${P.getCtrlCode('gridexpbar', 'CONTROL.html').code}
</#if> </#if>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -24,6 +32,5 @@ ...@@ -24,6 +32,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
<div class='view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>'> <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> <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"> <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:视图顶部视图消息 --> <#-- BEGIN:视图顶部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -9,14 +8,23 @@ ...@@ -9,14 +8,23 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图顶部视图消息 --> <#-- END:视图顶部视图消息 -->
<div class='content-container pickup-grid-view'>
<@ibizindent blank=12> <@ibizindent blank=12>
<#if view.hasPSControl('searchform')> <#if view.hasPSControl('searchform')>
${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t> ${P.getCtrlCode('searchform', 'CONTROL.html').code}<#t>
</#if> </#if>
<#-- BEGIN:视图内容区视图消息 -->
<@ibizindent blank=8>
<#ibizinclude>
../@MACRO/View_Pos_Body_Msgs.vue.ftl
</#ibizinclude>
</@ibizindent>
<#-- END:视图内容区视图消息 -->
<#if view.hasPSControl('grid')> <#if view.hasPSControl('grid')>
${P.getCtrlCode('grid', 'CONTROL.html').code}<#t> ${P.getCtrlCode('grid', 'CONTROL.html').code}<#t>
</#if> </#if>
</@ibizindent> </@ibizindent>
</div>
<#-- BEGIN:视图底部视图消息 --> <#-- BEGIN:视图底部视图消息 -->
<@ibizindent blank=8> <@ibizindent blank=8>
<#ibizinclude> <#ibizinclude>
...@@ -24,6 +32,5 @@ ...@@ -24,6 +32,5 @@
</#ibizinclude> </#ibizinclude>
</@ibizindent> </@ibizindent>
<#-- END:视图底部视图消息 --> <#-- END:视图底部视图消息 -->
</div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -8,7 +8,12 @@ ...@@ -8,7 +8,12 @@
<#if !uiactiondetail.isShowCaption()> <#if !uiactiondetail.isShowCaption()>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
</#if> </#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.getPSUIAction()??>
<#if uiactiondetail.isShowIcon()> <#if uiactiondetail.isShowIcon()>
<#if uiactiondetail.getPSUIAction().getPSSysImage()??> <#if uiactiondetail.getPSUIAction().getPSSysImage()??>
...@@ -54,7 +59,7 @@ ...@@ -54,7 +59,7 @@
</#if> </#if>
<div class="<#if ctrl.isShowTitleBar()>portlet-with-title<#else>portlet-without-title</#if>"> <div class="<#if ctrl.isShowTitleBar()>portlet-with-title<#else>portlet-without-title</#if>">
<#assign refview = ctrl.getPortletPSAppView()><#t> <#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> </div>
<#-- 菜单 --> <#-- 菜单 -->
<#elseif ctrl.getPortletType() == 'APPMENU'><#t> <#elseif ctrl.getPortletType() == 'APPMENU'><#t>
...@@ -193,6 +198,7 @@ ...@@ -193,6 +198,7 @@
</div> </div>
</template> </template>
<#assign import_block> <#assign import_block>
import UIService from '@/uiservice/ui-service';
import { Environment } from '@/environments/environment'; import { Environment } from '@/environments/environment';
</#assign> </#assign>
<#ibizinclude> <#ibizinclude>
...@@ -215,6 +221,14 @@ import { Environment } from '@/environments/environment'; ...@@ -215,6 +221,14 @@ import { Environment } from '@/environments/environment';
*/ */
@Prop() public width?: number; @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'; ...@@ -274,6 +288,28 @@ import { Environment } from '@/environments/environment';
} }
</#if> </#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" > <#if ctrl.getPortletType?? && ctrl.getPortletType()?? && ctrl.getPortletType() == "TOOLBAR" >
<#assign toolbar = ctrl.getContentPSControl()/> <#assign toolbar = ctrl.getContentPSControl()/>
${P.getCtrlCode(toolbar, 'CONTROL.vue').code} ${P.getCtrlCode(toolbar, 'CONTROL.vue').code}
...@@ -329,6 +365,20 @@ import { Environment } from '@/environments/environment'; ...@@ -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 生命周期 * vue 生命周期
* *
...@@ -346,6 +396,9 @@ import { Environment } from '@/environments/environment'; ...@@ -346,6 +396,9 @@ import { Environment } from '@/environments/environment';
public afterCreated(){ public afterCreated(){
if (this.viewState) { if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { 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)) { if (!Object.is(tag, this.name)) {
return; return;
} }
...@@ -398,6 +451,23 @@ import { Environment } from '@/environments/environment'; ...@@ -398,6 +451,23 @@ import { Environment } from '@/environments/environment';
</#if> </#if>
</#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> <#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl ../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude> </#ibizinclude>
......
...@@ -238,12 +238,12 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -238,12 +238,12 @@ import CodeListService from "@/codelist/codelist-service";
/** /**
* 刷新 * 刷新
* *
* @param {*} [opt={}] * @param {*} [args={}]
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public refresh(opt: any = {}) { public refresh(args: any = {}) {
if (this.parentRef.refresh && this.parentRef.refresh instanceof Function) { if (this.parentRef.refresh && this.parentRef.refresh instanceof Function) {
this.parentRef.refresh(opt); this.parentRef.refresh(args);
} }
} }
......
<#if item.render??>
${item.render.code}
<#else>
</#if>
\ No newline at end of file
...@@ -70,6 +70,23 @@ ...@@ -70,6 +70,23 @@
*/ */
public serviceStateEvent: Subscription | undefined; 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 @@ ...@@ -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> <#if created_block??>${created_block}</#if>
} }
...@@ -483,6 +510,9 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code} ...@@ -483,6 +510,9 @@ ${P.getLogicCode(uiAction, "LOGIC.vue").code}
} }
}) })
} }
if(this.portletStateEvent){
this.portletStateEvent.unsubscribe();
}
} }
</#if> </#if>
</#if> </#if>
......
...@@ -231,6 +231,21 @@ export default class ${srfclassname('${view.name}')}Base extends Vue { ...@@ -231,6 +231,21 @@ export default class ${srfclassname('${view.name}')}Base extends Vue {
</#if> </#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>
/** /**
* 计数器刷新 * 计数器刷新
* *
......
...@@ -16,7 +16,7 @@ this.$forceUpdate(); ...@@ -16,7 +16,7 @@ this.$forceUpdate();
return; return;
} }
const { data: _data } = response; const { data: _data } = response;
this.viewState.next({ tag: 'app-actionbar', action: 'loadmodel', data:_data}); this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) { if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} }); Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){ if(this.$tabPageExp){
......
...@@ -26,7 +26,7 @@ this.$forceUpdate(); ...@@ -26,7 +26,7 @@ this.$forceUpdate();
return; return;
} }
const { data: _data } = response; const { data: _data } = response;
this.viewState.next({ tag: 'app-actionbar', action: 'loadmodel', data:_data}); this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) { if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} }); Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){ if(this.$tabPageExp){
......
...@@ -26,7 +26,7 @@ this.$forceUpdate(); ...@@ -26,7 +26,7 @@ this.$forceUpdate();
return; return;
} }
const { data: _data } = response; const { data: _data } = response;
this.viewState.next({ tag: 'app-actionbar', action: 'loadmodel', data:_data}); this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data:_data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) { if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} }); Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){ if(this.$tabPageExp){
......
...@@ -51,19 +51,6 @@ import ${srfclassname('${appCounter.getCodeName()}')}CounterService from '@/co ...@@ -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 事件 * calendar 的 beforeload 事件
* *
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
* @memberof ${srfclassname('${view.name}')}Base * @memberof ${srfclassname('${view.name}')}Base
*/ */
public isDefaultPage: boolean = ${view.isDefaultPage()?c}; 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> <#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl ../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
* @memberof ${srfclassname('${view.name}')}Base * @memberof ${srfclassname('${view.name}')}Base
*/ */
public isDefaultPage: boolean = ${view.isDefaultPage()?c}; 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> <#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl ../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
TARGET=PSSYSAPP TARGET=PSSYSAPP
</#ibiztemplate> </#ibiztemplate>
import store from '@/store'; import store from '@/store';
import { Environment } from '@/environments/environment';
/** /**
* 实体权限服务 * 实体权限服务
* *
...@@ -125,7 +127,13 @@ export default class AuthService { ...@@ -125,7 +127,13 @@ export default class AuthService {
if(!this.$store.getters['authresource/getEnablePermissionValid']) { if(!this.$store.getters['authresource/getEnablePermissionValid']) {
return true; 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);
}
} }
/** /**
......
...@@ -28,6 +28,8 @@ export const Environment = { ...@@ -28,6 +28,8 @@ export const Environment = {
devMode: true, devMode: true,
// 是否开启权限认证 // 是否开启权限认证
enablePermissionValid:false, enablePermissionValid:false,
// 菜单权限模式,可选值:RT(RT模式),RESOURCE(资源模式),MINIX(混合模式),默认MINIX
menuPermissionMode:"MINIX",
// 项目模板地址 // 项目模板地址
ProjectUrl: "http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7", ProjectUrl: "http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7",
// 打开目标工具,可选参数:sln、mos // 打开目标工具,可选参数:sln、mos
......
...@@ -115,10 +115,15 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase ...@@ -115,10 +115,15 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/** /**
* 转化消息模板标题和内容 * 转化消息模板标题和内容
*
* @target {*} target 返回目标数据
* @param {*} context 应用上下文
* @param {*} viewparam 视图参数
* @param {*} item 源数据
* *
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase * @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")){ 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,{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>`}); 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 ...@@ -134,10 +139,11 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/** /**
* 获取远程数据 * 获取远程数据
* *
* @param {*} context * @param {*} context 应用上下文
* @param {*} data * @param {*} data 视图参数
* @param {boolean} [isloading] * @param {boolean} [isloading] 加载状态
* @returns {Promise<any>} * @returns {Promise<any>}
*
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase * @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase
*/ */
public getItems(context: any={}, data: any={}, isloading?: boolean): Promise<any> { public getItems(context: any={}, data: any={}, isloading?: boolean): Promise<any> {
...@@ -150,7 +156,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase ...@@ -150,7 +156,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
promise.then((response: any) => { promise.then((response: any) => {
if (response && response.status === 200) { if (response && response.status === 200) {
const data = response.data; const data = response.data;
resolve(this.doItems(data)); resolve(this.doItems(data,tempContext,tempData));
} else { } else {
resolve([]); resolve([]);
} }
...@@ -166,12 +172,14 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase ...@@ -166,12 +172,14 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
/** /**
* 处理数据 * 处理数据
* *
* @public * @param {any[]} items 源数据
* @param {any[]} items * @param {*} context 应用上下文
* @param {*} data 视图参数
* @returns {any[]} * @returns {any[]}
*
* @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase * @memberof ${srfclassname('${item.getCodeName()}')}MessageServiceBase
*/ */
public doItems(items: any[]): any[] { public doItems(items: any[],context:any,viewparam:any): any[] {
let _items: any[] = []; let _items: any[] = [];
items.forEach((item: any) => { items.forEach((item: any) => {
let itemdata:any = { let itemdata:any = {
...@@ -188,7 +196,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase ...@@ -188,7 +196,7 @@ export default class ${srfclassname('${item.getCodeName()}')}MessageServiceBase
dynamicMode:"DYNAMIC", dynamicMode:"DYNAMIC",
messageType:"<#if item.getPSSysMsgTempl()?? && item.getPSSysMsgTempl().getContentType()??>${item.getPSSysMsgTempl().getContentType()}<#else>TEXT</#if>" 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); _items.push(itemdata);
}); });
return _items; return _items;
......
...@@ -346,7 +346,7 @@ ${P.getLogicCode(appdeUIAction, "LOGIC.vue").code} ...@@ -346,7 +346,7 @@ ${P.getLogicCode(appdeUIAction, "LOGIC.vue").code}
this.mainStateFields.forEach((singleMainField:any) =>{ this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){ if(!(singleMainField in curData)){
<#noparse>console.warn(`当前数据对象不包含属性${singleMainField},可能会发生错误`);</#noparse> <#noparse>console.warn(`当前数据对象不包含属性「${singleMainField}」,根据「${singleMainField}」属性进行的主状态计算默认为空值`);</#noparse>
} }
}) })
for (let i = 0; i <= 1; i++) { for (let i = 0; i <= 1; i++) {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册