提交 226f2d45 编写于 作者: RedPig97's avatar RedPig97

update:文件名称更改

上级 c88919ea
......@@ -13,6 +13,7 @@
</template>
<template v-slot:header-bottom>
<slot name="topMessage" />
<slot name="quickSearchForm" />
<slot name="searchForm" />
</template>
<template v-slot:body-top>
......
......@@ -72,7 +72,8 @@ public declare state: GridViewState;
const superParams = super.moduleInstall();
return {
...superParams,
grid: this.grid
grid: this.grid,
onSearchFormSearch: this.onSearchFormSearch.bind(this)
};
}
}
......@@ -4,7 +4,8 @@ export * from './exp-bar-control'
export * from './form-control'
export * from './menu-control'
export * from './grid-control'
export * from './pickupviewpanel-control'
export * from './pickup-view-panel-control'
export * from './tree-exp-bar-control'
export * from './tree-control'
export * from './search-form-control'
\ No newline at end of file
export * from './search-form-control'
export * from './quick-search-form-control'
\ No newline at end of file
export * from './pickup-view-panel-control-prop'
export * from './pickup-view-panel-control-state'
export * from './pickup-view-panel-control'
\ No newline at end of file
import { IActionParam, MainControl } from '@core';
import { PickupViewPanelControlProps } from './pickupviewpanel-control-prop';
import { PickupViewPanelControlState } from './pickupviewpanel-control-state';
import { PickupViewPanelControlProps } from './pickup-view-panel-control-prop';
import { PickupViewPanelControlState } from './pickup-view-panel-control-state';
/**
* @description 选择视图面板部件
......
export * from './pickupviewpanel-control-prop'
export * from './pickupviewpanel-control-state'
export * from './pickupviewpanel-control'
\ No newline at end of file
export * from './quick-search-form-control-prop'
export * from './quick-search-form-control-state'
export * from './quick-search-form-control'
\ No newline at end of file
import { FormControlProps, IParam } from "@core";
/**
* @description 表单部件的props
* @export
* @interface QuickSearchFormControlProps
* @extends {FormControlProps}
*/
export interface QuickSearchFormControlProps extends FormControlProps {
/**
* @description 是否显示气泡框
* @type {boolean}
* @memberof QuickSearchFormControlProps
*/
showPopover: boolean;
/**
* @description 选中历史项
* @type {IParam}
* @memberof QuickSearchFormControlProps
*/
selectHistoryItem: IParam;
/**
* @description 历史项
* @type {IParam[]}
* @memberof QuickSearchFormControlProps
*/
historyItems: IParam[];
}
\ No newline at end of file
import { FormControlState, IParam } from '@core';
/**
* @description 表单部件状态
* @export
* @interface QuickSearchFormControlState
* @extends {FormControlState}
*/
export interface QuickSearchFormControlState extends FormControlState {
}
import { FormControl, FormControlState, IActionParam, IParam } from '@core';
/**
* @description 搜索表单部件
* @export
* @class FormControl
* @extends {MainControl}
*/
export class QuickSearchFormControl extends FormControl {
/**
* @description 部件状态
* @type {FormControlState}
* @memberof FormControl
*/
public declare state: FormControlState;
/**
* @description 处理编辑器事件
* @param {IActionParam} actionParam 行为参数
* @memberof FormControl
*/
public handleEditorEvent(actionParam: IActionParam) {
super.handleEditorEvent(actionParam);
this.emit("ctrlEvent", {
tag: this.state.controlName,
action: "selectionChange",
data: this.state.data,
});
}
/**
* @description 安装部件所有功能模块的方法
* @return {*}
* @memberof QuickSearchFormControl
*/
public moduleInstall() {
const superParams = super.moduleInstall();
// 表单行为能力启用
const { loadDraft } = this.useLoadDraft();
return {
...superParams,
loadDraft,
handleEditorEvent: this.handleEditorEvent.bind(this),
};
}
}
......@@ -2,7 +2,7 @@
import { Subject } from 'rxjs'
import { Ref } from 'vue';
import { IndexView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
{{#page.ctrls}}
{{#eq controlType "APPMENU"}}
import { {{codeName}}Menu } from '@widgets/app/{{spinalCase codeName}}-menu';
......@@ -31,7 +31,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const { state, menu } = new IndexView(ViewConfig, props, emit).moduleInstall();
const { state, menu } = new IndexView(viewState, props, emit).moduleInstall();
const collapsed: Ref<boolean> = ref(false);
const collapsedChange = () => {
collapsed.value = !collapsed.value;
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { EditView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
{{#page.ctrls}}
{{#eq controlType "FORM"}}
import { {{codeName}}Form } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-form';
......@@ -29,7 +29,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const { state, form, handleToolbarEvent } = new EditView(ViewConfig, props, emit).moduleInstall();
const { state, form, handleToolbarEvent } = new EditView(viewState, props, emit).moduleInstall();
</script>
......
export const ViewConfig = {
export const viewState = {
gridRowActiveMode: {{page.gridRowActiveMode}},
rowEditState: {{#if page.enableRowEdit}}{{page.rowEditDefault}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
......
......@@ -2,13 +2,16 @@
import { Subject } from 'rxjs';
import { FilterOutlined } from '@ant-design/icons-vue';
import { GridView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
{{#page.ctrls}}
{{#eq controlType "GRID"}}
import { {{codeName}}Grid } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-grid';
{{/eq}}
{{#if (and (eq controlType "SEARCHFORM") (eq name 'searchform'))}}
import { {{codeName}}SearchForm } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-searchForm';
import { {{codeName}}SearchForm } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-search-form';
{{/if}}
{{#if (and (eq controlType "SEARCHFORM") (eq name 'quicksearchform'))}}
import { {{codeName}}QuickSearchForm } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-quick-search-form';
{{/if}}
{{/page.ctrls}}
......@@ -33,7 +36,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const { state, grid, handleCtrlEvent, handleToolbarEvent } = new GridView(ViewConfig, props, emit).moduleInstall();
const { state, grid, handleCtrlEvent, handleToolbarEvent, onSearchFormSearch } = new GridView(viewState, props, emit).moduleInstall();
</script>
......@@ -56,7 +59,7 @@ const { state, grid, handleCtrlEvent, handleToolbarEvent } = new GridView(ViewCo
{{#if page.enableFilter}}
<template v-slot:quickSearch>
<div class='app-quick-search'>
<a-input />
<a-input @click="onSearchFormSearch"/>
<a-popover trigger="click" :overlayStyle="{width: '50%'}">
<template #content>
<{{codeName}}SearchForm
......@@ -83,6 +86,17 @@ const { state, grid, handleCtrlEvent, handleToolbarEvent } = new GridView(ViewCo
</template>
{{/if}}
{{/if}}
{{#if (and (eq controlType "SEARCHFORM") (eq name 'quicksearchform'))}}
<template v-slot:quickSearchForm>
<{{codeName}}QuickSearchForm
:context="state.context"
:viewParams="state.viewParams"
:controlAction="state.{{camelCase name}}.action"
:viewSubject="state.viewSubject"
@ctrlEvent="handleCtrlEvent"
></{{codeName}}QuickSearchForm>
</template>
{{/if}}
{{#eq controlType "GRID"}}
<{{codeName}}Grid
ref="grid"
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { PickupGridView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
// todo 表格部件拿不到目前导入固定表格
import { MainGrid } from '@widgets/chart-data/main-grid';
{{#each page.controls as |control|}}
......@@ -32,7 +32,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const { state, confirm, handleCtrlEvent } = new PickupGridView(ViewConfig, props, emit).moduleInstall();
const { state, confirm, handleCtrlEvent } = new PickupGridView(viewState, props, emit).moduleInstall();
</script>
<template>
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { PickupView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
{{#page.ctrls}}
{{#eq controlType "PICKUPVIEWPANEL"}}
import { {{codeName}}PickUpViewPanel } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-pickup-view-panel';
......@@ -28,7 +28,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const { state, cancel, confirm,handleCtrlEvent } = new PickupView(ViewConfig, props, emit).moduleInstall();
const { state, cancel, confirm,handleCtrlEvent } = new PickupView(viewState, props, emit).moduleInstall();
</script>
<template>
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { TreeExpView, IActionParam, IParam, IContext } from '@core';
import { ViewConfig } from './{{spinalCase page.codeName}}-config';
import { viewState } from './{{spinalCase page.codeName}}-state';
{{#page.ctrls}}
{{#eq controlType "TREEEXPBAR"}}
import { {{codeName}}TreeExpBar } from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-tree-exp-bar';
......@@ -25,7 +25,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块
const { state, handleCtrlEvent, handleToolbarEvent } = new TreeExpView(ViewConfig, props, emit).moduleInstall();
const { state, handleCtrlEvent, handleToolbarEvent } = new TreeExpView(viewState, props, emit).moduleInstall();
</script>
<template>
......
<script setup lang="ts">
import { Subject } from "rxjs";
import { CtrlConfig } from "./{{spinalCase ctrl.codeName}}-menu-config";
import { ctrlState } from "./{{spinalCase ctrl.codeName}}-menu-state";
import { IParam, IActionParam, MenuControl, IContext } from "@core";
interface Props {
context: IContext;
......@@ -20,7 +20,7 @@ interface CtrlEmit {
}
const emit = defineEmits < CtrlEmit > ();
const { state, menuSelect } = new MenuControl(CtrlConfig, props, emit).moduleInstall();
const { state, menuSelect } = new MenuControl(ctrlState, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
......
......@@ -47,7 +47,7 @@ export class ControlVO extends ControlVOBase {
}
// 部件配置对象
export const CtrlConfig = {
export const ctrlState = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......
{{>@macro/front-end/widgets/form-detail/include-form.hbs}}
<script setup lang="ts">
import { Subject } from 'rxjs';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-form-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-form-state';
import { FormControl, IActionParam, IParam, ControlAction, IContext } from '@core';
interface Props {
......@@ -25,7 +25,7 @@ interface CtrlEmit {
const emit = defineEmits < CtrlEmit > ();
// 安装功能模块,提供状态和能力方法
const { state, handleEditorEvent, handleComponentEvent } = new FormControl(CtrlConfig, props, emit).moduleInstall();
const { state, handleEditorEvent, handleComponentEvent } = new FormControl(ctrlState, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
......
......@@ -19,7 +19,7 @@ export class ControlVO extends ControlVOBase {
}
export const CtrlConfig = {
export const ctrlState = {
controlCodeName: "{{ctrl.codeName}}",
controlName: "{{ctrl.name}}",
controlService: new GridService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......
{{>@macro/front-end/widgets/grid-detail/include-grid.hbs}}
<script setup lang="ts">
import { Subject } from 'rxjs';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-grid-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-grid-state';
import { GridControl, IActionParam, IParam, IContext, ControlAction, deepCopy } from '@core';
interface Props {
......@@ -33,7 +33,7 @@ interface CtrlEmit {
const emit = defineEmits < CtrlEmit > ();
// 安装功能模块,提供状态和能力
const { state, load, handleEditorEvent, handleToolbarEvent, custom } = new GridControl(CtrlConfig, props, emit).moduleInstall();
const { state, load, handleEditorEvent, handleToolbarEvent, custom } = new GridControl(ctrlState, props, emit).moduleInstall();
const { scrollOption, rowKey, rowClassName, customRow, rowSelectionOption, resizeColumn, handleGridChange } = custom;
// 暴露内部状态及能力
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { IActionParam, IParam, ControlAction, PickupViewPanelControl, IContext } from '@core';
import { CtrlConfig } from './{{ctrl.codeName.spinalCase}}-pickupviewpanel-config';
import { ctrlState } from './{{ctrl.codeName.spinalCase}}-pickupviewpanelstate';
interface Props {
context: IContext;
......@@ -31,7 +31,7 @@ interface CtrlEmit {
const emit = defineEmits < CtrlEmit > ();
// 安装功能模块,提供状态和能力方法
const { state, inited, viewdata, viewparam } = new PickupViewPanelControl(CtrlConfig, props, emit).moduleInstall();
const { state, inited, viewdata, viewparam } = new PickupViewPanelControl(ctrlState, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
......
import {{ctrl.codeName}}PickUpViewPanel from "./{{spinalCase ctrl.codeName}}-pickup-view-panel.vue";
export { {{ctrl.codeName}}PickUpViewPanel };
<script setup lang="ts">
import { Subject } from 'rxjs';
import { IActionParam, IParam, ControlAction, PickupViewPanelControl, IContext } from '@core';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-pickup-view-panel-config';
import ChartDataPickUpGridView from '../../../page/sample/chart-data-pickup-grid-view';
interface Props {
context: IContext;
viewParams?: IParam;
controlAction: ControlAction;
showBusyIndicator?: boolean;
isSingleSelect?: boolean;
viewMode?: number;
selectedData?: string;
isShowButton?: boolean;
viewSubject: Subject<IActionParam>;
}
const props = withDefaults(defineProps < Props > (), {
viewSubject: () => new Subject < IActionParam > (),
viewMode: 0,
isSingleSelect: false,
isShowButton: true,
showBusyIndicator: true,
})
// emit声明
interface CtrlEmit {
(name: "ctrlEvent", value: IActionParam): void;
}
const emit = defineEmits < CtrlEmit > ();
// 安装功能模块,提供状态和能力方法
const { state, handleViewEvent } = new PickupViewPanelControl(CtrlConfig, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
</script>
<template>
<div class="app-pickupviewpanel">
<ChartDataPickUpGridView :isSingleSelect="state.isSingleSelect" :isShowButton="state.isShowButton"
:selectedData="state.selectedData" @viewEvent="handleViewEvent"></ChartDataPickUpGridView>
</div>
</template>
\ No newline at end of file
export const CtrlConfig = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
data: {},
embeddedView: {
{{#if ctrl.embeddedPSAppDEView}}
viewName: '{{ctrl.embeddedPSAppDEView.codeName}}'
{{/if}}
}
};
\ No newline at end of file
import {{ctrl.codeName}}QuickSearchForm from "./{{spinalCase ctrl.codeName}}-quick-search-form.vue";
export { {{ctrl.codeName}}QuickSearchForm };
......@@ -49,7 +49,7 @@ export class ControlVO extends ControlVOBase {
}
// 部件配置对象
export const CtrlConfig = {
export const ctrlState = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......
{{>@macro/front-end/widgets/form-detail/include-form.hbs}}
<script setup lang="ts">
import { Subject } from 'rxjs';
import { SaveOutlined, CloseOutlined } from '@ant-design/icons-vue';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-quick-search-form-state';
import { QuickSearchFormControl, IActionParam, IParam, ControlAction, IContext } from '@core';
interface Props {
context: IContext;
viewParams?: IParam;
controlAction: ControlAction;
showBusyIndicator?: boolean;
viewSubject: Subject<IActionParam>;
}
const props = withDefaults(defineProps<Props>(), {
viewSubject: () => new Subject<IActionParam>(),
showBusyIndicator: true,
})
// emit声明
interface CtrlEmit {
(name: "ctrlEvent", value: IActionParam): void;
}
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { state, handleEditorEvent } = new QuickSearchFormControl(ctrlState, props, emit).moduleInstall();
</script>
<template>
<a-form
name="{{ctrl.codeName}}"
class="app-quick-search-form{{#if ctrl.psSysCss}} {{ctrl.psSysCss.cssName}}{{/if}}"
style="{{#if ctrl.formWidth}}width: {{ctrl.formWidth}}px;{{/if}}"
:model="state.data"
:rules="state.rules">
<a-row>
{{#if ctrl.noTabHeader}}
{{#each ctrl.psDEFormPages as | ctrlPage | }}
{{#each ctrlPage.psDEFormDetails as | formDetail | }}
{{>(lookup . 'formDetail.detailType') item=formDetail}}
{{/each }}
{{/each}}
{{else}}
<a-tabs class="app-form-page">
{{#each ctrl.psDEFormPages as | ctrlPage | }}
{{>(lookup . 'ctrlPage.detailType') item=ctrlPage }}
{{/each}}
</a-tabs>
{{/if}}
</a-row>
</a-form>
</template>
\ No newline at end of file
{{>@macro/front-end/widgets/form-detail/include-form.hbs}}
import { ControlVOBase, EditFormService } from '@core';
import { {{pascalCase ctrl.psAppDataEntity.codeName}}Service } from '@api/{{spinalCase ctrl.psAppDataEntity.codeName}}/{{spinalCase ctrl.psAppDataEntity.codeName}}-service';
/**
* 部件展示数据对象
* @export
* @class ControlVO
*/
export class ControlVO extends ControlVOBase {
/**
* 用后台数据对象创建部件数据对象
* @param data 后台数据
*/
constructor(data: any){
super(data);
// 记录没有映射的属性
{{#if ctrl.psDEFormItems}}
this.$ownKeys =
{{~#each ctrl.psDEFormItems as | formItem | ~}}
{{#if @first}}[{{/if~}}
'{{lowerCase formItem.id}}'{{#unless @last}},{{/unless}}
{{~#if @last}}];{{/if~}}
{{/each}}
{{/if}}
}
// 表单里映射了属性的字段
{{#each ctrl.psDEFormItems as | formItem | }}
{{!-- TODO: 表单formItem的name拿不到 --}}
{{#neq formItem.psAppDEField null }}
get {{lowerCase formItem.id}}() {
return this.$DO.{{lowerCase formItem.psAppDEField.codeName}};
}
set {{lowerCase formItem.id}}(value: any) {
this.$DO.{{lowerCase formItem.psAppDEField.codeName}} = value;
}
{{/neq}}
{{/each}}
// 表单里没有映射实体属性的字段(srfuf除外)
{{#each ctrl.psDEFormItems as | formItem | }}
{{#if (and (eq formItem.psAppDEField null) (neq formItem.id "srfuf" )) }}
{{lowerCase formItem.id}}: any;
{{/if}}
{{/each}}
}
// 部件配置对象
export const ctrlState = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
data: new ControlVO({}),
showPopover: false,
selectHistoryItem: {},
historyItems: [],
detailsModel: {
{{#each ctrl.psDEFormPages as | FormPage | }}
{{>(lookup 'FORMDETAILSMODEL') items=FormPage.psDEFormDetails}}
{{/each}}
},
rules: {
{{#each ctrl.psDEFormEditItemVRs as | ruleItem |}}
{{#neq ruleItem 2}}
{{#if ruleItem.valueRuleType 'DEFVALUERULE'}}
{{psDEFormEditItemName}}: [
{{#each ruleItem.psDEFVRGroupCondition as | condition |}}
{trigger: ['change', 'blur'],
validator: (_rule: RuleObject, value: string) => verifyRules(_rule,value,{
{{#condition.condType}}type: '{{condition.condType}}',{{/condition.condType}}
{{#condition.name}}name: '{{condition.name}}',{{/condition.name}}
{{#condition.maxValue}}maxValue: '{{condition.maxValue}}',{{/condition.maxValue}}
{{#condition.minValue}}minValue: '{{condition.minValue}}',{{/condition.minValue}}
{{#condition.ruleInfo}}ruleInfo: '{{condition.ruleInfo}}',{{/condition.ruleInfo}}
{{#condition.includeMaxValue}}includeMaxValue: '{{condition.includeMaxValue}}',{{/condition.includeMaxValue}}
{{#condition.includeMinValue}}includeMinValue: '{{condition.includeMinValue}}',{{/condition.includeMinValue}}
}) }
{{/each}}
]
{{/if}}
{{/neq}}
{{/each}}
},
};
\ No newline at end of file
......@@ -2,7 +2,7 @@
<script setup lang="ts">
import { Subject } from 'rxjs';
import { SaveOutlined, CloseOutlined } from '@ant-design/icons-vue';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-searchForm-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-search-form-state';
import { SearchFormControl, IActionParam, IParam, ControlAction, IContext } from '@core';
interface Props {
......@@ -26,7 +26,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { state, handleEditorEvent, handleComponentEvent, onSearch, loadDraft, addHistoryItem, onCancel, removeHistoryItem } = new SearchFormControl(CtrlConfig, props, emit).moduleInstall();
const { state, handleEditorEvent, handleComponentEvent, onSearch, loadDraft, addHistoryItem, onCancel, removeHistoryItem } = new SearchFormControl(ctrlState, props, emit).moduleInstall();
</script>
<template>
......@@ -37,13 +37,14 @@ const { state, handleEditorEvent, handleComponentEvent, onSearch, loadDraft, add
:model="state.data"
:rules="state.rules">
<a-row>
<a-col>{{#if ctrl.noTabHeader}}
<a-col>
{{#if ctrl.noTabHeader}}
<a-row>
{{#each ctrl.psDEFormPages as | ctrlPage | }}
{{#each ctrlPage.psDEFormDetails as | formDetail | }}
{{>(lookup . 'formDetail.detailType') item=formDetail}}
{{/each }}
{{/each}}
{{#each ctrl.psDEFormPages as | ctrlPage | }}
{{#each ctrlPage.psDEFormDetails as | formDetail | }}
{{>(lookup . 'formDetail.detailType') item=formDetail}}
{{/each }}
{{/each}}
{{else}}
<a-tabs class="app-form-page">
{{#each ctrl.psDEFormPages as | ctrlPage | }}
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { IActionParam, IParam, ControlAction, TreeExpBarControl, IContext } from '@core';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-tree-exp-bar-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-tree-exp-bar-state';
{{#ctrl.ctrls}}
{{#eq controlType "TREEVIEW"}}
import { {{codeName}}Tree} from '@widgets/{{spinalCase appEntity.codeName}}/{{spinalCase codeName}}-tree';
......@@ -35,7 +35,7 @@ interface CtrlEmit {
const emit = defineEmits < CtrlEmit > ();
// 安装功能模块,提供状态和能力方法
const { state, handleCtrlEvent } = new TreeExpBarControl(CtrlConfig, props, emit).moduleInstall();
const { state, handleCtrlEvent } = new TreeExpBarControl(ctrlState, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
......
......@@ -179,7 +179,7 @@ export class ControlVO extends ControlVOBase implements TreeControlVO {
}
}
export const CtrlConfig = {
export const ctrlState = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new TreeService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......
<script setup lang="ts">
import { Subject } from 'rxjs';
import { IActionParam, IParam, ControlAction, TreeControl, IContext } from '@core';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-tree-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-tree-state';
interface Props {
context: IContext;
......@@ -29,7 +29,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { state, load, treeNodeSelect } = new TreeControl(CtrlConfig, props, emit).moduleInstall();
const { state, load, treeNodeSelect } = new TreeControl(ctrlState, props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ state, name: '{{ctrl.name}}' });
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册