提交 9c892670 编写于 作者: tony001's avatar tony001

调整实体工作流动态编辑视图逻辑

上级 91feb5aa
...@@ -40,6 +40,14 @@ import { Environment } from '@/environments/environment'; ...@@ -40,6 +40,14 @@ import { Environment } from '@/environments/environment';
*/ */
public formKeyItemName: string = '<#list ctrl.getPSDEFormItems() as formitem><#if formitem.getPSAppDEField?? && formitem.getPSAppDEField()??><#if !formitem.isHidden() && formitem.getPSAppDEField().isKeyField()>${formitem.getName()}</#if></#if></#list>'; public formKeyItemName: string = '<#list ctrl.getPSDEFormItems() as formitem><#if formitem.getPSAppDEField?? && formitem.getPSAppDEField()??><#if !formitem.isHidden() && formitem.getPSAppDEField().isKeyField()>${formitem.getName()}</#if></#if></#list>';
/**
* 是否自动加载
*
* @type {boolean}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
@Prop({default:false}) public isautoload?:boolean;
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -1001,6 +1009,9 @@ import { Environment } from '@/environments/environment'; ...@@ -1001,6 +1009,9 @@ import { Environment } from '@/environments/environment';
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public afterCreated(){ public afterCreated(){
if(this.isautoload){
this.autoLoad({srfkey:this.context.documentcenter});
}
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)) {
......
...@@ -15,11 +15,29 @@ ...@@ -15,11 +15,29 @@
</div> </div>
</div> </div>
<div class="content-container"> <div class="content-container">
<#if view.hasPSControl('form')> <component
<@ibizindent blank=8> :is="activeForm.name"
${P.getCtrlCode('form', 'CONTROL.html').code} :isautoload="true"
</@ibizindent> :viewState="viewState"
</#if> :viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="activeForm.showBusyIndicator"
:updateAction="activeForm.updateAction"
:removeAction="activeForm.removeAction"
:loaddraftAction="activeForm.loaddraftAction"
:loadAction="activeForm.loadAction"
:createAction="activeForm.createAction"
:WFSubmitAction="activeForm.WFSubmitAction"
:WFStartAction="activeForm.WFStartAction"
name="form"
ref='form'
@save="form_save($event)"
@remove="form_remove($event)"
@load="form_load($event)"
@closeview="closeView($event)">
</component>
</div> </div>
</card> </card>
</div> </div>
\ No newline at end of file
...@@ -6,6 +6,13 @@ ...@@ -6,6 +6,13 @@
*/ */
public linkModel:Array<any> = []; public linkModel:Array<any> = [];
/**
* 激活表单
*
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public activeForm:any = {};
/** /**
* 所有表单数据 * 所有表单数据
* *
...@@ -15,7 +22,7 @@ ...@@ -15,7 +22,7 @@
<#if view.getAllPSControls?? && view.getAllPSControls()??> <#if view.getAllPSControls?? && view.getAllPSControls()??>
<#list view.getAllPSControls() as singleControl> <#list view.getAllPSControls() as singleControl>
<#if singleControl.getControlType?? && singleControl.getControlType()?? && singleControl.getControlType() != "TOOLBAR"> <#if singleControl.getControlType?? && singleControl.getControlType()?? && singleControl.getControlType() != "TOOLBAR">
"${singleControl.getName()}":{name:"view_${singleControl.getName()}",loadAction:"<#if singleControl.getGetPSControlAction()?? && singleControl.getGetPSControlAction().getPSAppDEMethod()??>${singleControl.getGetPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",autosave:"${singleControl.isEnableAutoSave()?c}",showBusyIndicator:"${singleControl.isShowBusyIndicator()?c}",updateAction:"<#if singleControl.getUpdatePSControlAction()?? && singleControl.getUpdatePSControlAction().getPSAppDEMethod()??>${singleControl.getUpdatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",removeAction:"<#if singleControl.getRemovePSControlAction()?? && singleControl.getRemovePSControlAction().getPSAppDEMethod()??>${singleControl.getRemovePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",loaddraftAction:"<#if singleControl.getGetDraftPSControlAction()?? && singleControl.getGetDraftPSControlAction().getPSAppDEMethod()??>${singleControl.getGetDraftPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",loadAction:"<#if singleControl.getGetPSControlAction()?? && singleControl.getGetPSControlAction().getPSAppDEMethod()??>${singleControl.getGetPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",createAction:"<#if singleControl.getCreatePSControlAction()?? && singleControl.getCreatePSControlAction().getPSAppDEMethod()??>${singleControl.getCreatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",WFSubmitAction:"<#if singleControl.getWFSubmitPSControlAction()?? && singleControl.getWFSubmitPSControlAction().getPSAppDEMethod()??>${singleControl.getWFSubmitPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",WFStartAction:"<#if singleControl.getWFStartPSControlAction()?? && singleControl.getWFStartPSControlAction().getPSAppDEMethod()??>${singleControl.getWFStartPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"}<#if singleControl_has_next>,</#if> "${singleControl.getName()}":{name:"view_${singleControl.getName()}",autosave:"${singleControl.isEnableAutoSave()?c}",showBusyIndicator:"${singleControl.isShowBusyIndicator()?c}",updateAction:"<#if singleControl.getUpdatePSControlAction()?? && singleControl.getUpdatePSControlAction().getPSAppDEMethod()??>${singleControl.getUpdatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",removeAction:"<#if singleControl.getRemovePSControlAction()?? && singleControl.getRemovePSControlAction().getPSAppDEMethod()??>${singleControl.getRemovePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",loaddraftAction:"<#if singleControl.getGetDraftPSControlAction()?? && singleControl.getGetDraftPSControlAction().getPSAppDEMethod()??>${singleControl.getGetDraftPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",loadAction:"<#if singleControl.getGetPSControlAction()?? && singleControl.getGetPSControlAction().getPSAppDEMethod()??>${singleControl.getGetPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",createAction:"<#if singleControl.getCreatePSControlAction()?? && singleControl.getCreatePSControlAction().getPSAppDEMethod()??>${singleControl.getCreatePSControlAction().getPSAppDEMethod().getCodeName()}</#if>",WFSubmitAction:"<#if singleControl.getWFSubmitPSControlAction()?? && singleControl.getWFSubmitPSControlAction().getPSAppDEMethod()??>${singleControl.getWFSubmitPSControlAction().getPSAppDEMethod().getCodeName()}</#if>",WFStartAction:"<#if singleControl.getWFStartPSControlAction()?? && singleControl.getWFStartPSControlAction().getPSAppDEMethod()??>${singleControl.getWFStartPSControlAction().getPSAppDEMethod().getCodeName()}</#if>"}<#if singleControl_has_next>,</#if>
</#if> </#if>
</#list> </#list>
</#if> </#if>
...@@ -45,16 +52,17 @@ ...@@ -45,16 +52,17 @@
public getWFLinkModel():Promise<any>{ public getWFLinkModel():Promise<any>{
return new Promise((resolve:any, reject:any) =>{ return new Promise((resolve:any, reject:any) =>{
let datas: any[] = []; let datas: any[] = [];
let xData: any = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(Object.keys(this.viewparams).length > 0){ if(Object.keys(this.viewparams).length > 0){
Object.assign(datas,{'taskDefinitionKey':this.viewparams.userTaskId}); Object.assign(datas,{'taskDefinitionKey':this.viewparams.userTaskId});
} }
this.appEntityService.GetWFLink(JSON.parse(JSON.stringify(this.context)),datas,true).then((response:any) =>{ this.appEntityService.GetWFLink(JSON.parse(JSON.stringify(this.context)),datas,true).then((response:any) =>{
if (response && response.status === 200) { if (response && response.status === 200) {
this.linkModel = response.data; this.linkModel = response.data;
if(response.headers && response.headers['process-form']){
this.computeActivedForm(response.headers['process-form']);
}else{
this.computeActivedForm(null);
}
resolve(response.data); resolve(response.data);
} }
}).catch((response: any) => { }).catch((response: any) => {
...@@ -70,6 +78,24 @@ ...@@ -70,6 +78,24 @@
}); });
} }
/**
* 计算激活表单
*
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public computeActivedForm(inputForm:any){
if(!inputForm){
this.activeForm = this.allForm;
}
if(this.allForm && Object.keys(this.allForm).length >0){
Object.keys(this.allForm).forEach((name:string) =>{
if(Object.is(name,`wfform_${inputForm.toLowerCase()}`)){
this.activeForm = this.allForm[name];
}
})
}
}
/** /**
* 动态工具栏点击 * 动态工具栏点击
* *
...@@ -81,19 +107,40 @@ ...@@ -81,19 +107,40 @@
if (xData.getDatas && xData.getDatas instanceof Function) { if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()]; datas = [...xData.getDatas()];
} }
xData.wfsubmit(datas,linkItem).then((response: any) => { const submit:Function = (submitData:any,linkItem:any) =>{
if (!response || response.status !== 200) { xData.wfsubmit(submitData,linkItem).then((response: any) => {
return; if (!response || response.status !== 200) {
} return;
const { data: _data } = response; }
const { data: _data } = response;
if (this.viewdata) { if (this.viewdata) {
this.$emit('viewdataschange', [{ ..._data }]); this.$emit('viewdataschange', [{ ..._data }]);
this.$emit('close'); this.$emit('close');
} else if (this.$tabPageExp) { } else if (this.$tabPageExp) {
this.$tabPageExp.onClose(this.$route.fullPath); this.$tabPageExp.onClose(this.$route.fullPath);
} }
}); });
}
if(linkItem && linkItem.sequenceflowview && <#noparse>this.viewRefData[`WFACTION@${linkItem.sequenceflowview}`]</#noparse>){
let tempContext:any = Util.deepCopy(this.context);
Object.assign(tempContext,{documentcenter:datas && datas[0].srfkey});
let tempViewParam:any = {actionView:linkItem.sequenceflowview,actionForm:linkItem.sequenceflowform};
let targetView:any = <#noparse>this.viewRefData[`WFACTION@${linkItem.sequenceflowview}`];</#noparse>
const appmodal = this.$appmodal.openModal({viewname:targetView.viewname,title:(this.$t(targetView.title) as string)}, tempContext,tempViewParam);
appmodal.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
let tempSubmitData:any = Util.deepCopy(datas);
tempSubmitData.forEach((element:any) => {
Object.assign(element,result.datas && result.datas[0]);
});
submit(tempSubmitData,linkItem);
});
}else{
submit(datas,linkItem);
}
} }
</#assign> </#assign>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册