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

init

上级 8e3cec50
J2EE6IONIC4_R6
\ No newline at end of file
import { IBizTabViewPanel } from 'ibizsys';
\ No newline at end of file
/**
* 分页视图面板
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizTabViewPanel }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizTabViewPanel {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
/**
* 注册工具栏按钮
*
* @memberof ${srfclassname('${ctrl.name}')}
*/
public regToolBarItems(): void {
<#assign tabView = ctrl.getPSAppDEView()>
<#if tabView??>
<#if tabView.hasPSControl('lefttoolbar')>
<#assign lefttoolbar = tabView.getPSControl('lefttoolbar')>
<#assign items = lefttoolbar.getPSDEToolbarItems()>
<#if items??>
<#list items as item>
<#if item.getItemType() == "ITEMS">
this.regToolBarItem({
name: '${item.getName()?lower_case}', caption: '${item.caption}', text: '${item.caption}', xtype: 'splitbutton',
items: [
<#assign childItems = item.getPSDEToolbarItems()>
<#list childItems as childItem>
<#assign deuiaction = childItem.getPSUIAction()>
{ type: '${childItem.getItemType()}', name: '${childItem.getName()?lower_case}', tooltip: '${childItem.getTooltip()}', isEnableToggleMode: ${childItem.isEnableToggleMode()?c}, caption: '${childItem.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>'<#if item.getPSSysImage()??>, icon: '${childItem.getPSSysImage().getImagePath()!''}', iconcls: '${childItem.getPSSysImage().getCssClass()!''}'</#if>, isShowCaption: ${childItem.isShowCaption()?c}, isShowIcon: ${childItem.isShowIcon()?c} },
</#list>
]
});
<#else>
<#assign deuiaction = item.getPSUIAction()>
this.regToolBarItem({ type: '${item.getItemType()}', name: '${item.getName()?lower_case}', tooltip: '${item.getTooltip()}', isEnableToggleMode: ${item.isEnableToggleMode()?c}, caption: '${item.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>'<#if item.getPSSysImage()??>, icon: '${item.getPSSysImage().getImagePath()!''}', iconcls: '${item.getPSSysImage().getCssClass()!''}'</#if>, isShowCaption: ${item.isShowCaption()?c}, isShowIcon: ${item.isShowIcon()?c} });
</#if>
</#list>
</#if>
</#if>
<#if tabView.hasPSControl('righttoolbar')>
<#assign righttoolbar = tabView.getPSControl('righttoolbar')>
<#assign items = righttoolbar.getPSDEToolbarItems()>
<#if items??>
<#list items as item>
<#if item.getItemType() == "ITEMS">
this.regToolBarItem({
name: '${item.getName()?lower_case}', caption: '${item.caption}', text: '${item.caption}', xtype: 'splitbutton',
items: [
<#assign childItems = item.getPSDEToolbarItems()>
<#list childItems as childItem>
<#assign deuiaction = childItem.getPSUIAction()>
{ type: '${childItem.getItemType()}', name: '${childItem.getName()?lower_case}', tooltip: '${childItem.getTooltip()}', isEnableToggleMode: ${childItem.isEnableToggleMode()?c}, caption: '${childItem.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>'<#if item.getPSSysImage()??>, icon: '${childItem.getPSSysImage().getImagePath()!''}', iconcls: '${childItem.getPSSysImage().getCssClass()!''}'</#if>, isShowCaption: ${childItem.isShowCaption()?c}, isShowIcon: ${childItem.isShowIcon()?c} },
</#list>
]
});
<#else>
<#assign deuiaction = item.getPSUIAction()>
this.regToolBarItem({ type: '${item.getItemType()}', name: '${item.getName()?lower_case}', tooltip: '${item.getTooltip()}', isEnableToggleMode: ${item.isEnableToggleMode()?c}, caption: '${item.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>'<#if item.getPSSysImage()??>, icon: '${item.getPSSysImage().getImagePath()!''}', iconcls: '${item.getPSSysImage().getCssClass()!''}'</#if>, isShowCaption: ${item.isShowCaption()?c}, isShowIcon: ${item.isShowIcon()?c} });
</#if>
</#list>
</#if>
</#if>
</#if>
}
}
\ No newline at end of file
<#if ctrl.getPSSysCounterRef()?? && ctrl.getPSSysCounterRef().getPSSysCounter()??><#assign counter = ctrl.getPSSysCounterRef().getPSSysCounter()></#if>
{ id: '${ctrl.getName()}', text: '${ctrl.getCaption()}'<#if counter??>, counter: getUICounterNum('${counter.getCodeName()}', '${ctrl.getCounterId()!''}')</#if> }
\ No newline at end of file
<ng-container *ngIf="${ctrl.getName()}.isActivated()">
<#assign tabView = ctrl.getPSAppDEView()>
<#if tabView??>
<${filename(tabView.codeName)} [hidden]="activateTab !== '${ctrl.getName()}'" #${tabView.codeName} [viewUsage]="4" [searchValue]="$searchValue" (viewInitEnd)="${ctrl.getName()}.regView($event)"></${filename(tabView.codeName)}>
</#if>
</ng-container>
\ No newline at end of file
<ion-toolbar class="ibiz-view-toolbar" [hidden]="activateTab !== '${ctrl.getName()}'" color="primary">
<#assign tabView = ctrl.getPSAppDEView()>
<#if tabView??>
<ion-buttons class="ibiz-toolbar-left-buttons" slot="start">
<ion-back-button class="ibiz-view-back-button" text="返回" (click)="closeResult()"></ion-back-button>
<#if tabView.hasPSControl('lefttoolbar')>
<#assign lefttoolbar = tabView.getPSControl('lefttoolbar')>
<#assign items = lefttoolbar.getPSDEToolbarItems()>
<#list items as item>
<#if item.getItemType() == "ITEMS">
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.openActionSheet('${item.name}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}<#else>more</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#else>
<#assign deuiaction = item.getPSUIAction()>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.clickButton('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
</#if>
</#list>
</#if>
</ion-buttons>
<#if tabView.isEnableQuickSearch()>
<ion-searchbar (ionChange)="onQuickSearchValueChange($event)" [value]="$searchValue" showCancelButton cancelButtonText="取消" debounce="500" animated placeholder="搜索" mode="ios" clearIcon="close-circle"></ion-searchbar>
<#else>
<ion-title class="ibiz-view-title">${tabView.getCaption()}</ion-title>
</#if>
<ion-buttons class="ibiz-toolbar-right-buttons" slot="end">
<#if tabView.hasPSControl('righttoolbar')>
<#assign righttoolbar = tabView.getPSControl('righttoolbar')>
<#assign items = righttoolbar.getPSDEToolbarItems()>
<#list items as item>
<#if item.getItemType() == "ITEMS">
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.openActionSheet('${item.name}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}<#else>more</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#else>
<#assign deuiaction = item.getPSUIAction()>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.clickButton('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
</#if>
</#list>
</#if>
</ion-buttons>
</#if>
</ion-toolbar>
\ No newline at end of file
CTRLTYPE=TABVIEWPANEL
\ No newline at end of file
import { IBizList } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEListControllerCode
</#ibiztemplate>
/**
* 多数据部件控制器
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizList }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizList {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEListControllerCode
</#ibiztemplate>
<ion-list class="ibiz-mdctrl-list">
<ion-item *ngFor="let item of ${ctrl.name}.$items" class="ibiz-mdctrl-list-item" (click)="${ctrl.name}.click(item)">
<#if itemlayoutpanel??>
${itemlayoutpanel.code}
<#else>
<ion-label>
{{ item.srfmajortext }}
</ion-label>
</#if>
</ion-item>
</ion-list>
<ion-toolbar>
<div style="text-align: center;">
<span [hidden]="!${ctrl.name}.isInfinite() || ${ctrl.name}.isSendingRequest()" (tap)="${ctrl.name}.loadMore()">点击加载更多</span>
<span [hidden]="${ctrl.name}.isInfinite() || ${ctrl.name}.isSendingRequest()">没有更多啦~</span>
<ion-spinner [hidden]="!${ctrl.name}.isSendingRequest()" name="dots"></ion-spinner>
</div>
</ion-toolbar>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEListControllerCode
</#ibiztemplate>
CTRLTYPE=LIST
\ No newline at end of file
import { IBizWizardPanel } from 'ibizsys';
\ No newline at end of file
/**
* 编辑表单控制器
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizWizardPanel }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizWizardPanel {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
public initParams(): void {
<#if ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardForms()??>
<#list ctrl.getPSDEWizard().getPSDEWizardForms() as form>
<#if form.isFirstForm() == true>
this.setStep('${form.getFormTag()}');
</#if>
</#list>
</#if>
<#if ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardForms()??>
this.initSteps([
<#list ctrl.getPSDEWizard().getPSDEWizardForms() as form>
'${form.getFormTag()}',
</#list>
]);
</#if>
<#if ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardForms()??>
this.initStepButtonState({
<#list ctrl.getPSDEWizard().getPSDEWizardForms() as form>
'${form.getFormTag()}': '<#list form.getStepActions() as action>${action},</#list>',
</#list>
});
</#if>
<#if ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardForms()??>
<#list ctrl.getPSDEWizard().getPSDEWizardForms() as form>
<#if (form.getConfirmMsg()?? && form.getConfirmMsg() != "") || (form.getConfirmMsg2()?? && form.getConfirmMsg2() != "")>
this.regConfirmMsg('${form.getFormTag()}', {<#if form.getConfirmMsg()?? && form.getConfirmMsg() != "">msg: { isAgree: false }</#if><#if form.getConfirmMsg2()?? && form.getConfirmMsg2() != "">, msg2: { isAgree: false }</#if>});
</#if>
</#list>
</#if>
}
}
\ No newline at end of file
<ion-content>
<ng-container [ngSwitch]="${ctrl.name}.getStep()">
<#list ctrl.getPSDEEditForms() as form>
<ng-container *ngSwitchCase="'${form.getPSDEWizardForm().getFormTag()}'">
${srfctrl('${form.name}').code}
<#if form.getPSDEWizardForm().getConfirmMsg()?? && form.getPSDEWizardForm().getConfirmMsg() != "">
<ion-item lines="none">
<ion-checkbox color="medium" [(ngModel)]="${ctrl.name}.$nextConfirm.get('${form.getPSDEWizardForm().getFormTag()}').msg.isAgree" style="height: 12pt;width: 12pt;"></ion-checkbox>
${form.getPSDEWizardForm().getConfirmMsg()}
</ion-item>
</#if>
<#if form.getPSDEWizardForm().getConfirmMsg2()?? && form.getPSDEWizardForm().getConfirmMsg2() != "">
<ion-item lines="none">
<ion-checkbox color="medium" [(ngModel)]="${ctrl.name}.$nextConfirm.get('${form.getPSDEWizardForm().getFormTag()}').msg2.isAgree" style="height: 12pt;width: 12pt;"></ion-checkbox>
${form.getPSDEWizardForm().getConfirmMsg2()}
</ion-item>
</#if>
</ng-container>
</#list>
</ng-container>
</ion-content>
<#if ctrl.isShowActionBar() != false></#if>
\ No newline at end of file
CTRLTYPE=WIZARDPANEL
\ No newline at end of file
import { IBizFormButton } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
new IBizFormButton({name: '${item.name!''}', caption: '${item.getCaption()}'<#if item.getParamPickupPSAppView()??><#assign view = item.getParamPickupPSAppView()>, pickupview: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}'</#if>, 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 { IBizMEditViewPanel } from 'ibizsys';
\ No newline at end of file
import { IBizFormDRPanel } from 'ibizsys';
import ${item.getPSAppView().codeName} from '@pages/${filename('${item.getPSAppView().getPSAppModule().codeName}')}/${filename('${item.getPSAppView().codeName}')}/${filename('${item.getPSAppView().codeName}')}';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<#assign dritem=item.getPSDEDRItem()>
new IBizFormDRPanel({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: '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
${editor.code2}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
new IBizFormField({name: '${item.name!''}', caption: '${item.getCaption()}', visible: true, type: 'FORMITEM', allowEmpty: <#if !(item.isAllowEmpty())>true<#else>false</#if>, form: this})
\ No newline at end of file
import { IBizFormPage } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormPage({name: '${item.name}', caption: '${item.getCaption()}', visible: true, type: 'FORMPAGE', form: this, child: [
<#list items as rowitem><#assign rowobj = rowitem.getObj()>'${rowobj.getName()}', </#list>
]<#if item.getPSSysPFPlugin()??>, render: (item) => {
return <>${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}</>;
}</#if>})
\ No newline at end of file
import { IBizFormGroup } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormGroup({name: '${item.name}', caption: '${item.getCaption()}', visible: true, type: 'GROUPPANEL', isShowCaption: ${item.isShowCaption()?c}, titleBarCloseMode: '${item.getTitleBarCloseMode()}'<#if item.getColLG() != -1>, lg: ${item.getColLG()?c}</#if><#if item.getColMD() != -1>, md: ${item.getColMD()?c}</#if><#if item.getColSM() != -1>, sm: ${item.getColSM()?c}</#if><#if item.getColXS() != -1>, xs: ${item.getColXS()?c}</#if>, form: this, child: [
<#list items as rowitem><#assign rowobj = rowitem.getObj()>'${rowobj.getName()}', </#list>
]<#if item.getPSSysPFPlugin()??>, render: (item) => {
return <>${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}</>;
}</#if>})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
new IBizFormField({name: '${item.name!''}', visible: false, type: 'HIDDENFORMITEM', form: this})
\ No newline at end of file
import { IBizFormRawItem } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
new IBizFormRawItem({name: '${item.name!''}', caption: '${item.getCaption()}', visible: true, type: 'RAWITEM', form: this})
\ No newline at end of file
import { IBizFormTabPage } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormTabPage({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: 'TABPAGE', form: this})
\ No newline at end of file
import { IBizFormTabPanel } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormTabPanellVC
</#ibiztemplate>
new IBizFormTabPanel({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: 'TABPANEL', form: this})
\ No newline at end of file
<#if item.getRenderPSSysPFPlugin()??>
${item.getRenderPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
表单自定义部件没有定义插件
</#if>
\ No newline at end of file
/**
* 编辑表单控制器
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizMEditViewPanel }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizMEditViewPanel {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<ion-button [hidden]="!fields.${item.name}?.visible" expand="full" class="ibiz-form-button<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" style='<#if item.getPSSysCss()??>${item.getPSSysCss().getRawCssStyle()};</#if><#if item.getHeight() gt 0>height: ${item.getHeight()}px;</#if>' (click)="fields?.${item.name}.onClick()">${item.caption}</ion-button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<ibiz-form-item [field]="fields?.${item.name}">
<ng-template let-${item.name}>
<ion-item [hidden]="!${item.name}?.visible" class="ibiz-form-item ${item.getLabelPos()?lower_case}<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" style='<#if item.getPSSysCss()??>${item.getPSSysCss().getRawCssStyle()};</#if><#if item.getItemHeight() gt 0>height: ${item.getItemHeight()?c};</#if><#if item.getItemWidth() gt 0>width: ${item.getItemWidth()?c};</#if>'>
<#if item.isShowCaption()>
<label class="ibiz-form-item-label-${item.getLabelPos()?lower_case}"<#if item.getLabelPos() == "TOP">position="floating"</#if><#if item.getLabelPos() == "LEFT"> slot="start"<#elseif item.getLabelPos() == "RIGHT"> slot="end"</#if>>
<#if item.isEmptyCaption() == false> <span class="stars" *ngIf="${item.name}.allowEmpty">*</span>
${item.caption}</#if>
</label>
</#if>
${editor.code}
</ion-item>
</ng-template>
</ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<ion-item-group [hidden]="!fields.${item.name}?.visible" class="ibiz-form-group<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" <#if item.getPSSysCss()??>style='${item.getPSSysCss().getRawCssStyle()};'</#if>>
<#if item.isShowCaption()> <ion-item-divider><ion-label>${item.getCaption()}</ion-label></ion-item-divider></#if>
<#list items as rowitem>
${rowitem.code}
</#list>
</ion-item-group>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<ion-item class="ibiz-form-item">
${item.getRawContent()}
</ion-item>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormTabPanellVC
</#ibiztemplate>
<div class="ibiz-medit-view-panel" *ngFor="let item of ${ctrl.name}.$items;let i = index;">
<ion-card class="ibiz-medit-view-panel-card">
<ion-item>
<ion-label>${ctrl.getPSAppDEView().getCaption()}({{i + 1}})</ion-label>
<ion-button fill="outline" slot="end" (click)="${ctrl.name}.deleteItem(item, i)">删除</ion-button>
</ion-item>
<ion-card-content>
<${filename(ctrl.getPSAppDEView().codeName)} (formChange)="${ctrl.name}.editViewChange($event)" [parentData]="$parentData" [parentMode]="$parentMode" (saveCompleted)="${ctrl.name}.saveCompleted($event, i)" [saveRefView]="item.saveRefView" [(srfkey)]="item.srfkey" [viewUsage]="4"></${filename(ctrl.getPSAppDEView().codeName)}>
</ion-card-content>
</ion-card>
</div>
<div style="text-align: center;font-size: 20px;padding: 5px 0px;">
<a href="javascript:;" (click)="${ctrl.name}.addItem()">添加${ctrl.getPSAppDEView().getCaption()}</a>
</div>
\ No newline at end of file
CTRLTYPE=MULTIEDITVIEWPANEL
\ No newline at end of file
import { IBizToolbar } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
{ type: '${item.getItemType()}', name: '${item.getName()?lower_case}', tooltip: '${item.getTooltip()}', isEnableToggleMode: ${item.isEnableToggleMode()?c}, caption: '${item.caption}', tag: '${deuiaction.getUIActionTag()}', target: '${deuiaction.getActionTarget()}', priv: '<#if deuiaction.getDataAccessAction()??>${deuiaction.getDataAccessAction()}<#else></#if>'<#if item.getPSSysImage()??>, icon: '${item.getPSSysImage().getImagePath()!''}', iconcls: '${item.getPSSysImage().getCssClass()!''}'</#if>, isShowCaption: ${item.isShowCaption()?c}, isShowIcon: ${item.isShowIcon()?c} }
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSFR7DETBGroupItemVC
</#ibiztemplate>
{
name: '${item.getName()?lower_case}', caption: '${item.caption}', text: '${item.caption}', xtype: 'splitbutton',
items: [
<#list items as item>
${item.code},
</#list>
]
}
\ No newline at end of file
{ type: '${item.getItemType()}', name: '${item.getName()?lower_case}' }
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEToolbarVC
</#ibiztemplate>
/**
* 工具栏控制器
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizToolbar }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizToolbar {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
/**
* 注册工具栏按钮
*
* @memberof ${srfclassname('${ctrl.name}')}
*/
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
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
<#if ctrl.getToolbarStyle() == 'MOBBOTTOMMENU'>
<ion-button expand="block" (click)="clickButton('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#elseif ctrl.getToolbarStyle() == 'MOBWFACTIONMENU'>
<ion-button class="ibiz-quick-toolbar-item" expand="block" (click)="${ctrl.name}.click('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#else>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.click('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSFR7DETBGroupItemVC
</#ibiztemplate>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.openActionSheet('${item.name}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}<#else>more</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEToolbarVC
</#ibiztemplate>
<#if ctrl.getToolbarStyle() == 'MOBWFACTIONMENU'>
<ion-footer class="ibiz-view-footer">
<div class="ibiz-quick-toolbar">
<#list items as item>
${item.code}
</#list>
</div>
</ion-footer>
<#elseif ctrl.getToolbarStyle() == 'MOBBOTTOMMENU'>
<ion-footer<#if ctrl.getPSSysCss()??> class="${ctrl.getPSSysCss().getCssName()}"</#if>>
<#list items as item>
${item.code}
</#list>
</ion-footer>
<#else>
<#list items as item>
${item.code}
</#list>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DETBUIActionVC
</#ibiztemplate>
<#assign deuiaction=item.getPSUIAction()>
<#if ctrl.getToolbarStyle() == 'MOBBOTTOMMENU'>
<ion-button expand="block" (click)="clickButton('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#elseif ctrl.getToolbarStyle() == 'MOBWFACTIONMENU'>
<ion-button class="ibiz-quick-toolbar-item" expand="block" (click)="${ctrl.name}.click('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
<#else>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.click('${deuiaction.getUIActionTag()}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=PSFR7DETBGroupItemVC
</#ibiztemplate>
<ion-button class="ibiz-view-toolbar-button" (click)="${ctrl.name}.openActionSheet('${item.name}')">
<#if item.isShowIcon()>
<#if item.getPSSysImage()??>
<ion-icon name="<#if item.getPSSysImage().getCssClass() != "">${item.getPSSysImage().getCssClass()}<#else>more</#if>" <#if item.getPSSysImage().getImagePath() != "">src="${item.getPSSysImage().getImagePath()}"</#if>></ion-icon>
</#if>
</#if>
<#if item.isShowCaption()> ${item.caption!''}</#if>
</ion-button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEToolbarVC
</#ibiztemplate>
CTRLTYPE=TOOLBAR
\ No newline at end of file
import { IBizFormButton } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
new IBizFormButton({name: '${item.name!''}', caption: '${item.getCaption()}'<#if item.getParamPickupPSAppView()??><#assign view = item.getParamPickupPSAppView()>, pickupview: '${view.getPSAppModule().codeName?lower_case}_${view.codeName?lower_case}'</#if>, 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 { IBizSearchForm } from 'ibizsys';
import { IBizFormField } from 'ibizsys';
<#list formdetails as formdetail>
<#if formdetail.code2?length gt 0>
${formdetail.code2}
</#if>
</#list>
\ No newline at end of file
import { IBizFormDRPanel } from 'ibizsys';
import ${item.getPSAppView().codeName} from '@pages/${filename('${item.getPSAppView().getPSAppModule().codeName}')}/${filename('${item.getPSAppView().codeName}')}/${filename('${item.getPSAppView().codeName}')}';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<#assign dritem=item.getPSDEDRItem()>
new IBizFormDRPanel({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: '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
${editor.code2}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
new IBizFormField({name: '${item.name!''}', caption: '${item.getCaption()}', visible: true, type: 'FORMITEM', allowEmpty: <#if !(item.isAllowEmpty())>true<#else>false</#if>, form: this})
\ No newline at end of file
import { IBizFormPage } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormPage({name: '${item.name}', caption: '${item.getCaption()}', visible: true, type: 'FORMPAGE', form: this, child: [
<#list items as rowitem><#assign rowobj = rowitem.getObj()>'${rowobj.getName()}', </#list>
]<#if item.getPSSysPFPlugin()??>, render: (item) => {
return <>${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}</>;
}</#if>})
\ No newline at end of file
import { IBizFormGroup } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormGroup({name: '${item.name}', caption: '${item.getCaption()}', visible: true, type: 'GROUPPANEL', isShowCaption: ${item.isShowCaption()?c}, titleBarCloseMode: '${item.getTitleBarCloseMode()}'<#if item.getColLG() != -1>, lg: ${item.getColLG()?c}</#if><#if item.getColMD() != -1>, md: ${item.getColMD()?c}</#if><#if item.getColSM() != -1>, sm: ${item.getColSM()?c}</#if><#if item.getColXS() != -1>, xs: ${item.getColXS()?c}</#if>, form: this, child: [
<#list items as rowitem><#assign rowobj = rowitem.getObj()>'${rowobj.getName()}', </#list>
]<#if item.getPSSysPFPlugin()??>, render: (item) => {
return <>${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}</>;
}</#if>})
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
new IBizFormField({name: '${item.name!''}', visible: false, type: 'HIDDENFORMITEM', form: this})
\ No newline at end of file
import { IBizFormRawItem } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
new IBizFormRawItem({name: '${item.name!''}', caption: '${item.getCaption()}', visible: true, type: 'RAWITEM', form: this})
\ No newline at end of file
import { IBizFormTabPage } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
new IBizFormTabPage({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: 'TABPAGE', form: this})
\ No newline at end of file
import { IBizFormTabPanel } from 'ibizsys';
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormTabPanellVC
</#ibiztemplate>
new IBizFormTabPanel({name:'${item.name}', caption: '${item.getCaption()}', visible: true, type: 'TABPANEL', form: this})
\ No newline at end of file
<#if item.getRenderPSSysPFPlugin()??>
${item.getRenderPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
表单自定义部件没有定义插件
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormControllerCode
</#ibiztemplate>
/**
* 编辑表单控制器
*
* @export
* @class ${srfclassname('${ctrl.name}')}
* @extends { IBizSearchForm }
*/
export class ${srfclassname('${ctrl.name}')} extends IBizSearchForm {
/**
* Creates an instance of ${srfclassname('${ctrl.name}')}.
* @param {*} opts
* @memberof ${srfclassname('${ctrl.name}')}
*/
constructor(opts: any) {
super({
name: '${ctrl.name}',
...opts
});
}
/**
* 注册编辑表单项
*
* @memberof ${srfclassname('${ctrl.name}')}
*/
public regFormItems(): void {
<#list formdetails as formdetail>
<#if formdetail.code?length gt 0>
<#assign formitem = formdetail.getObj()>
this.regFormItem(${formdetail.code});
</#if>
</#list>
}
}
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<ion-button [hidden]="!fields.${item.name}?.visible" expand="full" class="ibiz-form-button<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" style='<#if item.getPSSysCss()??>${item.getPSSysCss().getRawCssStyle()};</#if><#if item.getHeight() gt 0>height: ${item.getHeight()}px;</#if>' (click)="fields?.${item.name}.onClick()">${item.caption}</ion-button>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormDetailVC
</#ibiztemplate>
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<ibiz-form-item [field]="fields?.${item.name}">
<ng-template let-${item.name}>
<ion-item [hidden]="!${item.name}?.visible" class="ibiz-form-item ${item.getLabelPos()?lower_case}<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" style='<#if item.getPSSysCss()??>${item.getPSSysCss().getRawCssStyle()};</#if><#if item.getItemHeight() gt 0>height: ${item.getItemHeight()?c};</#if><#if item.getItemWidth() gt 0>width: ${item.getItemWidth()?c};</#if>'>
<#if item.isShowCaption()>
<label class="ibiz-form-item-label-${item.getLabelPos()?lower_case}"<#if item.getLabelPos() == "TOP">position="floating"</#if><#if item.getLabelPos() == "LEFT"> slot="start"<#elseif item.getLabelPos() == "RIGHT"> slot="end"</#if>>
<#if item.isEmptyCaption() == false> <span class="stars" *ngIf="${item.name}.allowEmpty">*</span>
${item.caption}</#if>
</label>
</#if>
${editor.code}
</ion-item>
</ng-template>
</ibiz-form-item>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
<#list items as rowitem>
${rowitem.code}
</#list>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormGroupPanellVC
</#ibiztemplate>
<#if item.getPSSysPFPlugin()??>
${item.getPSSysPFPlugin().getCode("CODE",pf.getId(),pfstyle.getId(),view,ctrl,item)}
<#else>
<ion-item-group [hidden]="!fields.${item.name}?.visible" class="ibiz-form-group<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" <#if item.getPSSysCss()??>style='${item.getPSSysCss().getRawCssStyle()};'</#if>>
<#if item.isShowCaption()> <ion-item-divider><ion-label>${item.getCaption()}</ion-label></ion-item-divider></#if>
<#list items as rowitem>
${rowitem.code}
</#list>
</ion-item-group>
</#if>
\ No newline at end of file
<#ibiztemplate>
PUBOBJ=Ionic4.PSIonic4DEFormItemVC
</#ibiztemplate>
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册