提交 6dae8703 编写于 作者: tony001's avatar tony001

支持批量添加

上级 101e1714
<#ibizinclude>
../../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<#if item.getPSViewLogic?? && item.getPSViewLogic()??>
<#assign viewlogic = item.getPSViewLogic()/>
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof ${srfclassname('${view.name}')}
*/
protected newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
<#if viewlogic.isEnableWizardAdd()>
this.$Notice.warning({ title: '错误', desc: '向导添加未实现' });
<#elseif viewlogic.isEnableBatchAdd()>
this.$Notice.warning({ title: '错误', desc: '支持批添加未实现' });
<#elseif viewlogic.isBatchAddOnly()>
this.$Notice.warning({ title: '错误', desc: '只支持批添加未实现' });
<#elseif viewlogic.getNewDataPSAppView()??>
<#assign dataview = viewlogic.getNewDataPSAppView()/>
const data: any = {};
let curViewParam = JSON.parse(JSON.stringify(this.context));
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
<#-- BEGIN:准备参数 -->
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#-- 存在关系start -->
<#if dataview.getPSAppDERSPathCount() gt 0>
<#list 1..dataview.getPSAppDERSPathCount() as count>
<#assign condition = ''/>
<#list dataview.getPSAppDERSPath(count_index) as deRSPath>
<#if deRSPath.getMajorPSAppDataEntity?? && deRSPath.getMajorPSAppDataEntity()??>
<#assign _dataEntity = deRSPath.getMajorPSAppDataEntity()/>
<#assign condition>${condition}curViewParam.${_dataEntity.getCodeName()?lower_case} && </#assign>
</#if>
</#list>
</#list>
let deResParameters: any[] = [];
<#-- 如果是主实体需对context判断start -->
<#if dataview.getPSAppDataEntity().isMajor()>
if(${condition}true){
deResParameters = [
<#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath>
<#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/>
{ pathName: '${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}', parameterName: '${majorPSAppDataEntity.getCodeName()?lower_case}' },
</#list>
]
}
<#else>
deResParameters = [
<#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath>
<#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/>
{ pathName: '${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}', parameterName: '${majorPSAppDataEntity.getCodeName()?lower_case}' },
</#list>
];
</#if>
<#-- 如果是主实体需对context判断end -->
<#else>
const deResParameters: any[] = [];
</#if>
<#-- 存在关系end -->
<#else>
const deResParameters: any[] = [];
</#if>
<#-- END:是否应用实体视图 -->
<#if dataview.getOpenMode() == 'INDEXVIEWTAB' || dataview.getOpenMode() == ''>
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#assign appDataEntity = dataview.getPSAppDataEntity()/>
const parameters: any[] = [
{ pathName: '${srfpluralize(appDataEntity.codeName)?lower_case}', parameterName: '${appDataEntity.getCodeName()?lower_case}' },
{ pathName: '${dataview.getPSDEViewCodeName()?lower_case}', parameterName: '${dataview.getPSDEViewCodeName()?lower_case}' },
];
<#else>
const parameters: any[] = [
{ pathName: '${dataview.getCodeName()?lower_case}', parameterName: '${dataview.getCodeName()?lower_case}' },
];
</#if>
<#-- END:是否应用实体视图 -->
<#else>
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#assign appDataEntity = dataview.getPSAppDataEntity()/>
const parameters: any[] = [
{ pathName: '${srfpluralize(appDataEntity.codeName)?lower_case}', parameterName: '${appDataEntity.getCodeName()?lower_case}' },
];
<#else>
const parameters: any[] = [];
</#if>
<#-- END:是否应用实体视图 -->
</#if>
<#-- END:准备参数 -->
<#if dataview.getOpenMode() == 'INDEXVIEWTAB' || dataview.getOpenMode() == ''>
<#-- 打开顶级分页视图 -->
const _this: any = this;
const openIndexViewTab = (data: any) => {
const _data: any = { w: (new Date().getTime()) };
Object.assign(_data, data);
const routePath = this.$viewTool.buildUpRoutePath(this.$route, curViewParam, deResParameters, parameters, args, _data);
this.$router.push(routePath);
}
openIndexViewTab(data);
<#elseif dataview.getOpenMode() == 'POPUPAPP'>
<#-- 打开独立程序弹出 -->
const _this: any = this;
const routePath = this.$viewTool.buildUpRoutePath(this.$route, curViewParam, deResParameters, parameters, args, data);
window.open('./#'+routePath, '_blank');
<#elseif dataview.getOpenMode() = 'POPUPMODAL'>
<#-- 打开模态 -->
const _this: any = this;
const openPopupModal = (view: any, data: any) => {
let container: Subject<any> = this.$appmodal.openModal(view, curViewParam, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
};
openPopupModal(view, data);
<#elseif dataview.getOpenMode()?index_of('DRAWER') == 0>
<#-- 打开抽屉 -->
const _this: any = this;
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, curViewParam, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
placement: '${dataview.getOpenMode()}',
};
openDrawer(view, data);
<#elseif dataview.getOpenMode() == 'POPOVER'>
<#-- 打开气泡卡片 -->
const _this: any = this;
const openPopOver = (view: any, data: any) => {
let container: Subject<any> = this.$apppopover.openPop($event, view, curViewParam,data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
placement: '${dataview.getOpenMode()}',
};
openPopOver(view, data);
<#else>
this.$Notice.warning({ title: '错误', desc: this.<@getViewLanguageTitle dataview />+'不支持该模式打开' });
</#if>
<#else>
this.$Notice.warning({ title: '错误', desc: '未指定关系视图' });
</#if>
}
</#if>
<#ibizinclude>
../../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<#macro getres tempView>
<#compress>
<#if tempView.getPSAppDataEntity?? && tempView.getPSAppDataEntity()?? && tempView.getPSAppDataEntity().getPSDataEntity?? && tempView.getPSAppDataEntity().getPSDataEntity()??>
<#assign dataeneity = tempView.getPSAppDataEntity().getPSDataEntity() />
<#if dataeneity.getMajorPSDERs?? && dataeneity.getMajorPSDERs()??>
[<#list dataeneity.getMajorPSDERs() as psDes>'${psDes.getName()}'<#if psDes_has_next>,</#if></#list>]
</#if>
</#if>
</#compress>
</#macro>
<#if item.getPSViewLogic?? && item.getPSViewLogic()??>
<#assign viewlogic = item.getPSViewLogic()/>
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof ${srfclassname('${view.name}')}
*/
protected newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
<#if viewlogic.isEnableWizardAdd()>
this.$Notice.warning({ title: '错误', desc: '向导添加未实现' });
<#elseif viewlogic.isEnableBatchAdd()>
<#-- 批量添加 -->
<#if viewlogic.getBatchAddPSAppViews?? && viewlogic.getBatchAddPSAppViews()??>
<#assign batchAddPSAppViews = viewlogic.getBatchAddPSAppViews()/>
const batchAddPSAppViews=[
<#list batchAddPSAppViews as batchAddPSAppView>
{view:{viewname:'${srffilepath2(batchAddPSAppView.getCodeName())}',height: ${batchAddPSAppView.getHeight()?c},width: ${batchAddPSAppView.getWidth()?c},title: '${batchAddPSAppView.title}'},
res:<@getres tempView=batchAddPSAppView />}<#if batchAddPSAppView_has_next>,</#if>
</#list>
];
</#if>
const data: any = {};
if (args && args.length > 0 && args[0].srfsourcekey) {
Object.assign(data, { srfsourcekey: args[0].srfsourcekey })
}
const _this: any = this;
if (_this.srfparentdata) {
Object.assign(data, { srfparentdata: _this.srfparentdata });
}
if(batchAddPSAppViews.length == 0){
this.$Notice.warning({ title: '错误', desc: '批量添加需添加N:N关系' });
return;
}
batchAddPSAppViews.forEach((item:any,index:number) =>{
if(item.res){
item.res.forEach((curRes:any) =>{
if(Object.is(curRes,_this.srfparentdata.srfparentmode)){
item.curRes = true;
}
})
}
})
const openPopupModal = (view: any, data: any) => {
let container: Subject<any> = this.$appmodal.openModal(view, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
// 处理参数
if(result.datas && result.datas.length == 0){
return;
}
let keys = '';
const viewParam:any = {};
if (_this.srfparentdata) {
Object.assign(viewParam,{ srfparentdata: _this.srfparentdata});
}
result.datas.forEach((record:any) => {
let key = record.srfkey;
if (!Object.is(keys, '')) {
keys += ';';
}
keys += key;
});
Object.assign(viewParam,{srfkeys:keys});
// 调用发送批处理请求
});
}
let curView:any ={};
batchAddPSAppViews.forEach((item:any) =>{
if(!item.curRes){
Object.assign(curView,item.view)
}
})
const view: any = curView;
openPopupModal(view, data);
<#elseif viewlogic.isBatchAddOnly()>
this.$Notice.warning({ title: '错误', desc: '只支持批添加未实现' });
<#elseif viewlogic.getNewDataPSAppView()??>
<#assign dataview = viewlogic.getNewDataPSAppView()/>
const data: any = {};
let curViewParam = JSON.parse(JSON.stringify(this.context));
if(args.length >0){
Object.assign(curViewParam,args[0]);
}
<#-- BEGIN:准备参数 -->
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#-- 存在关系start -->
<#if dataview.getPSAppDERSPathCount() gt 0>
<#list 1..dataview.getPSAppDERSPathCount() as count>
<#assign condition = ''/>
<#list dataview.getPSAppDERSPath(count_index) as deRSPath>
<#if deRSPath.getMajorPSAppDataEntity?? && deRSPath.getMajorPSAppDataEntity()??>
<#assign _dataEntity = deRSPath.getMajorPSAppDataEntity()/>
<#assign condition>${condition}curViewParam.${_dataEntity.getCodeName()?lower_case} && </#assign>
</#if>
</#list>
</#list>
let deResParameters: any[] = [];
<#-- 如果是主实体需对context判断start -->
<#if dataview.getPSAppDataEntity().isMajor()>
if(${condition}true){
deResParameters = [
<#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath>
<#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/>
{ pathName: '${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}', parameterName: '${majorPSAppDataEntity.getCodeName()?lower_case}' },
</#list>
]
}
<#else>
deResParameters = [
<#list dataview.getPSAppDERSPath(dataview.getPSAppDERSPathCount() - 1) as deRSPath>
<#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/>
{ pathName: '${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}', parameterName: '${majorPSAppDataEntity.getCodeName()?lower_case}' },
</#list>
];
</#if>
<#-- 如果是主实体需对context判断end -->
<#else>
const deResParameters: any[] = [];
</#if>
<#-- 存在关系end -->
<#else>
const deResParameters: any[] = [];
</#if>
<#-- END:是否应用实体视图 -->
<#if dataview.getOpenMode() == 'INDEXVIEWTAB' || dataview.getOpenMode() == ''>
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#assign appDataEntity = dataview.getPSAppDataEntity()/>
const parameters: any[] = [
{ pathName: '${srfpluralize(appDataEntity.codeName)?lower_case}', parameterName: '${appDataEntity.getCodeName()?lower_case}' },
{ pathName: '${dataview.getPSDEViewCodeName()?lower_case}', parameterName: '${dataview.getPSDEViewCodeName()?lower_case}' },
];
<#else>
const parameters: any[] = [
{ pathName: '${dataview.getCodeName()?lower_case}', parameterName: '${dataview.getCodeName()?lower_case}' },
];
</#if>
<#-- END:是否应用实体视图 -->
<#else>
<#-- BEGIN:是否应用实体视图 -->
<#if dataview.isPSDEView()>
<#assign appDataEntity = dataview.getPSAppDataEntity()/>
const parameters: any[] = [
{ pathName: '${srfpluralize(appDataEntity.codeName)?lower_case}', parameterName: '${appDataEntity.getCodeName()?lower_case}' },
];
<#else>
const parameters: any[] = [];
</#if>
<#-- END:是否应用实体视图 -->
</#if>
<#-- END:准备参数 -->
<#if dataview.getOpenMode() == 'INDEXVIEWTAB' || dataview.getOpenMode() == ''>
<#-- 打开顶级分页视图 -->
const _this: any = this;
const openIndexViewTab = (data: any) => {
const _data: any = { w: (new Date().getTime()) };
Object.assign(_data, data);
const routePath = this.$viewTool.buildUpRoutePath(this.$route, curViewParam, deResParameters, parameters, args, _data);
this.$router.push(routePath);
}
openIndexViewTab(data);
<#elseif dataview.getOpenMode() == 'POPUPAPP'>
<#-- 打开独立程序弹出 -->
const _this: any = this;
const routePath = this.$viewTool.buildUpRoutePath(this.$route, curViewParam, deResParameters, parameters, args, data);
window.open('./#'+routePath, '_blank');
<#elseif dataview.getOpenMode() = 'POPUPMODAL'>
<#-- 打开模态 -->
const _this: any = this;
const openPopupModal = (view: any, data: any) => {
let container: Subject<any> = this.$appmodal.openModal(view, curViewParam, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
};
openPopupModal(view, data);
<#elseif dataview.getOpenMode()?index_of('DRAWER') == 0>
<#-- 打开抽屉 -->
const _this: any = this;
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, curViewParam, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
placement: '${dataview.getOpenMode()}',
};
openDrawer(view, data);
<#elseif dataview.getOpenMode() == 'POPOVER'>
<#-- 打开气泡卡片 -->
const _this: any = this;
const openPopOver = (view: any, data: any) => {
let container: Subject<any> = this.$apppopover.openPop($event, view, curViewParam,data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
const view: any = {
viewname: '${srffilepath2(dataview.getCodeName())}',
height: ${dataview.getHeight()?c},
width: ${dataview.getWidth()?c},
title: this.<@getViewLanguageTitle dataview />,
placement: '${dataview.getOpenMode()}',
};
openPopOver(view, data);
<#else>
this.$Notice.warning({ title: '错误', desc: this.<@getViewLanguageTitle dataview />+'不支持该模式打开' });
</#if>
<#else>
this.$Notice.warning({ title: '错误', desc: '未指定关系视图' });
</#if>
}
</#if>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册