提交 cf1b3f74 编写于 作者: ysw's avatar ysw

init

上级 8e3cec50
J2EE6IONIC4_R6
\ No newline at end of file
<#if ctrl.getPSSysPFPlugin()??>
<#-- 有扩展插件 -->
${ctrl.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,null)}
<#else>
<#-- 无扩展插件 -->
<ng-container *ngFor="let item of ${ctrl.name}.$items">
<div nz-row [nzType]="'flex'" [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm bg-grey-lighter-h point">
<#if ctrl.getPSDEListItems()??>
<#assign listItems = ctrl.getPSDEListItems()/>
<#list listItems as item>
<#if item.getItemType() == 'TEXTITEM'>
<#if item.getRenderPSSysPFPlugin()??>
${item.getRenderPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,item,null)}
<#else>
&nbsp;&nbsp;&nbsp;<span>{{item.${item.name?lower_case}}}</span>
</#if>
</#if>
</#list>
</#if>
</div>
</ng-container>
</#if>
\ No newline at end of file
import { IBizListService } from '@ibizsys/widget/IBizListService';
\ No newline at end of file
/**
* 列表部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizListService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizListService {
constructor(opt) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=LIST
\ No newline at end of file
<div class="ibiz-wizardpanel">
<nz-layout>
<nz-content>
<#list ctrl.getPSDEEditForms() as form>
<div *ngIf="${ctrl.name}.$curformId=='${form.name}'">
${srfctrl('${form.name}').code}
</div>
</#list>
</nz-content>
<nz-footer>
<ng-container *ngIf="wizardpanel.onChangeActionBtn('PREV')">
<button class="ml-sm" nz-button [nzType]="'default'" (click)="goPrev()">
<span>上一页</span>
</button>
</ng-container>
<ng-container *ngIf="wizardpanel.onChangeActionBtn('NEXT')">
<button class="ml-sm" nz-button [nzType]="'primary'" (click)="goNext()">
<span>下一页</span>
</button>
</ng-container>
<ng-container *ngIf="wizardpanel.onChangeActionBtn('FINISH')">
<button class="ml-sm" nz-button [nzType]="'primary'" (click)="goFinal()">
<span>完成</span>
</button>
</ng-container>
</nz-footer>
</nz-layout>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
import { IBizWizardPanelService} from '@ibizsys/widget/IBizWizardPanelService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEWizardCode
</#ibiztemplate>
/**
* 向导面板部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizWizardPanelService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizWizardPanelService {
constructor(opt) {
super(opt);
}
public regForms(): void {
<#list ctrl.getPSDEEditForms() as form>
this.registerForm('${form.name}', this.getViewController().getControl('${form.name}'));
</#list>
}
public regActions(): void {
<#if ctrl.getPSDEWizard()??>
<#assign wizard=ctrl.getPSDEWizard()>
<#if wizard.getPSDEWizardForms()??>
<#list wizard.getPSDEWizardForms() as form>
<#list form.getStepActions() as action>
this.regFormActions('${ctrl.name}_form_' + '${form.getFormTag()}', '${action}');
</#list></#list></#if></#if>
}
}
\ No newline at end of file
CTRLTYPE=WIZARDPANEL
\ No newline at end of file
import { IBizMultiEditViewPanelService } from '@ibizsys/widget/IBizMultiEditViewPanelService';
\ No newline at end of file
/**
* 编辑表单部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizMultiEditViewPanelService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizMultiEditViewPanelService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=MULTIEDITVIEWPANEL
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
<#if deuiaction.getUIActionTag() == 'ExportExcel'>
<#if view.hasPSControl("GRID")>
<ng-container *ngIf="${ctrl.name}.$items.${item.getName()?lower_case}.dataaccaction">
<nz-dropdown <#if item.getWidth() gt 0>style="width:${item.getWidth()?c}px;"</#if> <#if !item.isShowCaption()>[attr.title]="${ctrl.name}.$items.${item.getName()?lower_case}.caption"</#if> [nzPlacement]="'bottomRight'" [nzTrigger]="'click'" [nzClickHide]="false" [(nzVisible)]="${ctrl.name}.exportMenuState">
<button nz-button nz-dropdown [nzSize]="'large'" class="ml-sm <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if>">
<#if item.isShowIcon() && item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i> </#if></#if>
<#if item.isShowCaption()>{{${ctrl.name}.$items.${item.getName()?lower_case}.caption}}</#if>
<i class="anticon anticon-down"></i>
</button>
<ul nz-menu>
<li nz-menu-item>
<#assign gridhandler = view.getPSControl("GRID").getPSAjaxControlHandler()>
<p (click)="${ctrl.name}.itemExportExcel('ExportExcel', 'all')">${item.caption!''}全部(最大导出<#if gridhandler?? && gridhandler.getPSDEDataExport()??>${gridhandler.getPSDEDataExport().getMaxRowCount()?c}<#else>${sys.getDEDataExportMaxRowCount()?c}</#if>行)</p>
</li>
<li nz-menu-item>
<p (click)="${ctrl.name}.itemExportExcel('ExportExcel')">${item.caption!''}当前页</p>
</li>
<li nz-menu-item>
${item.caption!''}第
<input type="text" style="width: 30px;" [(ngModel)]="${ctrl.name}.$exportStartPage"> ~
<input type="text" style="width: 30px;" [(ngModel)]="${ctrl.name}.$exportEndPage"> 页
<button nz-button (click)="${ctrl.name}.itemExportExcel('ExportExcel', 'custom')">Go!</button>
</li>
</ul>
</nz-dropdown>
</ng-container>
</#if>
<#else>
<ng-container *ngIf="${ctrl.name}.$items.${item.getName()?lower_case}.dataaccaction" <#if item.getWidth() gt 0>style="width:${item.getWidth()?c}px;"</#if>>
<button <#if item.getWidth() gt 0>style="width:${item.getWidth()?c}px;"</#if> <#if !item.isShowCaption()>[attr.title]="${ctrl.name}.$items.${item.getName()?lower_case}.caption"</#if> [disabled]="${ctrl.name}.$items.${item.getName()?lower_case}.disabled" nz-button [nzSize]="'large'" class="ml-sm<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" (click)="${ctrl.name}.itemclick('${item.getName()?lower_case}', '${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon() && item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i> </#if></#if>
<#if item.isShowCaption()>{{${ctrl.name}.$items.${item.getName()?lower_case}.caption}}</#if>
</button>
</ng-container>
</#if>
\ No newline at end of file
{text: "${item.caption}",xtype:'splitbutton', menu: [<#list items as item><#if (item_index>0) >,</#if>${item.code}</#list>]}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSFR7DETBGroupItemVC
</#ibiztemplate>
<ng-container *ngIf="${ctrl.name}.$items.${item.getName()?lower_case}.dataaccaction">
<nz-dropdown <#if item.getWidth() gt 0>style="width:${item.getWidth()?c}px;"</#if> <#if !item.isShowCaption()>[attr.title]="${ctrl.name}.$items.${item.getName()?lower_case}.caption"</#if> [nzPlacement]="'bottomRight'" [nzTrigger]="'click'" [nzClickHide]="true">
<button nz-button nz-dropdown [nzSize]="'large'" class="ml-sm <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if>">
<#if item.isShowIcon() && item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i> </#if></#if>
<#if item.isShowCaption()>{{${ctrl.name}.$items.${item.getName()?lower_case}.caption}}</#if>
<i class="anticon anticon-down"></i>
</button>
<ul nz-menu>
<#list items as item>
<li nz-menu-item>
${item.code}
</li>
</#list>
</ul>
</nz-dropdown>
</ng-container>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEToolbarVC
</#ibiztemplate>
<div class="ibiz-tool-bar">
<#list items as item>
${item.code}
</#list>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
<button title="${item.tooltip}" data-ibiz-tag="${deuiaction.getUIActionTag()}" data-ibiz-target="${deuiaction.getActionTarget()}" class="btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ibiz-toolbar-item"
data-ibiz-uiaction='{"type":"${deuiaction.getUIActionType()}","tag":"${deuiaction.getUIActionTag()}"<#if (deuiaction.getActionTarget()!="")>,"actiontarget":"${deuiaction.getActionTarget()}"</#if>
<#if item.getPSDEUIAction()??>
<#if deuiaction.getUIActionMode()!="SYS">
,"actionmode":"${deuiaction.getUIActionMode()}"
<#if deuiaction.getUIActionMode()=="BACKEND">
,"timeout":${deuiaction.getTimeout()?c}<#if deuiaction.getConfirmMsg()??>,"confirmmsg":"${deuiaction.getConfirmMsg()}"</#if>
</#if>
<#comment><!--开始:向导界面--></#comment>
<#if deuiaction.getFrontProcessType()=="WIZARD">
,"fronttype":"${deuiaction.frontProcessType}"
<#if item.getFrontPSAppView()??>
<#assign frontview=item.getFrontPSAppView()>,"frontview":{view:"${app.getPKGCodeName()}.view.${frontview.fullCodeName}","width":${frontview.getWidth()?c},"height":${frontview.getHeight()?c},"title":"${frontview.title}"}
</#if>
</#if>
<#comment><!--结束:向导界面--></#comment>
<#comment><!--开始:打开网页--></#comment>
<#if deuiaction.getFrontProcessType()=="OPENHTMLPAGE">
,"fronttype":"${deuiaction.frontProcessType}","htmlpageurl":"${deuiaction.getHtmlPageUrl()}"
</#if>
<#comment><!--结束:向导界面--></#comment>
</#if>
</#if>
<#if item.getPSWFUIAction()??>
,"actionmode":"${deuiaction.getUIActionMode()}"
</#if>
}' class="btn btn-icon-only green ibiz-toolbar-item" >
<#if item.isShowIcon() && item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSJQDETBGroupItemVC
</#ibiztemplate>
<!--操作集合-->
\ No newline at end of file
<!--分割符号-->
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEToolbarVC
</#ibiztemplate>
<div id="${'$'}{cid}${ctrl.name}">
<#list items as item>
${item.code?replace('\n',' ')?replace('\r',' ')}
</#list>
</div>
\ No newline at end of file
import { IBizToolbarService } from '@ibizsys/widget/IBizToolbarService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
<#if deuiaction.getUIActionTag() == 'ExportExcel'>
{ name: '${item.getName()?lower_case}', caption: '${item.caption}' }
<#elseif deuiaction.getUIActionTag() == 'ToggleRowEdit'>
{ name: '${item.getName()?lower_case}', caption: '启用行编辑', rowedit: true, tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>' }
<#else>
{ name: '${item.getName()?lower_case}', caption: '${item.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>' }
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSFR7DETBGroupItemVC
</#ibiztemplate>
{
name: '${item.getName()?lower_case}', caption: '${item.caption}', text: "${item.caption}", xtype: 'splitbutton',
menu: [<#list items as item><#if (item_index>0) >, </#if>${item.code}</#list>
]
}
\ No newline at end of file
{ name: '${item.getName()?lower_case}' }
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEToolbarVC
</#ibiztemplate>
/**
* 工具栏部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizToolbarService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizToolbarService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opts={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 注册工具栏按钮
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regToolBarItems(): void {
<#list items as item>
<#if item.code?length gt 0>
this.regToolBarItem(${item.code});
</#if>
</#list>
}
}
\ No newline at end of file
CTRLTYPE=TOOLBAR
\ No newline at end of file
<ion-list radio-group *ngIf="!multiselect">
<ion-item *ngFor="let item of mdctrl.$items,let index = index" (tap)="selectedChange(item)">
<ion-label>{{ item.srfmajortext }}</ion-label>
<ion-radio checked="{{item.checked}}" ></ion-radio>
</ion-item>
</ion-list>
<ion-list *ngIf="multiselect">
<ion-item *ngFor="let item of mdctrl.$items" (tap)="selectedChanges()">
<ion-label>{{ item.srfmajortext }}</ion-label>
<ion-checkbox color="blue" [(ngModel)]="item.checked"></ion-checkbox>
</ion-item>
</ion-list>
\ No newline at end of file
<div>欢迎选择视图面板</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSExtJS5AppMenuItemVC
</#ibiztemplate>
{text: '${item.caption}'<#if item.getPSAppFunc()??><#assign _appfunc=item.getPSAppFunc()>,srftag:{title:'${item.caption}',appfuncid:'${_appfunc.id}'},handler: 'onClickAppMenuItem'</#if><#if items??>, menu: [<#list items as item><#if (item_index>0) >,</#if>${item.code}</#list>]</#if>}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSJQAppMenuVC
</#ibiztemplate>
{xtype:'toolbar',items: [<#list items as item><#if (item_index>0) >,</#if>${item.code}</#list>] }
\ No newline at end of file
import { IBizAppMenuService } from '@ibizsys/widget/IBizAppMenuService';
\ No newline at end of file
/**
* 应用菜单部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizWizardPanelService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizAppMenuService {
constructor(opt){
super(opt);
}
/**
* 回填菜单项路由
*
* @private
* @param {string} appfuncid
* @returns {*}
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public renderMenuItemRoute(appfuncid: string): any {
<#if ctrl.getPSAppFuncs()??>
<#list ctrl.getPSAppFuncs() as appfunc>
<#if appfunc.getPSAppView()??>
<#assign _appview = appfunc.getPSAppView()>
if (Object.is(appfuncid, '${appfunc.id}')) {
return {funcid:'${appfunc.id?lower_case}',codename: <#if appfunc.getCodeName()??>'${appfunc.getCodeName()?lower_case}'<#else>'${_appview.getPSAppModule().codeName?lower_case}_${_appview.codeName?lower_case}'</#if>, functype:'${appfunc.appFuncType}',openmode:'${appfunc.openMode}',viewParams:${appfunc.getOpenViewParam().toString()}};
}
</#if>
</#list>
</#if>
return undefined;
}
<#if ctrl.getPSSysCounter?? && ctrl.getPSSysCounter()??>
/**
* 获取引用计数器名称
*
* @returns {(string | undefined)}
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public getRefUICounterName(): string | undefined {
return '${ctrl.getPSSysCounter().getCodeName()}';
}
</#if>
}
\ No newline at end of file
CTRLTYPE=APPMENU
\ No newline at end of file
<div nz-row >
<ng-continer *ngIf="${ctrl.name}.$showReport">
<iframe [src]="${ctrl.name}.$viewurl | IBizSafeString : 'resourceurl'" style="width: 100%; border: 0px; height: <#if ctrl.getHeight() lt 500>500<#else>${ctrl.getHeight()?c}</#if>px;" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="yes"></iframe>
</ng-continer>
</div>
\ No newline at end of file
import { IBizReportPanelService } from '@ibizsys/widget/IBizReportPanelService';
\ No newline at end of file
/**
* 报表面板部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizReportPanelService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizReportPanelService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opts={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opts: any = {}) {
super(opts);
this.$reportid = '${ctrl.getPSDEReport().id}';
}
}
\ No newline at end of file
CTRLTYPE=REPORTPANEL
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-item [field]="fields.${item.name}">
<ng-template let-${item.name}>
<div nz-form-item [ngStyle]="{'display':${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if> <#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> class="ibiz-formitem" >
<button <#if !item.isShowCaption()>[attr.title]="${item.caption}"</#if> nz-button [nzSize]="'large'" class="ml-sm<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" (click)="${item.name}.onClick()">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span>${item.caption}</span></#if>
</button>
</div>
</ng-template>
</app-ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#assign dritem = item.getPSDEDRItem()>
<app-ibiz-drpanel nz-form-item name="${item.name}" #${item.name} [form]="${ctrl.name}"
[ngStyle]="{'display':${ctrl.name}.$items.${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if><#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> refreshitems="<#if item.getRefreshItems()??>${item.getRefreshItems()}<#else></#if>" RelationalDataType="${dritem.itemType}">
<div class="ibiz-formitem ibiz_dr_panel">
<#if item.getPSAppView().isEmbeddedView()>
<app-${ngfilename('${item.getPSAppView().codeName}')} <#if item.getPSDEFormItemUpdate()??>(MDItemsLoad)="${ctrl.name}.updateFormItems('${item.getPSDEFormItemUpdate().codeName}')"</#if> [activeData]="${item.name}.activeData" [srfparentkey]="${item.name}.srfparentkey" [referData]="${item.name}.activeData" [refreshGrid]="${item.name}.count" [viewParam]="viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" [parentmode]="{srfparenttype:'${dritem.itemType}'<#if ((dritem.itemType=='DER1N') || (dritem.itemType=='SYSDER1N'))>,srfder1nid:'${dritem.getPSDER1NName()}'</#if>}"></app-${ngfilename('${item.getPSAppView().codeName}')}>
</#if>
</div>
</app-ibiz-drpanel>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-item [field]="fields.${item.name}">
<ng-template let-${item.name}>
<div nz-form-item [ngStyle]="{'display':${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if> <#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> class="ibiz-formitem ${item.getLabelPos()?lower_case}" >
<#if (item.isShowCaption())>
<div nz-form-label class='ibiz-formitem-label-left pull-left' <#if (item.getLabelWidth() gte 0)>style="width:${item.getLabelWidth()?c}px;"</#if>>
<label [ngClass]="{'ant-form-item-required': !${item.name}.allowEmpty}"><#if !item.isEmptyCaption()>${item.caption}</#if></label>
</div>
</#if>
<div nz-form-control [nzValidateStatus]="${item.name}.validateStatus" <#if (item.getLabelWidth() gte 0)>style="margin-left:${item.getLabelWidth()?c}px;"</#if>>
${editor.code}
<div nz-form-explain *ngIf="${item.name}.hasError">{{${item.name}.errorInfo}}</div>
</div>
</div>
</ng-template>
</app-ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-group [visible]="fields.${item.name}.visible" [ngStyle]="{<#if item.getColWidth() != -1>'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if><#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> text="<#if item.getCaption()?? && item.getCaption()?length gt 0>${ item.getCaption() }</#if>" [form]="${ctrl.name}"
groupname="${item.name}"<#if item.getPSDEFormDetailCount() gt 0 > firstChild="${item.getPSDEFormDetail(0).getCodeName()}"</#if> [showheader]="<#if item.isShowCaption()>true<#else>false</#if>"
[isShowMore]="<#if item.isEnableBuildInAction(2)>true<#else>false</#if>" [isShowNew]="<#if item.isEnableBuildInAction(1)>true<#else>false</#if>">
<div class="ibiz-content">
<#list items as rowitem>
${rowitem.code}
</#list>
</div>
</app-ibiz-form-group>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<nz-input [nzId]="'${item.name}'" [nzType]="'hidden'" name="${item.name}" [(ngModel)]="fields.${item.name}.value"></nz-input>
\ No newline at end of file
{<#if (item.showCaption)>
xtype: 'fieldset',title: '${item.caption}',margin:'${item.margin.toString()}',padding:'${item.padding.toString()}'
<#else>
xtype: 'panel'
</#if>
,reference:'${ctrl.name}_${item.name}'<#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>,hidden:true</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>
<#if (item.layoutMode=='TABLE') >
,layout:'vbox'
,items:[<#list rows as row><#if (row_index>0) >,</#if>
{xtype: 'panel',layout:'column',width: '100%',items:[<#list (row.items) as rowitem><#if (rowitem_index>0) >,</#if>
${rowitem.code}
</#list>]}
</#list>]
</#if>
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
${item.getRawContent()}
\ No newline at end of file
{<#if (item.showCaption)>
xtype: 'fieldset',title: '${item.caption}',margin:'${item.margin.toString()}',padding:'${item.padding.toString()}'
<#else>
xtype: 'panel'
</#if>
,reference:'${ctrl.name}_${item.name}'<#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>,hidden:true</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>
<#if (item.layoutMode=='TABLE') >
,layout:'vbox'
,items:[<#list rows as row><#if (row_index>0) >,</#if>
{xtype: 'panel',layout:'column',width: '100%',items:[<#list (row.items) as rowitem><#if (rowitem_index>0) >,</#if>
${rowitem.code}
</#list>]}
</#list>]
</#if>
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<#if item.getRenderPSSysPFPlugin()??>
${item.getRenderPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
表单自定义部件没有定义插件
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormViewCode
</#ibiztemplate>
<div nz-row [nzGutter]="24" class="ibiz-search-form">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<app-ibiz-form [fields]="${ctrl.name}.$fields">
<ng-template let-fields>
<div [ngStyle]="{'display':'none'}">
<#list hiddens as hidden>
${hidden.code}
</#list>
</div>
<#if ctrl.isNoTabHeader()>
<#list formpages as formpage>
${formpage.code}
</#list>
<#else>
<nz-tabset>
<#list formpages as formpage>
<nz-tab>
<ng-template #nzTabHeading>
${formpage.obj.caption}
</ng-template>
<span>
${formpage.code}
</span>
</nz-tab>
</#list>
</nz-tabset>
</#if>
<div nz-col [nzSpan]="24" style="text-align: right;">
<button nz-button [nzType]="'primary'" (click)="${ctrl.name}.onSearch()">查询</button>
<button nz-button [nzType]="'default'" (click)="${ctrl.name}.onReset()">重置</button>
</div>
</ng-template>
</app-ibiz-form>
</nz-card>
</div>
</div>
\ No newline at end of file
<#list formdetails as formdetail>
<#if formdetail.code2?length gt 0>
${formdetail.code2}
</#if>
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="<%=p.getCId()%>${item.uniqueId}" style="height:${item.getContentHeight()}px;"></div>
\ No newline at end of file
<#if editor.getCode2()?length gt 0>
/*表单${ctrl.name}/${item.name}*/
${editor.code2}
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<DIV id='${item.uniqueId}__fi' class="${item.getColCssClass()} form-group" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>">
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
<#if (item.isShowCaption())>
<td <#if (item.getLabelWidth() gt 0)>width="${item.getLabelWidth()?c}"</#if> valign="top">
<label id='${item.uniqueId}__lb' class="control-label" style="<#if (item.getLabelWidth() gt 0)>width:${item.getLabelWidth()?c}px;</#if>" ><#if !(item.isEmptyCaption())><#if !item.isAllowEmpty()><span class='text-danger'>*</span></#if>${item.caption}</#if></label>
</td>
</#if>
<td>
<div class="col-md-12" >
${editor.code}
</div>
</td>
</tr>
</table>
</DIV>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div class="${item.getColCssClass()} " >
<#if item.isShowCaption()>
<fieldset style="border: 1px solid #e5e5e5;">
<div class="note note-success" x><h5>${item.caption}</h5></div>
<#list items as rowitem>
${rowitem.code}
</#list>
</fieldset>
<#else>
<#list items as rowitem>
${rowitem.code}
</#list>
</#if>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormViewCode
</#ibiztemplate>
<div id="${ctrl.name}" action="#" class="form-horizontal ">
<!-- 表单区:开始-->
<div class="col-md-10 form-group row">
<#list hiddens as hidden>${hidden.code}</#list>
<#if ctrl.isNoTabHeader()>
<#list formpages as formpage>
${formpage.code}
</#list>
<#else>
<ul class="nav nav-tabs" id="${ctrl.name}_tab">
<#list formpages as formpage>
<li class="<#if (formpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${formpage.obj.codeName}_tab" data-toggle="tab">${formpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list formpages as formpage>
<div class="tab-pane <#if (formpage_index ==0)>active</#if>" id="${ctrl.name}_${formpage.obj.codeName}_tab">${formpage.code}</div>
</#list>
</div>
</#if>
</div>
<!-- 表单区:结束-->
<!-- 按钮区:开始-->
<div class="col-md-2 form-group row" style="float:right;">
<button id="${ctrl.name}_resetbutton" title="重置" class=" btn " style="float:right;margin-right:0px;">
<span >重置</span>
</button>
<button id="${ctrl.name}_searchbutton" title="搜索" class=" btn green " style="float:right;margin-right:8px;">
<span >搜索</span>
</button>
</div>
<!-- 按钮区:结束-->
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
new IBizFormButton({name: '${item.name!''}', visible: true, fieldType: 'BUTTON', form:this, actiontype: '${item.getActionType()}'<#if item.getPSUIAction()??><#assign uiaction=item.getPSUIAction()>,uiaction: { type: '${uiaction.getUIActionType()}',
tag: '${uiaction.getUIActionTag()}'<#if (uiaction.getActionTarget()!="")>, actiontarget: '${uiaction.getActionTarget()}'</#if>}</#if><#if item.getPSDEFormItemUpdate()??>, fiupdate: { tag: '${item.getPSDEFormItemUpdate().codeName}' }</#if> })
\ No newline at end of file
import { IBizFieldItem } from '@ibizsys/field/IBizFieldItem';
import { IBizFormDRPanel } from '@ibizsys/field/IBizFormDRPanel';
import { IBizFormGroup } from '@ibizsys/field/IBizFormGroup';
import { IBizFormIFrame } from '@ibizsys/field/IBizFormIFrame';
import { IBizFormRawItem } from '@ibizsys/field/IBizFormRawItem';
import { IBizFormTabPage } from '@ibizsys/field/IBizFormTabPage';
import { IBizFormTabPanel } from '@ibizsys/field/IBizFormTabPanel';
import { IBizFormButton } from '@ibizsys/field/IBizFormButton';
import { IBizHiddenField } from '@ibizsys/field/IBizHiddenField';
import { IBizSearchFormService } from '@ibizsys/widget/IBizSearchFormService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#assign dritem=item.getPSDEDRItem()>
new IBizFormDRPanel({name:'${item.name}',fieldType: 'DRUIPART',visible: true<#if item.getRefreshItems()??>,refreshitems:'${item.getRefreshItems()}'</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>,height:${item.getContentHeight()},width:'100%',form:this,dritem:{
id:'${dritem.id}',embedviewid:'${item.getEmbedViewId()}',parentmode:{srfparenttype:'${dritem.itemType}'<#if ((dritem.itemType=='DER1N') || (dritem.itemType=='SYSDER1N'))>,srfder1nid:'${dritem.getPSDER1NName()}'</#if>}
}})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
new IBizFieldItem({name: '${item.name!''}', visible: true, fieldType: 'FORMITEM', allowEmpty: <#if item.isAllowEmpty()>true<#else>false</#if>, noPrivDisplayMode: ${item.getNoPrivDisplayMode()}, form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
new IBizFormGroup({name:'${item.name}', visible: true,fieldType: 'GROUPPANEL',titleBarCloseMode:'${item.getTitleBarCloseMode()}',form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
new IBizHiddenField({name: '${item.name!''}', visible: false, fieldType: 'HIDDENFORMITEM', form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
new IBizFormRawItem({name: '${item.name!''}', visible: true, fieldType: 'RAWITEM', form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
new IBizFormTabPage({name:'${item.name}',visible: true , fieldType: 'TABPAGE', form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
new IBizFormTabPanel({name:'${item.name}',visible: true , fieldType: 'TABPANEL', form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormControllerCode
</#ibiztemplate>
/**
* 搜索表单部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizSearchFormService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizSearchFormService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
}
/**
* 注册搜索表单项
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regFields(): void {
<#list formdetails as formdetail>
<#if formdetail.code?length gt 0>
this.regField(${formdetail.code});
</#if>
</#list>
}
}
\ No newline at end of file
CTRLTYPE=SEARCHFORM
\ No newline at end of file
import { IBizDRTabService } from '@ibizsys/widget/IBizDRTabService';
\ No newline at end of file
/**
* 数据关系分页部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizDRTabService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizDRTabService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
* @param {*} [opts={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
}
/**
* 注册所有分页部件对象
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regTabs(): void {
<#list ctrl.getRootItem().getAllItems() as dritem>
<#if (dritem_index == 0)>
this.regTab({ index: 0, name: 'form' });
<#else>
this.regTab({ index: ${dritem_index?c}, name: '<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>' });
</#if>
</#list>
}
}
\ No newline at end of file
CTRLTYPE=DRTAB
\ No newline at end of file
<tree *ngFor="let item of ${ctrl.name}.$items;" [tree]="item" (nodeSelected)="${ctrl.name}.nodeSelect($event)"></tree>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDRBarViewCode
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDRBarViewCode
</#ibiztemplate>
::ng-deep .ant-menu > .ng-star-inserted {
position: relative;
.span {
position: absolute;
}
}
.tree-sider {
height: 100%;
background:#fff;
border: 1px solid #e9e9e9;
}
.ibiz-exptree {
height: 40px;
width: 100%;
background: rgb(233, 233, 233);
padding: 6px 0px 6px 12px;
.ibiz-exptree-title {
float: left;
h3 {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ibiz-exptree-collapsed {
width: 40px;
float: left;
}
}
.tree-view-content {
width:100%;
background-color: #fff;
overflow: auto;
position: absolute;
}
/* 设置滚动条样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
/*滚动条里面小方块*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
box-shadow: inset 0 0 5px white;
background: rgba(0, 0, 0, 0.65);
}
/*滚动条里面轨道*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 5px white;
border-radius: 10px;
background: white;
}
.treeexpbar-tree-isCollapsed {
flex: 0 0 40px !important;
width: 40px !important;
.ibiz-exptree {
padding: 6px 0px 6px 3px !important;
}
.ibiz-exptree-title {
display: none;
}
}
\ No newline at end of file
<tree *ngFor="let item of ${ctrl.name}.$items;" [tree]="item" (nodeSelected)="${ctrl.name}.nodeSelect($event)"></tree>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDRBarViewCode
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDRBarViewCode
</#ibiztemplate>
<nz-sider [nzWidth]="<#if ctrl.getWidth() lt 240>240<#else>${ctrl.getWidth()}</#if>" class="tree-sider" [class.treeexpbar-tree-isCollapsed]="!${ctrl .name}.$isCollapsed" style="height: <#if ctrl.getHeight() lt 500>500<#else>${ctrl.getHeight()}</#if>px;">
<div class="ibiz-exptree" style="height: 40px;">
<div class="ibiz-exptree-title" style="width: calc(100% - 40px);">
<h3><#if ctrl.getTitle() == ''>数据关系栏<#else>${ctrl.getTitle()}</#if></h3>
</div>
<div class="ibiz-exptree-collapsed" style="width: 40px;">
<button nz-button [nzType]="'primary'" (click)="${ctrl .name}.$isCollapsed = !${ctrl .name}.$isCollapsed">
<i class="anticon" [class.anticon-menu-unfold]="!${ctrl .name}.$isCollapsed" [class.anticon-menu-fold]="${ctrl .name}.$isCollapsed">
</i>
</button>
</div>
</div>
<div class="tree-view-content" style="height: calc(100% - 40px);">
<ul nz-menu [nzMode]="'inline'">
<!-- 一级菜单 begin -->
<ng-container *ngFor="let item of ${ctrl.name}.$items">
<ng-container *ngIf="!item.hassubmenu">
<li nz-menu-item [ngClass]="{'ant-menu-item-selected': item.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false" (click)="${ctrl.name}.selection(item)">
<span title>
<i class="fa {{item.iconCls}}">&nbsp;&nbsp;</i>
<span>{{item.text}}</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="item.hassubmenu">
<li nz-submenu [(nzOpen)]="item.expanded" [ngClass]="{'ant-menu-item-selected': item.id == ${ctrl.name}.$selectItem.id}" (nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(item)">
<span title>
<i class="fa {{item.iconCls}}">&nbsp;&nbsp;</i>
<span>{{item.text}}</span>
</span>
<ul>
<!-- 二级菜单 begin -->
<ng-container *ngFor="let sub0 of item.items">
<ng-container *ngIf="!sub0.hassubmenu">
<li nz-menu-item [ngClass]="{'ant-menu-item-selected': sub0.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false" (click)="${ctrl.name}.selection(sub0)">
<span title>
<i class="fa {{sub0.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub0.text}}</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="sub0.hassubmenu">
<li nz-submenu [(nzOpen)]="sub0.expanded" [ngClass]="{'ant-menu-item-selected': sub0.id == ${ctrl.name}.$selectItem.id}" (nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(sub0)">
<span title>
<i class="fa {{sub0.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub0.text}}</span>
</span>
<ul>
<!-- 三级菜单 begin -->
<ng-container *ngFor="let sub1 of sub0.items">
<ng-container *ngIf="!sub1.hassubmenu">
<li nz-menu-item [ngClass]="{'ant-menu-item-selected': sub1.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false" (click)="${ctrl.name}.selection(sub1)">
<span title>
<i class="fa {{sub1.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub1.text}}</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="sub1.hassubmenu">
<li nz-submenu [(nzOpen)]="sub1.expanded" [ngClass]="{'ant-menu-item-selected': sub1.id == ${ctrl.name}.$selectItem.id}" (nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(sub1)">
<span title>
<i class="fa {{sub1.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub1.text}}</span>
</span>
<ul>
<!-- 四级菜单 begin -->
<ng-container *ngFor="let sub2 of sub1.items">
<li nz-menu-item [ngClass]="{'ant-menu-item-selected': sub2.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false" (click)="${ctrl.name}.selection(sub2)">
<span title>
<i class="fa {{sub2.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub2.text}}</span>
</span>
</li>
</ng-container>
<!-- 四级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 三级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 二级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 一级菜单 end -->
</ul>
</div>
</nz-sider>
\ No newline at end of file
import { IBizDRBarService } from '@ibizsys/widget/IBizDRBarService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDRBarViewCode
</#ibiztemplate>
/**
* 数据关系栏部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizDRBarService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizDRBarService {
constructor(opt) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=DRBAR
\ No newline at end of file
<app-ibiz-echarts4 style="width: 100%;float: left;height: <#if ctrl.getWidth() lt 500>500<#else>${ctrl.getWidth()}</#if>px;" [ctrl]="${ctrl.name}" chartType="${ctrl.getControlType()}"></app-ibiz-echarts4>
\ No newline at end of file
import { IBizChartService } from '@ibizsys/widget/IBizChartService';
\ No newline at end of file
/**
* 数据图表部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizChartService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizChartService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opts={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 获取图表基础配置数据
*
* @returns {*}
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public getChartConfig(): any {
<#assign title=ctrl.getPSDEChartTitle()>
<#assign xaxislist=ctrl.getPSDEChartAxesesByPos('x')>
<#assign yaxislist=ctrl.getPSDEChartAxesesByPos('y')>
<#assign customCode=''>
<#if ctrl.getPSSysPFPlugin()??>
<#assign customCode= ctrl.getPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,ctrl,null)>
</#if>
const opts = {
title: { show: <#if title.isShowTitle()>true<#else>false</#if><#if title.getTitle()??>, text: '${title.getTitle()}'</#if><#if title.getSubTitle()??>, subtext: '${title.getSubTitle()}'</#if> }
, legend: { }<#if ctrl.getCoordinateSystem()??><#if ctrl.getCoordinateSystem()='XY'>,tooltip:{trigger:'axis'}
, xAxis: [
<#assign first = 1>
<#list ctrl.getPSDEChartAxeses() as axes>
<#if axes.getAxesType() == 'category'>
<#if first==0>, </#if><#assign first = 0>{ aixstag: '${axes.getName()}', type: 'category', position: '${axes.getAxesPos()}'<#if axes.getCaption()??>, name: '${axes.getCaption()}'</#if><#if axes.getMaxValue()??>, max: ${axes.getMaxValue()?c}</#if><#if axes.getMinValue()??>, min: ${axes.getMinValue()?c}</#if> }
</#if>
</#list>
]
, yAxis: [
<#assign first = 1>
<#list ctrl.getPSDEChartAxeses() as axes>
<#if axes.getAxesType() == 'numeric'>
<#if first==0>, </#if><#assign first = 0>{ aixstag: '${axes.getName()}', type: 'value', position: '${axes.getAxesPos()}'<#if axes.getCaption()??>, name: '${axes.getCaption()}'</#if><#if axes.getMaxValue()??>, max: ${axes.getMaxValue()?c}</#if><#if axes.getMinValue()??>, min: ${axes.getMinValue()?c}</#if> }
</#if>
</#list>
]
<#elseif ctrl.getCoordinateSystem()='NONE'>,tooltip:{trigger:'item'}<#else>,tooltip:{}</#if></#if>
, seriesMap: {
<#assign first = 1>
<#list srflist(ctrl.getPSDEChartSerieses()) as series>
<#if first==0>, </#if><#assign first = 0> ${series.getName()}: {type: '${series.getSeriesType()}'<#if series.getCaption()??>, caption: '${series.getCaption()}'</#if><#if series.getXPSChartAxes()??>, xaixstag: '${series.getXPSChartAxes().getName()}'</#if><#if series.getYPSChartAxes()??>, yaixstag: '${series.getYPSChartAxes().getName()}'</#if> }
</#list>
}
, toolbox:{ show : true, feature : { dataView : { show: true, readOnly: true, title: '数据视图' }, saveAsImage : { show: true, title: '保存为图片' } } }
};
return opts;
}
}
\ No newline at end of file
CTRLTYPE=CHART
\ No newline at end of file
<#list ctrl.getPSPortlets() as portlet>
<#if srfctrl(portlet.name)??>
${srfctrl('${portlet.name}').code}
</#if>
</#list>
\ No newline at end of file
<div> <span>数据面板</span>
<#list ctrl.getPSPortlets() as portlet>
<#if srfctrl(portlet.name)??>
${srfctrl('${portlet.name}').code}
</#if>
</#list>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDashboardPartVC
</#ibiztemplate>
<div nz-col <#if item.getPSAjaxControlParam()??><#assign control=item.getPSAjaxControlParam()><#if control.getColLG() != -1>[nzLg]="${control.getColLG()?c}"</#if> <#if control.getColMD() != -1>[nzMd]="${control.getColMD()?c}"</#if>
<#if control.getColSM() != -1>[nzSm]="${control.getColSM()?c}"</#if> <#if control.getColXS() != -1>[nzXs]="${control.getColXS()?c}"</#if></#if> >
<nz-card [nzBordered]="false" nzNoPadding>
<#if item.getPortletType() != "APPMENU">
<#assign sysportlet=item.getPSSysPortlet()>
<#-- 自定义部件 -->
<#if item.getPortletType()=='CUSTOM'>
<#if sysportlet.getPSSysPFPlugin()??>
${sysportlet.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
没有指定绘制器
</#if>
<#else>
<#-- 标准部件 -->
<#-- 标题 -->
<#if sysportlet.isShowTitleBar()>
<#if sysportlet.getTitlePSSysPFPlugin()??>
${sysportlet.getTitlePSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<ng-template #title>
${item.title}
<small class="text-sm font-weight-normal">${item.memo}</small>
</ng-template>
</#if>
</#if>
<#-- 内容 -->
<ng-template #body>
<#if portlet??>${portlet.code}<#else>没有指定部件</#if>
</ng-template>
</#if>
<#else>
<#if portlet??>${portlet.code}</#if>
</#if>
</nz-card>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDashboardViewCode
</#ibiztemplate>
<div class="${ctrl.name}">
<#assign newrow=0>
<#list parts as part>
<#if (part.obj.getPSAjaxControlParam().isNewRowMode())>
<#if (newrow==1)>
</div>
</#if>
<div nz-row nzGutter="24" >
<#assign newrow=1>
</#if>
${part.code}
</#list>
<#if (newrow==1)>
</div>
</#if>
</div>
\ No newline at end of file
import { IBizDashboardService } from '@ibizsys/widget/IBizDashboardService';
\ No newline at end of file
<#list ctrl.getPSPortlets() as portlet>
<#if srfctrl(portlet.name)??>
${srfctrl('${portlet.name}').code}
</#if>
</#list>
\ No newline at end of file
<div> <span>数据面板</span>
<#list ctrl.getPSPortlets() as portlet>
<#if srfctrl(portlet.name)??>
${srfctrl('${portlet.name}').code}
</#if>
</#list>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDashboardPartVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDashboardViewCode
</#ibiztemplate>
/**
* 数据看板部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizDashboardService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizDashboardService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=DASHBOARD
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridViewCode
</#ibiztemplate>
::ng-deep .ant-table-footer {
background: white;
.ibiz-grid-pagination {
.ant-pagination-options {
.ant-select {
width: auto;
}
}
}
}
::ng-deep .ant-table-fixed-header {
.ant-table-scroll {
.ant-table-header {
overflow-x: hidden;
overflow-y: hidden;
}
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridColVC
</#ibiztemplate>
<#assign column = item>
<#if column.getColumnType() = 'UAGRIDCOLUMN'>
<#comment><!--开始:操作列--></#comment>
<td nz-td *ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)" style="<#if column.getAlign()??&&column.getAlign()?length gt 0>text-align:<#if column.getAlign()=='LEFT'>left</#if><#if column.getAlign()=='CENTER'>center</#if><#if column.getAlign()=='RIGHT'>right</#if>;</#if>">
<#if column.getPSDEUIActionGroup().getPSDEUIActions()??>
<#if column.getColumnStyle()?? && column.getColumnStyle() == 'MENU'>
<#comment><!--开始:样式菜单模式--></#comment>
<nz-dropdown-button [nzDisabled]="data.disabled">
更多操作
<ul nz-menu>
<#list column.getPSDEUIActionGroup().getPSDEUIActions() as uiaction>
<li nz-menu-item>
<a <#if uiaction.getDataAccessAction()??&&uiaction.getDataAccessAction()?length gt 0> *ngIf="data?.srfdataaccaction?.${uiaction.getDataAccessAction()}"</#if>
(click)="${ctrl.name}.uiAction('${uiaction.getUIActionTag()}',data)">${uiaction.getCaption("")}</a>
</li>
</#list>
</ul>
</nz-dropdown-button>
<#comment><!--结束:样式菜单模式--></#comment>
<#elseif column.getColumnStyle()?? && column.getColumnStyle() == 'EXPAND'>
<#comment><!--开始:样式平铺展开模式--></#comment>
<span>
<#list column.getPSDEUIActionGroup().getPSDEUIActions() as uiaction>
<#if uiaction_index gt 0><span nz-table-divider></span></#if>
<a <#if uiaction.getDataAccessAction()??&&uiaction.getDataAccessAction()?length gt 0> *ngIf="data?.srfdataaccaction?.${uiaction.getDataAccessAction()}"</#if> (click)="${ctrl.name}.uiAction('${uiaction.getUIActionTag()}',data)" [style.color]="data.disabled?'#bfbfbf':''">${uiaction.getCaption("")}</a>
</#list>
</span>
<#comment><!--结束:样式平铺展开模式--></#comment>
<#else>
<#comment><!--开始:暂不支持其他模式,默认平铺展开模式--></#comment>
<span>
<#list column.getPSDEUIActionGroup().getPSDEUIActions() as uiaction>
<#if uiaction_index gt 0><span nz-table-divider></span></#if>
<a <#if uiaction.getDataAccessAction()??&&uiaction.getDataAccessAction()?length gt 0> *ngIf="data?.srfdataaccaction?.${uiaction.getDataAccessAction()}"</#if> (click)="${ctrl.name}.uiAction('${uiaction.getUIActionTag()}',data)" [style.color]="data.disabled?'#bfbfbf':''">${uiaction.getCaption("")}</a>
</#list>
</span>
<#comment><!--结束:暂不支持其他模式,默认平铺展开模式--></#comment>
</#if>
</#if>
</td>
<#comment><!--结束:操作列--></#comment>
<#else>
<#comment><!--开始:数据列--></#comment>
<td nz-td style="<#if column.getAlign()??&&column.getAlign()?length gt 0>text-align:<#if column.getAlign()=='LEFT'>left</#if><#if column.getAlign()=='CENTER'>center</#if><#if column.getAlign()=='RIGHT'>right</#if>;</#if>">
<#if (column.getRenderPSSysPFPlugin()??)>
<#comment><!--开始:扩展绘制列--></#comment>
<span>${column.getRenderPSSysPFPlugin().getCode("CODE", pf.getId(), pfstyle.getId(), view,ctrl, column)}</span>
<#comment><!--结束:扩展绘制列--></#comment>
<#elseif (column.getPSDEUIAction()??)>
<#comment><!--开始:列调用实体界面行为--></#comment>
<#assign uiaction = column.getPSDEUIAction()>
<span>
<a (click)="${ctrl.name}.uiAction('${uiaction.getUIActionTag()}',data)" [style.color]="data.disabled?'#bfbfbf':''">
<#if ((column.getCodeList())?? && column.getCLConvertMode() == 'FRONT')>
<#comment><!--开始:代码表模式--></#comment>
<#assign codelist = column.getPSCodeList()>
<#if codelist.getCodeListType() == 'STATIC'>
<#if codelist.getOrMode() == ''>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_Normal( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}' ) | IBizSafeString:'html'"></span>
<#elseif codelist.getOrMode() == 'STR'>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_StrOr( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}', '${codelist.textSeparator}', '${codelist.valueSeparator}' ) | IBizSafeString:'html'"></span>
<#elseif codelist.getOrMode() == 'NUM'>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_NumOr( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}', '${codelist.textSeparator}' ) | IBizSafeString:'html'"></span>
</#if>
<#else>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if>>{{data.${column.getDataItemName()?lower_case}}}</span>
</#if>
<#if column.isEnableRowEdit()><span *ngIf="!data.openeditrow">${editor.code}</span></#if>
<#comment><!--结束:代码表模式--></#comment>
<#else>
<#comment><!--开始:通用模式--></#comment>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if>>{{data.${column.getDataItemName()?lower_case}}}</span>
<#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()><span *ngIf="!data.openeditrow">${editor.code}</span></#if>
<#comment><!--结束:通用模式--></#comment>
</#if>
</a>
</span>
<#comment><!--结束:列调用实体界面行为--></#comment>
<#else>
<#comment><!--开始:通用模式--></#comment>
<#if ((column.getCodeList())?? && column.getCLConvertMode()=='FRONT')>
<#comment><!--开始:代码表模式--></#comment>
<#assign codelist = column.getPSCodeList()>
<#if codelist.getCodeListType() == 'STATIC'>
<#if codelist.getOrMode() == ''>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_Normal( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}' ) | IBizSafeString:'html'"></span>
<#elseif codelist.getOrMode() == 'STR'>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_StrOr( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}', '${codelist.textSeparator}', '${codelist.valueSeparator}' ) | IBizSafeString:'html'"></span>
<#elseif codelist.getOrMode() == 'NUM'>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if> [innerHTML]="renderCodeList_NumOr( '${srfparamname('${sys.codeName}')}_${column.getCodeList().codeName}', data.${column.getDataItemName()?lower_case}, '${codelist.getEmptyText()}', '${codelist.textSeparator}' ) | IBizSafeString:'html'"></span>
</#if>
<#else>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if>>{{data.${column.getDataItemName()?lower_case}}}</span>
</#if>
<#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()><span *ngIf="!data.openeditrow">${editor.code}</span></#if>
<#comment><!--结束:代码表模式--></#comment>
<#else>
<#comment><!--开始:通用模式--></#comment>
<span <#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()>*ngIf="data.openeditrow"</#if>>{{data.${column.getDataItemName()?lower_case}}}</span>
<#if ctrl.isEnableRowEdit() && column.isEnableRowEdit()><span *ngIf="!data.openeditrow">${editor.code}</span></#if>
<#comment><!--结束:通用模式--></#comment>
</#if>
<#comment><!--结束:通用模式--></#comment>
</#if>
</td>
<#comment><!--结束:数据列--></#comment>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridViewCode
</#ibiztemplate>
<nz-table
#${srfclassname('${ctrl.name}')}
[nzAjaxData]="${ctrl.name}.$items"
[nzIsPagination]="false"
[nzCustomNoResult]="true"
<#if (ctrl.getHeight() gt 0) || (ctrl.getWidth() gt 0) || (!ctrl.isForceFit())>[nzScroll]="{ x: <#if (ctrl.getWidth() gt 0)>${ctrl.getWidth()?c}<#elseif (!ctrl.isForceFit())>1920<#else>null</#if>, y: <#if (ctrl.getHeight() gt 0)>${ctrl.getHeight()?c}<#else>null</#if> }"</#if>
<#if ctrl.isEnablePagingBar()> [nzShowFooter]="true"</#if>>
<#-- 表格无值显示内容 -->
<span noResult><#if ctrl.getEmptyText() != ''>${ctrl.getEmptyText()}<#else>没有数据</#if></span>
<#-- 是否有默认适配列 -->
<#assign adaptationColu = true/>
<#-- 是否显示表格头部与是否适屏 -->
<#if !ctrl.isHideHeader()>
<#-- 表格宽度大于0或高度大于0或表格不自适应屏幕宽度,均出滚动条 -->
<#if (ctrl.getHeight() gt 0) || (ctrl.getWidth() gt 0) || (!ctrl.isForceFit())>
<ng-template #nzFixedHeader>
<thead nz-thead>
<tr>
<th nz-th [nzCheckbox]="true" [nzWidth]="'50px'" <#if ctrl.isEnableRowEdit()>*ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)"</#if>>
<#if !ctrl.isSingleSelect()>
<label nz-checkbox [(ngModel)]="${ctrl.name}.$allChecked" *ngIf="${ctrl.name}.$multiSelect" [nzIndeterminate]="${ctrl.name}.$indeterminate" (ngModelChange)="${ctrl.name}.selectAll($event)"></label>
</#if>
</th>
<#if ctrl.isEnableRowEdit()>
<th nz-th [nzWidth]="'50px'" *ngIf="(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)">
<span>序号</span>
</th>
</#if>
<#list ctrl.getPSDEGridColumns() as column>
<#if column.getWidthUnit() == 'STAR'>
<#assign adaptationColu = false/>
</#if>
<th nz-th <#if column.getColumnType() = 'UAGRIDCOLUMN'>*ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)"</#if> <#if column.getWidthUnit()!='STAR'> [nzWidth]="'${column.width}px'"</#if> style="<#if column.getAlign()??&&column.getAlign()?length gt 0>text-align:<#if column.getAlign()=='LEFT'>left</#if><#if column.getAlign()=='CENTER'>center</#if><#if column.getAlign()=='RIGHT'>right</#if>;</#if>">
<span>{{${ctrl.name}.$columns.${column.getName()?lower_case}.caption}}</span>
<#if !ctrl.isNoSort() && column.isEnableSort()>
<nz-table-sort *ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)" (nzValueChange)="${ctrl.name}.sort('${column.getDataItemName()?lower_case}',$event)"></nz-table-sort>
</#if>
</th>
</#list>
<#if adaptationColu><th nz-th ></th></#if>
</tr>
</thead>
</ng-template>
<#else>
<thead nz-thead>
<tr>
<th nz-th [nzCheckbox]="true" [nzWidth]="'50px'" <#if ctrl.isEnableRowEdit()>*ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)"</#if>>
<#if !ctrl.isSingleSelect()>
<label nz-checkbox [(ngModel)]="${ctrl.name}.$allChecked" *ngIf="${ctrl.name}.$multiSelect" [nzIndeterminate]="${ctrl.name}.$indeterminate" (ngModelChange)="${ctrl.name}.selectAll($event)"></label>
</#if>
</th>
<#if ctrl.isEnableRowEdit()>
<th nz-th [nzWidth]="'50px'" *ngIf="(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)">
<span>序号</span>
</th>
</#if>
<#list ctrl.getPSDEGridColumns() as column>
<#if column.getWidthUnit() == 'STAR'>
<#assign adaptationColu = false/>
</#if>
<th nz-th <#if column.getColumnType() = 'UAGRIDCOLUMN'>*ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)"</#if> <#if column.getWidthUnit()!='STAR'> [nzWidth]="'${column.width}px'"</#if> style="<#if column.getAlign()??&&column.getAlign()?length gt 0>text-align:<#if column.getAlign()=='LEFT'>left</#if><#if column.getAlign()=='CENTER'>center</#if><#if column.getAlign()=='RIGHT'>right</#if>;</#if>">
<span>{{${ctrl.name}.$columns.${column.getName()?lower_case}.caption}}</span>
<#if !ctrl.isNoSort() && column.isEnableSort()>
<nz-table-sort *ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)" (nzValueChange)="${ctrl.name}.sort('${column.getDataItemName()?lower_case}',$event)"></nz-table-sort>
</#if>
</th>
</#list>
<#if adaptationColu><th nz-th ></th></#if>
</tr>
</thead>
</#if>
</#if>
<tbody nz-tbody>
<tr nz-tbody-tr *ngFor="let data of ${srfclassname('${ctrl.name}')}.data;let rowindex=index;" (click)="${ctrl.name}.clickRowSelect(data)" (dblclick)="${ctrl.name}.dblClickRowSelection(data)">
<td nz-td [nzCheckbox]="true" <#if ctrl.isEnableRowEdit()>*ngIf="!(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)"</#if>>
<label nz-checkbox [nzDisabled]="data.disabled" [(ngModel)]="data.checked" (ngModelChange)="${ctrl.name}.onItemSelect($event,data)">
</label>
</td>
<#if ctrl.isEnableRowEdit()>
<td nz-td *ngIf="(${ctrl.name}.$isEnableRowEdit && ${ctrl.name}.$openRowEdit)">
<span>{{rowindex + 1}}</span>
</td>
</#if>
<#list columns as column>
${column.code}
</#list>
<#if adaptationColu><td nz-td ></td></#if>
</tr>
</tbody>
<#if ctrl.isEnablePagingBar()>
<span nz-table-footer>
<div class="pull-left">
<div>显示 {{(${ctrl.name}.$curPage - 1) * ${ctrl.name}.$limit + 1}} - {{ (${ctrl.name}.$limit * ${ctrl.name}.$curPage) > ${ctrl.name}.$totalrow ?
${ctrl.name}.$totalrow : (${ctrl.name}.$limit * ${ctrl.name}.$curPage) }} 条,共 {{ ${ctrl.name}.$totalrow }} 条</div>
</div>
<div class="pull-right ibiz-grid-pagination">
<nz-pagination [(nzPageIndex)]="${ctrl.name}.nzPageIndex" [(nzPageSize)]="${ctrl.name}.nzPageSize" [nzTotal]="${ctrl.name}.$totalrow"
(nzPageIndexClickChange)="${ctrl.name}.clickPageIndex($event)" nzShowQuickJumper nzShowSizeChanger [nzPageSizeSelectorValues]="[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]">
</nz-pagination>
</div>
</span>
</#if>
</nz-table>
\ No newline at end of file
[<#list ctrl.getPSDEGridColumns() as column>
<#if column_index gt 0>,</#if>{"title" : "${column.caption}","align" : 'center',"valign" : 'middle',"data" : '${column.getDataItemName()}'
<#if column.isEnableSort()>,"orderable":true<#else>,"orderable":false</#if>}
</#list>
]
\ No newline at end of file
{text: "${item.caption}", width: ${item.width}, dataIndex: '${item.dataItemName}' <#if !item.isEnableSort()>,sortable:false</#if>
<#if (item.getPSCodeList()??)&&(item.getPSCodeList().getCodeListType()=='STATIC')>,renderer:'render${ctrl.name}_${item.dataItemName}'</#if>
}
\ No newline at end of file
{name: '${item.name}', type: 'string'}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSExtJS5DEGridStoreVC
</#ibiztemplate>
{ xtype:'store',remoteSort:true,autoLoad: false,model: Ext.create('Ext.data.Model',{
fields: [<#list records as record><#if (record_index>0) >,</#if>${record.code}</#list> ]
}),
proxy: {
// load using HTTP
type: 'ajax',
actionMethods:{read:'POST'},
url: '${view.backendUrl}SRFCTRLID=${ctrl.name}',
timeout:60000,
noCache: true,
reader: {
type: 'json',
rootProperty:'items',
totalProperty:'totalrow',
summaryinfo:'summaryinfo',
code:'code',
url:'url'
}
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridViewCode
</#ibiztemplate>
<table class="table table-bordered" id="${'$'}{cid}${ctrl.name}" >
<thead>
<tr>
<#list ctrl.getPSDEGridColumns() as column>
<th>${column.caption}</th>
</#list>
</tr>
</thead>
<tbody></tbody>
</table>
\ No newline at end of file
import { IBizGridService } from '@ibizsys/widget/IBizGridService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridColVC
</#ibiztemplate>
<#assign column = item>{ name: '${column.getName()?lower_case}', caption: '${column.getCaption()}', type: '${column.getColumnType()}', dataItemName: '<#if column.getDataItemName()??>${column.getDataItemName()?lower_case}</#if>' }
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEGridViewCode
</#ibiztemplate>
/**
* 数据表格部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizGridService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizGridService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
this.$limit = ${ctrl.getPagingSize()};
this.$isEnablePagingBar= ${ctrl.isEnablePagingBar()?c};
this.$multiSelect = <#if !ctrl.isSingleSelect()>true<#else>false</#if>;
this.$isEnableRowEdit = <#if ctrl.isEnableRowEdit()>true<#else>false</#if>;
<#assign gridhandler = view.getPSControl("GRID").getPSAjaxControlHandler()>
this.$maxExportRow = <#if gridhandler?? && gridhandler.getPSDEDataExport()??>${gridhandler.getPSDEDataExport().getMaxRowCount()?c}<#else>${sys.getDEDataExportMaxRowCount()?c}</#if>;
}
/**
* 注册表头
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regColumns(): void {
<#list columns as column>
this.regColumn(${column.code});
</#list>
}
<#comment><!--开始:启用行编辑--></#comment>
<#if ctrl.isEnableRowEdit()>
/**
* 注册表格所有编辑项 (启用编辑后的数据项)
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regEditItems(): void {
<#list ctrl.getPSDEGridEditItems() as item>
this.regEditItem({ name: '${item.getName()?lower_case}', enabledcond: ${item.getEnableCond()}, styleCss: { height: '100%', width: '<#if item.getPSDEGridColumn()??><#assign column = item.getPSDEGridColumn()><#if (column.getWidth() gt 16) && (column.getWidthUnit() == 'PX')>${(column.getWidth()-16)?c}px<#else>100%</#if><#else>100%</#if>' } });
</#list>
}
</#if>
<#comment><!--结束:启用行编辑--></#comment>
}
\ No newline at end of file
CTRLTYPE=GRID
\ No newline at end of file
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="8" *ngFor="let item of ${ctrl.name}.$items">
<div class="ibiz-pickupdata-item" [ngClass]="{'actived': ${ctrl.name}.$selectItem?.srfkey == item.srfkey}" (dblclick)="${ctrl.name}.DBClickSelectChange(item)" (click)="${ctrl.name}.selectChange(item)">
<a>{{item.srfmajortext}}</a>
</div>
</div>
</div>
\ No newline at end of file
import { IBizDataViewService } from '@ibizsys/widget/IBizDataViewService';
\ No newline at end of file
/**
* 数据视图部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizDataViewService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizDataViewService {
constructor(opt) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=DATAVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
::ng-deep tree-viewport > .ng-star-inserted {
position: relative;
.angular-tree-component {
position: absolute;
}
}
/* 设置滚动条样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
/*滚动条里面小方块*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
box-shadow: inset 0 0 5px white;
background: rgba(0, 0, 0, 0.65);
}
/*滚动条里面轨道*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 5px white;
border-radius: 10px;
background: white;
}
\ No newline at end of file
<div style="width: 100%;height: <#if ctrl.getHeight() lt 500>500<#else>${ctrl.getHeight()}</#if>px;overflow: auto;">
<nz-tree [nzNodes]="${ctrl .name}.$items" [nzShowLine]="true" [nzOptions]="${ctrl .name}.options" (nzEvent)="${ctrl .name}.onEvent($event)"></nz-tree>
</div>
\ No newline at end of file
import { IBizTreeService } from '@ibizsys/widget/IBizTreeService';
\ No newline at end of file
/**
* 树视图部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizTreeService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizTreeService {
constructor(opt) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=TREEVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
::ng-deep tree-viewport > .ng-star-inserted {
position: relative;
.angular-tree-component {
position: absolute;
}
}
.tree-sider {
height: 100%;
background:#fff;
border: 1px solid #e9e9e9;
}
.ibiz-exptree {
height: 40px;
width: 100%;
background: rgb(233, 233, 233);
padding: 6px 0px 6px 12px;
.ibiz-exptree-title {
float: left;
h3 {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ibiz-exptree-collapsed {
width: 40px;
float: left;
}
}
.tree-view-content {
width:100%;
background-color: #fff;
overflow: auto;
position: absolute;
}
/* 设置滚动条样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
/*滚动条里面小方块*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
box-shadow: inset 0 0 5px white;
background: rgba(0, 0, 0, 0.65);
}
/*滚动条里面轨道*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 5px white;
border-radius: 10px;
background: white;
}
.treeexpbar-tree-isCollapsed {
flex: 0 0 40px !important;
width: 40px !important;
.ibiz-exptree {
padding: 6px 0px 6px 3px !important;
}
.ibiz-exptree-title {
display: none;
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
<#if ctrl.getPSDETree()??>
<#assign tree = ctrl.getPSDETree()>
<nz-sider [nzWidth]="<#if ctrl.getWidth() lt 240>240<#else>${ctrl.getWidth()}</#if>" class="tree-sider" [class.treeexpbar-tree-isCollapsed]="!${tree .name}.$isCollapsed" style="height: <#if ctrl.getHeight() lt 500>500<#else>${ctrl.getHeight()}</#if>px;">
<div class="ibiz-exptree" style="height: 40px;">
<div class="ibiz-exptree-title" style="width: calc(100% - 40px);">
<h3><#if ctrl.getTitle() == ''>${tree.getLogicName()}<#else>${ctrl.getTitle()}</#if></h3>
</div>
<div class="ibiz-exptree-collapsed" style="width: 40px;">
<button nz-button [nzType]="'primary'" (click)="${tree .name}.$isCollapsed = !${tree .name}.$isCollapsed">
<i class="anticon" [class.anticon-menu-unfold]="!${tree .name}.$isCollapsed" [class.anticon-menu-fold]="${tree .name}.$isCollapsed">
</i>
</button>
</div>
</div>
<div class="tree-view-content" style="height: calc(100% - 40px);">
<nz-tree [nzNodes]="${tree .name}.$items" [nzShowLine]="true" [nzOptions]="${tree .name}.options" (nzEvent)="${tree .name}.onEvent($event)"></nz-tree>
</div>
</nz-sider>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
import { IBizTreeExpBarService} from '@ibizsys/widget/IBizTreeExpBarService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
/**
* 树视图导航栏部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizTreeExpBarService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizTreeExpBarService {
constructor(opt){
super(opt);
}
/**
* 获取计数器名称
* 在发布器中重写
*
* @returns {string}
* @memberof ${ctrl.name}Service
*/
public getUICounterName(): string {
<#if ctrl.getPSSysCounterRef()??>
<#if ctrl.getPSSysCounterRef().getPSSysCounter()??>
<#assign ctrlcounter = ctrl.getPSSysCounterRef().getPSSysCounter()>
return '${ctrlcounter.getCodeName()}';
</#if>
<#else>
return undefined;
</#if>
}
}
\ No newline at end of file
CTRLTYPE=TREEEXPBAR
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
import { IBizWFExpBarService } from './../../../ibizsys/widget/IBizWFExpBarService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
::ng-deep .ant-menu > .ng-star-inserted {
position: relative;
.span {
position: absolute;
}
}
.tree-sider {
height: 100%;
background:#fff;
border: 1px solid #e9e9e9;
}
.ibiz-exptree {
height: 40px;
width: 100%;
background: rgb(233, 233, 233);
padding: 6px 0px 6px 12px;
.ibiz-exptree-title {
float: left;
h3 {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ibiz-exptree-collapsed {
width: 40px;
float: left;
}
}
.tree-view-content {
width:100%;
background-color: #fff;
overflow: auto;
position: absolute;
}
/* 设置滚动条样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
/*滚动条里面小方块*/
::-webkit-scrollbar-thumb{
border-radius: 10px;
box-shadow: inset 0 0 5px white;
background: rgba(0, 0, 0, 0.65);
}
/*滚动条里面轨道*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 5px white;
border-radius: 10px;
background: white;
}
.treeexpbar-tree-isCollapsed {
flex: 0 0 40px !important;
width: 40px !important;
.ibiz-exptree {
padding: 6px 0px 6px 3px !important;
}
.ibiz-exptree-title {
display: none;
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
<nz-sider [nzWidth]="<#if ctrl.getWidth() lt 240>240<#else>${ctrl.getWidth()}</#if>" class="tree-sider" [class.treeexpbar-tree-isCollapsed]="!${ctrl .name}.$isCollapsed" style="height: <#if ctrl.getHeight() lt 500>500<#else>${ctrl.getHeight()}</#if>px;">
<div class="ibiz-exptree" style="height: 40px;">
<div class="ibiz-exptree-title" style="width: calc(100% - 40px);">
<h3><#if ctrl.getTitle() == ''>流程导航栏<#else>${ctrl.getTitle()}</#if></h3>
</div>
<div class="ibiz-exptree-collapsed" style="width: 40px;">
<button nz-button [nzType]="'primary'" (click)="${ctrl .name}.$isCollapsed = !${ctrl .name}.$isCollapsed">
<i class="anticon" [class.anticon-menu-unfold]="!${ctrl .name}.$isCollapsed" [class.anticon-menu-fold]="${ctrl .name}.$isCollapsed">
</i>
</button>
</div>
</div>
<div class="tree-view-content" style="height: calc(100% - 40px);">
<ul nz-menu [nzMode]="'inline'">
<!-- 一级菜单 begin -->
<ng-container *ngFor="let item of ${ctrl.name}.$items">
<ng-container *ngIf="!item.hassubmenu">
<li nz-menu-item *ngIf="item.show" [ngClass]="{'ant-menu-item-selected': item.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false"
(click)="${ctrl.name}.selection(item)">
<span title>
<i class="fa {{item.iconCls}}">&nbsp;&nbsp;</i>
<span>{{item.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="item.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="item.hassubmenu">
<li nz-submenu *ngIf="item.show" [(nzOpen)]="item.expanded" [ngClass]="{'ant-menu-item-selected': item.id == ${ctrl.name}.$selectItem.id}"
(nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(item)">
<span title>
<i class="fa {{item.iconCls}}">&nbsp;&nbsp;</i>
<span>{{item.text}}</span>
<span>&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="item.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
<ul>
<!-- 二级菜单 begin -->
<ng-container *ngFor="let sub0 of item.items">
<ng-container *ngIf="!sub0.hassubmenu">
<li nz-menu-item *ngIf="sub0.show" [ngClass]="{'ant-menu-item-selected': sub0.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false"
(click)="${ctrl.name}.selection(sub0)">
<span title>
<i class="fa {{sub0.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub0.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="sub0.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="sub0.hassubmenu">
<li nz-submenu *ngIf="sub0.show" [(nzOpen)]="sub0.expanded" [ngClass]="{'ant-menu-item-selected': sub0.id == ${ctrl.name}.$selectItem.id}"
(nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(sub0)">
<span title>
<i class="fa {{sub0.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub0.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="sub0.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
<ul>
<!-- 三级菜单 begin -->
<ng-container *ngFor="let sub1 of sub0.items">
<ng-container *ngIf="!sub1.hassubmenu">
<li nz-menu-item *ngIf="sub1.show" [ngClass]="{'ant-menu-item-selected': sub1.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false"
(click)="${ctrl.name}.selection(sub1)">
<span title>
<i class="fa {{sub1.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub1.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="sub1.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
</li>
</ng-container>
<ng-container *ngIf="sub1.hassubmenu">
<li nz-submenu *ngIf="sub1.show" [(nzOpen)]="sub1.expanded" [ngClass]="{'ant-menu-item-selected': sub1.id == ${ctrl.name}.$selectItem.id}"
(nzOpenChange)="${ctrl.name}.expandedAndSelectSubMenu(sub1)">
<span title>
<i class="fa {{sub1.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub1.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="sub1.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
<ul>
<!-- 四级菜单 begin -->
<ng-container *ngFor="let sub2 of sub1.items">
<li nz-menu-item *ngIf="sub2.show" [ngClass]="{'ant-menu-item-selected': sub2.id == ${ctrl.name}.$selectItem.id}" nzClickActive="false"
(click)="${ctrl.name}.selection(sub2)">
<span title>
<i class="fa {{sub2.iconCls}}">&nbsp;&nbsp;</i>
<span>{{sub2.text}}</span>
<span >&nbsp;&nbsp;
<nz-badge [nzDot]="'false'" [nzCount]="sub2.counterdata" [nzOverflowCount]="9999"></nz-badge>
</span>
</span>
</li>
</ng-container>
<!-- 四级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 三级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 二级菜单 end -->
</ul>
</li>
</ng-container>
</ng-container>
<!-- 一级菜单 end -->
</ul>
</div>
</nz-sider>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
import { IBizWFExpBarService } from '@ibizsys/widget/IBizWFExpBarService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="11"></div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div data-ibizid='${item.uniqueId}__fi' class="item-content ibiz-content-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>" >
<div class="item-inner ibiz-inner-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if (item.isShowCaption())>
<div data-ibizid='${item.uniqueId}__lb' class="item-title label"><#if !(item.isEmptyCaption())>${item.caption}</#if></div>
</#if>
<div class="item-input ibiz-input-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
${editor.code}
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div data-ibizid="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<div class="content-block-title">${item.caption}</div>
</#if>
<div class="list-block">
<ul>
<#list items as rowitem>
<li>
${rowitem.code}
</li>
</#list>
</ul>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div class="${item.getColCssClass()} ${item.getColCssClass()}" id="${item.uniqueId}" name="${item.name}" >
<span >直接内容[${item.caption}]</span>
</div>>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
/**
* 流程导航栏部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizWFExpBarService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizWFExpBarService {
constructor(opt){
super(opt);
}
/**
* 获取计数器名称
* 在发布器中重写
*
* @returns {string}
* @memberof ${ctrl.name}Service
*/
public getUICounterName(): string {
<#if ctrl.getPSSysCounterRef()??>
<#if ctrl.getPSSysCounterRef().getPSSysCounter()??>
<#assign ctrlcounter = ctrl.getPSSysCounterRef().getPSSysCounter()>
return '${ctrlcounter.getCodeName()}';
</#if>
<#else>
return undefined;
</#if>
}
}
\ No newline at end of file
CTRLTYPE=WFEXPBAR
\ No newline at end of file
<div>自定义部件</div>
\ No newline at end of file
import { IBizCustomService } from '@ibizsys/widget/IBizCustomService';
\ No newline at end of file
/**
* 自定义部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizCustomService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizCustomService {
constructor(opt) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=CUSTOM
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-item [field]="fields.${item.name}">
<ng-template let-${item.name}>
<div nz-form-item [ngStyle]="{'display':${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if> <#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> class="ibiz-formitem" >
<button <#if !item.isShowCaption()>[attr.title]="${item.caption}"</#if> nz-button [nzSize]="'large'" class="ml-sm<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" (click)="${item.name}.onClick()">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span>${item.caption}</span></#if>
</button>
</div>
</ng-template>
</app-ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#assign dritem = item.getPSDEDRItem()>
<app-ibiz-drpanel nz-form-item name="${item.name}" #${item.name} [form]="${ctrl.name}"
[ngStyle]="{'display':${ctrl.name}.$fields.${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if><#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> refreshitems="<#if item.getRefreshItems()??>${item.getRefreshItems()?lower_case}<#else></#if>" RelationalDataType="${dritem.itemType}">
<div class="ibiz-formitem ibiz_dr_panel">
<#if item.getPSAppView().isEmbeddedView()>
<app-${ngfilename('${item.getPSAppView().codeName}')} <#if item.getPSDEFormItemUpdate()??>(MDItemsLoad)="${ctrl.name}.updateFormItems('${item.getPSDEFormItemUpdate().codeName}')"</#if> [activeData]="${item.name}.activeData" [srfparentkey]="${item.name}.srfparentkey" [referData]="${item.name}.activeData" [refreshGrid]="${item.name}.count" [viewParam]="viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" [parentmode]="{srfparenttype:'${dritem.itemType}'<#if ((dritem.itemType=='DER1N') || (dritem.itemType=='SYSDER1N'))>,srfder1nid:'${dritem.getPSDER1NName()}'</#if>}"></app-${ngfilename('${item.getPSAppView().codeName}')}>
</#if>
</div>
</app-ibiz-drpanel>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-item [field]="fields.${item.name}">
<ng-template let-${item.name}>
<div nz-form-item [ngStyle]="{'display':${item.name}.visible?'block':'none'<#if item.getColWidth() != -1>,'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if> <#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> class="ibiz-formitem ${item.getLabelPos()?lower_case}" >
<#if (item.isShowCaption())>
<div nz-form-label class='ibiz-formitem-label-left pull-left' <#if (item.getLabelWidth() gte 0)>style="width:${item.getLabelWidth()?c}px;"</#if>>
<label [ngClass]="{'ant-form-item-required': !${item.name}.allowEmpty}"><#if !item.isEmptyCaption()>${item.caption}</#if></label>
</div>
</#if>
<div nz-form-control [nzValidateStatus]="${item.name}.validateStatus" <#if (item.getLabelWidth() gte 0)>style="margin-left:${item.getLabelWidth()?c}px;"</#if>>
${editor.code}
<div nz-form-explain *ngIf="${item.name}.hasError">{{${item.name}.errorInfo}}</div>
</div>
</div>
</ng-template>
</app-ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-form-group [visible]="fields.${item.name}.visible" [ngStyle]="{<#if item.getColWidth() != -1>'width': '${item.getColWidth()?c}px'</#if>}"
nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if><#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> text="<#if item.getCaption()?? && item.getCaption()?length gt 0>${ item.getCaption() }</#if>" [form]="${ctrl.name}"
groupname="${item.name}"<#if item.getPSDEFormDetailCount() gt 0 > firstChild="${item.getPSDEFormDetail(0).getCodeName()}"</#if> [showheader]="<#if item.isShowCaption()>true<#else>false</#if>"
[isShowMore]="<#if item.isEnableBuildInAction(2)>true<#else>false</#if>" [isShowNew]="<#if item.isEnableBuildInAction(1)>true<#else>false</#if>">
<div class="ibiz-content">
<#list items as rowitem>
${rowitem.code}
</#list>
</div>
</app-ibiz-form-group>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<nz-input [nzId]="'${item.name}'" [nzType]="'hidden'" name="${item.name}" [(ngModel)]="fields.${item.name}.value"></nz-input>
\ No newline at end of file
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<app-ibiz-iframe [form]="${ctrl.name}" [url]="'${item.getIFrameUrl()}'" [height]="'<#if item.getHeight() != 0>${item.getHeight()}<#else>200</#if>'" <#if item.getRefreshItems()??> [refreshitems]="'${item.getRefreshItems()?lower_case}'"</#if> nz-col <#if item.getColLG() != -1> [nzLg]="${item.getColLG()?c}"</#if><#if item.getColMD() != -1> [nzMd]="${item.getColMD()?c}"</#if><#if item.getColSM() != -1> [nzSm]="${item.getColSM()?c}"</#if> <#if item.getColXS() != -1> [nzXs]="${item.getColXS()?c}"</#if> ></app-ibiz-iframe>
</#if>
\ No newline at end of file
new IBizFormRawItem({id:'${item.uniqueId}',name:'${item.name}',form:form})
\ No newline at end of file
{<#if (item.showCaption)>
xtype: 'fieldset',title: '${item.caption}',margin:'${item.margin.toString()}',padding:'${item.padding.toString()}'
<#else>
xtype: 'panel'
</#if>
,reference:'${ctrl.name}_${item.name}'<#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>,hidden:true</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>
<#if (item.layoutMode=='TABLE') >
,layout:'vbox'
,items:[<#list rows as row><#if (row_index>0) >,</#if>
{xtype: 'panel',layout:'column',width: '100%',items:[<#list (row.items) as rowitem><#if (rowitem_index>0) >,</#if>
${rowitem.code}
</#list>]}
</#list>]
</#if>
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
${item.getRawContent()}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
{<#if (item.showCaption)>
xtype: 'fieldset',title: '${item.caption}',margin:'${item.margin.toString()}',padding:'${item.padding.toString()}'
<#else>
xtype: 'panel'
</#if>
,reference:'${ctrl.name}_${item.name}'<#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>,hidden:true</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>
<#if (item.layoutMode=='TABLE') >
,layout:'vbox'
,items:[<#list rows as row><#if (row_index>0) >,</#if>
{xtype: 'panel',layout:'column',width: '100%',items:[<#list (row.items) as rowitem><#if (rowitem_index>0) >,</#if>
${rowitem.code}
</#list>]}
</#list>]
</#if>
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<#if item.getRenderPSSysPFPlugin()??>
${item.getRenderPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
表单自定义部件没有定义插件
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormViewCode
</#ibiztemplate>
<app-ibiz-form [fields]="${ctrl.name}.$fields">
<ng-template let-fields>
<div [ngStyle]="{'display':'none'}">
<#list hiddens as hidden>
${hidden.code}
</#list>
</div>
<#if ctrl.isNoTabHeader()>
<#list formpages as formpage>
${formpage.code}
</#list>
<#else>
<nz-tabset>
<#list formpages as formpage>
<nz-tab>
<ng-template #nzTabHeading>
${formpage.obj.caption}
</ng-template>
<span>
${formpage.code}
</span>
</nz-tab>
</#list>
</nz-tabset>
</#if>
</ng-template>
</app-ibiz-form>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<button id="${item.uniqueId}" title="${item.caption}" class="${item.getColCssClass()} btn <#if item.isShowCaption()><#else>btn-icon-only</#if> <#if item.getPSSysCss()??>${item.getPSSysCss().getCssName()}</#if> ">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}"></i></#if></#if>
<#if item.isShowCaption()><span >${item.caption}</span></#if>
</button>
\ No newline at end of file
<#list formdetails as formdetail>
<#if formdetail.code2?length gt 0>
var _${formdetail.obj.name} = ${formdetail.code2};
form.register(_${formdetail.obj.name});
<#if formdetail.obj.getDetailType()=='FORMITEM'>
<#if formdetail.obj.getPSCodeList()??>
<#assign codelist=formdetail.obj.getPSCodeList()>
_${formdetail.obj.name}.setAsyncConfig({items:[<#if codelist.getPSCodeItems()??><#list codelist.getPSCodeItems() as codeitem><#if (codeitem_index>0)>,</#if>{text:'${codeitem.text}',value:'${codeitem.value}',realtext:'${codeitem.realText}'<#if codeitem.getParentValue()??>,parentvalue='${codeitem.getParentValue()}'</#if><#if codeitem.getColor()??>,color:'${codeitem.getColor()}'</#if><#if codeitem.getTextCls()??>,textcls:'${codeitem.getTextCls()}'</#if><#if codeitem.getIconCls()??>,iconcls:'${codeitem.getIconCls()}'</#if>}</#list></#if> ]});
</#if>
<#if formdetail.obj.isAllowEmpty()>_${formdetail.obj.name}.setAllowBlank(true);<#else>_${formdetail.obj.name}.setAllowBlank(false);</#if>
</#if>
</#if>
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="<%=p.getCId()%>${item.uniqueId}" style="height:${item.getContentHeight()}px;"></div>
\ No newline at end of file
<#if editor.getCode2()?length gt 0>
${editor.code2}
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<div id='<%=strCId%>${item.uniqueId}__fi' style="<#if (item.getColWidth() gt 0)>width:${item.getColWidth()?c}px</#if>" class="ibiz-form-${item.getDetailType()?lower_case} ${item.getColCssClass()} form-group<#if (item.getPSSysCss()??)> ${item.getPSSysCss().getCssName()}</#if>" data-ibiz-allowblank="<#if item.isAllowEmpty()>1<#else>0</#if>">
<#if (item.isShowCaption())>
<div class='ibiz-formitem-label-left ' style="position: absolute;">
<label id='<%=strCId%>${item.uniqueId}__lb' class="control-label" style="<#if (item.getLabelWidth() gt 0)>width:${item.getLabelWidth()?c}px;</#if>" ><#if !(item.isEmptyCaption())>${item.caption}</#if></label>
</div>
</#if>
<div style="margin-left:<#if (item.getLabelWidth() gt 0)>${(item.getLabelWidth()+10)?c}<#else>10</#if>px;margin-right:10px;" >
${editor.code}
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
new IBizFormGroup({id:'${item.uniqueId}',name:'${item.name}',form:form})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<div class="${item.getColCssClass()} <#if (!item.isShowCaption())>row form-group</#if> " style="<#if (item.getColWidth() gt 0)>width:${item.getColWidth()?c}px</#if>" id="${item.uniqueId}" name="${item.name}" >
<#if item.isShowCaption()>
<fieldset style="border: 1px solid #e5e5e5;margin-bottom:10px;">
<div class="note note-success" style="height:40px;"><h5>${item.caption}</h5></div>
<#list items as rowitem>
${rowitem.code}
</#list>
</fieldset>
<#else>
<#list items as rowitem>
${rowitem.code}
</#list>
</#if>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
<INPUT type="hidden" name="${item.name}" id="${item.uniqueId}">
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="<%=p.getCId()%>${item.uniqueId}" style="height:${item.getContentHeight()}px;">${item.getIFrameUrl()}</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div id="${item.uniqueId}" name="${item.name}" class="${item.getColCssClass()}">
${item.getRawContent()}
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
<div id='${ctrl.name}_${item.name}' class="${item.getColCssClass()}">
<ul class="nav nav-tabs" id="${ctrl.name}_${item.name}_tab">
<#list tabpages as tabpage>
<li class="<#if (tabpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${tabpage.obj.codeName}_tab" data-toggle="tab">${tabpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list tabpages as tabpage>
<div class="tab-pane <#if (tabpage_index ==0)>active</#if>" id="${ctrl.name}_${tabpage.obj.codeName}_tab">${tabpage.code}</div>
</#list>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<div>我是自定义内容</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormViewCode
</#ibiztemplate>
<div id="${ctrl.name}" class="form-horizontal">
<div class="form-body" >
<#list hiddens as hidden>${hidden.code}</#list>
<#if ctrl.isNoTabHeader()>
<#list formpages as formpage>
${formpage.code}
</#list>
<#else>
<ul class="nav nav-tabs" id="${ctrl.name}_tab">
<#list formpages as formpage>
<li class="<#if (formpage_index ==0)>active</#if>"><a href="#${ctrl.name}_${formpage.obj.codeName}_tab" data-toggle="tab">${formpage.obj.caption}</a></li>
</#list>
</ul>
<div class="tab-content">
<#list formpages as formpage>
<div class="tab-pane <#if (formpage_index ==0)>active</#if> row" id="${ctrl.name}_${formpage.obj.codeName}_tab">${formpage.code}</div>
</#list>
</div>
</#if>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
new IBizFormButton({name: '${item.name!''}', visible: true, fieldType: 'BUTTON', form:this, actiontype: '${item.getActionType()}'<#if item.getPSUIAction()??><#assign uiaction=item.getPSUIAction()>,uiaction: { type: '${uiaction.getUIActionType()}',
tag: '${uiaction.getUIActionTag()}'<#if (uiaction.getActionTarget()!="")>, actiontarget: '${uiaction.getActionTarget()}'</#if>}</#if><#if item.getPSDEFormItemUpdate()??>, fiupdate: { tag: '${item.getPSDEFormItemUpdate().codeName}' }</#if> })
\ No newline at end of file
import { IBizFieldItem } from '@ibizsys/field/IBizFieldItem';
import { IBizFormDRPanel } from '@ibizsys/field/IBizFormDRPanel';
import { IBizFormGroup } from '@ibizsys/field/IBizFormGroup';
import { IBizFormIFrame } from '@ibizsys/field/IBizFormIFrame';
import { IBizFormRawItem } from '@ibizsys/field/IBizFormRawItem';
import { IBizFormTabPage } from '@ibizsys/field/IBizFormTabPage';
import { IBizFormTabPanel } from '@ibizsys/field/IBizFormTabPanel';
import { IBizFormButton } from '@ibizsys/field/IBizFormButton';
import { IBizHiddenField } from '@ibizsys/field/IBizHiddenField';
import { IBizEditFormService } from '@ibizsys/widget/IBizEditFormService';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
<#assign dritem=item.getPSDEDRItem()>
new IBizFormDRPanel({name:'${item.name}',visible: true,fieldType: 'DRUIPART'<#if item.getRefreshItems()??>,refreshitems:'${item.getRefreshItems()}'</#if>
<#if item.parentLayoutMode=='TABLE'>
<#if (item.contentWidth>1)>
,width:${item.contentWidth}
<#else>
,columnWidth: ${item.contentWidth}
</#if></#if>,height:${item.getContentHeight()},width:'100%',form:this,dritem:{
id:'${dritem.id}',embedviewid:'${item.getEmbedViewId()}',parentmode:{srfparenttype:'${dritem.itemType}'<#if ((dritem.itemType=='DER1N') || (dritem.itemType=='SYSDER1N'))>,srfder1nid:'${dritem.getPSDER1NName()}'</#if>}
}})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
new IBizFieldItem({ name: '${item.name!''}', visible: true, fieldType: 'FORMITEM', allowEmpty: <#if item.isAllowEmpty()>true<#else>false</#if>, noPrivDisplayMode: ${item.getNoPrivDisplayMode()}, form: this })
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
new IBizFormGroup({name:'${item.name}', visible: true,fieldType: 'GROUPPANEL',titleBarCloseMode:'${item.getTitleBarCloseMode()}',form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormItemVC
</#ibiztemplate>
new IBizHiddenField({name: '${item.name!''}', visible: false,fieldType: 'HIDDENFORMITEM', form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormDetailVC
</#ibiztemplate>
new IBizFormRawItem({name: '${item.name!''}', visible: true, fieldType: 'RAWITEM',form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormGroupPanellVC
</#ibiztemplate>
new IBizFormTabPage({name:'${item.name}',visible: true ,fieldType: 'TABPAGE',form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormTabPanellVC
</#ibiztemplate>
new IBizFormTabPanel({name:'${item.name}',visible: true ,fieldType: 'TABPANEL',form:this})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularDEFormControllerCode
</#ibiztemplate>
/**
* 编辑表单部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizEditFormService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizEditFormService {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}Service.
* 创建 ${srfclassname('${ctrl.name}')}Service 实例
*
* @param {*} [opt={}]
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
constructor(opt: any = {}) {
super(opt);
}
/**
* 注册编辑表单项
*
* @memberof ${srfclassname('${ctrl.name}')}Service
*/
public regFields(): void {
<#list formdetails as formdetail>
<#if formdetail.code?length gt 0>
this.regField(${formdetail.code});
</#if>
</#list>
}
}
\ No newline at end of file
CTRLTYPE=FORM
\ No newline at end of file
<ion-list radio-group *ngIf="!multiselect">
<ion-item *ngFor="let item of mdctrl.$items,let index = index" (tap)="selectedChange(item)">
<ion-label>{{ item.srfmajortext }}</ion-label>
<ion-radio checked="{{item.checked}}" ></ion-radio>
</ion-item>
</ion-list>
<ion-list *ngIf="multiselect">
<ion-item *ngFor="let item of mdctrl.$items" (tap)="selectedChanges()">
<ion-label>{{ item.srfmajortext }}</ion-label>
<ion-checkbox color="blue" [(ngModel)]="item.checked"></ion-checkbox>
</ion-item>
</ion-list>
\ No newline at end of file
<div>欢迎选择视图面板</div>
\ No newline at end of file
import { IBizPickupViewPanelService } from '@ibizsys/widget/IBizPickupViewPanelService';
\ No newline at end of file
/**
* 选择视图面板部件服务对象
*
* @export
* @class ${srfclassname('${ctrl.name}')}Service
* @extends { IBizPickupViewPanelService }
*/
export class ${srfclassname('${ctrl.name}')}Service extends IBizPickupViewPanelService {
/**
* Creates an instance of PickupviewpanelService.
* 创建 PickupviewpanelService 实例
*
* @param {*} [opt={}]
* @memberof PickupviewpanelService
*/
constructor(opt: any = {}) {
super(opt);
}
}
\ No newline at end of file
CTRLTYPE=PICKUPVIEWPANEL
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularPortletViewCode
</#ibiztemplate>
<#if (ctrl.getPortletType()=='APPMENU')>
<#if ctrl.getAMSysPFPlugin()?? && ctrl.getAMSysPFPlugin().hasCode('CODE')>
${ctrl.getAMSysPFPlugin().getCode('CODE')}
<#else>
<app-ibiz-group-menu [menus]="${ctrl.getPSAppMenu().name}.$items" [menuCtrl]="${ctrl.getPSAppMenu().name}"></app-ibiz-group-menu>
</#if>
<#elseif (ctrl.getPortletType()=='CHART')>
<#if chart??>${chart.code}<#else>没有指定部件</#if>
<#elseif (ctrl.getPortletType()=='LIST')>
<#if list??>${list.code}<#else>没有指定部件</#if>
<#elseif (ctrl.getPortletType()=='VIEW')>
<app-${ngfilename('${ctrl.getPortletPSAppView().codeName}')} [relationParam]="$viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" ></app-${ngfilename('${ctrl.getPortletPSAppView().codeName}')}>
</#if>
\ No newline at end of file
CTRLTYPE=PORTLET
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-rich-text-editor [elementID]="'${item.id}'" [name]="'${item.name}'" [itemValue]="${item.name}.value" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" <#if item.getEditorWidth() gt 0>[width]="'${item.getEditorWidth()?c}'"</#if> <#if item.getEditorHeight() gt 0>[height]="'${item.getEditorHeight()?c}'"</#if>></app-ibiz-rich-text-editor>
\ No newline at end of file
new IBizHtmlField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if>,height:<#if item.getEditorHeight() gt 0>${item.getEditorHeight()?c}<#else>200</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div name="${item.name}" class="form-control" id="${item.uniqueId}" style="${item.getEditorCssStyle()}" ></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=HTMLEDITOR
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<span>当前模板暂未提供,敬请期待</span>
\ No newline at end of file
new IBizHtmlField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if>,height:<#if item.getEditorHeight() gt 0>${item.getEditorHeight()?c}<#else>200</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div name="${item.name}" class="form-control" id="${item.uniqueId}" style="${item.getEditorCssStyle()}" ></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=IPADDRESSTEXTBOX
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-select [form]="${ctrl.name}" [name]="'${item.name}'" [disabled]="${ctrl.name}.$fields.${item.name}.disabled" placeHolder="<#if item.getPlaceHolder()??>'${item.getPlaceHolder()}'<#else>请选择</#if>" [itemvalue]="${ctrl.name}.$fields.${item.name}.value" [codelist]="${ctrl.name}.$fields.${item.name}.config" [styleCss]="{'width':'100px'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-select>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-select [form]="${ctrl.name}" [name]="'${item.name}'" [disabled]="${item.name}.disabled" placeHolder="<#if item.getPlaceHolder()??>'${item.getPlaceHolder()}'<#else>请选择</#if>" [itemvalue]="${item.name}.value" [codelist]="${item.name}.config" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-select>
\ No newline at end of file
new IBizDropDownListField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getCodeList()??>,codelistid:'${srfparamname('${sys.codeName}')}_${item.getCodeList().codeName}'</#if><#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" ><SELECT id="<%=strCId%>${item.uniqueId}" name="${item.name}" class="form-control ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}"></SELECT></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DROPDOWNLIST
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<#if item.getPSCodeList()??><#assign codelist = item.getPSCodeList()><#if codelist.getCodeListType() == 'STATIC'>
<app-ibiz-select [grid]="${ctrl.name}" [name]="'${item.getDataItemName()?lower_case}'" [data]="data" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [placeHolder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [itemvalue]="data.${item.getDataItemName()?lower_case}" [codelisttype]="'${codelist.getCodeListType()}'" [codelist]="$codelists['${srfparamname('${sys.codeName}')}_${codelist.codeName}'].$data" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-select>
<#elseif codelist.getCodeListType() == 'DYNAMIC'>
<app-ibiz-select [grid]="${ctrl.name}" [name]="'${item.getValueItemName()?lower_case}'" [data]="data" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getValueItemName()?lower_case}.disabled" [placeHolder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [itemvalue]="data.${item.getValueItemName()?lower_case}" [text]="'${item.getDataItemName()?lower_case}'" [codelisttype]="'${codelist.getCodeListType()}'" [url]="'/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do?SRFCTRLID=${ctrl.name}&SRFFORMITEMID=${item.getValueItemName()?lower_case}&srfaction=itemfetch'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getValueItemName()?lower_case}.styleCss"></app-ibiz-select>
</#if>
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<span>当前模板暂未提供,敬请期待</span>
\ No newline at end of file
new IBizCheckListField2({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getCodeList()??>,codelistid:'${srfparamname('${sys.codeName}')}_${item.getCodeList().codeName}'</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div class="form-control checkbox-list" id="<%=strCId%>${item.uniqueId}" name="${item.name}" class="ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}"></div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=LISTBOX
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.name}" [(ngModel)]="${item.name}.value" (ngModelChange)="${item.name}.onValueChanged($event, ${item.name}.value)" [nzDisabled]="${item.name}.disabled"></nz-input>
\ No newline at end of file
new IBizListPickerField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form,valueItem:'${item.getValueItemName()}'
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
,pickupView:{view:'/${pickupview.getPSAppModule().codeName?lower_case}/${pickupview.codeName?lower_case}.jsp'<#if (pickupview.getWidth() gt 0)>,width:${pickupview.getWidth()?c}</#if><#if (pickupview.getHeight() gt 0)>,height:${pickupview.getHeight()?c}</#if>,title:'${pickupview.title}'}
</#if>
<#if item.getItemParam()??>
,itemParam:${item.getItemParam().toString()}
</#if>
})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<select id="<%=strCId%>${item.uniqueId}" name="${item.name}" multiple="" class="form-control">
</select>
<div class="input-group-addon btn-group-vertical">
<a href="javascript:void(0)" onclick="return false;" class="ibiz-id-add btn btn-icon-only">
<i class="fa fa-search"></i>
</a>
<a href="javascript:void(0)" onclick="return false;" class="ibiz-id-remove btn btn-icon-only">
<i class="fa fa-remove"></i>
</a>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=LISTBOXPICKUP
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<nz-radio-group name="${item.name}" [(ngModel)]="${item.name}.value" (ngModelChange)="${item.name}.onValueChanged($event, ${item.name}.value)" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">
<label nz-radio *ngFor="let item of ${item.name}.config" [nzValue]="item.value" [nzDisabled]="${item.name}.disabled?true:item.disabled"><span>{{item.text}}</span></label>
</nz-radio-group>
\ No newline at end of file
new IBizRadioField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getCodeList()??>,codelistid:'${srfparamname('${sys.codeName}')}_${item.getCodeList().codeName}'</#if><#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>,itemWidth:${item.getEditorParam("ITEMWIDTH","150")}})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<input type="text" class="form-control text ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" readonly="readonly" name="${item.name}" id="<%=strCId%>${item.uniqueId}" >
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=RADIOBUTTONLIST
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-picture [params]="{uploadparams: '${item.getEditorParam('uploadparams','')}'<#if item.getEditorParam('exportparams','') != ''>,exportparams: '${item.getEditorParam('exportparams','')}'</#if><#if item.getEditorParam('customparams','') != ''>,customparams: ${item.getEditorParam('customparams','')}</#if>}" [form]="form"<#if item.getParentPSDEFormDetail()??> groupname="${item.getParentPSDEFormDetail().getCodeName()}"</#if> name="${item.name}" [(itemvalue)]="${item.name}.value" [disabled]="${item.name}.disabled" [styleCss]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-picture>
\ No newline at end of file
new IBizPictureField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div id="<%=strCId%>${item.uniqueId}" class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" name="${item.name}">
<img class="ibiz-id-image"/>
<div class="input-group-addon btn-group-vertical">
<a href="javascript:void(0)" onclick="return false;" class="ibiz-id-upload btn btn-icon-only">
<i class="fa fa-upload"></i>
</a>
<a href="javascript:void(0)"onclick="return false;" class="ibiz-id-remove btn btn-icon-only">
<i class="fa fa-remove"></i>
</a>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=PICTURE
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-mpicker [pickupModalService]='ibiz${pickupview.codeName}ModalService' [(itemvalue)]="${item.name}.value" [form]="${ctrl.name}" name="${item.name}" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-mpicker>
</#if>
</#if>
\ No newline at end of file
new IBizAddressPickerField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form,valueItem:'${item.getValueItemName()}'
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
,pickupView:{view:'/${pickupview.getPSAppModule().codeName?lower_case}/${pickupview.codeName?lower_case}.jsp'<#if (pickupview.getWidth() gt 0)>,width:${pickupview.getWidth()?c}</#if><#if (pickupview.getHeight() gt 0)>,height:${pickupview.getHeight()?c}</#if>,title:'${pickupview.title}'}
</#if>
<#if item.getItemParam()??>
,itemParam:${item.getItemParam().toString()}
</#if>
})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div id="<%=strCId%>${item.uniqueId}" name="${item.name}" class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" >
<div class="select2-container select2-container-multi form-control select2">
<ul class="ibiz-id-container select2-choices"></ul>
</div>
<div class="input-group-addon">
<a class="ibiz-id-picker btn btn-icon-only" onclick="return false;" href="javascript:;"> <i class="fa fa-search"></i></a>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=ADDRESSPICKUP
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-textarea-10 [id]="'${item.name}'" [name]="'${item.name}'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>','height':'200px'}" <#if item.getUserDictCatId()?length gt 0>[dictId]="'${item.getUserDictCatId()}'" [dictitems]="${item.name}.dictitems"</#if> [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}</#if>'"></app-ibiz-textarea-10>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-textarea [form]="${ctrl.name}" name="${item.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getUserDictCatId()?length gt 0>[dictId]="'${item.getUserDictCatId()}'" [dictitems]="${item.name}.dictitems"</#if> [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}</#if>'"></app-ibiz-textarea>
\ No newline at end of file
new IBizTextAreaField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getUserDictCatId()?length gt 0>,dictId:'${item.getUserDictCatId()}'</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" >
<div class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<textarea id="<%=strCId%>${item.uniqueId}" name="${item.name}" type="text" <#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if> class="form-control" ></textarea>
<div class="input-group-btn ibiz-id-dropdown">
<button type="button" class="btn default dropdown-toggle"
data-toggle="dropdown">
<i class="fa fa-angle-down"></i>
</button>
<ul class="ibiz-id-dropdownmenu dropdown-menu pull-right">
</ul>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-password name="${item.name}" [(itemvalue)]="${item.name}.value" [disabled]="${item.name}.disabled" [form]="${ctrl.name}"<#if item.getEditorWidth() gt 0> width="${item.getEditorWidth()?c}"</#if><#if item.getEditorHeight() gt 0> height="${item.getEditorHeight()?c}"</#if>></app-ibiz-password>
\ No newline at end of file
new IBizTextField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" ><input id="<%=strCId%>${item.uniqueId}" name="${item.name}" type="password" class="form-control text ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" ></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=PASSWORD
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-picker [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'picker_list'" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-picker [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.getDataItemName()?lower_case}'" [editortype]="'picker_list'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-picker [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'picker_list'" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=PICKEREX_TRIGGER
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-picker [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.name}'" [editortype]="'picker_list'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]='ibiz${pickupview.codeName}ModalService' [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'picker'" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.name}" [ngModel]="${item.name}.value" (nzBlur)="${item.name}.onBlur($event)" (keydown)="${item.name}.onKeydown($event)" [nzDisabled]="${item.name}.disabled" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">
</nz-input>
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]="ibiz${pickupview.codeName}ModalService" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.getDataItemName()?lower_case}'" [editortype]="'picker'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.getDataItemName()?lower_case}'" [nzType]="'text'" name="${item.getDataItemName()?lower_case}" [ngModel]="data.${item.getDataItemName()?lower_case}" (nzBlur)="${ctrl.name}.onBlur($event, '${item.getDataItemName()?lower_case}', data)" (keydown)="${ctrl.name}.onKeydown($event, '${item.getDataItemName()?lower_case}', data)" [nzDisabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [ngStyle]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss">
</nz-input>
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]='ibiz${pickupview.codeName}ModalService' [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'picker'" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.name}" [ngModel]="${item.name}.value" (nzBlur)="${item.name}.onBlur($event)" (keydown)="${item.name}.onKeydown($event)" [nzDisabled]="${item.name}.disabled" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">
</nz-input>
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]="ibiz${pickupview.codeName}ModalService" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.getDataItemName()?lower_case}'" [editortype]="'picker'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.name}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.name}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.getDataItemName()?lower_case}'" [nzType]="'text'" name="${item.getDataItemName()?lower_case}" [ngModel]="data.${item.getDataItemName()?lower_case}" (nzBlur)="${ctrl.name}.onBlur($event, '${item.getDataItemName()?lower_case}', data)" (keydown)="${ctrl.name}.onKeydown($event, '${item.getDataItemName()?lower_case}', data)" [nzDisabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [ngStyle]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss">
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-picker [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'ac'" [disabled]="${item.name}.disabled"
[styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=PICKEREX_NOBUTTON
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-picker [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.getDataItemName()?lower_case}'" [editortype]="'ac'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]='ibiz${pickupview.codeName}ModalService' [itemvalue]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [name]="'${item.name}'" [editortype]="'picker_ac'" [disabled]="${item.name}.disabled" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.name}" [ngModel]="${item.name}.value" (nzBlur)="${item.name}.onBlur($event)" (keydown)="${item.name}.onKeydown($event)" [nzDisabled]="${item.name}.disabled" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">
</nz-input>
</#if>
\ No newline at end of file
new IBizPickerField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form,forceSelection:true,queryCaching:false, displayField:'text',valueField: 'value',valueItem:'${item.getValueItemName()}',minChars:2,pageSize:50
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
,pickupView:{view:'/${pickupview.getPSAppModule().codeName?lower_case}/${pickupview.codeName?lower_case}.jsp'<#if (pickupview.getWidth() gt 0)>,width:${pickupview.getWidth()?c}</#if><#if (pickupview.getHeight() gt 0)>,height:${pickupview.getHeight()?c}</#if>,title:'${pickupview.title}'}
</#if>
</#if>
<#if item.getItemParam()??>
,itemParam:${item.getItemParam().toString()}
</#if>
,url:this.getAppCtx()+'/${view.getPSAppModule().codeName}/${view.codeName}.do?SRFCTRLID=${ctrl.name}&SRFFORMITEMID=${item.getName()}'
<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div class="ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<#if item.getEditorParam("PICKUPVIEW",true)>
<div>
<span class="toggle fa fa-search"></span>
<input type="text" class="form-control text" name="${item.name}" id="<%=strCId%>${item.uniqueId}" autocomplete="off" />
</div>
<#else>
<span class="toggle fa fa-angle-down"></span>
<input type="text" class="form-control text" name="${item.name}" id="<%=strCId%>${item.uniqueId}" autocomplete="off" />
</#if>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<app-ibiz-picker [pickupModalService]='${pickupview.codeName}ModalService' [(itemvalue)]="${ctrl.name}.$data.${item.name}" [form]="form"
valueitem="${item.id}" valueitemname="${item.name}"></app-ibiz-picker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<#if item.getEditorParam("PICKUPVIEW",true)>
<#if item.getRefPickupPSAppView()??>
<#assign pickupview=item.getRefPickupPSAppView()>
<app-ibiz-picker [pickupModalService]="ibiz${pickupview.codeName}ModalService" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [grid]="${ctrl.name}" [valueitem]="'${item.getValueItemName()?lower_case}'" [name]="'${item.getDataItemName()?lower_case}'" [editortype]="'picker_ac'" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss" <#if item.getItemParam()??>[itemParam]='${item.getItemParam().toString()}'</#if>></app-ibiz-picker>
</#if>
<#else>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.getDataItemName()?lower_case}" [ngModel]="data.${item.getDataItemName()?lower_case}" (nzBlur)="${ctrl.name}.onBlur($event, '${item.getDataItemName()?lower_case}', data)" (keydown)="${ctrl.name}.onKeydown($event, '${item.getDataItemName()?lower_case}', data)" [nzDisabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [ngStyle]="${ctrl.name}.$editItems.${item.getDataItemName()?lower_case}.styleCss">
</nz-input>
</#if>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-file-upload [params]="{uploadparams: '${item.getEditorParam('uploadparams','')}'<#if item.getEditorParam('exportparams','') != ''>,exportparams: '${item.getEditorParam('exportparams','')}'</#if><#if item.getEditorParam('customparams','') != ''>,customparams: ${item.getEditorParam('customparams','')}</#if>}" [form]="${ctrl.name}"<#if item.getParentPSDEFormDetail()??> groupname="${item.getParentPSDEFormDetail().getCodeName()}"</#if> name="${item.name}" [(itemvalue)]="${item.name}.value" [disabled]="${item.name}.disabled" [styleCss]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-file-upload>
\ No newline at end of file
new IBizFileField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div name="${item.name}" id="<%=strCId%>${item.uniqueId}" class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<div class="select2-container select2-container-multi form-control select2">
<ul class="ibiz-fileupload-container select2-choices"></ul>
</div>
<div class="input-group-addon">
<a class="ibiz-fileupload-upload btn btn-icon-only" onclick="return false;" href="javascript:;">
<i class="fa fa-upload"></i>
</a>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=FILEUPLOADER
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.name}'" [nzType]="'text'" name="${item.name}" [ngModel]="${item.name}.value" (nzBlur)="${item.name}.onBlur($event)" (keydown)="${item.name}.onKeydown($event)" [nzDisabled]="${item.name}.disabled" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">
<#if item.getUnitName()?? && 'item.getUnitName()' != ''>
<ng-template #suffix><span [ngStyle]="{'color':${item.name}.disabled ? 'rgba(0, 0, 0, 0.25) ': 'rgba(0, 0, 0, 0.65)'}">${item.getUnitName()}</span></ng-template>
</#if>
</nz-input>
\ No newline at end of file
new IBizTextField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" class="ibiz-field-textbox-container"><input id="<%=strCId%>${item.uniqueId}" name="${item.name}" type="text" <#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if> class="form-control text ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" ><#if item.isEnableUnitName()><span>${item.getUnitName()}</span></#if></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=TEXTBOX
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.getDataItemName()?lower_case}'" [nzType]="'text'" name="${item.getDataItemName()?lower_case}" [ngModel]="data.${item.getDataItemName()?lower_case}" (nzBlur)="${ctrl.name}.onBlur($event, '${item.getDataItemName()?lower_case}', data)" (keydown)="${ctrl.name}.onKeydown($event, '${item.getDataItemName()?lower_case}', data)" [nzDisabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [ngStyle]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss">
</nz-input>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-datepicker>
\ No newline at end of file
new IBizDateField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',fmt:'${item.getEditorParam("TIMEFMT","")}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div class="input-group ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<input id="<%=strCId%>${item.uniqueId}" name="${item.name}" class="form-control form-control-inline date-picker" type="text" />
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [data]="data" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-datepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'mm'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_MINUTE
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'mm'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'HH'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_HOUR
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'HH'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-datepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_NOTIME
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-datepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'HH:mm'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_NODAY_NOSECOND
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'HH:mm'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'HH:mm:ss'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_NODAY
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'HH:mm:ss'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'ss'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX_SECOND
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-timepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [data]="data" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'ss'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-timepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [form]="${ctrl.name}" [disabled]="${item.name}.disabled" [itemvalue]="${item.name}.value" [name]="'${item.name}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="{'width':'<#if item.getEditorWidth() gt 0>${item.getEditorWidth()?c}px<#else>100%</#if>'<#if item.getEditorHeight() gt 0>,'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-datepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=DATEPICKEREX
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<app-ibiz-datepicker [placeholder]="'<#if item.getPlaceHolder()??>${item.getPlaceHolder()}<#else>请选择</#if>'" [grid]="${ctrl.name}" [data]="data" [disabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [itemvalue]="data.${item.getDataItemName()?lower_case}" [name]="'${item.getDataItemName()?lower_case}'" [datefmt]="'${item.getEditorParam('TIMEFMT','')}'" [styleCss]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss"></app-ibiz-datepicker>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<span name="${item.name}" (ngModelChange)="${item.name}.onValueChanged($event, ${item.name}.value)" [ngStyle]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}">{{${item.name}.value}}</span>
\ No newline at end of file
new IBizSpanField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<input name="${item.name}" type="text" class="form-control" readonly="readonly" id="${item.uniqueId}" style="${item.getEditorCssStyle()}" >
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=SPAN
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
new IBizRawField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if>,height:<#if item.getEditorHeight() gt 0>${item.getEditorHeight()?c}<#else>200</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<div id="<%=strCId%>${item.uniqueId}" name="${item.name}" class="ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" ></div>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
EDITORTYPE=USERCONTROL
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<span>当前模板暂未提供,敬请期待</span>
\ No newline at end of file
new IBizHtmlField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if>,height:<#if item.getEditorHeight() gt 0>${item.getEditorHeight()?c}<#else>200</#if><#if item.isAllowEmpty()><#else>,allowBlank:false</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div name="${item.name}" class="form-control" id="${item.uniqueId}" style="${item.getEditorCssStyle()}" ></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-autocomplete [name]="'${item.name}'" [forceselection]="<#if item.getEditorParam("FORCESELECTION",true)>true<#else>false</#if>" [disabled]="${item.name}.disabled" [value]="${item.name}.value" [form]="${ctrl.name}" [valueitem]="'${item.getValueItemName()}'" [styleCss]="{<#if item.getEditorWidth() gt 0>'width':'${item.getEditorWidth()?c}px'</#if><#if item.getEditorWidth() gt 0 && item.getEditorHeight() gt 0>,</#if><#if item.getEditorHeight() gt 0>'height':'${item.getEditorHeight()?c}px'</#if>}"></app-ibiz-autocomplete>
\ No newline at end of file
new IBizPickerField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form,forceSelection:false,queryCaching:false, displayField:'text',valueField: 'value',valueItem:'${item.getValueItemName()}',minChars:2,pageSize:50
<#if item.getItemParam()??>
,itemParam:${item.getItemParam().toString()}
</#if>
,url:this.getAppCtx()+'/${view.getPSAppModule().codeName}/${view.codeName}.do?SRFCTRLID=${ctrl.name}&SRFFORMITEMID=${item.getName()}'
<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" >
<span class="ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}">
<input type="text" class="form-control text" name="${item.name}" id="<%=strCId%>${item.uniqueId}" />
</span>
</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<app-ibiz-checkbox [form]="${ctrl.name}" <#if item.getCodeList()??>[orMode]="'${item.getCodeList().getOrMode()?lower_case}'" [valueSeparator]="'${item.getCodeList().getValueSeparator()}'"</#if> [disabled]="${item.name}.disabled" [(itemvalue)]="${item.name}.value" name="${item.name}" [codelist]="${item.name}.config" <#if item.getEditorWidth() gt 0> [width]="${item.getEditorWidth()?c}"</#if><#if item.getEditorHeight() gt 0> [height]="${item.getEditorHeight()?c}"</#if>></app-ibiz-checkbox>
\ No newline at end of file
new IBizCheckListField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getCodeList()??>,codelistid:'${srfparamname('${sys.codeName}')}_${item.getCodeList().codeName}'</#if><#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>,itemWidth:${item.getEditorParam("ITEMWIDTH","150")}})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" ><div class="checkbox-list ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" id="<%=strCId%>${item.uniqueId}" name="${item.name}" ></div></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=CHECKBOXLIST
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<label nz-checkbox name="${item.name}" [(ngModel)]="${item.name}.value" (ngModelChange)="${item.name}.value= ${item.name}.value?1:0" [nzDisabled]="${item.name}.disabled"></label>
\ No newline at end of file
new IBizCheckField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}'<#if item.isAllowEmpty()><#else>,allowBlank:false</#if>,form:form<#if item.getEditorWidth() gt 0>,width:${item.getEditorWidth()?c}</#if><#if item.getEditorHeight() gt 0>,height:${item.getEditorHeight()?c}</#if>})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div id="<%=strCId%>${item.uniqueId}_c" style="${item.getEditorCssStyle()}" ><input id="<%=strCId%>${item.uniqueId}" name="${item.name}" type="checkbox" class="form-control text ibiz-field-${item.getPSEditorType().getStandardPSEditorType()?lower_case}" ></div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
EDITORTYPE=CHECKBOX
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>hide</div>
\ No newline at end of file
new IBizHiddenField({id:this.getCId2()+'${item.uniqueId}',name:'${item.name}',form:form})
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<input type="hidden" id="<%=strCId%>${item.uniqueId}" name="${item.name}">
\ No newline at end of file
<#ibiztemplate>
CONTAINER=FORMITEM
</#ibiztemplate>
<div>移动端选项框列表</div>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<nz-input <#if item.getPlaceHolder()??> [nzPlaceHolder]="'${item.getPlaceHolder()}'"</#if> [nzId]="'${item.getDataItemName()?lower_case}'" [nzType]="'text'" name="${item.getDataItemName()?lower_case}" [ngModel]="data.${item.getDataItemName()?lower_case}" (nzBlur)="${ctrl.name}.onBlur($event, '${item.getDataItemName()?lower_case}', data)" (keydown)="${ctrl.name}.onKeydown($event, '${item.getDataItemName()?lower_case}', data)" [nzDisabled]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.disabled" [ngStyle]="${ctrl.name}.$state[data.srfkey]?.${item.getDataItemName()?lower_case}.styleCss">
</nz-input>
\ No newline at end of file
<#ibiztemplate>
CONTAINER=GRIDCOLUMN
</#ibiztemplate>
<div>文本框</div>
\ No newline at end of file
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { IBizComponentsModule } from '@ibizsys/components/ibiz-components.module';
<#-- 视图关联视图(只引用模态框视图) -->
<#list modalviews as modalview>
import { ${modalview.codeName}Module } from '@pages/${ngfilename('${modalview.getPSAppModule().codeName}')}/${ngfilename('${modalview.codeName}')}/${ngfilename('${modalview.codeName}')}.module';
</#list>
import { ${view.codeName}Component } from './${viewname}';
import { ${view.codeName}ModalService } from './${viewname}-modalservice';
@NgModule({
imports: [
CommonModule,
SharedModule,
IBizComponentsModule,
<#list modalviews as modalview>
${modalview.codeName}Module,
</#list>
],
exports: [
${view.codeName}Component
],
declarations: [
${view.codeName}Component,
],
entryComponents: [
${view.codeName}Component
],
providers: [
${view.codeName}ModalService
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class ${view.codeName}Module { }
\ No newline at end of file
.less
\ No newline at end of file
<#comment><!--开始:获取关系视图参数--></#comment>
/**
* 获取关系视图参数
*
* @param {*} [arg={}]
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getDRItemView(arg: any = {}): any {
if (!arg) {
arg={};
}
let drmode = arg.viewid;
if (!drmode) {
drmode = '';
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("DRITEM:")==0)>
<#assign newdataview=view.getRefPSAppView(viewref,true) >
<#assign newdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(drmode, '${viewref?substring(7)}')) {
return {viewurl:'${newdataview.pageUrl}'<#if (newdataview.getSubAppFolderName()??)>,subapp:'${newdataview.getSubAppFolderName()}'</#if>,embedviewid:'${newdataviewref.getEmbedId()}'<#if newdataviewref.getViewParam()??>,viewparam:${newdataviewref.getViewParam().toString()}</#if>};
}
</#if>
</#list>
return undefined;
}
<#comment><!--结束:获取关系视图参数--></#comment>
<#comment><!--开始:是否隐藏表单--></#comment>
<#if view.isHideEditForm()>
/**
* 是否隐藏编辑表单
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isHideEditForm(): boolean {
return true;
}
</#if>
<#comment><!--结束:是否隐藏表单--></#comment>
\ No newline at end of file
<#-- 树导航参数 -->
/**
* 获取导航项视图参数
*
* @param {*} [arg={}]
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getExpItemView(arg: any = {}): any {
if (!arg) {
arg = {};
}
let expmode = arg.viewid.toUpperCase();
if (!expmode) {
expmode = '';
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("EXPITEM:")==0)>
<#assign newdataview=view.getRefPSAppView(viewref,true) >
<#assign newdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(expmode, '${viewref?substring(8)}')) {
return { embedviewid: '${newdataviewref.getEmbedId()}', routelink:'${viewref?substring(8)?lower_case?replace(':','__')?lower_case?replace('@','__')}'<#if newdataviewref.getViewParam()??>, viewparam: ${newdataviewref.getViewParam().toString()}</#if> };
}
</#if>
</#list>
return undefined;
}
/**
* 获取新建数据视图参数
*
* @param {*} [arg={}]
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getNewDataView(arg: any = {}): any {
if (!arg) {
arg = {};
}
let newmode = arg.srfnewmode;
if (!newmode) {
newmode = '';
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("NEWDATA:")==0)>
<#assign newdataview=view.getRefPSAppView(viewref,true) >
<#assign newdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(newmode, '${viewref?substring(8)}')) {
<#if (newdataviewref.getViewParam()??)>
Object.assign(arg, ${newdataviewref.getViewParam()});
</#if>
return { title: '${newdataview.getTitle(newdataviewref)}', openMode:'${newdataview.getOpenMode(newdataviewref)}', height: ${newdataview.getHeight(newdataviewref)?c}, width: ${newdataview.getWidth(newdataviewref)?c},
layout: 'fit', maximizable:true, viewurl:'/${newdataview.getPSAppModule().codeName?lower_case}/${newdataview.codeName?lower_case}.jsp', viewparam:arg };
}
</#if>
</#list>
let parts = newmode.split('@');
if (parts.length !== 2) {
return null;
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("NEWDATA@")==0)>
<#assign newdataview=view.getRefPSAppView(viewref,true) >
<#assign newdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(parts[1], '${viewref?substring(8)}')) {
<#if (newdataviewref.getViewParam()??)>
Object.assign(arg, ${newdataviewref.getViewParam()});
</#if>
let view = { title: '${newdataview.getTitle(newdataviewref)}', openMode:'${newdataview.getOpenMode(newdataviewref)}', height: ${newdataview.getHeight(newdataviewref)?c}, width: ${newdataview.getWidth(newdataviewref)?c},
layout: 'fit', maximizable:true, viewurl:'/${newdataview.getPSAppModule().codeName?lower_case}/${newdataview.codeName?lower_case}.jsp', viewparam:arg };
return view;
}
</#if>
</#list>
return undefined;
}
/**
* 获取编辑数据视图参数
*
* @param {*} [arg={}]
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getEditDataView(arg: any = {}): any {
let editmode = arg.srfeditmode;
if (!editmode) {
editmode = '';
}
let parts = editmode.split('@');
if (parts.length !== 2) {
return null;
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("EDITDATA@")==0)>
<#assign editdataview=view.getRefPSAppView(viewref,true) >
<#assign editdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is( parts[1], '${viewref?substring(9)}')) {
<#if (editdataviewref.getViewParam()??)>
Object.assign(arg, ${editdataviewref.getViewParam()})
</#if>
return { title: '${editdataview.getTitle(editdataviewref)}', openMode:'${editdataview.getOpenMode(editdataviewref)}', height: ${editdataview.getHeight(editdataviewref)?c}, width: ${editdataview.getWidth(editdataviewref)?c},
layout: 'fit', maximizable:true, viewurl:'/${editdataview.getPSAppModule().codeName?lower_case}/${editdataview.codeName?lower_case}.jsp', viewparam:arg };
}
</#if>
</#list>
return undefined;
}
<#if view.getRefPSAppView("NEWDATAWIZARD",true)??>
<#assign newdatawizardview=view.getRefPSAppView("NEWDATAWIZARD",true) >
<#assign newdatawizardviewref=view.getPSAppViewRef("NEWDATAWIZARD",true) >
public getNewDataWizardView(arg: any = {}): any = {} {
if (!arg) {
arg = {};
}
let view = { modal:true, title: '${newdatawizardview.title}', height: ${newdatawizardview.getHeight(newdatawizardviewref)?c}, width: ${newdatawizardview.getWidth(newdatawizardviewref)?c}, layout: 'fit',
// maximizable:true,
viewurl:'/${newdatawizardview.getPSAppModule().codeName?lower_case}/${newdatawizardview.codeName?lower_case}.jsp', viewparam:arg };
return view;
}
</#if>
\ No newline at end of file
const ${view.codeName}shellRoutes: Routes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component,
children:[
<#list ngstates as ngstate>
<#if ngstate.name?length gt 0 && ngstate.getPSAppView()??>
<#if ngstate.getPSAppView().isRedirectView() != true>
{
path: '${ngstate.name}',
loadChildren: '../../../pages/${ngfilename('${ngstate.getPSAppView().getPSAppModule().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}shell.module#${ngstate.getPSAppView().codeName}shellModule',
data: { fullcaption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', caption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', view: '${ngstate.getPSAppView().getPSAppModule().codeName?lower_case}_${ngstate.getPSAppView().codeName?lower_case}', routerlink: '${ngstate.name}', showcaption: false }
},
</#if>
</#if>
</#list>
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
\ No newline at end of file
<#if ((view.getPSDataEntity()??) && (view.hasPSControl('searchform'))) >
<#assign de=view.getPSDataEntity()>
<#assign form=view.getPSControl('searchform')>
/**
* 搜索表单属性值发生变化
*
* @param {string} fieldname
* @param {*} field
* @param {*} value
* @memberof ${view.codeName}ComponentBase
*/
public onSearchFormFieldChanged(fieldname: string, field: any, value: any): void {
let form = this.getSearchForm();
<#list searchform_fdlogics as fdlogic>
${fdlogic}
</#list>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getPSDEFormItemUpdate()??>
if (Object.is(fieldname, '${formitem.name}')) {
form.updateFormItems('${formitem.getPSDEFormItemUpdate().codeName}');
}
</#if>
</#list>
</#if>
}
/**
* 表单项值检测
*
* @param {string} fieldname
* @param {string} value
* @memberof ${view.codeName}ComponentBase
*/
public onSearchFormFieldValueCheck(name: string, value: string): void {
const form = this.getSearchForm();
<#list searchform_vrlogics as vrlogic>
${vrlogic}
</#list>
}
</#if>
/**
* 获取新建视图
*
* @param {any} arg
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getNewDataView(params: any): any {
if (!params) {
params={};
}
let newmode = params.srfnewmode;
if (!newmode) {
newmode = '';
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("NEWDATA:")==0)>
<#assign newdataview=view.getRefPSAppView(viewref,true) >
<#assign newdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(newmode, '${viewref?substring(8)}')){
return { openMode:'${newdataview.getOpenMode(newdataviewref)}', className:'${newdataview.codeName}', viewParam:params };
}
</#if>
</#list>
<#if view.getRefPSAppView("NEWDATA",true)??>
<#assign newdataview=view.getRefPSAppView("NEWDATA",true) >
<#assign newdataviewref=view.getPSAppViewRef("NEWDATA",true) >
if (true) {
let view = { openMode:'${newdataview.getOpenMode(newdataviewref)}', className:'${newdataview.codeName}', viewParam:params };
return view;
}
</#if>
}
/**
* 获取编辑视图
*
* @param {any} arg
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getEditDataView(params: any): any {
if (!params) {
params={};
}
let list = [params.srfeditmode2,params.srfeditmode];
for(let i=0;i<2;i++){
let editmode = list[i];
if (!editmode) {
continue;
}
<#list view.getAppViewRefModes() as viewref>
<#if (viewref?index_of("EDITDATA:")==0)>
<#if view.getRefPSAppView(viewref,true)??>
<#assign editdataview=view.getRefPSAppView(viewref,true) >
<#assign editdataviewref=view.getPSAppViewRef(viewref,true) >
if (Object.is(editmode, '${viewref?substring(9)}')) {
return { openMode:'${editdataview.getOpenMode(editdataviewref)}',<#if editdataview.isRedirectView()> redirect: true, redirectUrl: '/${app.getAppFolder()}/${editdataview.getPSAppModule().codeName}/${editdataview.codeName}.do',</#if><#if !(editdataview.isRedirectView())> className:'${editdataview.codeName}',</#if> viewParam:params };
}
</#if>
</#if>
</#list>
}
<#if view.getRefPSAppView("EDITDATA",true)??>
<#assign editdataview=view.getRefPSAppView("EDITDATA",true) >
<#assign editdataviewref=view.getPSAppViewRef("EDITDATA",true) >
if (true) {
params.srfeditmode = undefined;
return { openMode:'${editdataview.getOpenMode(editdataviewref)}',<#if editdataview.isRedirectView()> redirect: true, redirectUrl: '/${app.getAppFolder()}/${editdataview.getPSAppModule().codeName}/${editdataview.codeName}.do',</#if><#if !(editdataview.isRedirectView())> className:'${editdataview.codeName}',</#if> viewParam:params };
}
</#if>
}
<#-- 视图获取新建向导视图 -->
<#if view.getRefPSAppView("NEWDATAWIZARD",true)??>
<#assign newdatawizardview=view.getRefPSAppView("NEWDATAWIZARD",true) >
<#assign newdatawizardviewref=view.getPSAppViewRef("NEWDATAWIZARD",true) >
/**
* 获取新建向导视图
*
* @param {any} arg
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getNewDataWizardView(params): any {
if (!params) {
params = {};
}
let view = { modal:true, className:'${newdatawizardview.codeName}', viewParam:params };
return view;
}
</#if>
<#-- 视图支持批量添加 -->
<#if (view.isEnableBatchAdd())>
/**
* 支持批量添加
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableBatchAdd(): boolean {
return true;
}
/**
* 获取多选视图
*
* @param {*} [arg={}]
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getMPickupView(arg: any = {}): any {
if(!arg) {
arg={};
}
const parentMode = this.getParentMode();
Object.assign(arg, parentMode);
let tempMode = this.getMDCtrl().tempMode;
if(!tempMode) {
tempMode = false;
}
<#assign de = view.getPSDataEntity()>
<#assign dernn = de.getPSDERNN()>
<#assign der1n = dernn.getFirstPSDER1N()>
<#assign der1n2 = dernn.getSecondPSDER1N()>
if (Object.is(arg.srfder1nid, '${der1n.name}')) {
<#if view.getRefPSAppView("MPICKUPVIEW:"+der1n2.codeName,true)??>
<#assign mpickupview = view.getRefPSAppView("MPICKUPVIEW:"+der1n2.codeName,true) >
<#assign mpickupviewref = view.getPSAppViewRef("MPICKUPVIEW:"+der1n2.codeName,true) >
<#if (der1n2.getTempDataOrder() lt 0)>
arg.srftempmode = false;
<#else>
arg.srftempmode = tempMode;
</#if>
const view = { modal: true, className: '${mpickupview.codeName}', viewParam: arg };
return view;
</#if>
}
<#assign der1n2 = dernn.getFirstPSDER1N()>
<#assign der1n = dernn.getSecondPSDER1N()>
if (Object.is(arg.srfder1nid, '${der1n.name}')) {
<#if view.getRefPSAppView("MPICKUPVIEW:"+der1n2.codeName,true)??>
<#assign mpickupview = view.getRefPSAppView("MPICKUPVIEW:"+der1n2.codeName,true) >
<#assign mpickupviewref = view.getPSAppViewRef("MPICKUPVIEW:"+der1n2.codeName,true) >
<#if (der1n2.getTempDataOrder() lt 0)>
arg.srftempmode = false;
<#else>
arg.srftempmode = tempMode;
</#if>
const view = { modal: true, className: '${mpickupview.codeName}', viewParam: arg };
return view;
</#if>
}
return undefined;
}
</#if>
<#-- 视图只支持批量添加 -->
<#if (view.isBatchAddOnly())>
/**
* 只支持批量添加
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isBatchAddOnly(): boolean {
return true;
}
</#if>
<#if (view.isEnablePrint())>
public getPrintDataView(params:any): any {
<#if view.getPSDEPrint()??>
if (true) {
params['srfprintid']='${view.getPSDEPrint().id}';
let view: any = {viewParam:params};
return view;
}
</#if>
}
</#if>
<#-- 视图是否默认加载 -->
<#if (!view.isLoadDefault())>
/**
* 是否默认加载
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isLoadDefault(): boolean {
return false;
}
</#if>
<#-- 视图是否支持快速搜索 -->
<#if (!view.isEnableQuickSearch())>
/**
* 是否支持快速搜索
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableQuickSearch(): boolean {
return false;
}
</#if>
<#-- 是否支持快捷搜索 -->
<#if view.isEnableQuickSearch()>
<#-- 处理快捷搜索字段 -->
<#if view.isPSDEView()>
<#assign iDataEntity = view.getDataEntity()>
/**
* 注册实体支持快速搜索字段
*
* @memberof ${view.codeName}ComponentBase
*/
public regQuickSearchDEFileds(): void {
<#list iDataEntity.getDEFields() as iDEField>
<#if iDEField.isEnableQuickSearch()>
this.$quickSearchEntityDEFields.push({ id: '${iDEField.getId()}', name: '${iDEField.getName()?lower_case}', logicname: '${iDEField.getLogicName()}', datatype: '${iDEField.getDataType()?lower_case}' });
</#if>
</#list>
}
</#if>
</#if>
\ No newline at end of file
<#if ((view.getPSDataEntity()??) && (view.hasPSControl('searchform')))>
<#assign de = view.getPSDataEntity()>
<#assign form = view.getPSControl('searchform')>
/**
* 搜索表单属性值发生变化
*
* @param {string} fieldname
* @param {*} field
* @param {*} value
* @memberof ${view.codeName}ComponentBase
*/
public onSearchFormFieldChanged(fieldname: string, field: any, value: any): void {
let form = this.getSearchForm();
<#list searchform_fdlogics as fdlogic>
${fdlogic}
</#list>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getPSDEFormItemUpdate()??>
if (Object.is(fieldname, '${formitem.name}')) {
form.updateFormItems({srfufimode:'${formitem.getPSDEFormItemUpdate().codeName}'});
}
</#if>
</#list>
</#if>
}
</#if>
<#-- 视图是否默认加载 -->
<#if (!view.isLoadDefault())>
/**
* 是否默认加载
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isLoadDefault(): boolean {
return false;
}
</#if>
<#-- 视图是否支持快速搜索 -->
<#if (!view.isEnableQuickSearch())>
/**
* 是否支持快速搜索
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableQuickSearch(): boolean {
return false;
}
</#if>
\ No newline at end of file
/**
* 获取选择数据部件视图
*
* @param {*} arg
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getPickupViewItem(arg: any): any {
let viewmode = arg.viewid;
if (!viewmode) {
viewmode = '';
}
<#assign viewitems = view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
if (Object.is(viewmode, '${viewitem.name}')) {
// return {viewurl:'/${viewitem.getPSAppDEView().getPSAppModule().codeName?lower_case}/${viewitem.getPSAppDEView().codeName?lower_case}.jsp',embedviewid:'${viewitem.getEmbedViewId()}'};
return { };
}
</#list>
return undefined;
}
<#if view.hasPSControl('treeexpbar')>
<#assign _tree = view.getPSControl('treeexpbar').getPSDETree()>
/**
* 获取导航参数
*
* @param {*} arg
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getNavViewParam(arg: any): any {
let nodetype = arg.nodetype;
if (!nodetype) {
nodetype = '';
}
<#list _tree.getPSDETreeNodes() as _treenode>
<#if _treenode.getNavViewParam()??>
if(Object.is( nodetype,'${_treenode.nodeType}')){
return ${_treenode.getNavViewParam().toString()};
}
</#if>
</#list>
return undefined;
}
</#if>
\ No newline at end of file
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
<#-- 视图关联视图(只引用部件视图) -->
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
import { ${viewitem.getPSAppDEView().codeName}Module } from '@pages/${ngfilename('${viewitem.getPSAppDEView().getPSAppModule().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}.module';
</#list>
import { ${view.codeName}Component } from './${viewname}';
import { ${view.codeName}ModalService } from './${viewname}-modalservice';
@NgModule({
imports: [
CommonModule,
SharedModule,
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
${viewitem.getPSAppDEView().codeName}Module,
</#list>
],
exports: [
${view.codeName}Component
],
declarations: [
${view.codeName}Component
],
entryComponents: [
${view.codeName}Component
],
providers: [
${view.codeName}ModalService
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class ${view.codeName}Module {}
\ No newline at end of file
<#if ((view.getPSDataEntity()??) && (view.hasPSControl('searchform'))) >
<#assign de = view.getPSDataEntity()>
<#assign form = view.getPSControl('searchform')>
/**
* 搜索表单属性值发生变化
*
* @param {string} fieldname
* @param {*} field
* @param {*} value
* @memberof ${view.codeName}ComponentBase
*/
public onSearchFormFieldChanged(fieldname: string, field: string, value: string): void {
const form = this.getSearchForm();
<#list searchform_fdlogics as fdlogic>
${fdlogic}
</#list>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getPSDEFormItemUpdate()??>
if(Object.is( fieldname, '${formitem.name}')){
form.updateFormItems({srfufimode:'${formitem.getPSDEFormItemUpdate().codeName}'});
}
</#if>
</#list>
</#if>
}
</#if>
<#-- 视图是否默认加载 -->
<#if (!view.isLoadDefault())>
/**
* 是否默认加载
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isLoadDefault(): boolean {
return false;
}
</#if>
<#-- 视图是否支持快速搜索 -->
<#if (!view.isEnableQuickSearch())>
/**
* 是否支持快速搜索
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableQuickSearch(): boolean {
return false;
}
</#if>
\ No newline at end of file
:host{
<#list ctrls as ctrl>
${ctrl.code}
</#list>
<#assign viewCssName = '' />
<#if view.getPSSysCss()??>
<#assign viewCssName = view.getPSSysCss().getCssName()>
</#if>
<#list view.getPSSysCsses() as syscss>
<#if syscss.getCssStyle()??>
<#if syscss.getCssName() != viewCssName>
.${syscss.getCssName() } {
${syscss.getCssStyle()}
}
</#if>
</#if>
</#list>
<#if view.getPSSysCss()??>
<#if view.getPSSysCss().getCssStyle()??>
${view.getPSSysCss().getCssStyle()}
</#if>
</#if>
}
\ No newline at end of file
public regUIActions(): void{
<#list view.getPSUIActions() as uiaction>
const uiaction_${uiaction_index} = { type: '${uiaction.getUIActionType()}', tag: '${uiaction.getUIActionTag()}'<#if (uiaction.getActionTarget()!="")>, actiontarget: '${uiaction.getActionTarget()}'</#if>, priv: '<#if uiaction.getDataAccessAction()??>${uiaction.getDataAccessAction()}<#else></#if>'
<#if uiaction.getUIActionType() == 'DEUIACTION'>
<#if uiaction.getUIActionMode()!="SYS">
, actionmode: '${uiaction.getUIActionMode()}', reload:<#if uiaction.isReloadData()>true<#else>false</#if>,colseeditview:<#if uiaction.isCloseEditView()>true<#else>false</#if>
<#if uiaction.getUIActionMode()=="BACKEND">
, timeout: ${uiaction.getTimeout()?c}<#if uiaction.getConfirmMsg()??>, confirmmsg: '${uiaction.getConfirmMsg()}'</#if>
</#if>
<#comment><!--开始:向导界面--></#comment>
<#if uiaction.getFrontProcessType()=="WIZARD">
, fronttype: '${uiaction.frontProcessType}'
<#if uiaction.getFrontPSAppView(view)??>
<#assign frontview=uiaction.getFrontPSAppView(view)>, frontview: { className: '${frontview.codeName}', title: '${frontview.title}', openMode: '${frontview.openMode}'<#if frontview.isRedirectView()>, redirectview: true, backendurl: '/${frontview.getPSAppModule().codeName}/${frontview.codeName}.do'</#if> }
</#if>
</#if>
<#comment><!--结束:向导界面--></#comment>
<#comment><!--开始:顶级视图--></#comment>
<#if uiaction.getFrontProcessType()=="TOP">
, fronttype: '${uiaction.frontProcessType}'
<#if uiaction.getFrontPSAppView(view)??>
<#assign frontview=uiaction.getFrontPSAppView(view)>, frontview: { className: '${frontview.getPSAppModule().codeName?lower_case}_${frontview.codeName?lower_case}', title: '${frontview.title}', openMode: '${frontview.openMode}'<#if frontview.isRedirectView()>, redirectview: true, backendurl: '/${frontview.getPSAppModule().codeName}/${frontview.codeName}.do'</#if> }
</#if>
</#if>
<#comment><!--结束:顶级视图--></#comment>
<#comment><!--开始:打开网页--></#comment>
<#if uiaction.getFrontProcessType()=="OPENHTMLPAGE">
, fronttype: '${uiaction.frontProcessType}', htmlpageurl: '${uiaction.getHtmlPageUrl()}'
</#if>
<#comment><!--结束:打开网页--></#comment>
</#if>
</#if>
<#if uiaction.getUIActionType() == 'WFUIACTION'>
, actionmode: '${uiaction.getUIActionMode()}'
<#if uiaction.getUIActionMode()=="WFBACKEND">
, timeout: ${uiaction.getTimeout()?c}<#if uiaction.getConfirmMsg()??>, confirmmsg: '${uiaction.getConfirmMsg()}'</#if>
</#if>
<#comment><!--开始:向导界面--></#comment>
<#if uiaction.getFrontProcessType()=="WIZARD">
, fronttype: '${uiaction.frontProcessType}'
<#if uiaction.getFrontPSAppView(view)??>
<#assign frontview=uiaction.getFrontPSAppView(view)>, frontview: { className: '${frontview.codeName}', viewParam: { srfwfiatag: '${uiaction.getUIActionTag()}', srfwfstep: '${view.getWFStepValue()}' }, title: '${frontview.title}', openMode:'${frontview.openMode}' }
</#if>
</#if>
<#comment><!--结束:向导界面--></#comment>
<#comment><!--开始:顶级视图--></#comment>
<#if uiaction.getFrontProcessType()=="TOP">
, fronttype: '${uiaction.frontProcessType}'
<#if uiaction.getFrontPSAppView(view)??>
<#assign frontview=uiaction.getFrontPSAppView(view)>, frontview: { className: '${frontview.getPSAppModule().codeName?lower_case}_${frontview.codeName?lower_case}', title: '${frontview.title}', openMode: '${frontview.openMode}'<#if frontview.isRedirectView()>, redirectview: true, backendurl: '/${frontview.getPSAppModule().codeName}/${frontview.codeName}.do'</#if> }
</#if>
</#if>
<#comment><!--结束:顶级视图--></#comment>
<#comment><!--开始:打开网页--></#comment>
<#if uiaction.getFrontProcessType()=="OPENHTMLPAGE">
, fronttype: '${uiaction.frontProcessType}', htmlpageurl: '${uiaction.getHtmlPageUrl()}'
</#if>
<#comment><!--结束:打开网页--></#comment>
</#if> , actionparams: { valueitem: '${uiaction.getValueItem()}', paramitem: '${uiaction.getParamItem()}', textitem: '${uiaction.getTextItem()}', paramjo: <#if uiaction.getUIActionParamJO()??>${uiaction.getUIActionParamJO().toString()}<#else>{ }</#if> } };
super.regUIAction(uiaction_${uiaction_index});
</#list>
}
\ No newline at end of file
<#if view.getTitle()??>
<div [ngClass]="{'ibiz-modal-view-show-title': isModal(),'ibiz-modal-view-hide-title': !isModal()}" class="content__title">
<h1>
${view.getTitle()}
</h1>
</div>
</#if>
\ No newline at end of file
import { Component<#if view.isDynamicView() == true>, Renderer2, ComponentFactoryResolver</#if> } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { LocationStrategy } from '@angular/common';
import { NzModalService, NzModalSubject, NzNotificationService } from 'ng-zorro-antd';
import { IBizHttp} from '@ibizsys/util/IBizHttp';
import { IBizNotification } from '@ibizsys/util/IBizNotification';
import { IBizAppService } from '@ibizsys/IBizAppService';
<#if view.isDynamicView() == true>
import { IBizDynamicViewModalService } from '@ibizsys/dynamic-components/ibiz-dynamic-view-modal.service';
</#if>
import { MenuService } from '@delon/theme';
<#list modalviews as modalview>
import { ${modalview.codeName}ModalService } from 'app/pages/${ngfilename('${modalview.getPSAppModule().codeName}')}/${ngfilename('${modalview.codeName}')}/${ngfilename('${modalview.codeName}')}-modalservice';
</#list>
import { ${view.codeName}ComponentBase } from './${ngfilename('${view.codeName}')}.base';
@Component({
selector: 'app-${ngfilename('${view.codeName}')}',
templateUrl: './${ngfilename('${view.codeName}')}.html',
styleUrls: [ './${ngfilename('${view.codeName}')}.less' ],
})
/**
* 发布视图控制器对象,开发扩展使用
*
* @export
* @class ${view.codeName}Component
* @extends {${view.codeName}ComponentBase}
*/
export class ${view.codeName}Component extends ${view.codeName}ComponentBase {
constructor(
private http: IBizHttp,
private routeActive: ActivatedRoute,
private route: Router,
private location: LocationStrategy,
private notification: IBizNotification,
private modal: NzModalService,
private modalSubject: NzModalSubject,
private menuService: MenuService,
private ibizAppService: IBizAppService,
<#if view.isDynamicView() == true>
private ibizDynamicViewModalService: IBizDynamicViewModalService,
private renderer2: Renderer2,
private resolver: ComponentFactoryResolver,
</#if>
<#list modalviews as modalview>
${modalview.codeName}ModalService: ${modalview.codeName}ModalService,
</#list>
) {
super({
url: '/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do',
route: route,
routeActive: routeActive,
location: location,
modal: modal,
modalSubject: modalSubject,
notification: notification,
http: http,
menuService: menuService,
ibizAppService: ibizAppService,
<#if view.isDynamicView() == true>
ibizDynamicViewModalService: ibizDynamicViewModalService,
resolver: resolver,
renderer2: renderer2,
</#if>
<#list modalviews as modalview>
${modalview.codeName}ModalService: ${modalview.codeName}ModalService,
</#list>
});
}
}
\ No newline at end of file
<#if modalviews??>
/**
* 获取视图模态框服务对象
*
* @param {string} classname 视图名称
* @returns {*}
* @memberof ${view.codeName}ComponentBase
*/
public getModalService(classname: string): any {
<#list modalviews as modalview >
if (Object.is(classname, '${modalview.codeName}')) {
return this.ibiz${modalview.codeName}ModalService;
}
</#list>
return undefined;
}
</#if>
<#if view.getPSSysCounterRefs()??>
/**
* 注册计数器
*
* @memberof ${view.codeName}ComponentBase
*/
public regUICounters(): void {
<#list view.getPSSysCounterRefs() as syscounterref>
<#assign syscounter=syscounterref.getPSSysCounter()>
const ${syscounter.getCodeName()} = new IBizUICounterService({
viewController: this,
name: '${syscounter.getCodeName()}',
counterId: '${syscounter.id}',
tag: '${syscounterref.tag}',
counterParam: ${syscounterref.getRefMode().toString()},
timer: ${syscounter.timer?c},
url: '/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do',
notification: this.$notification,
});
this.regUICounter('${syscounter.getCodeName()}', ${syscounter.getCodeName()});
</#list>
}
</#if>
/**
* 注册代码表
*
* @memberof ${view.codeName}ComponentBase
*/
public regCodeLists(): void {
<#list view.getRelatedPSCodeList(false) as codelist>
<#if codelist.getCodeListType()=='STATIC'>
/*${codelist.name}*/
this.regCodeList(new IBizCodeList({id: '${srfparamname('${sys.codeName}')}_${codelist.codeName}',datas:[<#if codelist.getPSCodeItems()??><#list codelist.getPSCodeItems() as codeitem><#if (codeitem_index>0)>,</#if>{text:'${codeitem.text}',value:'${codeitem.value}',realtext:'${codeitem.realText}'<#if codeitem.getParentValue()??>,parentvalue='${codeitem.getParentValue()}'</#if><#if codeitem.getColor()??>,color:'${codeitem.getColor()}'</#if><#if codeitem.getTextCls()??>,textcls:'${codeitem.getTextCls()}'</#if><#if codeitem.getIconCls()??>,iconcls:'${codeitem.getIconCls()}'</#if>}</#list></#if>]}));
</#if>
</#list>
}
/**
* 获取实体名称
*
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public getDEName(): string {
return '<#if view.isPSDEView()><#if view.getPSDataEntity()??>${view.getPSDataEntity().getName()}</#if></#if>';
}
}
\ No newline at end of file
import { IBizUtil } from '@ibizsys/util/IBizUtil';
import { IBizCodeList } from '@ibizsys/util/IBizCodeList';
<#if view.getPSSysCounterRefs()??>
import { IBizUICounterService } from '@ibizsys/util/IBizUICounterService';
</#if>
import { ${viewContorllerName} } from '@ibizsys/app/${viewContorllerName}';
<#list modalviews as modalview>
import { ${modalview.codeName}ModalService } from 'app/pages/${ngfilename('${modalview.getPSAppModule().codeName}')}/${ngfilename('${modalview.codeName}')}/${ngfilename('${modalview.codeName}')}-modalservice';
</#list>
<#if view.getPSControls()??>
<#if (view.getAllPSControls()?? && view.getAllPSControls()?size > 0)>
import {
<#list view.getAllPSControls() as ctrl>
<#if pfstyle.hasPSPFCtrlTempls(ctrl,'SERVICE_TS')>
${srfclassname('${ctrl.name}')}Service,
</#if>
</#list>
} from './${viewname}.service';
</#if>
</#if>
/**
* 发布视图控制器基类,不可修改
*
* @export
* @class ${view.codeName}ComponentBase
* @extends {${viewContorllerName}}
*/
export class ${view.codeName}ComponentBase extends ${viewContorllerName} {
<#list modalviews as modalview>
ibiz${modalview.codeName}ModalService: ${modalview.codeName}ModalService;
</#list>
<#if view.getPSControls()??>
<#list view.getAllPSControls() as ctrl>
<#if pfstyle.hasPSPFCtrlTempls(ctrl,'SERVICE_TS')>
${ctrl.name}: ${srfclassname('${ctrl.name}')}Service;
</#if>
</#list>
</#if>
constructor(opts) {
super(opts);
<#if view.getAllPSControls()??>
<#list view.getAllPSControls()?reverse as ctrl>
<#if pfstyle.hasPSPFCtrlTempls(ctrl,'SERVICE_TS')>
this.${ctrl.name} = new ${srfclassname('${ctrl.name}')}Service({
name: '${ctrl.name}',
modal: opts.modal ,
modalSubject: opts.modalSubject ,
viewController: this ,
url: '/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do',
notification: this.$notification,
});
this.regControl('${ctrl.name}', this.${ctrl.name});
</#if>
</#list>
</#if>
<#list modalviews as modalview>
this.ibiz${modalview.codeName}ModalService = opts.${modalview.codeName}ModalService;
</#list>
}
\ No newline at end of file
<#ibizinclude>VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#comment><!--开始:实体部件逻辑处理--></#comment>
<#if view.getPSDataEntity()??>
<#assign de=view.getPSDataEntity()>
<#if view.hasPSControl('form')>
<#assign form = view.getPSControl('form')>
/**
* 表单项值变化事件
*
* @param {string} fieldname
* @param {*} value
* @param {*} [field={}]
* @memberof ${view.codeName}ComponentBase
*/
public onFormFieldChanged(fieldname: string, field: any, value: string): void {
const form = this.getForm();
<#list form_fdlogics as fdlogic>
${fdlogic}
</#list>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getPSDEFormItemUpdate()??>
if(Object.is(fieldname, '${formitem.name}')){
form.updateFormItems('${formitem.getPSDEFormItemUpdate().codeName}');
}
</#if>
</#list>
</#if>
}
/**
* 表单项值检测
*
* @param {string} fieldname
* @param {string} value
* @memberof ${view.codeName}ComponentBase
*/
public onFormFieldValueCheck(name: string, value: string): void {
const form = this.getForm();
<#list form_vrlogics as vrlogic>
${vrlogic}
</#list>
}
<#comment><!--开始:设置自动选择(ac)编辑器选择、显示内容--></#comment>
/**
* 绘制选择编辑器ac选择内容
*
* @param {string} name
* @param {*} [item={}]
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public rendererRefAcOption(name: string, item: any = {}): string {
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getRefPSDEACMode()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${formitem.name}')) {
return ${formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#list>
</#if>
return item.text;
}
/**
* 绘制选择编辑器ac显示内容
*
* @param {string} name
* @param {*} [item={}]
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public rendererRefAcText(name: string, item: any = {}): string {
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getRefPSDEACMode()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${formitem.name}')) {
return ${formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#list>
</#if>
return item.text;
}
<#comment><!--结束:设置自动选择(ac)编辑器选择、显示内容--></#comment>
</#if>
</#if>
<#comment><!--结束:实体部件逻辑处理--></#comment>
<#comment><!--开始:是否启用新建数据--></#comment>
<#if !view.isEnableNewData()>
/**
* 是否启用新建数据
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableNewData(): boolean {
return false;
}
</#if>
<#comment><!--结束:是否启用新建数据--></#comment>
<#comment><!--开始:是否启用编辑数据--></#comment>
<#if !view.isEnableEditData()>
/**
* 是否启用编辑数据
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableEditData(): boolean {
return false;
}
</#if>
<#comment><!--结束:是否启用编辑数据--></#comment>
<#comment><!--开始:是否启用删除数据--></#comment>
<#if !view.isEnableRemoveData()>
/**
* 是否启用删除数据
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableRemoveData(): boolean {
return false;
}
</#if>
<#comment><!--结束:是否启用删除数据--></#comment>
<#comment><!--开始:打印常规数据--></#comment>
<#if (view.isEnablePrint())>
/**
* 打印常规数据
*
* @param {*} [arg={}]
* @returns {*} [arg={}]
* @memberof ${view.codeName}ComponentBase
*/
public getPrintDataView(arg: any = {}): any {
<#if view.getPSDEPrint()??>
if(true){
Object.assign(arg , { srfprintid: '${view.getPSDEPrint().id}' });
const view:any = {viewparam:arg};
return view;
}
<#else>
return undefined;
</#if>
}
</#if>
<#comment><!--结束:打印常规数据--></#comment>
\ No newline at end of file
<#ibizinclude>VIEW_CAPTION.ftl</#ibizinclude>
<#if view.getOpenMode() != 'POPUPMODAL'>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar" [ngClass]="{'full_content_toolbar': !$ibizAppService.getFullScreen()}">
${toolbar.code}
</div>
</#if>
</#if>
<div nz-row [nzGutter]="24" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#if view.getOpenMode() == 'POPUPMODAL'>
<#if view.isShowCaptionBar() || view.isShowDataInfoBar() || toolbar??>
<ng-template #title>
<#if view.isShowCaptionBar()><span>${view.getCaption()}:</span></#if>
<#if view.isShowDataInfoBar()><span>{{$dataInfo}}&nbsp;&nbsp;</span></#if>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-modalview-toolbar">
${toolbar.code}
</div>
</#if>
</ng-template>
</#if>
</#if>
<#if form??>
${form.code}
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibizinclude>VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>VIEW_GRID_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#if view.getPSDataEntity()??>
<#assign de = view.getPSDataEntity()>
<#if view.hasPSControl('grid')>
<#assign grid = view.getPSControl('grid')>
<#comment>开始:表格行数据激活模式</#comment>
<#if view.getGridRowActiveMode()??>
/**
* 表格行数据激活模式,默认支持双击激活行数据
*
* @returns {number} 0--不激活,1--单击激活模式,2--双击激活行数据
* @memberof ${view.codeName}ComponentBase
*/
public getGridRowActiveMode(): number {
return ${view.getGridRowActiveMode()};
}
</#if>
<#comment>结束:表格行数据激活模式</#comment>
<#comment>开始:视图是否支持行编辑</#comment>
<#if (view.isEnableRowEdit())>
/**
* 是否支持行编辑
*
* @returns {boolean}
* @memberof ${view.codeName}ComponentBase
*/
public isEnableRowEdit(): boolean {
return true;
}
/**
* 表格行数据变化
*
* @param {string} name
* @param {*} [data={}]
* @memberof ${view.codeName}ComponentBase
*/
public onGridRowChanged(name: string, data: any = {}): void {
const grid = this.getMDCtrl();
<#if grid.getPSDEGridEditItems()??>
<#list grid.getPSDEGridEditItems() as gridedititem>
<#if gridedititem.getPSDEGridEditItemUpdate()??>
if (Object.is(name, '${gridedititem.name}')) {
grid.updateGridEditItems('${gridedititem.getPSDEGridEditItemUpdate().codeName}', data);
}
</#if>
</#list>
</#if>
}
</#if>
<#comment>结束:视图是否支持行编辑</#comment>
</#if>
<#comment><!--开始:设置自动选择(ac)编辑器选择、显示内容--></#comment>
/**
* 绘制选择编辑器ac选择内容
*
* @param {string} name
* @param {*} [item={}]
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public rendererRefAcOption(name: string, item: any = {}): string {
<#comment>开始:搜索表单</#comment>
<#if view.hasPSControl('searchform')>
<#assign form = view.getPSControl('searchform')>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getRefPSDEACMode()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${formitem.name}')) {
return ${formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#list>
</#if>
</#if>
<#comment>结束:搜索表单</#comment>
<#comment>开始:表格(开启行编辑)</#comment>
<#if view.hasPSControl('grid') && view.isEnableRowEdit()>
<#assign grid = view.getPSControl('grid')>
<#if grid.getPSDEGridColumns()??>
<#list grid.getPSDEGridColumns() as column>
<#if column.isEnableRowEdit() && (column.getPSDEGridEditItem()??)>
<#assign gridEditItem = column.getPSDEGridEditItem()>
<#if gridEditItem.getRefPSDEACMode()??>
<#if gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${gridEditItem.name}')) {
return ${gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#if>
</#list>
</#if>
</#if>
<#comment>结束:表格(开启行编辑)</#comment>
return item.text;
}
/**
* 绘制选择编辑器ac显示内容
*
* @param {string} name
* @param {*} [item={}]
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public rendererRefAcText(name: string, item: any = {}): string {
<#comment>开始:搜索表单</#comment>
<#if view.hasPSControl('searchform')>
<#assign form = view.getPSControl('searchform')>
<#if form.getPSDEFormItems()??>
<#list form.getPSDEFormItems() as formitem>
<#if formitem.getRefPSDEACMode()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${formitem.name}')) {
return ${formitem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#list>
</#if>
</#if>
<#comment>结束:搜索表单</#comment>
<#comment>开始:表格(开启行编辑)</#comment>
<#if view.hasPSControl('grid') && view.isEnableRowEdit()>
<#assign grid = view.getPSControl('grid')>
<#if grid.getPSDEGridColumns()??>
<#list grid.getPSDEGridColumns() as column>
<#if column.isEnableRowEdit() && (column.getPSDEGridEditItem()??)>
<#assign gridEditItem = column.getPSDEGridEditItem()>
<#if gridEditItem.getRefPSDEACMode()??>
<#if gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin()??>
<#if gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE2",pf.getId(),pfstyle.getId(),view,form,column) != "">
if (Object.is(name, '${gridEditItem.name}')) {
return ${gridEditItem.getRefPSDEACMode().getItemsPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,form,column)};
}
</#if>
</#if>
</#if>
</#if>
</#list>
</#if>
</#if>
<#comment>结束:表格(开启行编辑)</#comment>
return item.text;
}
<#comment><!--结束:设置自动选择(ac)编辑器选择、显示内容--></#comment>
</#if>
\ No newline at end of file
<#if view.isDynamicView() == true>
<ng-template #dynamicRef></ng-template>
<#else>
<#if toolbar?? && (view.getOpenMode() != 'POPUPMODAL')>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar">
${toolbar.code}
</div>
</#if>
</#if>
<nz-card [nzBordered]="false" [ngClass]="{'ibiz-modal-view': isModal()}">
<#if view.getOpenMode() == 'POPUPMODAL'>
<#if view.isShowCaptionBar() || toolbar??>
<ng-template #title>
<#if view.isShowCaptionBar()><span>${view.getCaption()}</span></#if>
<#if view.isDynamicView() == true>
<ng-template #dynamicRef></ng-template>
<#else>
<#if toolbar??>
<div class="ibiz-modalview-toolbar">
${toolbar.code}
</div>
</#if>
</#if>
</ng-template>
</#if>
</#if>
<#ibizinclude>VIEW_QUICK_SEARCH.ftl</#ibizinclude>
<#if searchform??>
<#assign searchForm = view.getControl('SEARCHFORM')/>
<div *ngIf="${searchForm.name}.$opened">
${searchform.code}
</div>
</#if>
<#if grid??>
${grid.code}
</#if>
</nz-card>
\ No newline at end of file
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { IBizComponentsModule } from '@ibizsys/components/ibiz-components.module';
import { UserModule } from '@user/user.module';
<#-- 判断是否为动态视图,是动态视图时添加动态组件模块 -->
<#if view.isDynamicView() == true>
import { DynamicComponentsModule } from '@ibizsys/dynamic-components/dynamic-components.module';
</#if>
import { ${view.codeName}Component } from './${viewname}';
<#if (view.getOpenMode()?? && view.getOpenMode() = 'POPUPMODAL')>
import { ${view.codeName}ModalService } from './${viewname}-modalservice';
</#if>
<#-- 视图关联视图(包括非路由视图和模态框视图) -->
<#list refviews as refview>
import { ${refview.codeName}Module } from '@pages/${ngfilename('${refview.getPSAppModule().codeName}')}/${ngfilename('${refview.codeName}')}/${ngfilename('${refview.codeName}')}.module';
</#list>
@NgModule({
imports: [
CommonModule,
SharedModule,
IBizComponentsModule,
UserModule,
<#if view.isDynamicView() == true>
DynamicComponentsModule,
</#if>
<#list refviews as refview>
${refview.codeName}Module,
</#list>
],
exports: [
${view.codeName}Component
],
declarations: [
${view.codeName}Component,
],
entryComponents: [
<#if (view.getOpenMode()?? && view.getOpenMode() == 'POPUPMODAL')>
${view.codeName}Component,
</#if>
],
providers: [
<#if (view.getOpenMode()?? && view.getOpenMode() == 'POPUPMODAL')>
${view.codeName}ModalService
</#if>
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class ${view.codeName}Module { }
\ No newline at end of file
import { Injectable } from '@angular/core';
import { NzModalService, NzModalSubject } from 'ng-zorro-antd';
import { IBizModalService } from '@ibizsys/util/IBizModalService';
import { IBizNotification } from '@ibizsys/util/IBizNotification';
import { ${view.codeName}Component } from './${viewname}';
/**
* 视图模态框服务对象
*
* @export
* @class ${view.codeName}ModalService
* @extends {IBizModalService}
*/
@Injectable()
export class ${view.codeName}ModalService extends IBizModalService {
/**
* Creates an instance of ${view.codeName}ModalService.
* 创建 ${view.codeName}ModalService 实例
*
* @param {NzModalService} modal
* @param {NzModalSubject} modalSubject
* @param {IBizNotification} notification
* @memberof IBZ5CustomerPickupViewModalService
*/
constructor(private modal: NzModalService, private modalSubject: NzModalSubject, private notification: IBizNotification) {
super({ modalCtrl: modal, modalSubjectCtrl: modalSubject, notification: notification });
}
/**
* 获取模态框参数
*
* @param {*} [opt={}]
* @returns {*}
* @memberof ${view.codeName}ModalService
*/
public getModalParam(opt: any = {}): any {
return super.getModalParam(opt, {
content: ${view.codeName}Component,
wrapClassName: 'ibiz_wrap_modal',
footer: false,
maskClosable: false,
width: ${view.getWidth()?c}
});
}
/**
* 视图打开模式
*
* @returns {string}
* @memberof ${view.codeName}ModalService
*/
public viewOpenMode(): string {
return '<#if view.isPickupView()>POPUPMODAL<#else>${view.getOpenMode()}</#if>';
}
}
\ No newline at end of file
<#-- 是否支持快捷搜索 -->
<#if view.isEnableQuickSearch()>
<div nz-row [nzGutter]="24" class="ibiz-search-form">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<nz-input [nzType]="'search'" [nzPlaceHolder]="$quickSearchTipInfo" [(ngModel)]="$searchValue" [ngStyle]="{'width':'400px'}" (nzOnSearch)="onQuickSearch($event)"
[nzSize]="'large'"></nz-input> &nbsp;&nbsp;&nbsp;&nbsp;
<button nz-button [nzType]="'default'" [nzSize]="'large'" (click)="clearQuickSearchValue()" >清空</button>
<div class='pull-right'>
<#-- 是否有搜索表单 -->
<#if searchform??>
<#assign searchForm = view.getControl('SEARCHFORM')/>
<a (click)="openSearchForm()" style="width: 56px;height: 14px;line-height: 27px;">
更多
<i class="fa" [ngClass]="{'fa-caret-up': ${searchForm.name}.$opened, 'fa-caret-down': !${searchForm.name}.$opened}" aria-hidden="true"></i>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
</#if>
</div>
</nz-card>
</div>
</div>
</#if>
\ No newline at end of file
<#if imports??>
<#list imports as import>
${import}
</#list>
</#if>
<#if ctrls??>
<#list ctrls as ctrl>
${ctrl.code}
</#list>
</#if>
\ No newline at end of file
import { Observable } from 'rxjs/Observable';
import { RouterModule, Router, ActivatedRoute, Data, Routes } from '@angular/router';
import { CommonModule } from '@angular/common';
import { Component, NgModule, OnDestroy } from '@angular/core';
import { IBizAppService } from '@ibizsys/IBizAppService';
import { ${view.codeName}Module } from './${viewname}.module';
import { ${view.codeName}Component } from './${viewname}';
@Component({
template: `<router-outlet></router-outlet>`,
})
export class ${view.codeName}shellComponent implements OnDestroy {
/**
* 激活路由参数
*
* @private
* @type {*}
* @memberof ${view.codeName}shellComponent
*/
private activatedRouteData: any = {};
/**
* Creates an instance of ${view.codeName}shellComponent.
* @param {Router} router
* @param {ActivatedRoute} activatedRoute
* @param {IBizAppService} iBizAppService
* @memberof ${view.codeName}shellComponent
*/
constructor(private router: Router, private activatedRoute: ActivatedRoute, private iBizAppService: IBizAppService) {
this.activatedRoute.data.subscribe((data: Observable<Data>) => {
if (Object.keys(data).length === 0) {
return;
}
Object.assign(this.activatedRouteData, { routerurl: this.router.url });
Object.assign(this.activatedRouteData, data);
const _data: any = this.iBizAppService.addActivatedRouteDatas(this.activatedRouteData);
if (_data && Object.keys(_data).length > 0) {
Object.assign(this.activatedRouteData, _data);
}
});
}
/**
* 部件销毁
*
* @memberof ${view.codeName}shellComponent
*/
public ngOnDestroy(): void {
if (Object.keys(this.activatedRouteData).length === 0) {
return;
}
this.iBizAppService.deleteActivatedRouteDatas(this.activatedRouteData);
}
}
\ No newline at end of file
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(${view.codeName}shellRoutes),
${view.codeName}Module
],
declarations: [${view.codeName}shellComponent]
})
export class ${view.codeName}shellModule {}
\ No newline at end of file
const ${view.codeName}shellRoutes: Routes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
<#list ngstates as ngstate>
<#if ngstate.name?length gt 0 && ngstate.getPSAppView()??>
<#if ngstate.getPSAppView().isRedirectView() != true>
{
path: '${ngstate.name}',
loadChildren: '../../../pages/${ngfilename('${ngstate.getPSAppView().getPSAppModule().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}shell.module#${ngstate.getPSAppView().codeName}shellModule',
data: { fullcaption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', caption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', view: '${ngstate.getPSAppView().getPSAppModule().codeName?lower_case}_${ngstate.getPSAppView().codeName?lower_case}', routerlink: '${ngstate.name}', showcaption: ${ngstate.getPSAppView().isShowCaptionBar()?c} }
},
</#if>
</#if>
</#list>
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
\ No newline at end of file
getEditMode(data){
let editMode = super.getEditMode(data);
<#if view.isWFIAMode()>
<#if view.hasPSControl("grid")?? && view.getPSControl("grid").hasWFDataItems() == true>
<#assign fieldname = 'srfwfstep'>
<#else>
<#assign fieldname = view.getPSDEWF().getWFStepPSDEField().getName()>
</#if>
if(editMode && editMode !== '') {
editMode = editMode + ':' + data.${fieldname?lower_case};
} else {
editMode = data.${fieldname?lower_case};
}
<#if view.getPSDEWF().getWFVerPSDEField()??>
<#if view.hasPSControl("grid")?? && view.getPSControl("grid").hasWFDataItems() == true>
<#assign verfieldname = 'srfwfver'>
<#else>
<#assign verfieldname = view.getPSDEWF().getWFVerPSDEField().getName()>
</#if>
const ver = data.${verfieldname?lower_case};
if(ver && ver !== '' && ver !== '1') {
editMode = editMode + '@' + ver;
}
</#if>
</#if>
return editMode;
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizGridView8Controller' />
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#if view.getGridRowActiveMode()??>
/**
* 表格行数据激活模式,默认支持双击激活行数据
*
* @returns {number} 0--不激活,1--单击激活模式,2--双击激活行数据
* @memberof ${view.codeName}ComponentBase
*/
public gridRowActiveMode(): number {
return ${view.getGridRowActiveMode()};
}
</#if>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host ::ng-deep .ant-card {
margin-bottom: 0px !important;
}
:host ::ng-deep .ant-card-body {
padding: 0;
}
:host{
::ng-deep .toolbar-btn {
display: flex;
align-items: center;
flex-direction: column;
.ant-btn {
width: 40px;
margin: 10px 0;
}
}
::ng-deep .ibiz-gridview8 {
display: flex;
justify-content: space-between;
}
::ng-deep .ibiz-gridview8 > div:nth-child(2) {
width: 60px;
}
::ng-deep .ibiz-gridview8 > div:nth-child(1), ::ng-deep .ibiz-gridview8 > div:nth-child(3) {
flex-grow: 1;
width: calc(50% - 30px);
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false">
<div class="ibiz-gridview8">
<div>
<#if totalgrid??>
${totalgrid.code}
</#if>
</div>
<div class="toolbar-btn">
<button nz-button [nzSize]="'small'" (click)="addDataBatch(totalgrid.$selection)" [disabled]="totalgrid.$selection.length === 0">
<i class="fa fa-angle-right"></i>
</button>
<button nz-button [nzSize]="'small'" (click)="removeData()" [disabled]="grid.$selection.length === 0">
<i class="fa fa-angle-left"></i>
</button>
<button nz-button [nzSize]="'small'" (click)="addDataBatch(totalgrid.$items)" [disabled]="totalgrid.$items.length === 0">
<i class="fa fa-angle-double-right"></i>
</button>
<button nz-button [nzSize]="'small'" (click)="removeAllData()" [disabled]="grid.$items.length === 0">
<i class="fa fa-angle-double-left"></i>
</button>
</div>
<div>
<#if grid??>
${grid.code}
</#if>
</div>
</div>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEGRIDVIEW8
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEntityTabExpViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
public regTabs(): void {
<#list view.getAllPSControls() as control>
<#if control.getPSControlType().getId() == 'TABVIEWPANEL'>
this.regTab({name:'${control.getName()}',title:'${control.getCaption()}',viewParams:<#if control.getPSControlParam().getCtrlParam()??>${control.getPSControlParam().getCtrlParam().toString()}<#else>{}</#if>});
</#if>
</#list>
}
<#ibizinclude>../../@MACRO/EXPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.ibiz_exptree {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
color: #929292;
padding: 24px;
padding-top: 12px;
padding-bottom: 12px;
margin-right: -24px;
margin-left: -24px;
margin-bottom: 24px;
background-color: #fafbfc;
border-bottom: 1px solid #efe3e5;
margin: 0px;
padding-left: 12px;
}
.ibiz_wfexptree h1 {
font-size: 18px;
font-weight: normal;
line-height: inherit;
color: rgba(0, 0, 0, 0.85);
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#if toolbar??>
${toolbar.code}
</#if>
<nz-tabset [(nzSelectedIndex)]="$defaultActiveTab">
<ng-container *ngFor="let item of $tabs">
<nz-tab (nzSelect)="changeTab(item)">
<ng-template #nzTabHeading>
{{item.title}}
</ng-template>
<span>
</span>
</nz-tab>
</ng-container>
</nz-tabset>
<router-outlet ></router-outlet>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDETABEXPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWizardViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if wizardpanel??>
${wizardpanel.code}
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWIZARDVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizChartViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/REPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1> ${view.getTitle()}</h1>
</div>
</#if>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}</span></#if>
</ng-template>
<#if chart??>
<ng-template #body>
<#ibizinclude>../../@MACRO/VIEW_QUICK_SEARCH.ftl</#ibizinclude>
<#if searchform??>
<#assign searchForm = view.getControl('SEARCHFORM')/>
<div *ngIf="${searchForm.name}.$opened">
${searchform.code}
</div>
</#if>
${chart.code}
</ng-template>
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDECHARTVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFStepActorView2Controller' />
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false" [ngClass]="{'ibiz-modal-view': isModal()}">
<#if toolbar??>
${toolbar.code}
</#if>
<#if searchform??>
${searchform.code}
</#if>
<#if grid??>
${grid.code}
</#if>
<#if grid2??>
${grid2.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMDCUSTOMVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizMEditView9Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<span>当前模板暂未提供,敬请期待</span>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMEDITVIEW9
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizMPickupView2Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/PICKUPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
nz-layout {
background: white;
nz-sider {
background: white;
}
}
.layout {
margin-top: 4px;
}
.tree-exp-view {
nz-content {
padding: 0px 12px;
}
}
.buttons > button{
margin-top:5px;
}
.mpicker-select {
font-family: helvetica, sans-serif;
font-size: 16px;
font-variant: small-caps;
text-align: justify;
word-spacing: -3.8pt;
line-height: 1.6;
font-weight: bold;
word-spacing: 10px;
height: 100%;
overflow: auto;
}
.mpicker-select > div {
padding: 3px 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
font-weight: initial;
cursor: pointer;
min-height: 28px;
border: 1px solid #e9e9e9;
margin: 4px 4px;
transition: all .3s;
}
.mpicker-select > div:hover {
background: #ecf6fd;
}
.mpicker-select > .select{
color: #108ee9;
background: #ecf6fd;
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if treeexpbar??>
${treeexpbar.code}
</#if>
<nz-content >
<#-- 选择视图面板 -->
<#if view.hasPSControl('pickupviewpanel')??>
<#assign viewitems = view.getPSControls("pickupviewpanel",10)>
<div >
<#list viewitems as viewitem>
<#if viewitem.getPSAppDEView().isEmbeddedView()>
<app-${ngfilename('${viewitem.getPSAppDEView().codeName}')} [parentData]="${viewitem.name}.$parentData" [multiselect]="true" [viewParam]="viewParam" [modalViewParam]="modalViewParam" (allData)="${viewitem.name}.onAllData($event)"
(selectionChange)="${viewitem.name}.onSelectionChange($event)" (dataActivated)="${viewitem.name}.onDataActivated($event)"></app-${ngfilename('${viewitem.getPSAppDEView().codeName}')}>
</#if>
</#list>
</div>
</#if>
</nz-content>
<nz-sider [nzWidth]="340" style="height: 100%px;">
<div style="position: absolute;top: 0px;width: 300px;bottom: 20px;right: 0px;border: 1px solid #e9e9e9;">
<div style="width: 40px;position: absolute;top:40%;left: -40px;">
<div class="buttons">
<button nz-button [title]="MPickupResult.$onRightText" [nzType]="'primary'" [nzSize]="'default'" [ngClass]="{'disabled': MPickupResult.$curSelecttions.length === 0}"
(click)="MPickupResult.onRightClick()">
<i class="anticon anticon-right"></i>
</button>
<button nz-button [title]="MPickupResult.$onLeftText" [nzType]="'primary'" [nzSize]="'default'" [ngClass]="{'disabled': MPickupResult.$resSelecttions.length === 0}"
(click)="MPickupResult.onLeftClick()">
<i class="anticon anticon-left"></i>
</button>
<button nz-button [title]="MPickupResult.$onAllRightText" [nzType]="'primary'" [nzSize]="'default'" (click)="MPickupResult.onRightAllClick()">
<i class="anticon anticon-double-right"></i>
</button>
<button nz-button [title]="MPickupResult.$onAllLeftText" [nzType]="'primary'" [nzSize]="'default'" (click)="MPickupResult.onLeftAllClick()">
<i class="anticon anticon-double-left"></i>
</button>
</div>
</div>
<div class="mpicker-select">
<div *ngFor="let item of MPickupResult.$selections" (click)="MPickupResult.resultSelect(item)" (dblclick)="MPickupResult.dataActivated(item)" [ngClass]="{'select': item.select}">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</nz-sider>
</nz-layout>
</nz-content>
</nz-layout>
<div class="mb-md text-right ibiz-pickup-view-bottom">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" [ngClass]="{'disabled': MPickupResult.$selections.length === 0}" class="ml-sm" (click)="onClickOkButton()">{{$okBtnText}}</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton('onCancel')">{{$cancelBtnText}}</button>
</ng-container>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/PICKUP_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMPICKUPVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFStartViewController'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}:</span></#if>
<span>{{$dataInfo}}&nbsp;&nbsp;</span>
</ng-template>
<#if form??>
${form.code}
</#if>
</nz-card>
<div class="mb-md text-right">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" class="ml-sm" (click)="onClickOkButton()">确定</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton()">取消</button>
</ng-container>
</div>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFSTARTVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFExpViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host{
.tree-exp-view {
background: #fff;
nz-sider {
margin: 24px 0px 24px 24px;
}
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if expbar??>
${expbar.code}
</#if>
<nz-content >
<router-outlet></router-outlet>
</nz-content>
</nz-layout>
</nz-content>
</nz-layout>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFEXPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFActionViewController'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}:</span></#if>
<span>{{$dataInfo}}&nbsp;&nbsp;</span>
</ng-template>
<#if form??>
${form.code}
</#if>
<div class="mb-md text-right">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" class="ml-sm" (click)="onClickOkButton()">确定</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton()">取消</button>
</ng-container>
</div>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFACTIONVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFEditViewController'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_EDIT_HTML.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFEDITVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizWFEditView2Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EDITVIEW2CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host{
.tree-exp-view {
background: #fff;
nz-sider {
margin: 24px 0px 24px 24px;
}
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar" [ngClass]="{'full_content_toolbar': !$ibizAppService.getFullScreen()}">
${toolbar.code}
</div>
</#if>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if drbar??>
${drbar.code}
</#if>
<nz-content>
<#if form??>
<div nz-row [nzGutter]="24" [ngClass]="{'ibiz-show': $selectIndex === 0, 'ibiz-hide': $selectIndex !== 0}" >
<div nz-col [nzMd]="24" <#if view.isHideEditForm()> style="display: none;"</#if>>
<nz-card [nzBordered]="false">
${form.code}
</nz-card>
</div>
</div>
</#if>
<div [ngClass]="{'ibiz-show': $selectIndex !== 0, 'ibiz-hide': $selectIndex === 0}">
<router-outlet></router-outlet>
</div>
</nz-content>
</nz-layout>
</nz-content>
</nz-layout>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFEDITVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.isDynamicView() == true>
<#assign viewContorllerName = 'IBizDynamicGridViewController' />
<#else>
<#assign viewContorllerName = 'IBizGridViewController' />
</#if>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/WFMDVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_GRID_HTML.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFGRIDVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#-- 判断是否为动态视图 -->
<#if view.isDynamicView() == true>
<#assign viewContorllerName = 'IBizDynamicEditView3Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EDITVIEW2CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
<#else>
<#assign viewContorllerName = 'IBizWFEditView3Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EDITVIEW2CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.isDynamicView() == true>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<ng-template #dynamicRef></ng-template>
<div nz-row [nzGutter]="24">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#-- 关系分页部件 -->
<#if view.hasPSControl("drtab")>
<#assign drtab = view.getPSControl("drtab")>
<nz-tabset [(nzSelectedIndex)]="${drtab.name}.$activeTabIndex">
<#list drtab.getRootItem().getAllItems() as dritem>
<#if (dritem_index == 0)>
<#if form??>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: 0, name: 'form' })" <#if view.isHideEditForm()> style="display: none;"</#if>>
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
${form.code}
</span>
</nz-tab>
</#if>
<#else>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: ${dritem_index?c}, name: '<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>' })" [nzDisabled]="drtab.$tabs.<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>.disabled">
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
</span>
</nz-tab>
</#if>
</#list>
</nz-tabset>
<ng-contaniner *ngIf="${drtab.name}.$activeTabIndex !== 0 ">
<router-outlet></router-outlet>
</ng-contaniner>
</#if>
</nz-card>
</div>
</div>
<#else>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar" [ngClass]="{'full_content_toolbar': !$ibizAppService.getFullScreen()}">
${toolbar.code}
</div>
</#if>
<div nz-row [nzGutter]="24">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#-- 关系分页部件 -->
<#if view.hasPSControl("drtab")>
<#assign drtab = view.getPSControl("drtab")>
<nz-tabset [(nzSelectedIndex)]="${drtab.name}.$activeTabIndex">
<#list drtab.getRootItem().getAllItems() as dritem>
<#if (dritem_index == 0)>
<#if form??>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: 0, name: 'form' })" <#if view.isHideEditForm()> style="display: none;"</#if>>
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
${form.code}
</span>
</nz-tab>
</#if>
<#else>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: ${dritem_index?c}, name: '<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>' })" [nzDisabled]="drtab.$tabs.<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>.disabled">
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
</span>
</nz-tab>
</#if>
</#list>
</nz-tabset>
<ng-contaniner *ngIf="${drtab.name}.$activeTabIndex !== 0 ">
<router-outlet></router-outlet>
</ng-contaniner>
</#if>
</nz-card>
</div>
</div>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEWFEDITVIEW3
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizReportViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/REPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div [ngClass]="{'ibiz-modal-view-show-title': isModal(),'ibiz-modal-view-hide-title': !isModal()}" class="content__title">
<h1> ${view.getTitle()}</h1>
</div>
</#if>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #body>
<#ibizinclude>../../@MACRO/VIEW_QUICK_SEARCH.ftl</#ibizinclude>
<#if searchform??>
<#assign searchForm = view.getControl('SEARCHFORM')/>
<div *ngIf="${searchForm.name}.$opened">
${searchform.code}
</div>
</#if>
<#if reportpanel??>
${reportpanel.code}
</#if>
</ng-template>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEREPORTVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizMPickupViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/PICKUPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
.mpickup-view {
margin-bottom: 0px !important;
}
::ng-deep .ant-card-body {
padding: 0;
}
nz-layout {
background: white;
nz-sider {
background: white;
}
}
.layout {
margin-top: 4px;
}
.tree-exp-view {
nz-content {
padding-right: 12px;
}
}
}
:host{
.buttons > button{
margin-top:5px;
}
.mpicker-select {
font-family: helvetica, sans-serif;
font-size: 16px;
font-variant: small-caps;
text-align: justify;
word-spacing: -3.8pt;
line-height: 1.6;
font-weight: bold;
word-spacing: 10px;
height: 100%;
overflow: auto;
}
.mpicker-select > div {
padding: 3px 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
font-weight: initial;
cursor: pointer;
min-height: 28px;
border: 1px solid #e9e9e9;
margin: 4px 4px;
transition: all .3s;
}
.mpicker-select > div:hover {
background: #ecf6fd;
}
.mpicker-select > .select{
color: #108ee9;
background: #ecf6fd;
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<nz-content >
<#if view.hasPSControl('pickupviewpanel')??>
<#assign viewitems = view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
<#if viewitem.getPSAppDEView().isEmbeddedView()>
<app-${ngfilename('${viewitem.getPSAppDEView().codeName}')} [multiselect]="true" [viewParam]="viewParam" [modalViewParam]="modalViewParam" (allData)="${viewitem.name}.onAllData($event)"
(selectionChange)="${viewitem.name}.onSelectionChange($event)" (dataActivated)="${viewitem.name}.onDataActivated($event)"></app-${ngfilename('${viewitem.getPSAppDEView().codeName}')}>
</#if>
</#list>
</#if>
</nz-content>
<nz-sider [nzWidth]="340" style="height: 100%px;">
<div style="position: absolute;top: 0px;width: 300px;bottom: 20px;right: 0px;border: 1px solid #e9e9e9;">
<div style="width: 40px;position: absolute;top:40%;left: -40px;">
<div class="buttons">
<button nz-button [title]="MPickupResult.$onRightText" [nzType]="'primary'" [nzSize]="'default'" [ngClass]="{'disabled': MPickupResult.$curSelecttions.length === 0}"
(click)="MPickupResult.onRightClick()">
<i class="anticon anticon-right"></i>
</button>
<button nz-button [title]="MPickupResult.$onLeftText" [nzType]="'primary'" [nzSize]="'default'" [ngClass]="{'disabled': MPickupResult.$resSelecttions.length === 0}"
(click)="MPickupResult.onLeftClick()">
<i class="anticon anticon-left"></i>
</button>
<button nz-button [title]="MPickupResult.$onAllRightText" [nzType]="'primary'" [nzSize]="'default'" (click)="MPickupResult.onRightAllClick()">
<i class="anticon anticon-double-right"></i>
</button>
<button nz-button [title]="MPickupResult.$onAllLeftText" [nzType]="'primary'" [nzSize]="'default'" (click)="MPickupResult.onLeftAllClick()">
<i class="anticon anticon-double-left"></i>
</button>
</div>
</div>
<div class="mpicker-select">
<div *ngFor="let item of MPickupResult.$selections" (click)="MPickupResult.resultSelect(item)" (dblclick)="MPickupResult.dataActivated(item)" [ngClass]="{'select': item.select}">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</nz-sider>
</nz-layout>
</nz-content>
</nz-layout>
<div class="mb-md text-right ibiz-pickup-view-bottom">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" [ngClass]="{'disabled': MPickupResult.$selections.length === 0}" class="ml-sm" (click)="onClickOkButton()">{{$okBtnText}}</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton('onCancel')">{{$cancelBtnText}}</button>
</ng-container>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/PICKUP_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEMPICKUPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEntityPortalViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#if view.getAllPSControls()??>
public regPortalCtrls(): void {
<#list view.getAllPSControls()?reverse as ctrl>
<#if pfstyle.hasPSPFCtrlTempls(ctrl,'SERVICE_TS')>
this.regPortalCtrl('${ctrl.name}', this.${ctrl.name});
</#if>
</#list>
}
</#if>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<div style="height: 24px;"></div>
<#if dashboard??>
${dashboard.code}
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEPORTALVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/PICKUPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
<#if viewitem.getPSAppDEView().isEmbeddedView()>
<app-${ngfilename('${viewitem.getPSAppDEView().codeName}')} [viewParam]="viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" [multiselect]="false" (selectionChange)="${viewitem.name}.onSelectionChange($event)" (dataActivated)="${viewitem.name}.onDataActivated($event)"></app-${ngfilename('${viewitem.getPSAppDEView().codeName}')}>
</#if>
</#list>
<div class="mb-md text-right ibiz-pickup-view-bottom">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" [ngClass]="{'disabled': !$isSelect }" class="ml-sm" (click)="onClickOkButton()">{{$okBtnText}}</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton('onCancel')">{{$cancelBtnText}}</button>
</ng-container>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/PICKUP_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEPICKUPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupView2Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/PICKUPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
nz-layout {
background: white;
}
.layout {
margin-top: 4px;
}
.tree-exp-view {
nz-content {
padding-left: 12px;
}
}
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if treeexpbar??>
${treeexpbar.code}
</#if>
<nz-content >
<#-- 选择视图面板 -->
<#if view.hasPSControl('pickupviewpanel')??>
<#assign viewitems = view.getPSControls("pickupviewpanel",10)>
<div >
<#list viewitems as viewitem>
<#if viewitem.getPSAppDEView().isEmbeddedView()>
<app-${ngfilename('${viewitem.getPSAppDEView().codeName}')} [parentData]="${viewitem.name}.$parentData" [viewParam]="viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" [multiselect]="false" (selectionChange)="${viewitem.name}.onSelectionChange($event)" (dataActivated)="${viewitem.name}.onDataActivated($event)"></app-${ngfilename('${viewitem.getPSAppDEView().codeName}')}>
</#if>
</#list>
</div>
</#if>
</nz-content>
</nz-layout>
</nz-content>
</nz-layout>
<div class="mb-md text-right ibiz-pickup-view-bottom">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" [ngClass]="{'disabled': !$isSelect }" class="ml-sm" (click)="onClickOkButton()">{{$okBtnText}}</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton('onCancel')">{{$cancelBtnText}}</button>
</ng-container>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/PICKUP_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEPICKUPVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizTreeExpViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
.tree-exp-view {
background: #fff;
nz-sider {
margin: 24px 0px 24px 24px;
}
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if treeexpbar??>
${treeexpbar.code}
</#if>
<nz-content >
<router-outlet></router-outlet>
</nz-content>
</nz-layout>
</nz-content>
</nz-layout>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDETREEEXPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizTreeExpViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
.tree-exp-view {
background: #fff;
nz-sider {
margin: 24px 0px 24px 24px;
}
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<span>当前模板暂未提供,敬请期待</span>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDETREEEXPVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizTreeView9Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host ::ng-deep .ant-card-body {
padding: 0;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false">
<#if tree??>
${tree.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/COMPONENT_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDETREEVIEW9
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizDataViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false">
<#if dataview??>
${dataview.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/COMPONENT_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEINDEXPICKUPDATAVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEditViewController'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_EDIT_HTML.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEEDITVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEditView3Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EDITVIEW2CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar" [ngClass]="{'full_content_toolbar': !$ibizAppService.getFullScreen()}">
${toolbar.code}
</div>
</#if>
<div nz-row [nzGutter]="24">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#-- 关系分页部件 -->
<#if view.hasPSControl("drtab")>
<#assign drtab = view.getPSControl("drtab")>
<nz-tabset [(nzSelectedIndex)]="${drtab.name}.$activeTabIndex">
<#list drtab.getRootItem().getAllItems() as dritem>
<#if (dritem_index == 0)>
<#if form??>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: 0, name: 'form' })" <#if view.isHideEditForm()> style="display: none;"</#if>>
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
${form.code}
</span>
</nz-tab>
</#if>
<#else>
<nz-tab (nzSelect)="${drtab.name}.onTabSelectionChange({ index: ${dritem_index?c}, name: '<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>' })" [nzDisabled]="drtab.$tabs.<#if dritem.getDRViewId()==''>${dritem.getId()?lower_case}<#else>${dritem.getDRViewId()?lower_case}</#if>.disabled">
<ng-template #nzTabHeading>
${dritem.text}
</ng-template>
<span>
</span>
</nz-tab>
</#if>
</#list>
</nz-tabset>
<ng-contaniner *ngIf="${drtab.name}.$activeTabIndex !== 0 ">
<router-outlet></router-outlet>
</ng-contaniner>
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEEDITVIEW3
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEditView2Controller'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EDITVIEW2CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host{
.tree-exp-view {
background: #fff;
nz-sider {
margin: 24px 0px 24px 24px;
}
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#if view.getTitle()??>
<div style="display:none;" class="content__title">
<h1>${view.getTitle()}</h1>
</div>
</#if>
<#if toolbar??>
<div *ngIf="$isShowToolBar" class="ibiz-navigation-toolbar" [ngClass]="{'full_content_toolbar': !$ibizAppService.getFullScreen()}">
${toolbar.code}
</div>
</#if>
<nz-layout class="layout">
<nz-content>
<nz-layout class="tree-exp-view">
<#if drbar??>
${drbar.code}
</#if>
<nz-content>
<#if form??>
<div nz-row [nzGutter]="24" [ngClass]="{'ibiz-show': $selectIndex === 0, 'ibiz-hide': $selectIndex !== 0}" >
<div nz-col [nzMd]="24" <#if view.isHideEditForm()> style="display: none;"</#if>>
<nz-card [nzBordered]="false">
${form.code}
</nz-card>
</div>
</div>
</#if>
<div [ngClass]="{'ibiz-show': $selectIndex !== 0, 'ibiz-hide': $selectIndex === 0}">
<router-outlet></router-outlet>
</div>
</nz-content>
</nz-layout>
</nz-content>
</nz-layout>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEEDITVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEditView9Controller'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#if (!view.isShowCaptionBar()) && (!view.isShowDataInfoBar())>
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}:</span></#if>
<#if view.isShowDataInfoBar()><span>{{$dataInfo}}&nbsp;&nbsp;</span></#if>
</ng-template>
</#if>
<#if toolbar??>
${toolbar.code}
</#if>
<#if form??>
${form.code}
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEEDITVIEW9
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizCustomViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="24" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}</span></#if>
</ng-template>
<#if custom??>
${custom.code}
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#if imports??>
<#list imports as import>
${import}
</#list>
</#if>
<#if imports??>
<#list ctrls as ctrl>
${ctrl.code}
</#list>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDECUSTOMVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupDataViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/MDVIEW_CONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host {
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
.mpickup-view {
margin-bottom: 0px !important;
}
::ng-deep .ant-card-body {
padding: 0;
}
}
:host{
.buttons > button{
margin-top:5px;
}
.mpicker-select {
font-family: helvetica, sans-serif;
font-size: 16px;
font-variant: small-caps;
text-align: justify;
word-spacing: -3.8pt;
line-height: 1.6;
font-weight: bold;
word-spacing: 10px;
height: 100%;
overflow: auto;
}
.mpicker-select > div {
padding: 3px 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
font-weight: initial;
cursor: pointer;
min-height: 28px;
border: 1px solid #e9e9e9;
margin: 4px 4px;
}
.mpicker-select > div:hover {
background: #ecf6fd;
}
.mpicker-select > .select{
color: #108ee9;
background: #ecf6fd;
}
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false">
<#if dataview??>
${dataview.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/COMPONENT_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEFORMPICKUPDATAVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizGridViewController' />
<#ibizinclude>../../@MACRO/VIEW_GRID_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_GRID_HTML.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEGRIDVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizGridView2Controller' />
<#ibizinclude>../../@MACRO/VIEW_GRID_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.grid-view-sort-fild {
color: #707070;
font-size: 12px;
font-weight: bold;
white-space: nowrap;
color: #707070;
}
.grid-view-choice-fild {
border-left: 1px solid #ddd;
padding-left: 10px;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}</span></#if>
</ng-template>
<#if toolbar??>
${toolbar.code}
</#if>
<div style="width:calc(100% - 120px);float:left;">
<#if searchform??>
${searchform.code}
</#if>
</div>
<div style="width:120px;float:left;text-align:right;">
<nz-dropdown [nzPlacement]="'bottomRight'" [nzTrigger]="'click'">
<a style="border:1px solid #d9d9d9;padding:4px;" class="ant-dropdown-link" title="改变视图类型" nz-dropdown>
<i class="fa fa-list-alt"></i>
<i class="anticon anticon-down"></i>
</a>
<ul nz-menu>
<li nz-menu-item nzDisable>
<a >查看</a>
</li>
<li nz-menu-item>
<a (click)="viewTypeChange('listgrid')">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;列表</a>
</li>
<li nz-menu-item>
<a (click)="viewTypeChange('grid')">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;详细视图</a>
</li>
</ul>
</nz-dropdown>
</div>
<div style="width:100%;float:left;" *ngIf="$gridType == 'listgrid'">
<div style="width: 240px;float:left;">
<div style="display:block;">
<#if view.hasPSControl('LISTGRID')>
<#assign gridctrl = view.getPSControl('LISTGRID')/>
<#if !gridctrl.isNoSort()>
<div>
<span style="cursor:pointer;"(click)='dataListFiledSort()' class="grid-view-sort-fild">按&nbsp;&nbsp;{{$sortFieldName}}&nbsp;&nbsp;排序&nbsp;&nbsp;
<span>
<i class="fa" [ngClass]="{'fa-arrow-up':$sortDirection == 'desc','fa-arrow-down':$sortDirection == 'asc'}"></i>
</span>
</span>
&nbsp;&nbsp;
<span class="grid-view-choice-fild">
<nz-dropdown>
<a class="ant-dropdown-link" title="选择用于排序的字段" nz-dropdown>
<i class="anticon anticon-down"></i>
</a>
<ul nz-menu>
<#if gridctrl.getAllPSDEGridColumns()??>
<#list gridctrl.getAllPSDEGridColumns() as column>
<#if column.getColumnType() = 'DEFGRIDCOLUMN' && column.isEnableSort()>
<li nz-menu-item>
<a (click)="dataListSort('${column.getCodeName()}','${column.getCaption()}')" >${column.getCaption()}</a>
</li>
</#if>
</#list>
</#if>
</ul>
</nz-dropdown>
</span>
</div>
</#if>
</#if>
<#if listgrid??>
${listgrid.code}
</#if>
</div>
</div>
<div style="width: calc(100% - 240px);float:left;">
<#if view.getControl('DRTAB')??>
<#assign drtab = view.getControl('DRTAB')/>
<#assign drview = 0/>
<#list drtab.getPSDEDRCtrlItems() as item>
<#if item.getPSAppView()??>
<#assign drview += 1/>
</#if>
</#list>
<#if drview != 0>
<nz-tabset>
<#if drtab.getFormPSAppView()??>
<#assign editview9 = drtab.getFormPSAppView()/>
<nz-tab >
<ng-template #nzTabHeading>
${editview9.getCaption()}
</ng-template>
<span><app-${ngfilename('${editview9.codeName}')} [relationParam]="$selectItem"></app-${ngfilename('${editview9.codeName}')}></span>
</nz-tab>
</#if>
<#list drtab.getPSDEDRCtrlItems() as item>
<#if item.getPSAppView()??>
<#assign drview = item.getPSAppView()/>
<nz-tab >
<ng-template #nzTabHeading>
${item.getCaption()}
</ng-template>
<span><app-${ngfilename('${drview.codeName}')} [relationParam]="$selectItem" [viewParam]='${item.getViewParamJO().toString()}'></app-${ngfilename('${drview.codeName}')}></span>
</nz-tab>
</#if>
</#list>
</nz-tabset>
<#else>
<#if drtab.getFormPSAppView()??>
<#assign editview9 = drtab.getFormPSAppView()/>
<app-${ngfilename('${editview9.codeName}')} [relationParam]="$selectItem"></app-${ngfilename('${editview9.codeName}')}>
</#if>
</#if>
</#if>
</div>
</div>
<div style="width:100%;float:left;" *ngIf="$gridType == 'grid'">
<#if grid??>
${grid.code}
</#if>
</div>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '../../../shared/shared.module';
import { IBizComponentsModule } from '../../../ibizsys/components/ibiz-components.module';
import { ${view.codeName}Component } from './${viewname}';
import { ${view.codeName}ModalService } from './${viewname}-modalservice';
<#list modalviews as modalview>
import { ${modalview.codeName}Module } from '../../../pages/${ngfilename('${modalview.getPSAppModule().codeName}')}/${ngfilename('${modalview.codeName}')}/${ngfilename('${modalview.codeName}')}.module';
</#list>
<#if view.getControl('DRTAB')??>
<#assign drtab = view.getControl('DRTAB')/>
<#if drtab.getFormPSAppView()??>
<#assign editview9 = drtab.getFormPSAppView()/>
import { ${editview9.codeName}Module } from '../../../pages/${ngfilename('${editview9.getPSAppModule().codeName}')}/${ngfilename('${editview9.codeName}')}/${ngfilename('${editview9.codeName}')}.module';
</#if>
<#list drtab.getPSDEDRCtrlItems() as item>
<#if item.getPSAppView()??>
<#assign drview = item.getPSAppView()/>
import { ${drview.codeName}Module } from '../../../pages/${ngfilename('${drview.getPSAppModule().codeName}')}/${ngfilename('${drview.codeName}')}/${ngfilename('${drview.codeName}')}.module';
</#if>
</#list>
</#if>
@NgModule({
imports: [
CommonModule,
SharedModule,
IBizComponentsModule,
<#list modalviews as modalview>
${modalview.codeName}Module,
</#list>
<#if view.getControl('DRTAB')??>
<#assign drtab = view.getControl('DRTAB')/>
<#if drtab.getFormPSAppView()??>
<#assign editview9 = drtab.getFormPSAppView()/>
${editview9.codeName}Module,
</#if>
<#list drtab.getPSDEDRCtrlItems() as item>
<#if item.getPSAppView()??>
<#assign drview = item.getPSAppView()/>
${drview.codeName}Module,
</#if>
</#list>
</#if>
],
exports: [
${view.codeName}Component
],
declarations: [
${view.codeName}Component,
],
entryComponents: [
${view.codeName}Component,
],
providers: [
${view.codeName}ModalService
]
})
export class ${view.codeName}Module { }
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEGRIDVIEW2
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizGridView9Controller' />
<#ibizinclude>../../@MACRO/VIEW_GRID_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
:host ::ng-deep .ant-card {
margin-bottom: 0px !important;
}
:host ::ng-deep .ant-card-body {
padding: 0;
}
:host .ibiz-tool-bar {
position: static !important;
top: 0px !important;
right: 0px !important;
margin-bottom: 10px !important;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false">
<div nz-row [nzGutter]="24" >
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#-- 是否有工具栏 -->
<#if toolbar??>
<div class='pull-left'>
${toolbar.code}
</div>
</#if>
</nz-card>
</div>
</div>
<#if grid??>
${grid.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEGRIDVIEW9
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.ibiz-pickup-view-bottom {
margin-bottom: 0px !important;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
<app-${ngfilename('${viewitem.getPSAppDEView().codeName}')} [viewParam]="viewParam" [modalViewParam]="modalViewParam" [modalZIndex]="modalZIndex" [currentValue]="$currentValue" [multiselect]="false" (selectChange)="selectChange($event)" (dataActivated)="DBLClickSelectChange($event)"></app-${ngfilename('${viewitem.getPSAppDEView().codeName}')}>
</#list>
<div class="mb-md text-right ibiz-pickup-view-bottom">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" [ngClass]="{'disabled': $selection.length != 1}" class="ml-sm" (click)="onClickOkButton()">确定</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton('onCancel')">取消</button>
</ng-container>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { IBizComponentsModule } from 'app/ibizsys/components/ibiz-components.module';
import { ${view.codeName}Component } from './${viewname}';
import { ${view.codeName}ModalService } from './${viewname}-modalservice';
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
import { ${viewitem.getPSAppDEView().codeName}Module } from 'app/pages/${ngfilename('${viewitem.getPSAppDEView().getPSAppModule().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}.module';
import { ${viewitem.getPSAppDEView().codeName}Component } from 'app/pages/${ngfilename('${viewitem.getPSAppDEView().getPSAppModule().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}/${ngfilename('${viewitem.getPSAppDEView().codeName}')}';
</#list>
@NgModule({
imports: [
CommonModule,
SharedModule,
IBizComponentsModule,
<#assign viewitems=view.getPSControls("pickupviewpanel",10)>
<#list viewitems as viewitem>
${viewitem.getPSAppDEView().codeName}Module,
</#list>
],
exports: [
${view.codeName}Component
],
declarations: [
${view.codeName}Component,
],
entryComponents: [
${view.codeName}Component,
],
providers: [
${view.codeName}ModalService,
]
})
export class ${view.codeName}Module {}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDETREEPICKUPVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupTreeViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<div nz-row [nzGutter]="24">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<#if tree??>
${tree.code}
</#if>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/COMPONENT_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
}
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEPICKUPTREEVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPickupGridViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/PICKUPMDVIEWCONTROLLER_BASE.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.ibiz-data-picker-grid-view {
margin-bottom: 0px !important;
}
.ibiz-data-picker-grid-view .ant-card-body {
padding: 5px 0px 0px 0px;
}
.ibiz-data-picker-grid-view ::ng-deep .ant-card-body {
padding: 5px 0px 0px 0px;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<nz-card [nzBordered]="false" class="ibiz-data-picker-grid-view" [ngClass]="{'ibiz-modal-view': isModal()}">
<#if searchform??>
${searchform.code}
</#if>
<#if grid??>
${grid.code}
</#if>
</nz-card>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/COMPONENT_VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEPICKUPGRIDVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizOptionViewController'/>
<#ibizinclude>../../@MACRO/VIEW_EDIT_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<div nz-row [nzGutter]="16" [ngClass]="{'ibiz-modal-view': isModal()}">
<div nz-col [nzMd]="24">
<nz-card [nzBordered]="false">
<ng-template #title>
<#if view.isShowCaptionBar() && view.getCaption()?? && view.getCaption() != ""><span>${view.getCaption()}:</span></#if>
<span>{{$dataInfo}}&nbsp;&nbsp;</span>
</ng-template>
<#if form??>
${form.code}
</#if>
<div class="mb-md text-right">
<ng-container>
<button nz-button [nzType]="'primary'" [nzSize]="'large'" class="ml-sm" (click)="onClickOkButton()">确定</button>
</ng-container>
<ng-container>
<button nz-button [nzType]="'default'" [nzSize]="'large'" class="ml-sm" (click)="onClickCancelButton()">取消</button>
</ng-container>
</div>
</nz-card>
</div>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEOPTVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizEntityIndexViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_ACTION.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
.index-view-drbar {
background-color: white;
padding: 20px;
}
.index-view-drbar li {
height: 36px;
margin: 5px 0px;
}
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<div style="position: fixed;top: 0;bottom: 0;margin-top: 64px;
width: 240px;margin-left: -23px;background-color: #fff;
border-right: 1px solid #efe3e5;">
<div style="display:none;">
<#if form??>
${form.code}
</#if>
</div>
<#if drbar??>
${drbar.code}
</#if>
</div>
<div style="margin-left: 219px;">
<router-outlet></router-outlet>
</div>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/EXPVIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPDEINDEXVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizPortalViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#if view.getAllPSControls()??>
public regPortalCtrls(): void {
<#list view.getAllPSControls()?reverse as ctrl>
<#if pfstyle.hasPSPFCtrlTempls(ctrl,'SERVICE_TS')>
this.regPortalCtrl('${ctrl.name}', this.${ctrl.name});
</#if>
</#list>
}
</#if>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CAPTION.ftl</#ibizinclude>
<#if dashboard??>
${dashboard.code}
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#if imports??>
<#list imports as import>
${import}
</#list>
</#if>
<#if imports??>
<#list ctrls as ctrl>
${ctrl.code}
</#list>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_ROUTER.ftl</#ibizinclude>
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPPORTALVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#assign viewContorllerName = 'IBizIndexViewController'/>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_HEADER.ftl</#ibizinclude>
<#if view.getDefPSAppView()??>
<#assign defView = view.getDefPSAppView()>
/**
* 默认加载视图
*
* @type {string}
* @memberof ${view.codeName}ComponentBase
*/
public defaultView: string = '${defView.getPSAppModule().getCodeName()?lower_case}_${defView.getCodeName()?lower_case}';
</#if>
/**
* 设置主菜单状态
*
* @param {string} [align]
* @memberof ${view.codeName}ComponentBase
*/
public setMianMenuState(align?: string): void {
super.setMianMenuState('${view.getMainMenuAlign()}');
}
<#if view.getPortalPSSysCounterRef()?? && view.getPortalPSSysCounterRef().getPSSysCounter()??>
/**
* 获取默认计数器名称
*
* @returns {string}
* @memberof ${view.codeName}ComponentBase
*/
public getDefaultUICounterName(): string {
return '${view.getPortalPSSysCounterRef().getPSSysCounter().getCodeName()}';
}
</#if>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER_BASE_BOTTOM.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_CONTROLLER.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#-- 菜单是否显示 -->
<#if view.getMainMenuAlign()?? && view.getMainMenuAlign() == 'NONE'>
:host {
.index_fullscreen {
margin: 148px 24px 24px 24px;
.index_header {
height: 60px;
display: block;
background-color: #fff;
padding: 16px 24px;
margin: 0 -24px 0 -24px;
border-bottom: 1px solid #d9d9d9;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position: fixed;
top: 65px;
left: 0px;
right: 0;
margin: 0;
z-index: 10;
}
.index_fullscreen_content {
margin-top: 84px;
}
}
}
<#else>
:host {
.full_content {
margin: 0px 24px 24px 24px;
}
nz-breadcrumb {
font-size: 15px;
color: rgba(0, 0, 0, 0.85);
font-weight: 500;
a, a:link, a:active, a:visited, a:hover{
text-decoration:none
};
}
}
</#if>
<#ibizinclude>../../@MACRO/VIEWCSS.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#-- 菜单是否显示 -->
<#if view.getMainMenuAlign()?? && view.getMainMenuAlign() == 'NONE'>
<div class="index_fullscreen">
<div class="index_header">
<nz-breadcrumb>
<ng-container *ngFor="let data of $ibizAppService.$activatedRouteDatas">
<ng-container *ngIf="data.showcaption">
<nz-breadcrumb-item>
<a (click)="navigationLink(data)" rouzterLinkActive="active" [attr.title]="data.fullcaption">{{data.caption}}</a>
</nz-breadcrumb-item>
</ng-container>
</ng-container>
</nz-breadcrumb>
</div>
<div class="index_fullscreen_content">
<router-outlet></router-outlet>
</div>
</div>
<#else>
<ng-container *ngIf="!$ibizAppService.getFullScreen()">
<app-sidebar class="aside"></app-sidebar>
</ng-container>
<section class="content" [ngClass]="{'ibiz-fullscreen': $ibizAppService.getFullScreen()}">
<!-- <reuse-tab></reuse-tab> -->
<div class="ibiz-two-level-navigation">
<nz-breadcrumb>
<ng-container *ngFor="let data of $ibizAppService.$activatedRouteDatas">
<ng-container *ngIf="data.showcaption">
<nz-breadcrumb-item>
<a (click)="navigationLink(data)" rouzterLinkActive="active" [attr.title]="data.fullcaption">{{data.caption}}</a>
</nz-breadcrumb-item>
</ng-container>
</ng-container>
</nz-breadcrumb>
</div>
<div class="ibiz-navigation-space"></div>
<div class="ibiz-navigation-contant">
<router-outlet></router-outlet>
</div>
</section>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE_SERVICE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_MODULE.ftl</#ibizinclude>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewServiceCode
</#ibiztemplate>
<#if imports??>
<#list imports as import>
${import}
</#list>
</#if>
<#if imports??>
<#list ctrls as ctrl>
${ctrl.code}
</#list>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularViewControllerCode
</#ibiztemplate>
<#ibizinclude>../../@MACRO/VIEW_SHELL_COMPONENT.ftl</#ibizinclude>
const ${view.codeName}shellRoutes = [
{
path: '',
component: ${view.codeName}shellComponent,
children: [
{
path: '',
component: ${view.codeName}Component,
children:[
<#list ngstates as ngstate>
<#if ngstate.name?length gt 0 && ngstate.getPSAppView()??>
{
path: '${ngstate.name}',
loadChildren: '../../../pages/${ngfilename('${ngstate.getPSAppView().getPSAppModule().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}/${ngfilename('${ngstate.getPSAppView().codeName}')}shell.module#${ngstate.getPSAppView().codeName}shellModule',
data: { fullcaption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', caption: '<#if ngstate.getPSAppView().getCaption() != ''>${ngstate.getPSAppView().getCaption()}<#else>未命名</#if>', view: '${ngstate.getPSAppView().getPSAppModule().codeName?lower_case}_${ngstate.getPSAppView().codeName?lower_case}', routerlink: '${ngstate.name}', showcaption: ${ngstate.getPSAppView().isShowCaptionBar()?c} }
},
</#if>
</#list>
]
},
]
},
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
<#ibizinclude>../../@MACRO/VIEW_SHELL_MODULE.ftl</#ibizinclude>
\ No newline at end of file
VIEWTYPE=APPINDEXVIEW
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
// 是否本地开发或者uac统一认证登陆
export const IBizEnvironment = {
LocalDeve: false, // 是否本地开发
UacAuth: false, // 是否启用UAC认证
BaseUrl: '${app.getPKGCodeName()}', // 应用基础路径
RemoteLogin: '/api/login', // 远程登录地址,本地开发调试使用
isEditableHeaderMenu: false, // 是否可编辑头部菜单栏
HeaderMenuDataUrl: '', // 头部菜单栏请求数据路径
formItemPrivTag: <#if app.getPSApplicationUI().isOutputFormItemUpdatePrivTag()??>${app.getPSApplicationUI().isOutputFormItemUpdatePrivTag()?c}<#else>flase</#if>, // 表单项权限标记(true or false)
formItemNoPrivDisplayMode: ${app.getPSApplicationUI().getFormItemNoPrivDisplayMode()}, // 表单项无权限显示模式(1: 显示空、*或内容, 2: 隐藏)
<#if sys.getPSSFId() == "DOTNETCORE">
LoginRedirect: '/ibizutil/login.html', // session失效后后台登陆重定向 .NET 版
AppLogin: '/ibizutil/login.do', // 登陆地址,session、权限等管理 .NET 版
Logout: '/ibizutil/logout', // 退出登录,注销session .NET 版
InitSystemEnv: '/ibizutil/initsystemenv.do', // 初始化系统,超级管理员账号等 .NET 版
InstallRTData: '/ibizutil/installrtdata.do', // 安装系统环境数据 .NET 版
PDFPrint: '/ibizutil/print.pdf', // PDF文件打印 .NET 版
PDFReport: '/ibizutil/report.pdf', // PDF报表文件 .NET 版
ExportFile: '/ibizutil/exportfile', // 文件导出 .NET 版
ExportFile2: '/ibizutil/exportfile2', // 文件导出 .NET 版
ExportFile3: '/ibizutil/exportfile3', // 文件导出 .NET 版
UploadFile: '/ibizutil/uploadfile.do', // 文件上传 .NET 版
ExportExcel: '/ibizutil/exportexcel', // 导出实体数据导入模板 .NET 版
UploadDEData: '/ibizutil/uploaddedata.do', // 文件上传 .NET 版
<#elseif sys.getPSSFId() == "J2EE6">
LoginRedirect: '/${app.getPKGCodeName()?lower_case}/ibizutil/login.html', // session失效后后台登陆重定向 J2EE6 版
AppLogin: '/${app.getPKGCodeName()?lower_case}/ibizutil/login.do', // 登陆地址,session、权限等管理 J2EE6 版
Logout: '/${app.getPKGCodeName()?lower_case}/ibizutil/logout', // 退出登录,注销session J2EE6 版
InitSystemEnv: '/${app.getPKGCodeName()?lower_case}/ibizutil/initsystemenv.do', // 初始化系统,超级管理员账号等 J2EE6 版
InstallRTData: '/${app.getPKGCodeName()?lower_case}/ibizutil/installrtdata.do', // 安装系统环境数据 J2EE6 版
PDFPrint: '/${app.getPKGCodeName()?lower_case}/ibizutil/print.pdf', // PDF文件打印 J2EE6 版
PDFReport: '/${app.getPKGCodeName()?lower_case}/ibizutil/report.pdf', // PDF报表文件 J2EE6 版
ExportFile: '/${app.getPKGCodeName()?lower_case}/ibizutil/exportfile', // 文件导出 J2EE6 版
ExportFile2: '/${app.getPKGCodeName()?lower_case}/ibizutil/exportfile2', // 文件导出 J2EE6 版
ExportFile3: '/${app.getPKGCodeName()?lower_case}/ibizutil/exportfile3', // 文件导出 J2EE6 版
UploadFile: '/${app.getPKGCodeName()?lower_case}/ibizutil/uploadfile.do', // 文件上传 J2EE6 版
ExportExcel: '/${app.getPKGCodeName()?lower_case}/ibizutil/exportexcel', // 导出实体数据导入模板 J2EE6 版
UploadDEData: '/${app.getPKGCodeName()?lower_case}/ibizutil/uploaddedata.do', // 文件上传 J2EE6 版
<#if sys.hasPSWFEngineType("ACTIVITI")>WfActivitiTraceChart: '/${app.getAppFolder()?lower_case}/ibizutil/wfactivititracechart.do', // Activiti工作流图片 J2EE6 版</#if>
</#if>
};
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<title>${app.getName()}</title>
<base href="./">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<style type="text/css">.preloader{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden;background:#49a9ee;z-index:9999;transition:opacity .65s}.preloader-hidden-add{opacity:1;display:block}.preloader-hidden-add-active{opacity:0}.preloader-hidden{display:none}.cs-loader{position:absolute;top:0;left:0;height:100%;width:100%}.cs-loader-inner{transform:translateY(-50%);top:50%;position:absolute;width:100%;color:#fff;text-align:center}.cs-loader-inner label{font-size:20px;opacity:0;display:inline-block}@keyframes lol{0%{opacity:0;transform:translateX(-300px)}33%{opacity:1;transform:translateX(0)}66%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(300px)}}.cs-loader-inner label:nth-child(6){animation:lol 3s infinite ease-in-out}.cs-loader-inner label:nth-child(5){animation:lol 3s .1s infinite ease-in-out}.cs-loader-inner label:nth-child(4){animation:lol 3s .2s infinite ease-in-out}.cs-loader-inner label:nth-child(3){animation:lol 3s .3s infinite ease-in-out}.cs-loader-inner label:nth-child(2){animation:lol 3s .4s infinite ease-in-out}.cs-loader-inner label:nth-child(1){animation:lol 3s .5s infinite ease-in-out}</style>
</head>
<body>
<app-root></app-root>
<div class="preloader">
<div class="cs-loader">
<div class="cs-loader-inner">
<label></label>
<label></label>
<label></label>
<label></label>
<label></label>
<label></label>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
import { NgModule } from '@angular/core';
import { SharedModule } from '@shared/shared.module';
import { Routes, RouterModule } from '@angular/router';
import { environment } from '@env/environment';
// layout
import { LayoutDefaultComponent } from 'app/layout/default/default.component';
import { LayoutFullScreenComponent } from 'app/layout/fullscreen/fullscreen.component';
import { LayoutPassportComponent } from 'app/layout/passport/passport.component';
// dashboard pages
import { UserLoginComponent } from 'app/core/passport/login/login.component';
import { UserRegisterComponent } from 'app/core/passport/register/register.component';
import { AuthGuard } from '@core/auth-guard.service';
const routes: Routes = [
{
path: '',
component: LayoutDefaultComponent,
children: [
<#list app.getAllPSAppViews() as view>
<#if view.getViewType() == 'APPINDEXVIEW'>
<#if view.isDefaultPage()>
{
path: '',
redirectTo: '${view.getCodeName()?lower_case}',
pathMatch: 'full'
},
{
path: '${view.getCodeName()?lower_case}',
canActivate: [AuthGuard],
loadChildren: 'app/pages/${ngfilename('${view.getPSAppModule().codeName}')}/${ngfilename('${view.codeName}')}/${ngfilename('${view.codeName}')}shell.module#${view.codeName}shellModule',
data: { backendurl: '/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do', fullcaption: '<#if view.getCaption() != ''>${view.getCaption()}<#else>未命名</#if>', caption: '<#if view.getCaption() != ''>${view.getCaption()}<#else>未命名</#if>', view: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}', routerlink: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}', showcaption: false }
},
</#if>
</#if>
<#if view.getViewType() == 'APPPORTALVIEW'>
<#if view.isDefaultPage()>
{
path: '${view.getCodeName()?lower_case}',
canActivate: [AuthGuard],
loadChildren: 'app/pages/${ngfilename('${view.getPSAppModule().codeName}')}/${ngfilename('${view.codeName}')}/${ngfilename('${view.codeName}')}shell.module#${view.codeName}shellModule',
data: { backendurl: '/${app.getAppFolder()}/${view.getPSAppModule().codeName}/${view.codeName}.do', fullcaption: '<#if view.getCaption() != ''>${view.getCaption()}<#else>未命名</#if>', caption: '<#if view.getCaption() != ''>${view.getCaption()}<#else>未命名</#if>', view: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}', routerlink: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}', showcaption: true }
},
</#if>
</#if>
</#list>
]
},
// 全屏布局
{
path: 'data-v',
component: LayoutFullScreenComponent,
children: [
<#if app.getAllPSAppViews()??>
<#list app.getAllPSAppViews() as funcview>
<#if funcview.getOpenMode()?? && (funcview.getOpenMode() == 'POPUPAPP')>
{
path: '${funcview.getPSAppModule().codeName?lower_case}_${funcview.codeName?lower_case}',
canActivate: [AuthGuard],
loadChildren: 'app/pages/${ngfilename('${funcview.getPSAppModule().codeName}')}/${ngfilename('${funcview.codeName}')}/${ngfilename('${funcview.codeName}')}shell.module#${funcview.codeName}shellModule',
data: { backendurl: '/${app.getAppFolder()}/${funcview.getPSAppModule().codeName}/${funcview.codeName}.do', fullcaption: '<#if funcview.getCaption() != ''>${funcview.getCaption()}<#else>未命名</#if>', caption: '<#if funcview.getCaption() != ''>${funcview.getCaption()}<#else>未命名</#if>', view: '${funcview.getPSAppModule().codeName?lower_case}_${funcview.codeName?lower_case}', routerlink: '${funcview.getPSAppModule().codeName?lower_case}_${funcview.codeName?lower_case}', showcaption: true }
},
</#if>
</#list>
</#if>
]
},
// passport
{
path: 'passport',
component: LayoutPassportComponent,
children: [
{ path: 'login', component: UserLoginComponent },
{ path: 'register', component: UserRegisterComponent },
// { path: 'register-result', component: UserRegisterResultComponent }
]
},
// 单页不包裹Layout
// { path: 'callback/:type', component: CallbackComponent },
// { path: '403', component: Exception403Component },
// { path: '404', component: Exception404Component },
// { path: '500', component: Exception500Component },
{ path: '**', redirectTo: '', pathMatch: 'full' }
];
@NgModule({
imports: [ SharedModule, RouterModule.forRoot(routes, { useHash: environment.useHash }) ],
declarations: [
UserLoginComponent,
UserRegisterComponent
]
})
export class RouteRoutingModule {}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
import { Injectable, Inject } from '@angular/core';
import { SettingsService, TitleService } from '@delon/theme';
import { I18NService } from '../i18n/i18n.service';
import { TranslateService } from '@ngx-translate/core';
import { ITokenService, DA_SERVICE_TOKEN } from '@delon/auth';
/**
* 用于应用启动时
* 一般用来获取应用所需要的基础数据等
*/
@Injectable()
export class StartupService {
constructor(
private translate: TranslateService,
private i18n: I18NService,
private settingService: SettingsService,
private titleService: TitleService,
@Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService
) { }
load(): Promise<any> {
// only works with promises
// https://github.com/angular/angular/issues/15088
return new Promise((resolve, reject) => {
// 应用信息:包括站点名、描述、年份
this.settingService.setApp({ name: '${app.getName()}', description: '${app.getMemo()}' });
// 设置页面标题的后缀
this.titleService.suffix = '${app.getName()}';
// 用户信息:包括姓名、头像、邮箱地址
// 用户信息:包括姓名、头像、邮箱地址
const userInfo: any = Object.assign({
token: '',
name: '',
email: '',
id: '',
time: +new Date
}, this.tokenService.get());
this.settingService.setUser(userInfo);
resolve(null);
});
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
#!/bin/bash
mkdir -p ../app_${app.getPKGCodeName()}/
if [ -d ../app_${app.getPKGCodeName()}/build/ ]
then
rm -rf ../app_${app.getPKGCodeName()}/build
fi
mkdir -p ../app_${app.getPKGCodeName()}/build/
\cp -urf ../app_${app.getPKGCodeName()}_pub/. ../app_${app.getPKGCodeName()}/
\cp -rf ../app_${app.getPKGCodeName()}_usr/. ../app_${app.getPKGCodeName()}/
cd ../app_${app.getPKGCodeName()}
rm -rf dist
npm i >../app_${app.getPKGCodeName()}_pub/run.log
npm run build >>../app_${app.getPKGCodeName()}_pub/run.log
cat ../app_${app.getPKGCodeName()}_pub/run.log
flag=`grep -e "WARNING in Circular dependency detected" ../app_${app.getPKGCodeName()}_pub/run.log`"null"
if [ -d ../app_${app.getPKGCodeName()}/dist ] && [ "$flag" == "null" ]
then
\cp -rf ../app_${app.getPKGCodeName()}/dist/* ../app_${app.getPKGCodeName()}/build/
echo "BUILD SUCCESS"
echo "BUILD SUCCESS"
echo "BUILD SUCCESS"
echo "BUILD SUCCESS"
else
echo "前端项目编译出错"
fi
rm -f ../app_${app.getPKGCodeName()}_pub/run.log
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<ApplicationIcon></ApplicationIcon>
<Win32Resource />
<OutputType>Library</OutputType>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.5" />
</ItemGroup>
</Project>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
:: 用于合成本地开发运行项目
xcopy ..\app_${app.getPKGCodeName()}_pub\*.* ..\${app.getPKGCodeName()}_Angular_App\ /E/D/Y
xcopy ..\app_${app.getPKGCodeName()}_usr\*.* ..\${app.getPKGCodeName()}_Angular_App\ /E/Y
pause
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
<#if !pub.isUseWorkshopServer() >
<#comment>脚本执行日志路径。</#comment>
<#assign outputlog= " > " + codefolder+"\\"+sys.getPSDevCenterDomain()+"\\"+sys.getPubSystemId()+"\\"+sys.getVCName()+"\\"+"app_"+app.getPKGCodeName()+"\\run.log">
<#assign outputlog2= " > " + codefolder+"\\"+sys.getPSDevCenterDomain()+"\\"+sys.getPubSystemId()+"\\"+sys.getVCName()+"\\"+"app_"+app.getPKGCodeName()+"\\">
<#assign workshop="workshop">
<#if sys.getPSSVNInstRepo()?? && sys.getPSSVNInstRepo().getSVNType() =="GIT">
<#assign workshop="gitshop">
</#if>
<#assign ibizsys_base_file = '${app.getPFType()}'>
<#if pfstyle.getVersionString()?? && pfstyle.getVersionString() != ''>
<#assign ibizsys_base_file += '-${pfstyle.getVersionString()}'>
</#if>
<#comment>关闭回显并开启变量延迟。</#comment>
@echo off&setlocal ENABLEDELAYEDEXPANSION
<#comment>
rem ---------------------------------------------------------------------------
rem publisher 前端应用发布器PSJQAppCreateAppBatPublisherImpl
rem app 前端应用
rem sys 后台服务系统
rem pf 前端应用技术体系
rem pfstyle 前端应用样式
rem apptempl 应用模板
rem toolfolder 发布工具目录路径
rem codefolder 发布代码根目录路径
rem ---------------------------------------------------------------------------
</#comment>
<#comment> 建立前端应用相关工作空间目录。</#comment>
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\build
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src\src
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr
mkdir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr\src
<#comment> 为发布代码添加归档标记,便于后续文件的判别处理,如增量更新、文件增量修改的版本库提交等。</#comment>
attrib +A ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB\*.* /S
attrib +A ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP\*.* /S
attrib +A ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB\*.* /S
<#comment> 拷贝自动发布代码到合成项目。</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}\src\src /I/E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}\src\src /I/E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}\src /I/E/Y ${outputlog}
<#comment>
rem 实现合成项目中文件(大小写差异)改名功能。实现原理:需要该名称的文件会追加.rename后缀,第一个for查询改名的文件并删除,第二个for查处对应的文件去掉.rename后缀。
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\*.rename /b /s') do set info=%%i&del !info:~0,-7! /F/Q
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\*.rename /b /s') do set info=%%i&move /Y !info! !info:~0,-7!
</#comment>
<#if publisher.getContext().isRebuildMode()>
<#comment> 重构模式</#comment>
<#comment> pub项目取消归档标记</#comment>
attrib -A ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src\*.* /S
<#comment> 完全拷贝前端初始化代码相关文件。</#comment>
xcopy ${toolfolder}\APP\${ibizsys_base_file}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src /E/Y ${outputlog}
<#if sys.getPSSVNInstRepo()??>
xcopy ${toolfolder}\APP\${ibizsys_base_file}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub /E/Y ${outputlog}
</#if>
<#comment> 拷贝自动发布代码到pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\PRJ\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub /E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src /E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src /E/Y/D ${outputlog}
<#comment> 拷贝用户自定义文件到pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src /I/E/Y ${outputlog}
<#comment> 实现pub项目文件改名功能。实现原理同上。</#comment>
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\*.rename /b /s') do set info=%%i&del !info:~0,-7! /F/Q
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\*.rename /b /s') do set info=%%i&move /Y !info! !info:~0,-7!
<#comment> 将合成开发运行项目脚本拷贝至pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\TOOLS\AngularMerge.bat ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\ /E/Y/D ${outputlog}
<#if publisher.context.isEnableVC() && (sys.getPSSVNInstRepo().getSVNType()=="GIT")>
<#comment> 指定了版本库,将pub和usr代码与版本库同步。</#comment>
"${toolfolder}\jdk1.8\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.GitHelper ${sys.getPSSVNInstRepo().getPSGitUser().getResCfgFilePath()} ${sys.getPSSVNInstRepo().getGitPath()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub APP_PUB
"${toolfolder}\jdk1.8\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.GitHelper ${sys.getPSSVNInstRepo().getPSGitUser().getResCfgFilePath()} ${sys.getPSSVNInstRepo().getGitPath()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr APP_USR <#if sys.getSourcePSSystem()??><#if sys.getSourcePSSystem().getPSSVNInstRepo()??>${sys.getSourcePSSystem().getPSSVNInstRepo().getGitPath()}</#if></#if>
<#elseif publisher.context.isEnableVC() && (sys.getPSSVNInstRepo().getSVNType()=="SVN")>
"${toolfolder}\java\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.SvnCmd3 ${sys.getReadOnlyPSSVNInstRepo().getConnStr()}/${sys.getPSDevSlnCodeName()}/${sys.getTrunkSysName()}/${sys.getVCName()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub APP_PUB <#if publisher.context.getRebuildModeEx()!=2>REBUILD</#if>
"${toolfolder}\java\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.SvnCmd3 ${sys.getPSSVNInstRepo().getConnStr()}/${sys.getPSDevSlnCodeName()}/${sys.getTrunkSysName()}/${sys.getVCName()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr APP_USR
</#if>
<#comment> 拷贝usr代码到合成项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src /I/E/Y ${outputlog}
<#else>
<#comment> 标准发布</#comment>
<#comment> 将合成开发运行项目脚本拷贝至pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\TOOLS\AngularMerge.bat ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\ /E/Y/D ${outputlog}
<#comment> 增量拷贝初始文件</#comment>
xcopy ${toolfolder}\APP\${ibizsys_base_file}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src /E/Y/D ${outputlog}
<#if sys.getPSSVNInstRepo()??>
xcopy ${toolfolder}\APP\${ibizsys_base_file}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub /E/Y/D ${outputlog}
</#if>
<#comment> 拷贝自动发布代码到pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\PRJ\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub /E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src /E/Y/D ${outputlog}
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\src /E/Y/D ${outputlog}
<#comment> 拷贝用户自定义文件到pub项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub /I/E/Y ${outputlog}
<#comment> 实现pub项目文件改名功能。实现原理同上。</#comment>
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\*.rename /b /s') do set info=%%i&del !info:~0,-7! /F/Q
for /f "delims=" %%i in ('dir ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub\*.rename /b /s') do set info=%%i&move /Y !info! !info:~0,-7!
<#comment> 如果指定了版本库,将pub和usr代码与版本库同步。</#comment>
<#if publisher.context.isEnableVC() && (sys.getPSSVNInstRepo().getSVNType()=="GIT")>
"${toolfolder}\jdk1.8\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.GitHelper ${sys.getPSSVNInstRepo().getPSGitUser().getResCfgFilePath()} ${sys.getPSSVNInstRepo().getGitPath()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub APP_PUB
"${toolfolder}\jdk1.8\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.GitHelper ${sys.getPSSVNInstRepo().getPSGitUser().getResCfgFilePath()} ${sys.getPSSVNInstRepo().getGitPath()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr APP_USR <#if sys.getSourcePSSystem()??><#if sys.getSourcePSSystem().getPSSVNInstRepo()??>${sys.getSourcePSSystem().getPSSVNInstRepo().getGitPath()}</#if></#if>
<#elseif publisher.context.isEnableVC() && (sys.getPSSVNInstRepo().getSVNType()=="SVN")>
"${toolfolder}\java\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.SvnCmd3 ${sys.getReadOnlyPSSVNInstRepo().getConnStr()}/${sys.getPSDevSlnCodeName()}/${sys.getTrunkSysName()}/${sys.getVCName()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_pub APP_PUB
"${toolfolder}\java\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.SvnCmd3 ${sys.getPSSVNInstRepo().getConnStr()}/${sys.getPSDevSlnCodeName()}/${sys.getTrunkSysName()}/${sys.getVCName()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr APP_USR
</#if>
<#comment> 拷贝usr代码到合成项目</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}_usr\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src /E/Y ${outputlog}
</#if>
<#comment> 删除合成项目中.rename后缀的文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\*.rename /S/Q/F ${outputlog}
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\*.rename /S/Q/F ${outputlog}
<#if !syspub.isPubCodeOnly()>
<#comment> 拷贝ionic插件</#comment>
rem ${toolfolder}\7-Zip\7z.exe x ${toolfolder}\APP\ANGULAR-5.0.0.1\plugins\ANGULARPlugin.zip -o${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src\ -aoa
<#comment> 编译合成项目</#comment>
chdir /D ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src\
call ${toolfolder}\node\npm i ${outputlog2}run_npm_i.log
call ${toolfolder}\node\npm run build --prod --minifyjs --minifycss --optimizejs ${outputlog2}run_platform_build.log
<#comment> 判断angular是否编译成功</#comment>
findstr /i /c:"WARNING in Circular dependency detected" "${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\run_platform_build.log" >nul 2>nul && echo ANGULAR_BUILD_ERROR
if exist ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src\dist (echo ANGULAR_BUILD SUCCESS) else (echo ANGULAR_BUILD_ERROR)
ping -n 3 127.0.0.1>nul
<#comment> 拷贝合成项目编译结果到构建目录</#comment>
xcopy ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\src\dist\*.* ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${workshop}\app_${app.getPKGCodeName()}\build /E/Y ${outputlog2}run_dist.log
</#if>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCreateAppBat
TARGET=PSSYSAPP
</#ibiztemplate>
<#if pub.isUseWorkshopServer() >
<#comment>脚本执行日志路径。</#comment>
<#assign codefolder="/code">
<#assign toolfolder="/toolfolder">
<#assign outputlog= " > " + codefolder+"/"+sys.getPSDevCenterDomain()+"/"+sys.getPubSystemId()+"/remoteshop/"+sys.getVCName()+"/"+"app_"+app.getPKGCodeName()+"/">
<#assign workshop="workshop">
<#if sys.getPSSVNInstRepo()?? && sys.getPSSVNInstRepo().getSVNType() =="GIT">
<#assign workshop="gitshop">
</#if>
<#assign ibizsys_base_file = '${app.getPFType()}'>
<#if pfstyle.getVersionString()?? && (pfstyle.getVersionString()!='')>
<#assign ibizsys_base_file=ibizsys_base_file+'-'+pfstyle.getVersionString() >
</#if>
<#comment>关闭回显并开启变量延迟
# @echo off&setlocal ENABLEDELAYEDEXPANSION
# ---------------------------------------------------------------------------
# publisher 前端应用发布器PSJQAppCreateAppBatPublisherImpl
# app 前端应用
# sys 后台服务系统
# pf 前端应用技术体系
# pfstyle 前端应用样式
# apptempl 应用模板
# toolfolder 发布工具目录路径
# codefolder 发布代码根目录路径
# ---------------------------------------------------------------------------
</#comment>
<#comment> 建立前端应用相关工作空间目录</#comment>
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_usr
mkdir -p ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_usr/src
<#comment>删除重命名文件*.rename</#comment>
find ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/ -name *.rename | xargs --no-run-if-empty rm -f
<#if !publisher.getContext().isRebuildMode()>
<#comment> 标准模式</#comment>
</#if>
<#if publisher.getContext().isRebuildMode()>
<#comment> 重构模式</#comment>
<#if sys.getPSSVNInstRepo()??>
\cp -p -rf ${toolfolder}/APP/${ibizsys_base_file}/APP/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/
</#if>
<#comment> 拷贝自动发布代码到pub项目</#comment>
\cp -p -rf ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/WEB/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
\cp -p -rf ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/APP/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src ${outputlog}run16.log
\cp -p -rf ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/PRJ/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/
<#comment> 拷贝用户自定义文件到pub项目</#comment>
if [ -d ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/USERCODE/APP_PUB ]
then
\cp -p -rf ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/USERCODE/APP_PUB/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
fi
<#comment> 将合成开发运行项目脚本拷贝至pub项目</#comment>
\cp -p -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/TOOLS/AngularMerge.bat ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/
<#comment>删除重命名文件*.rename</#comment>
find ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/ -name *.rename | xargs --no-run-if-empty rm -f
find ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_usr/ -name *.rename | xargs --no-run-if-empty rm -f
<#else>
<#comment> 标准发布</#comment>
<#comment> 增量拷贝初始文件</#comment>
<#if sys.getPSSVNInstRepo()??>
\cp -p -r -u ${toolfolder}/APP/${ibizsys_base_file}/APP/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/
</#if>
<#comment> 拷贝自动发布代码到pub项目</#comment>
\cp -p -r -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/WEB/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
\cp -p -r -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/APP/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
\cp -p -r -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/PRJ/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/ ${outputlog}run36.log
<#comment> 拷贝用户自定义文件到pub项目</#comment>
if [ -d ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/USERCODE/APP_PUB ]
then
\cp -p -r -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/USERCODE/APP_PUB/. ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/src
fi
<#comment> 将合成开发运行项目脚本拷贝至pub项目</#comment>
\cp -p -u ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/app_${app.getPKGCodeName()}/TOOLS/AngularMerge.bat ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/
<#comment>删除重命名文件*.rename</#comment>
find ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/ -name *.rename | xargs --no-run-if-empty rm -f
find ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_usr/ -name *.rename | xargs --no-run-if-empty rm -f
</#if>
<#comment> 如果指定了版本库,将pub和usr代码与版本库同步</#comment>
<#if sys.getPSSVNInstRepo().getSVNType()=="GIT">
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizgit.sh app_${app.getPKGCodeName()}_pub
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizgit.sh app_${app.getPKGCodeName()}_usr
<#elseif sys.getPSSVNInstRepo().getSVNType()=="SVN">
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizsvn.sh app_${app.getPKGCodeName()}_pub pub
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizsvn.sh app_${app.getPKGCodeName()}_usr usr
if [ -d ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_pub/.svn ]
then
echo BUILD SUCCESS
echo BUILD SUCCESS
fi
if [ -d ${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/${workshop}/app_${app.getPKGCodeName()}_usr/.svn ]
then
echo BUILD SUCCESS
echo BUILD SUCCESS
fi
</#if>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCode
TARGET=PSSYSAPP
</#ibiztemplate>
<#if !pub.isUseWorkshopServer() >
<#comment>脚本执行日志路径。</#comment>
<#assign outputlog= " > " + codefolder+"\\"+sys.getPSDevCenterDomain()+"\\"+sys.getPubSystemId()+"\\"+sys.getVCName()+"\\"+"app_"+app.getPKGCodeName()+"\\run.log">
<#if publisher.getContext().isRebuildMode()>
<#comment> 清理发布的jsp文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\WEB /S/Q ${outputlog}
<#comment> 清理发布的js文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\JS\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\JS /S/Q ${outputlog}
<#comment> 清理发布的扩展js文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\JS2\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\JS2 /S/Q ${outputlog}
<#comment> 清理发布的资源文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\APP /S/Q ${outputlog}
<#comment> 清理用户自定义发布文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\${sys.getVCName()}\app_${app.getPKGCodeName()}\USERCODE\APP_PUB /S/Q ${outputlog}
<#comment> 清理合成项目文件</#comment>
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}\src\src\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}\src\src /S/Q ${outputlog}
<#if publisher.getContext().getRebuildModeEx()==2>
<#comment> 完整重构</#comment>
<#if publisher.getContext().isEnableVC()>
<#comment> 删除pub的版本库项目</#comment>
"${toolfolder}\java\bin\java.exe" -cp ${toolfolder}\js\saibz5.jar net.ibizsys.paas.builder.SvnCmd3 ${sys.getReadOnlyPSSVNInstRepo().getConnStr()}/${sys.getPSDevSlnCodeName()}/${sys.getTrunkSysName()}/${sys.getVCName()} ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}_pub REMOVE
</#if>
<#comment> 清理pub项目文件</#comment>
move /Y ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${app.getPKGCodeName()}_pub ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${sys.getPubSystemId()}
del ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${sys.getPubSystemId()}\*.* /S/F/Q ${outputlog}
rd ${codefolder}\${sys.getPSDevCenterDomain()}\${sys.getPubSystemId()}\workshop\app_${sys.getPubSystemId()} /S/Q ${outputlog}
</#if>
</#if>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Angular.PSAngularAppCode
TARGET=PSSYSAPP
</#ibiztemplate>
<#if pub.isUseWorkshopServer() >
#!/bin/bash
<#comment>脚本执行日志路径。</#comment>
<#assign codefolder="/code">
<#assign outputlog= " >" + codefolder+"/"+sys.getPSDevCenterDomain()+"/"+sys.getPubSystemId()+"/remoteshop/"+sys.getVCName()+"/"+"app_"+app.getPKGCodeName()+"/run.log">
<#assign workshop="workshop">
<#if sys.getPSSVNInstRepo()?? && sys.getPSSVNInstRepo().getSVNType() =="GIT">
<#assign workshop="gitshop">
</#if>
<#if publisher.getContext().isRebuildMode()>
<#if sys.getPSSVNInstRepo().getSVNType()=="GIT">
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizgitinit.sh
<#elseif publisher.getContext().isEnableVC() && (sys.getPSSVNInstRepo().getSVNType()=="SVN")>
${codefolder}/${sys.getPSDevCenterDomain()}/${sys.getPubSystemId()}/remoteshop/${sys.getVCName()}/srv_${pub.codeName}/BIN/ibizsvnreset.sh app_${app.getPKGCodeName()}_pub
</#if>
</#if>
</#if>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册