提交 8ee934e3 编写于 作者: JunZai's avatar JunZai

更新@CONTROL/表单/CONTROL.html#DETAIL_DRUIPART.ftl,...

更新@CONTROL/表单/CONTROL.html#DETAIL_DRUIPART.ftl, @CONTROL/表单/CONTROL.html#DETAIL_FORMITEM.ftl, @CONTROL/表单/CONTROL.html#DETAIL_FORMPAGE.ftl, @CONTROL/表单/CONTROL.html#DETAIL_HIDDENFORMITEM.ftl, @CONTROL/表单/CONTROL.html#DETAIL_GROUPPANEL.ftl, @CONTROL/表单/CONTROL.html#DETAIL_IFRAME.ftl, @CONTROL/表单/CONTROL.html#DETAIL_RAWITEM.ftl, @CONTROL/表单/CONTROL.html#DETAIL_TABPAGE.ftl, @CONTROL/表单/CONTROL.html#DETAIL_TABPANEL.ftl, @CONTROL/表单/CONTROL.html.ftl, @CONTROL/表单/CONTROL.less.ftl, @CONTROL/表单/CONTROL.template.ftl, @CONTROL/表单/CONTROL.ts#DETAIL_LOGIC.ftl, @CONTROL/表单/template.properties, @CONTROL/表单/CONTROL.mode.ts.ftl, @CONTROL/表单/CONTROL.module.ts.ftl, @CONTROL/表单/CONTROL.ts.ftl, @CONTROL/表单/CONTROL.ts#DETAIL_MODEL.ftl, @CONTROL/表单/CONTROL.ts#FORM_LOGIC.ftl, @CONTROL/应用菜单/CONTROL.less.ftl, @CONTROL/应用菜单/CONTROL.template.ftl, @CONTROL/应用菜单/template.properties, @CONTROL/应用菜单/CONTROL.html.ftl, @CONTROL/应用菜单/CONTROL.module.ts.ftl, @CONTROL/应用菜单/CONTROL.mode.ts.ftl, @CONTROL/应用菜单/CONTROL.ts.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_DRUIPART.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_FORMITEM.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_FORMPAGE.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_HIDDENFORMITEM.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_GROUPPANEL.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_IFRAME.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_RAWITEM.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_TABPAGE.ftl, @CONTROL/搜索表单/CONTROL.html#DETAIL_TABPANEL.ftl, @CONTROL/搜索表单/CONTROL.less.ftl, @CONTROL/搜索表单/CONTROL.template.ftl, @CONTROL/搜索表单/CONTROL.ts#DETAIL_LOGIC.ftl, @CONTROL/搜索表单/template.properties, @CONTROL/搜索表单/CONTROL.html.ftl, @CONTROL/搜索表单/CONTROL.mode.ts.ftl, @CONTROL/搜索表单/CONTROL.ts.ftl, @CONTROL/搜索表单/CONTROL.ts#FORM_LOGIC.ftl, @CONTROL/搜索表单/CONTROL.module.ts.ftl, @CONTROL/搜索表单/CONTROL.ts#DETAIL_MODEL.ftl, @CONTROL/表格/CONTROL.html.ftl, @CONTROL/表格/CONTROL.less.ftl, @CONTROL/表格/CONTROL.mode.ts.ftl, @CONTROL/表格/CONTROL.module.ts.ftl, @CONTROL/表格/CONTROL.template.ftl, @CONTROL/表格/CONTROL.ts.ftl, @CONTROL/表格/template.properties, @CONTROL/@MACRO/CONTROL/CONTROL_BOTTOM.ts.ftl, @CONTROL/@MACRO/CONTROL/CONTROL_HEADER.ts.ftl, @CONTROL/@MACRO/CONTROL/FORM_LAYOUT.ts.ftl, @CONTROL/@MACRO/CONTROL/URL.ts.ftl, @CONTROL/@MACRO/HTML/DEFAULT.html.ftl, @CONTROL/@MACRO/LESS/DEFAULT.less.ftl, @CONTROL/@MACRO/MODE/MODE_BOTTOM.ts.ftl, @CONTROL/@MACRO/MODE/MODE_HEADER.ts.ftl, @CONTROL/视图布局面板/@MACRO/HTML/DEFAULT.html.ftl, @CONTROL/视图布局面板/@MACRO/HTML/VIEW_CAPTION.html.ftl, @CONTROL/视图布局面板/@MACRO/HTML/VIEW_TOOLBAR.html.ftl, @CONTROL/视图布局面板/@MACRO/LESS/DEFAULT.less.ftl
已删除@CONTROL/123.txt
上级 46c1a7f2
import { Component, OnInit, Input, Output, EventEmitter, ViewContainerRef, ViewChild, OnDestroy, AfterViewInit } from '@angular/core';
import { AppEnvironment } from 'src/environments/AppEnvironment';
import { Subject, Subscription } from 'rxjs';
import { NzNotificationService } from 'ng-zorro-antd/notification';
import { Util } from '@global/util/util';
import { NzModalService } from 'ng-zorro-antd/modal';
import { Router, ActivatedRoute } from '@angular/router';
import { CodeList } from '@global/service/codelist/CodeList';
import { ${srfclassname('${ctrl.name}')}Control } from '@global/service/control/${srfclassname('${ctrl.name}')}Control';
<#if ctrl.getPSControls?? && ctrl.getPSControls()??>
<#list ctrl.getPSControls() as subctrl>
<#if subctrl.getControlType() != 'TOOLBAR' && subctrl.getControlType() != 'CONTEXTMENU'>
<#if subctrl.getPSDataEntity?? && subctrl.getPSDataEntity()??>
import {${srfclassname('${subctrl.name}')}} from '@widgets/${srffilepath2(subctrl.getPSDataEntity().getCodeName())}/${srffilepath2(subctrl.getCodeName())}-${subctrl.getControlType()?lower_case}/${srffilepath2(subctrl.getCodeName())}-${subctrl.getControlType()?lower_case}';
<#else>
import {${srfclassname('${subctrl.name}')}} from '@widgets/app/${srffilepath2(subctrl.getCodeName())}-${subctrl.getControlType()?lower_case}/${srffilepath2(subctrl.getCodeName())}-${subctrl.getControlType()?lower_case}';
</#if>
</#if>
</#list>
</#if>
<#if ctrl.getPSDataEntity()??>
import { DEService } from '@global/service/de/DEService';
import { ${ctrl.getPSDataEntity().getCodeName()}Service } from '@de/${ctrl.getPSDataEntity().getCodeName()}/${ctrl.getPSDataEntity().getCodeName()}Service';
</#if>
import { ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode } from './${srffilepath2(ctrl.codeName)}-${ctrl.getControlType()?lower_case}.mode';
<#if import_block??>${import_block}</#if>
@Component({
selector: 'view_${ctrl.getName()}',
templateUrl: './${srffilepath2(ctrl.codeName)}-${ctrl.getControlType()?lower_case}.html',
styleUrls: ['./${srffilepath2(ctrl.codeName)}-${ctrl.getControlType()?lower_case}.less'],
})
export class ${srfclassname('${ctrl.name}')} extends ${srfclassname('${ctrl.name}')}Control implements OnInit, OnDestroy, AfterViewInit {
<#if ctrl.getPSControls?? && ctrl.getPSControls()??>
<#list ctrl.getPSControls() as childCtrl>
<#if childCtrl.getControlType()??>
<#if childCtrl.getHookEventNames()??>
<#list childCtrl.getHookEventNames() as eventName>
/**
* ${childCtrl.name} 部件 ${eventName?lower_case} 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public ${childCtrl.name}_${eventName?lower_case}($event: any, $event2?: any) {
<#if childCtrl.getPSControlLogics(eventName)??>
<#list childCtrl.getPSControlLogics(eventName) as ctrlLogic>
<#if ctrlLogic.getLogicType?? && ctrlLogic.getLogicType() == "APPVIEWENGINE" && ctrlLogic.getPSAppViewEngine()??>
this.${ctrlLogic.getPSAppViewEngine().getName()}.onCtrlEvent('${childCtrl.name}', '${eventName?lower_case}', $event);
<#else>
<#if ctrlLogic.getEventArg()?? && ctrlLogic.getEventArg()?length gt 0>
if (Object.is($event.tag, '${ctrlLogic.getEventArg()}')) {
this.${ctrlLogic.name}($event, '<#if ctrlLogic.getLogicTag()?length gt 0>${ctrlLogic.getLogicTag()}</#if>', $event2);
}
<#else>
this.${ctrlLogic.name}($event, '<#if ctrlLogic.getLogicTag()?length gt 0>${ctrlLogic.getLogicTag()}</#if>', $event2);
</#if>
</#if>
</#list>
</#if>
}
</#list>
</#if>
</#if>
</#list>
</#if>
<#if ctrl.getPSAppViewLogics?? && ctrl.getPSAppViewLogics()??>
<#list ctrl.getPSAppViewLogics() as logic>
<#if logic.getLogicTrigger() == "CUSTOM" || logic.getLogicTrigger() == "CTRLEVENT">
${P.getLogicCode(logic, "LOGIC.tsx").code}
</#if>
</#list>
</#if>
<#if ctrl.getPSUIActions?? && ctrl.getPSUIActions()??>
<#list ctrl.getPSUIActions() as uiAction>
${P.getLogicCode(uiAction, "LOGIC.tsx").code}
</#list>
</#if>
/**
* 构造方法
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
constructor(
private $ctrlMode: ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode,
private $util: Util, private $modal: NzModalService,
private $router: Router, private $route: ActivatedRoute,
private $notice: NzNotificationService,
private $codelist: CodeList
<#if ctrl.getPSDataEntity()??>,private $deService: ${ctrl.getPSDataEntity().getCodeName()}Service</#if>
<#if constructor_block??>${constructor_block}</#if>
) {
super();
}
/**
* 获取部件模型
*
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public getControlMode() {
return this.$ctrlMode;
}
<#if ctrl.getPSDataEntity()??>
/**
* 获取实体服务对象
*
* @returns
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public getDEService(): DEService{
return this.$deService;
}
</#if>
/**
* 生命周期(页面加载完成)
*
* @memberof Grid
*/
ngAfterViewInit(): void {
<#if viewinit_block??>
${viewinit_block}
</#if>
}
\ No newline at end of file
<#assign layout='TABLE_24COL'><#if item.getPSLayoutPos()??><#if item.getPSLayoutPos().getParentPSLayout()??><#assign layout='${item.getPSLayoutPos().getParentPSLayout().getLayout()}'></#if></#if>
<#assign LayoutPos = item.getPSLayoutPos()>
<#assign tableLayout><#if layout == 'TABLE_24COL' && LayoutPos??><#if LayoutPos.getColXS() != -1>nz-col [nzSm]="{ span: ${LayoutPos.getColXS()}, offset: <#if LayoutPos.getColXSOffset() != -1>${LayoutPos.getColXSOffset()}<#else>0</#if> }"</#if><#if LayoutPos.getColSM() != -1> [nzMd]="{ span: ${LayoutPos.getColSM()}, offset: <#if LayoutPos.getColSMOffset() != -1>${LayoutPos.getColSMOffset()}<#else>0</#if> }"</#if><#if LayoutPos.getColMD() != -1> [nzLg]="{ span: ${LayoutPos.getColMD()}, offset: <#if LayoutPos.getColMDOffset() != -1>${LayoutPos.getColMDOffset()}<#else>0</#if> }"</#if><#if LayoutPos.getColLG() != -1> [nzXl]="{ span: ${LayoutPos.getColLG()}, offset: <#if LayoutPos.getColLGOffset() != -1>${LayoutPos.getColLGOffset()}<#else>0</#if> }"</#if></#if></#assign>
\ No newline at end of file
${app.getPKGCodeName()?lower_case}/${de.getPSSystemModule().codeName?lower_case}/${de.codeName?lower_case}/${ctrl.codeName?lower_case}${srfclassname(ctrl.getControlType())?lower_case}/
\ No newline at end of file
<view_${ctrl.getName()}
[viewState]="viewState"
<#if content??>
${content}
</#if>
name='${ctrl.name}'
<#if ctrl.getHookEventNames()??>
<#list ctrl.getHookEventNames() as eventName>
(${eventName?lower_case}Event)="${ctrl.name}_${eventName?lower_case}($event)"
</#list>
</#if>>
</view_${ctrl.getName()}>
\ No newline at end of file
// this is scss
<#if ctrl.getPSSysCsses?? && ctrl.getPSSysCsses()??>
<#list ctrl.getPSSysCsses() as css>
<#-- <#if css.getDesignCssStyle?? && css.getDesignCssStyle()?? && css.getDesignCssStyle().length gt 0>
.${css.getCssName()} {
${css.getDesignCssStyle()}
}
</#if> -->
<#if css.getCssStyle?? && css.getCssStyle()??>
${css.getCssStyle()}
</#if>
</#list>
</#if>
\ No newline at end of file
import { Injectable } from '@angular/core';
<#if import_block??>${import_block}</#if>
/**
* ${ctrl.getControlType()}部件模型
*
* @export
* @class ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
@Injectable({ providedIn: 'root' })
export class ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode {
/**
* 构造方法
* @memberof ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
constructor(<#if constructor_block??>${constructor_block}</#if>) {
}
<ul nz-menu nzMode="inline" class="app-menu">
<ng-container *ngFor="let item of menus">
<li nz-submenu *ngIf="item.items && item.items.length > 0; else elseBlock">
<span title>
<i *ngIf="item.iconcls != ''" [class]="item.iconcls"></i>
{{ item.text }}
</span>
<ul>
<ng-container *ngFor="let item2 of item.items">
<li nz-submenu *ngIf="item2.items && item2.items.length > 0; else elseBlock2">
<span title>
<i *ngIf="item2.iconcls != ''" [class]="item2.iconcls"></i>
{{ item2.text }}
</span>
<ul>
<ng-container *ngFor="let item3 of item2.items">
<li nz-menu-item (click)="click(item3)">
<i *ngIf="item3.iconcls != ''" [class]="item3.iconcls"></i>
{{ item3.text }}
</li>
</ng-container>
</ul>
</li>
<ng-template #elseBlock2>
<li nz-menu-item (click)="click(item2)">
<i *ngIf="item2.iconcls != ''" [class]="item2.iconcls"></i>
{{ item2.text }}
</li>
</ng-template>
</ng-container>
</ul>
</li>
<ng-template #elseBlock>
<li nz-menu-item (click)="click(item)">
<i *ngIf="item.iconcls != ''" [class]="item.iconcls"></i>
{{ item.text }}
</li>
</ng-template>
</ng-container>
</ul>
\ No newline at end of file
:host{
<#ibizinclude>
../@MACRO/LESS/DEFAULT.less.ftl
</#ibizinclude>
}
.app-menu {
border-right: 0;
.ng-star-inserted {
font-size: 16px;
i {
margin-left: -21px;
}
}
> .ng-star-inserted {
padding-left: 48px !important;
}
}
\ No newline at end of file
<#ibizinclude>
../@MACRO/MODE/MODE_HEADER.ts.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/MODE/MODE_BOTTOM.ts.ftl
</#ibizinclude>
import { NgZorroAntdModule } from 'ng-zorro-antd';
import { RouterModule } from '@angular/router';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ShareModule } from '@share/share.module';
import { ${srfclassname('${ctrl.name}')} } from './${srffilepath2(ctrl.getCodeName())}-${ctrl.getControlType()?lower_case}';
@NgModule({
imports: [
NgZorroAntdModule,
CommonModule,
FormsModule,
ShareModule,
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [${srfclassname('${ctrl.name}')}],
exports: [${srfclassname('${ctrl.name}')}]
})
export class ${srfclassname('${ctrl.name}')}Module { }
<#assign content>
[collapsechange]="collapseChange"
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
\ No newline at end of file
<#assign destroyed_block>
<#if ctrl.getPSSysCounter?? && ctrl.getPSSysCounter()??>
<#assign sysCounter = ctrl.getPSSysCounter()/>
if(this.${sysCounter.getCodeName()}) {
this.${sysCounter.getCodeName()}.uiCounterData.unsubscribe();
this.${sysCounter.getCodeName()}.close();
}
</#if>
</#assign>
<#assign import_block>
import { Http } from '@global/http/http';
</#assign>
<#assign constructor_block>, private $http: Http</#assign>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER.ts.ftl
</#ibizinclude>
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public getData(): any {
return null;
}
/**
* api地址
*
* @private
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
private url: string = '${app.getPKGCodeName()?lower_case}/ctrl/${ctrl.codeName?lower_case}appmenu';
/**
* 应用功能集合
*
* @type {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public appFuncs: any[] = [
<#list ctrl.getPSAppFuncs() as appFuncs>
{
appfunctag: '${appFuncs.getCodeName()}',
appfuncyype: '${appFuncs.getAppFuncType()}',
<#if appFuncs.getAppFuncType() == 'APPVIEW'>
<#assign appview = appFuncs.getPSAppView()/>
pathname: '${appview.getPSAppModule().getCodeName()?lower_case}_${appview.getCodeName()?lower_case}',
</#if>
},
</#list>
];
<#if ctrl.getPSSysCounter?? && ctrl.getPSSysCounter()??>
<#assign sysCounter = ctrl.getPSSysCounter()/>
/**
* 计数器对象
*
* @type {(UICounter | null)}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public ${sysCounter.getCodeName()}: UICounter | null = null;
/**
* 计数器数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public counterdata: any = {};
</#if>
/**
* 获取请求地址
*
* @returns {string}
* @memberof AppMenuService
*/
public getUrl(): string {
return this.url;
}
/**
* 获取请求对象
*
* @returns {Http}
* @memberof AppMenuService
*/
public getHttp(): Http {
return this.$http;
}
/**
* 生命周期
*
* @private
*/
ngOnInit() {
<#if ctrl.getPSSysCounter?? && ctrl.getPSSysCounter()??>
<#assign sysCounter = ctrl.getPSSysCounter()/>
this.${sysCounter.getCodeName()} = new UICounter({
name: '${sysCounter.getCodeName()}',
counterId: '${sysCounter.id}',
timer: ${sysCounter.timer?c},
url: `${r'${this.url}'}/get${sysCounter.codeName?lower_case}counter`,
});
this.${sysCounter.getCodeName()}.uiCounterData.subscribe((data: any) => {
this.counterdata = {};
Object.assign(this.counterdata, data);
});
</#if>
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
this.load(data);
});
}
}
/**
* 菜单点击
*
* @private
* @param {*} item 菜单数据
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
private click(item: any) {
if (item) {
switch (item.appfunctag) {
<#if ctrl.getPSAppFuncs()??>
<#assign appFuncs = ctrl.getPSAppFuncs()>
<#list appFuncs as singFuncs>
case '${singFuncs.getCodeName()}':
this.click${singFuncs.codeName}(item);
return;
</#list>
</#if>
default:
console.warn('未指定应用功能');
}
}
}
<#if ctrl.getPSAppFuncs()??>
<@ibizindent blank=4>
<#list ctrl.getPSAppFuncs() as singleFuncs>
${P.getLogicCode(singleFuncs,"LOGIC.tsx").code}
</#list>
</@ibizindent>
</#if>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM.ts.ftl
</#ibizinclude>
\ No newline at end of file
CTRLTYPE=APPMENU
\ No newline at end of file
<#ibizinclude>
../@MACRO/CONTROL/FORM_LAYOUT.ts.ftl
</#ibizinclude>
<nz-form-item ${tableLayout} [nzFlex]="true" [ngClass]="{hidden: !detailsModel.${item.name}.visible}">
<nz-form-label *ngIf="detailsModel.${item.name}.isShowCaption" [nzRequired]="rules.${item.name}.required" style="width: 130px;">${item.getCaption()}</nz-form-label>
<nz-form-control style="flex-grow: 1;">
${P.getEditorCode(item, "EDITOR.html").code}
</nz-form-control>
</nz-form-item>
\ No newline at end of file
<#list item.getPSDEFormDetails() as formmenber>
<#if !(formmenber.isHidden?? && formmenber.isHidden())>
${P.getPartCode(formmenber).code}
</#if>
</#list>
\ No newline at end of file
<#ibizinclude>
../@MACRO/CONTROL/FORM_LAYOUT.ts.ftl
</#ibizinclude>
<nz-card ${tableLayout} [nzBordered]="false"<#if item.isShowCaption()> nzTitle="${item.getCaption()}"</#if>>
<#list item.getPSDEFormDetails() as formmenber>
<#if !(formmenber.isHidden?? && formmenber.isHidden())>
${P.getPartCode(formmenber).code}
</#if>
</#list>
</nz-card>
\ No newline at end of file
<div class="app-search-form">
<form nz-form nz-row class="<#if ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>">
<#if ctrl.isNoTabHeader()>
<#list ctrl.getPSDEFormPages() as formmenber>
${P.getPartCode(formmenber).code}
</#list>
<#else>
<nz-tabset>
<#list ctrl.getPSDEFormPages() as formpage>
<nz-tab nzTitle="${formpage.getCaption()}">
${P.getPartCode(formpage).code}
</nz-tab>
</#list>
</nz-tabset>
</#if>
</form>
<nz-button-group>
<button nz-button (click)="onSearch()">搜索</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomRight">
<i nz-icon nzType="down" nzTheme="outline"></i>
</button>
</nz-button-group>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="onReset()">重置</li>
</ul>
</nz-dropdown-menu>
</div>
\ No newline at end of file
:host{
<#ibizinclude>
../@MACRO/LESS/DEFAULT.less.ftl
</#ibizinclude>
}
.app-search-form {
display: flex;
> .ant-form {
flex-grow: 1;
}
> .ant-btn-group {
width: 100px;
text-align: right;
padding-top: 4px;
}
}
\ No newline at end of file
<#ibizinclude>
../@MACRO/MODE/MODE_HEADER.ts.ftl
</#ibizinclude>
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
public getDataItems(): any[] {
return [
<#if ctrl.getPSDEFormItems()??>
<#list ctrl.getPSDEFormItems() as dataitem>
{
name: '${dataitem.getName()}',
<#if dataitem.getPSDEField()??>
prop: '${dataitem.getPSDEField().getCodeName()?lower_case}',
dataType: '${dataitem.getPSDEField().getDataType()}',
</#if>
createdv: '${dataitem.getCreateDV()}',
updatedv: '${dataitem.getUpdateDV()}',
<#if dataitem.getPSCodeList()??>
codeListId: '${dataitem.getPSCodeList().getCodeName()}',
</#if>
},
</#list>
</#if>
]
}
<#ibizinclude>
../@MACRO/MODE/MODE_BOTTOM.ts.ftl
</#ibizinclude>
import { NgZorroAntdModule } from 'ng-zorro-antd';
import { RouterModule } from '@angular/router';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ShareModule } from '@share/share.module';
import { ${srfclassname('${ctrl.name}')} } from './${srffilepath2(ctrl.getCodeName())}-${ctrl.getControlType()?lower_case}';
import { AppTimePickerModule } from '@components/app-time-picker/app-time-picker.module';
import { AppDatePickerModule } from '@components/app-date-picker/app-date-picker.module';
import { AppSelectModule } from '@components/app-select/app-select.module';
import { AppRadioModule } from '@components/app-radio/app-radio.module';
import { AppCheckboxListModule } from '@components/app-checkbox-list/app-checkbox-list.module';
@NgModule({
imports: [
NgZorroAntdModule,
CommonModule,
FormsModule,
ShareModule,
AppDatePickerModule,
AppTimePickerModule,
AppSelectModule,
AppRadioModule,
AppCheckboxListModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [${srfclassname('${ctrl.name}')}],
exports: [${srfclassname('${ctrl.name}')}]
})
export class ${srfclassname('${ctrl.name}')}Module { }
<#assign content>
[ngClass]="{ hidden: !isExpandSearchForm }"
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
\ No newline at end of file
<#if item.getLogicType() == 'GROUP'><#if item.isNotMode()>!(</#if><#if item.getPSDEFDLogics()??><#list item.getPSDEFDLogics() as subLogic><#if subLogic_index gt 0><#if item.getGroupOP() == 'AND'> && </#if><#if item.getGroupOP() == 'OR'> || </#if></#if>${P.getPartCode(subLogic, 'DETAIL_LOGIC').code}</#list></#if><#if item.isNotMode()>)</#if><#elseif item.getLogicType() == 'SINGLE'>this.$util.testCond(_${item.getDEFDName()?lower_case}, '${item.getPSDBValueOPId()}', '${item.getValue()}')</#if>
\ No newline at end of file
<#assign detail>caption: '${item.getCaption()}', detailType: '${item.getDetailType()}', name: '${item.getName()}', visible: <#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>false<#else>true</#if>, isShowCaption: ${item.isShowCaption()?c}, form: this</#assign>
<#if item.getDetailType() == 'BUTTON'>
new FormButtonModel({ ${detail}<#if item.getPSUIAction()??><#assign uiaction=item.getPSUIAction()>, uiaction: { type: '${uiaction.getUIActionType()}',
tag: '${uiaction.getUIActionTag()}'<#if (uiaction.getActionTarget()!="")>, actiontarget: '${uiaction.getActionTarget()}'</#if> }</#if> })
<#elseif item.getDetailType() == 'DRUIPART'>
new FormDRUIPartModel({ ${detail} })
<#elseif item.getDetailType() == 'FORMITEM'>
new FormItemModel({ ${detail}, disabled: false, enableCond: ${item.getEnableCond()?c} })
<#elseif item.getDetailType() == 'FORMPAGE'>
new FormPageModel({ ${detail} })
<#elseif item.getDetailType() == 'FORMPART'>
new FormPartModel({ ${detail} })
<#elseif item.getDetailType() == 'GROUPPANEL'>
new FormGroupPanelModel({ ${detail}, uiActionGroup: { caption: '<#if item.getPSUIActionGroup()??>${item.getPSUIActionGroup().getName()}</#if>', langbase: '<#if langbase??>${langbase}</#if>', extractMode: '<#if item.getActionGroupExtractMode?? && item.getActionGroupExtractMode()??>${item.getActionGroupExtractMode()}<#else>ITEM</#if>', details: [<#if item.getPSUIActionGroup()??><#list item.getPSUIActionGroup().getPSUIActionGroupDetails() as uadetails><#if uadetails_index gt 0>, </#if>{ name: '${item.getName()}_${uadetails.getName()}', caption: '${uadetails.getPSUIAction().getCaption()}', uiactiontag: '${uadetails.getPSUIAction().getUIActionTag()?lower_case}'<#if uadetails.getPSUIAction().getPSSysImage()??>, <#assign viewimg=uadetails.getPSUIAction().getPSSysImage()/><#if viewimg.getCssClass() != ''>icon: '${viewimg.getCssClass()}'<#else>img: '${viewimg.getImagePath()}'</#if></#if> }</#list></#if>] } })
<#elseif item.getDetailType() == 'IFRAME'>
new FormIFrameModel({ ${detail} })
<#elseif item.getDetailType() == 'RAWITEM'>
new FormRowItemModel({ ${detail} })
<#elseif item.getDetailType() == 'TABPAGE'>
new FormTabPageModel({ ${detail} })
<#elseif item.getDetailType() == 'TABPANEL'>
new FormTabPanelModel({ ${detail}, tabPages: [<#list item.getPSDEFormTabPages() as formmenber><#if formmenber_index gt 0>, </#if>{ name: '${formmenber.name}', index: ${formmenber_index}, visible: <#if formmenber.getPSDEFDGroupLogic('PANELVISIBLE')??>false<#else>true</#if> }</#list>] })
<#elseif item.getDetailType() == 'USERCONTROL'>
new FormUserControlModel({ ${detail} })
</#if>
\ No newline at end of file
<#list ctrl.getAllPSDEFormDetails() as formdetail>
<#if formdetail.getPSDEFDGroupLogic('ITEMBLANK')??>
<#assign ITEMBLANK = formdetail.getPSDEFDGroupLogic('ITEMBLANK')/>
if (Object.is(name, '')<#if ITEMBLANK.getRelatedDetailNames()??><#list ITEMBLANK.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = true;
<#if ITEMBLANK.getRelatedDetailNames()??>
<#list ITEMBLANK.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(ITEMBLANK, 'DETAIL_LOGIC').code}) {
ret = false;
}
this.rules.${formdetail.name}.some((rule: any) => {
if (rule.hasOwnProperty('required')) {
rule.required = ret;
return true;
}
return false;
});
}
</#if>
<#if formdetail.getPSDEFDGroupLogic('ITEMENABLE')??>
<#assign ITEMENABLE = formdetail.getPSDEFDGroupLogic('ITEMENABLE')/>
if (Object.is(name, '')<#if ITEMENABLE.getRelatedDetailNames()??><#list ITEMENABLE.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = false;
<#if ITEMENABLE.getRelatedDetailNames()??>
<#list ITEMENABLE.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(ITEMENABLE, 'DETAIL_LOGIC').code}) {
ret = true;
}
this.detailsModel.${formdetail.name}.setDisabled(!ret);
}
</#if>
<#if formdetail.getPSDEFDGroupLogic('PANELVISIBLE')??>
<#assign PANELVISIBLE = formdetail.getPSDEFDGroupLogic('PANELVISIBLE')/>
if (Object.is(name, '')<#if PANELVISIBLE.getRelatedDetailNames()??><#list PANELVISIBLE.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = false;
<#if PANELVISIBLE.getRelatedDetailNames()??>
<#list PANELVISIBLE.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(PANELVISIBLE, 'DETAIL_LOGIC').code}) {
ret = true;
}
this.detailsModel.${formdetail.name}.setVisible(ret);
}
</#if>
</#list>
\ No newline at end of file
此差异已折叠。
CTRLTYPE=SEARCHFORM
\ No newline at end of file
<#ibizinclude>
../@MACRO/CONTROL/FORM_LAYOUT.ts.ftl
</#ibizinclude>
<nz-form-item ${tableLayout} [nzFlex]="true" [ngClass]="{hidden: !detailsModel.${item.name}.visible}">
<nz-form-label *ngIf="detailsModel.${item.name}.isShowCaption" [nzRequired]="rules.${item.name}.required" style="width: 130px;">${item.getCaption()}</nz-form-label>
<nz-form-control style="flex-grow: 1;">
${P.getEditorCode(item, "EDITOR.html").code}
</nz-form-control>
</nz-form-item>
\ No newline at end of file
<#list item.getPSDEFormDetails() as formmenber>
<#if !(formmenber.isHidden?? && formmenber.isHidden())>
${P.getPartCode(formmenber).code}
</#if>
</#list>
\ No newline at end of file
<#ibizinclude>
../@MACRO/CONTROL/FORM_LAYOUT.ts.ftl
</#ibizinclude>
<nz-card ${tableLayout} [nzBordered]="false"<#if item.isShowCaption()> nzTitle="${item.getCaption()}"</#if>>
<div nz-row>
<#list item.getPSDEFormDetails() as formmenber>
<#if !(formmenber.isHidden?? && formmenber.isHidden())>
${P.getPartCode(formmenber).code}
</#if>
</#list>
</div>
</nz-card>
\ No newline at end of file
<form nz-form nz-row class="app-form<#if ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>">
<#if ctrl.isNoTabHeader()>
<#list ctrl.getPSDEFormPages() as formmenber>
${P.getPartCode(formmenber).code}
</#list>
<#else>
<nz-tabset>
<#list ctrl.getPSDEFormPages() as formpage>
<nz-tab nzTitle="${formpage.getCaption()}">
${P.getPartCode(formpage).code}
</nz-tab>
</#list>
</nz-tabset>
</#if>
</form>
\ No newline at end of file
:host{
<#ibizinclude>
../@MACRO/LESS/DEFAULT.less.ftl
</#ibizinclude>
}
\ No newline at end of file
<#ibizinclude>
../@MACRO/MODE/MODE_HEADER.ts.ftl
</#ibizinclude>
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
public getDataItems(): any[] {
return [
<#if ctrl.getPSDEFormItems()??>
<#list ctrl.getPSDEFormItems() as dataitem>
{
name: '${dataitem.getName()}',
<#if dataitem.getPSDEField()??>
prop: '${dataitem.getPSDEField().getCodeName()?lower_case}',
dataType: '${dataitem.getPSDEField().getDataType()}',
</#if>
createdv: '${dataitem.getCreateDV()}',
updatedv: '${dataitem.getUpdateDV()}',
<#if dataitem.getPSCodeList()??>
codeListId: '${dataitem.getPSCodeList().getCodeName()}',
</#if>
},
</#list>
</#if>
]
}
<#ibizinclude>
../@MACRO/MODE/MODE_BOTTOM.ts.ftl
</#ibizinclude>
import { NgZorroAntdModule } from 'ng-zorro-antd';
import { RouterModule } from '@angular/router';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ShareModule } from '@share/share.module';
import { ${srfclassname('${ctrl.name}')} } from './${srffilepath2(ctrl.getCodeName())}-${ctrl.getControlType()?lower_case}';
import { AppTimePickerModule } from '@components/app-time-picker/app-time-picker.module';
import { AppDatePickerModule } from '@components/app-date-picker/app-date-picker.module';
import { AppSelectModule } from '@components/app-select/app-select.module';
import { AppRadioModule } from '@components/app-radio/app-radio.module';
import { AppCheckboxListModule } from '@components/app-checkbox-list/app-checkbox-list.module';
@NgModule({
imports: [
NgZorroAntdModule,
CommonModule,
FormsModule,
ShareModule,
AppDatePickerModule,
AppTimePickerModule,
AppSelectModule,
AppRadioModule,
AppCheckboxListModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [${srfclassname('${ctrl.name}')}],
exports: [${srfclassname('${ctrl.name}')}]
})
export class ${srfclassname('${ctrl.name}')}Module { }
<#assign content>
class="app-auto-control"
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
\ No newline at end of file
<#if item.getLogicType() == 'GROUP'><#if item.isNotMode()>!(</#if><#if item.getPSDEFDLogics()??><#list item.getPSDEFDLogics() as subLogic><#if subLogic_index gt 0><#if item.getGroupOP() == 'AND'> && </#if><#if item.getGroupOP() == 'OR'> || </#if></#if>${P.getPartCode(subLogic, 'DETAIL_LOGIC').code}</#list></#if><#if item.isNotMode()>)</#if><#elseif item.getLogicType() == 'SINGLE'>this.$util.testCond(_${item.getDEFDName()?lower_case}, '${item.getPSDBValueOPId()}', '${item.getValue()}')</#if>
\ No newline at end of file
<#assign detail>caption: '${item.getCaption()}', detailType: '${item.getDetailType()}', name: '${item.getName()}', visible: <#if item.getPSDEFDGroupLogic('PANELVISIBLE')??>false<#else>true</#if>, isShowCaption: ${item.isShowCaption()?c}, form: this</#assign>
<#if item.getDetailType() == 'BUTTON'>
new FormButtonModel({ ${detail}<#if item.getPSUIAction()??><#assign uiaction=item.getPSUIAction()>, uiaction: { type: '${uiaction.getUIActionType()}',
tag: '${uiaction.getUIActionTag()}'<#if (uiaction.getActionTarget()!="")>, actiontarget: '${uiaction.getActionTarget()}'</#if> }</#if> })
<#elseif item.getDetailType() == 'DRUIPART'>
new FormDRUIPartModel({ ${detail} })
<#elseif item.getDetailType() == 'FORMITEM'>
new FormItemModel({ ${detail}, disabled: false, enableCond: ${item.getEnableCond()?c} })
<#elseif item.getDetailType() == 'FORMPAGE'>
new FormPageModel({ ${detail} })
<#elseif item.getDetailType() == 'FORMPART'>
new FormPartModel({ ${detail} })
<#elseif item.getDetailType() == 'GROUPPANEL'>
new FormGroupPanelModel({ ${detail}, uiActionGroup: { caption: '<#if item.getPSUIActionGroup()??>${item.getPSUIActionGroup().getName()}</#if>', langbase: '<#if langbase??>${langbase}</#if>', extractMode: '<#if item.getActionGroupExtractMode?? && item.getActionGroupExtractMode()??>${item.getActionGroupExtractMode()}<#else>ITEM</#if>', details: [<#if item.getPSUIActionGroup()??><#list item.getPSUIActionGroup().getPSUIActionGroupDetails() as uadetails><#if uadetails_index gt 0>, </#if>{ name: '${item.getName()}_${uadetails.getName()}', caption: '${uadetails.getPSUIAction().getCaption()}', uiactiontag: '${uadetails.getPSUIAction().getUIActionTag()?lower_case}'<#if uadetails.getPSUIAction().getPSSysImage()??>, <#assign viewimg=uadetails.getPSUIAction().getPSSysImage()/><#if viewimg.getCssClass() != ''>icon: '${viewimg.getCssClass()}'<#else>img: '${viewimg.getImagePath()}'</#if></#if> }</#list></#if>] } })
<#elseif item.getDetailType() == 'IFRAME'>
new FormIFrameModel({ ${detail} })
<#elseif item.getDetailType() == 'RAWITEM'>
new FormRowItemModel({ ${detail} })
<#elseif item.getDetailType() == 'TABPAGE'>
new FormTabPageModel({ ${detail} })
<#elseif item.getDetailType() == 'TABPANEL'>
new FormTabPanelModel({ ${detail}, tabPages: [<#list item.getPSDEFormTabPages() as formmenber><#if formmenber_index gt 0>, </#if>{ name: '${formmenber.name}', index: ${formmenber_index}, visible: <#if formmenber.getPSDEFDGroupLogic('PANELVISIBLE')??>false<#else>true</#if> }</#list>] })
<#elseif item.getDetailType() == 'USERCONTROL'>
new FormUserControlModel({ ${detail} })
</#if>
\ No newline at end of file
<#list ctrl.getAllPSDEFormDetails() as formdetail>
<#if formdetail.getPSDEFDGroupLogic('ITEMBLANK')??>
<#assign ITEMBLANK = formdetail.getPSDEFDGroupLogic('ITEMBLANK')/>
if (Object.is(name, '')<#if ITEMBLANK.getRelatedDetailNames()??><#list ITEMBLANK.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = true;
<#if ITEMBLANK.getRelatedDetailNames()??>
<#list ITEMBLANK.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(ITEMBLANK, 'DETAIL_LOGIC').code}) {
ret = false;
}
this.rules.${formdetail.name}.some((rule: any) => {
if (rule.hasOwnProperty('required')) {
rule.required = ret;
return true;
}
return false;
});
}
</#if>
<#if formdetail.getPSDEFDGroupLogic('ITEMENABLE')??>
<#assign ITEMENABLE = formdetail.getPSDEFDGroupLogic('ITEMENABLE')/>
if (Object.is(name, '')<#if ITEMENABLE.getRelatedDetailNames()??><#list ITEMENABLE.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = false;
<#if ITEMENABLE.getRelatedDetailNames()??>
<#list ITEMENABLE.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(ITEMENABLE, 'DETAIL_LOGIC').code}) {
ret = true;
}
this.detailsModel.${formdetail.name}.setDisabled(!ret);
}
</#if>
<#if formdetail.getPSDEFDGroupLogic('PANELVISIBLE')??>
<#assign PANELVISIBLE = formdetail.getPSDEFDGroupLogic('PANELVISIBLE')/>
if (Object.is(name, '')<#if PANELVISIBLE.getRelatedDetailNames()??><#list PANELVISIBLE.getRelatedDetailNames() as detailName> || Object.is(name, '${detailName}')</#list></#if>) {
let ret = false;
<#if PANELVISIBLE.getRelatedDetailNames()??>
<#list PANELVISIBLE.getRelatedDetailNames() as detailName>
const _${detailName} = this.data.${detailName};
</#list>
</#if>
if (${P.getPartCode(PANELVISIBLE, 'DETAIL_LOGIC').code}) {
ret = true;
}
this.detailsModel.${formdetail.name}.setVisible(ret);
}
</#if>
</#list>
\ No newline at end of file
此差异已折叠。
CTRLTYPE=FORM
\ No newline at end of file
<nz-table #${ctrl.getCodeName()}${srfclassname('${ctrl.getControlType()}')}
[nzShowPagination]="isEnablePagingBar()"
nzShowSizeChanger
nzShowTotal
[nzData]="items"
[nzFrontPagination]="false"
[nzTotal]="totalrow"
[nzPageIndex]="curPage"
[nzPageSize]="limit"
[nzPageSizeOptions]="[10, 20, 30, 40, 50, 100]"
(nzPageSizeChange)="onPageSizeChange($event)"
(nzPageIndexChange)="pageOnChange($event)"
[ngClass]="['app-grid',isEnablePagingBar() ? 'pagination' : '']"
>
<thead>
<tr>
<th *ngIf="!isSingleSelect" nzShowCheckbox nzWidth="40px" (nzCheckedChange)="selectAll($event)"></th>
<#assign isAddCol = true>
<#list ctrl.getPSDEGridColumns() as column>
<th [nzShowSort]="!isNoSort()" (nzSortChange)="onSortChange($event, '${column.getDataItemName()?lower_case}')"<#if column.getWidthUnit()!='STAR'> nzWidth="${column.width?c}px"<#else><#assign isAddCol = false></#if> nzAlign="${column.getAlign()?lower_case}">${column.getCaption()}</th>
</#list>
<#if isAddCol>
<th></th>
</#if>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of ${ctrl.getCodeName()}${srfclassname('${ctrl.getControlType()}')}.data" (click)="rowClick(data, true)" (dblclick)="rowDBLClick(data)">
<td *ngIf="!isSingleSelect" nzShowCheckbox [(nzChecked)]="data.isSelection" (nzCheckedChange)="select($event, data)"></td>
<#list ctrl.getPSDEGridColumns() as column>
<td>{{ data.${column.getDataItemName()?lower_case} }}</td>
</#list>
</tr>
</tbody>
</nz-table>
\ No newline at end of file
:host{
<#ibizinclude>
../@MACRO/LESS/DEFAULT.less.ftl
</#ibizinclude>
}
\ No newline at end of file
<#ibizinclude>
../@MACRO/MODE/MODE_HEADER.ts.ftl
</#ibizinclude>
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
public getDataItems(): any[] {
return [
<#if ctrl.getPSDEGridDataItems()??>
<#list ctrl.getPSDEGridDataItems() as dataitem>
{
name: '${dataitem.getName()}',
<#if dataitem.getPSDEField()??>
prop: '${dataitem.getPSDEField().getCodeName()?lower_case}',
dataType: '${dataitem.getPSDEField().getDataType()}',
</#if>
<#if dataitem.getPSCodeList()??>
codeListId: '$[dataitem.getPSCodeList().getCodeName()}',
</#if>
},
</#list>
</#if>
]
}
/**
* 获取编辑项集合
*
* @returns {any[]}
* @memberof ${srfclassname('${ctrl.getCodeName()}')}${srfclassname('${ctrl.name}')}Mode
*/
public getEditItems(): any[] {
return [
<#if ctrl.getPSDEGridEditItems()??>
<#list ctrl.getPSDEGridEditItems() as edititem>
{
name: '${edititem.getName()}',
<#if edititem.getPSDEField()??>
<#assign field = edititem.getPSDEField()>
prop: '${field.getCodeName()?lower_case}',
dataType: '${field.getDataType()}',
<#if field.getPSCodeList()??>
codeListId: '$[field.getPSCodeList().getCodeName()}',
</#if>
</#if>
},
</#list>
</#if>
]
}
<#ibizinclude>
../@MACRO/MODE/MODE_BOTTOM.ts.ftl
</#ibizinclude>
import { NgZorroAntdModule } from 'ng-zorro-antd';
import { RouterModule } from '@angular/router';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ShareModule } from '@share/share.module';
import { ${srfclassname('${ctrl.name}')} } from './${srffilepath2(ctrl.getCodeName())}-${ctrl.getControlType()?lower_case}';
@NgModule({
imports: [
NgZorroAntdModule,
CommonModule,
FormsModule,
ShareModule,
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [${srfclassname('${ctrl.name}')}],
exports: [${srfclassname('${ctrl.name}')}]
})
export class ${srfclassname('${ctrl.name}')}Module { }
<#assign content>
[isSingleSelect]="isSingleSelect"
class="app-auto-control"
</#assign>
<#ibizinclude>
../@MACRO/HTML/DEFAULT.html.ftl
</#ibizinclude>
\ No newline at end of file
此差异已折叠。
CTRLTYPE=GRID
\ No newline at end of file
<nz-card class="app-view app-${view.getCodeName()?lower_case}<#if !view.isShowCaptionBar()> app-view-nocaption</#if>" [nzBordered]="false" [nzTitle]="viewTitle" [nzExtra]="extraRight">
<#if view.getAllPSControls()??>
<#list view.getAllPSControls() as ctrl>
<#if ctrl.getControlType() != "TOOLBAR">
<#if P.getCtrlCode(ctrl, 'CONTROL.template')??>
<@ibizindent blank=4>
${P.getCtrlCode(ctrl, 'CONTROL.template').code}
</@ibizindent>
</#if>
</#if>
</#list>
</#if>
</nz-card>
<#ibizinclude>
./VIEW_CAPTION.html.ftl
</#ibizinclude>
<ng-template #extraRight>
<#ibizinclude>
./VIEW_TOOLBAR.html.ftl
</#ibizinclude>
</ng-template>
<#if view.isShowCaptionBar()>
<ng-template #viewTitle>
<span>
{{ model.srfCaption }}
<#if view.isShowDataInfoBar?? && view.isShowDataInfoBar()>
{{ model.dataInfo && !model.dataInfo == '' ? (': ' + model.dataInfo) : '' }}
</#if>
</span>
</ng-template>
</#if>
\ No newline at end of file
<#if view.hasPSControl('toolbar')>
<#assign toolbarCtrl = view.getPSControl('toolbar')>
<@ibizindent blank=4>
${P.getCtrlCode(toolbarCtrl, 'CONTROL.html').code}
</@ibizindent>
</#if>
\ No newline at end of file
<#if view.hasPSControl('toolbar')>
<@ibizindent blank=8>
${P.getCtrlCode('toolbar', 'CONTROL.less').code}
</@ibizindent>
</#if>
<#assign viewCssName = '' />
<#if view.getPSSysCss()??>
<#assign viewCssName = view.getPSSysCss().getCssName()>
</#if>
<#list view.getPSSysCsses() as syscss>
<#if syscss.getCssStyle()??>
<#if syscss.getCssName() != viewCssName>
<#if syscss.getRawCssStyle()?? && syscss.getRawCssStyle()?length gt 0>
.${syscss.getCssName() } {
${syscss.getRawCssStyle()}
}
</#if>
<#if syscss.getCssStyle()??>
${syscss.getCssStyle()}
</#if>
</#if>
</#if>
</#list>
<#if view.getPSSysCss()??>
<#assign css=view.getPSSysCss()/>
<#if css.getRawCssStyle()?? && css.getRawCssStyle()?length gt 0>
.${css.getCssName()} {
${css.getRawCssStyle()}
}
</#if>
<#if css.getCssStyle()??>
${css.getCssStyle()}
</#if>
</#if>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册