提交 c0ceb20f 编写于 作者: Mosher's avatar Mosher

update:更新

1、调整视图及部件状态参数导出逻辑
2、数据视图样式调整
3、卡片视图部件支持面板
上级 10ad4d5c
......@@ -12,6 +12,7 @@ import net.ibizsys.model.control.IPSControl;
import net.ibizsys.model.control.IPSControlContainer;
import net.ibizsys.model.control.dashboard.IPSDBContainerPortletPart;
import net.ibizsys.model.control.dashboard.IPSDBPortletPart;
import net.ibizsys.model.control.dataview.IPSDEDataView;
import net.ibizsys.model.control.grid.IPSDEGrid;
import net.ibizsys.model.control.grid.IPSDEGridColumn;
import net.ibizsys.model.control.list.IPSList;
......@@ -122,6 +123,7 @@ public class CtrlModel extends BaseModel{
public void handleChildControls() {
IPSControl control = getControl();
// 具有子部件的容器部件
if (control instanceof IPSControlContainer) {
IPSControlContainer controlContainer = (IPSControlContainer)control;
List<IPSControl> controls = controlContainer.getPSControls();
......@@ -204,6 +206,7 @@ public class CtrlModel extends BaseModel{
}
}
}
// 列表部件项布局面板
if (control instanceof IPSList) {
IPSList list = (IPSList)control;
IPSLayoutPanel layoutPanel = list.getItemPSLayoutPanel();
......@@ -220,6 +223,24 @@ public class CtrlModel extends BaseModel{
}
}
}
// 卡片视图部件项布局面板
if (control instanceof IPSDEDataView) {
IPSDEDataView dataView = (IPSDEDataView) control;
IPSLayoutPanel layoutPanel = dataView.getItemPSLayoutPanel();
if (layoutPanel != null) {
CtrlModel ctrlModel = new CtrlModel(app, layoutPanel);
if (ctrlModel.getControl().getPSAppDataEntity() != null) {
AppEntityModel ctrlAppEntity = app.getAppEntity(ctrlModel.getControl().getPSAppDataEntity().getCodeName());
ctrlModel.setAppEntity(ctrlAppEntity);
ctrlAppEntity.addCtrl(ctrlModel.getId(), ctrlModel);
}
addCtrl(ctrlModel.getId(), ctrlModel);
if(!app.getCtrlsMap().containsKey(ctrlModel.getId())) {
app.getCtrlsMap().put(ctrlModel.getId(),ctrlModel);
}
}
}
}
public void handleAllPortlets(IPSControlContainer control) {
......
......@@ -7,5 +7,11 @@ import { MainControlProps } from "../main-control";
* @extends {MainControlProps}
*/
export interface PanelControlProps extends MainControlProps {
/**
* 导航数据
*
* @type {any[]}
* @memberof PanelControlProps
*/
navDatas: any[];
}
\ No newline at end of file
import { IActionParam, IParam } from "@core";
import { MainControl } from "../main-control";
import { PanelControlProps } from "./panel-control-prop";
import { PanelControlState } from "./panel-control-state";
/**
......@@ -17,6 +18,14 @@ export class PanelControl extends MainControl {
*/
public declare state: PanelControlState;
/**
* 面板部件输入参数
*
* @type {PanelControlProps}
* @memberof PanelControl
*/
public declare props: PanelControlProps;
/**
* 获取当前激活数据
*
......@@ -34,14 +43,9 @@ export class PanelControl extends MainControl {
* @memberof PanelControl
*/
protected useNavDatas() {
const navDatas: any = toRef(this.props, 'navDatas');
if (this.props.panelType === 'LAYOUT') {
watch(() => this.props.navDatas, (newVal: any, oldVal: any) => {
this.load();
}
watch(navDatas, (newVal: any, oldVal: any) => {
this.load();
});
this.state.navDatas = navDatas;
}, { immediate: true, deep: true });
}
/**
......@@ -60,7 +64,8 @@ export class PanelControl extends MainControl {
const { viewSubject, controlName } = this.state;
const load = async (opts: IParam = {}) => {
const { dataMode } = this.state;
const { navDatas, data } = toRefs(this.state);
const { navDatas } = toRefs(this.props);
const { data } = toRefs(this.state);
if (dataMode === 0) {
// 不获取,使用传入数据
if (navDatas && navDatas.value && navDatas.value.length) {
......@@ -153,10 +158,10 @@ export class PanelControl extends MainControl {
*/
public moduleInstall() {
const superParams = super.moduleInstall();
this.useLoad();
this.useNavDatas();
return {
...superParams,
load: this.useLoad(),
onPanelItemEvents: this.onPanelItemEvents.bind(this)
}
}
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
{{#if page.defPSAppView}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
{{#if page.defPSAppView}}
defaultView: '{{page.defPSAppView.codeName}}',
{{/if}}
{{/if}}
}
};
\ No newline at end of file
......@@ -31,7 +31,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const indexView = new IndexView(viewState, props, emit).moduleInstall();
const indexView = new IndexView(viewState(), props, emit).moduleInstall();
const { state, menu } = indexView;
const collapsed: Ref<boolean> = ref(false);
const collapsedChange = () => {
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -29,7 +29,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const portalView = new PortalView(viewState, props, emit).moduleInstall();
const portalView = new PortalView(viewState(), props, emit).moduleInstall();
const { state, dashboard, onCtrlEvent } = portalView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -14,7 +14,7 @@ import { {{codeName}}SearchForm } from '@widgets/{{spinalCase psAppDataEntity.co
import { {{codeName}}QuickSearchForm } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-quick-search-form';
{{/if}}
{{#eq controlType "SEARCHBAR"}}
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchBar';
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchbar';
{{/eq}}
{{/page.ctrls}}
......@@ -39,7 +39,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const dataView = new DataView(viewState, props, emit).moduleInstall();
const dataView = new DataView(viewState(), props, emit).moduleInstall();
const { state, dataViewControl, searchForm, quickSearchForm, onCtrlEvent, onToolbarEvent, onQuickGroupEvent, onQuickSearchEvent } = dataView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -29,7 +29,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const editView = new EditView(viewState, props, emit).moduleInstall();
const editView = new EditView(viewState(), props, emit).moduleInstall();
const { state, form, onToolbarEvent, onCtrlEvent } = editView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const viewState = {
export const viewState = () => {
return {
{{#each page.ctrls as | ctrl |}}
{{#if (eq ctrl.controlType "GRIDEXPBAR")}}
gridExpBarName: '{{ctrl.name}}',
{{/if}}
{{/each}}
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -25,7 +25,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块
const gridExpView = new GridExpView(viewState, props, emit).moduleInstall()
const gridExpView = new GridExpView(viewState(), props, emit).moduleInstall()
const { state, onCtrlEvent, onToolbarEvent } = gridExpView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
gridRowActiveMode: {{page.gridRowActiveMode}},
rowEditState: {{#if page.enableRowEdit}}{{page.rowEditDefault}}{{else}}false{{/if}},
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -14,7 +14,7 @@ import { {{codeName}}SearchForm } from '@widgets/{{spinalCase psAppDataEntity.co
import { {{codeName}}QuickSearchForm } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-quick-search-form';
{{/if}}
{{#eq controlType "SEARCHBAR"}}
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchBar';
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchbar';
{{/eq}}
{{/page.ctrls}}
......@@ -39,7 +39,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const gridView = new GridView(viewState, props, emit).moduleInstall();
const gridView = new GridView(viewState(), props, emit).moduleInstall();
const { state, grid, searchForm, quickSearchForm, onCtrlEvent, onToolbarEvent, onQuickGroupEvent, onQuickSearchEvent } = gridView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const viewState = {
export const viewState = () => {
return {
{{#each page.ctrls as | ctrl |}}
{{#if (eq ctrl.controlType "LISTEXPBAR")}}
listExpBarName: '{{ctrl.name}}',
{{/if}}
{{/each}}
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -25,7 +25,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块
const listExpView = new ListExpView(viewState, props, emit).moduleInstall()
const listExpView = new ListExpView(viewState(), props, emit).moduleInstall()
const { state, onCtrlEvent, onToolbarEvent } = listExpView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -14,7 +14,7 @@ import { {{codeName}}SearchForm } from '@widgets/{{spinalCase psAppDataEntity.co
import { {{codeName}}QuickSearchForm } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-quick-search-form';
{{/if}}
{{#eq controlType "SEARCHBAR"}}
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchBar';
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchbar';
{{/eq}}
{{/page.ctrls}}
......@@ -39,7 +39,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const listView = new ListView(viewState, props, emit).moduleInstall();
const listView = new ListView(viewState(), props, emit).moduleInstall();
const { state, list, searchForm, quickSearchForm, onCtrlEvent, onToolbarEvent, onQuickGroupEvent, onQuickSearchEvent } = listView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const viewState = {
export const viewState = () => {
return {
// 实际选中数据
selections: [],
selectedData: [],
// 右侧面板选中数据
rightPanelSelections: [],
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -29,7 +29,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const mpickupView = new MPickupView(viewState, props, emit).moduleInstall();
const mpickupView = new MPickupView(viewState(), props, emit).moduleInstall();
const { state, pickupViewPanel, onCancel, onConfirm, onCtrlEvent, onMoveRight, onMoveLeft, onAllMoveRight, onAllMoveLeft, onRightPanelClick } = mpickupView;
</script>
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -29,7 +29,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const panelView = new PanelView(viewState, props, emit).moduleInstall();
const panelView = new PanelView(viewState(), props, emit).moduleInstall();
const { state, panel, onToolbarEvent, onCtrlEvent } = panelView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const viewState = {
export const viewState = () => {
return {
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
gridRowActiveMode: {{page.gridRowActiveMode}},
rowEditState: {{#if page.enableRowEdit}}{{page.rowEditDefault}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -40,7 +40,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const pickupGridView = new PickupGridView(viewState, props, emit).moduleInstall();
const pickupGridView = new PickupGridView(viewState(), props, emit).moduleInstall();
const { state, grid, onCtrlEvent, onQuickGroupEvent, onQuickSearchEvent } = pickupGridView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -40,7 +40,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const pickupTreeView = new PickupTreeView(viewState, props, emit).moduleInstall();
const pickupTreeView = new PickupTreeView(viewState(), props, emit).moduleInstall();
const { state, tree, onCtrlEvent, onQuickGroupEvent, onQuickSearchEvent } = pickupTreeView;
</script>
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -28,7 +28,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const pickupView = new PickupView(viewState, props, emit).moduleInstall();
const pickupView = new PickupView(viewState(), props, emit).moduleInstall();
const { state, onCancel, onConfirm, onCtrlEvent } = pickupView;
</script>
......
export const viewState = {
{{> @macro/front-end/views/view-base-config.hbs}}
export const viewState = () => {
return {
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -28,7 +28,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const tabExpView = new TabExpView(viewState, props, emit).moduleInstall();
const tabExpView = new TabExpView(viewState(), props, emit).moduleInstall();
const { state, onCtrlEvent } = tabExpView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
{{#each page.ctrls as | ctrl |}}
{{#if (eq ctrl.controlType "TREEEXPBAR")}}
treeExpBarName: '{{ctrl.name}}',
{{/if}}
{{/each}}
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -25,7 +25,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块
const treeExpView = new TreeExpView(viewState, props, emit).moduleInstall()
const treeExpView = new TreeExpView(viewState(), props, emit).moduleInstall()
const { state, onCtrlEvent, onToolbarEvent } = treeExpView;
</script>
......
export const viewState = {
export const viewState = () => {
return {
enableQuickSearch: {{#if page.enableQuickSearch}}{{page.enableQuickSearch}}{{else}}false{{/if}},
expandSearchForm: {{#if page.expandSearchForm}}{{page.expandSearchForm}}{{else}}false{{/if}},
{{> @macro/front-end/views/view-base-config.hbs}}
{{> @macro/front-end/views/view-base-config.hbs}}
}
};
\ No newline at end of file
......@@ -13,7 +13,7 @@ import { {{codeName}}SearchForm } from '@widgets/{{spinalCase psAppDataEntity.co
import { {{codeName}}QuickSearchForm } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-quick-search-form';
{{/if}}
{{#eq controlType "SEARCHBAR"}}
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchBar';
import { {{codeName}}SearchBar } from '@widgets/{{spinalCase psAppDataEntity.codeName}}/{{spinalCase codeName}}-searchbar';
{{/eq}}
{{/page.ctrls}}
......@@ -38,7 +38,7 @@ interface ViewEmit {
const emit = defineEmits<ViewEmit>();
// 安装功能模块,提供状态和能力方法
const treeView = new TreeView(viewState, props, emit).moduleInstall();
const treeView = new TreeView(viewState(), props, emit).moduleInstall();
const { state, tree, onCtrlEvent, onToolbarEvent, onQuickGroupEvent, onQuickSearchEvent } = treeView;
{{#if page.psAppCounterRefs}}
// 计数器数据
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
defaultOpens: [],
......@@ -9,4 +10,5 @@ export const ctrlState = {
{{/each}}
],
funcs: App.getAllFuncs(),
};
\ No newline at end of file
}
}
\ No newline at end of file
......@@ -23,7 +23,7 @@ interface CtrlEmit {
}
const emit = defineEmits <CtrlEmit> ();
const { name, state, onMenuSelect, load } = new MenuControl(ctrlState, props, emit).moduleInstall();
const { name, state, onMenuSelect, load } = new MenuControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state, load });
......
......@@ -10,7 +10,8 @@
{{~/eq~}}
{{/inline}}
// 部件配置对象
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
isEnableCustomized: {{ctrl.enableCustomized}},
......@@ -19,4 +20,5 @@ export const ctrlState = {
{{> getPortlet portlet=portlet}}{{#unless @last}},{{/unless}}
{{~/each~}}
]
};
\ No newline at end of file
}
}
\ No newline at end of file
......@@ -31,7 +31,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const dashboardControl = new DashboardControl(ctrlState, props, emit).moduleInstall();
const dashboardControl = new DashboardControl(ctrlState(), props, emit).moduleInstall();
const { name, state, onCtrlEvent } = dashboardControl;
// 暴露内部状态及能力
......
......@@ -27,7 +27,8 @@ export class ControlVO extends ControlVOBase {
{{/each}}
}
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
appEntityCodeName: '{{ctrl.psAppDataEntity.codeName}}',
......@@ -96,4 +97,5 @@ export const ctrlState = {
{{/and}}
{{/each}}
}
}
}
\ No newline at end of file
......@@ -39,7 +39,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力
const { name, state, onUIAction, newRow, remove, save, load, refresh, getData, xDataControl, exportExcel, onToolbarEvent, useCustom } = new DataViewControl(ctrlState, props, emit).moduleInstall();
const { name, state, onUIAction, newRow, remove, save, load, refresh, getData, xDataControl, exportExcel, onToolbarEvent, useCustom } = new DataViewControl(ctrlState(), props, emit).moduleInstall();
const { onDataViewItemSelected, isSelected } = useCustom();
// 暴露内部状态及能力
......@@ -54,7 +54,20 @@ defineExpose({ name, state, newRow, remove, save, load, refresh, getData, export
justify="start">
<template v-for="(item, index) in state.items" :key="index">
<a-col {{#if ctrl.cardWidth}}:style="{ width: '{{ctrl.cardWidth}}px'{{#if ctrl.cardHeight}}, height: '{{ctrl.cardHeight}}px'{{/if}} }"{{else}}:span="6"{{#if ctrl.cardHeight}}:style="{ height: '{{ctrl.cardHeight}}px' }"{{/if}}{{/if}}>
<a-card :class="['app-dataview-item', isSelected(item) ? 'app-dataview-item__selection' : '']" @click="(event) => onDataViewItemSelected(item, event)">
{{#if ctrl.itemPSLayoutPanel}}
<{{ctrl.itemPSLayoutPanel.codeName}}Panel
:class="['app-dataview-item', isSelected(item) ? 'app-dataview-item__selection' : '']"
{{#if ctrl.cardHeight}}
:style="{ height: '{{ctrl.cardHeight}}px' }"
{{/if}}
@click="(event) => onDataViewItemSelected(item, event)"
:context="state.context"
:viewParams="state.viewParams"
:navDatas="[item]"
panelType="LAYOUT">
</{{ctrl.itemPSLayoutPanel.codeName}}Panel>
{{else}}
<a-card :class="['app-dataview-item', isSelected(item) ? 'app-dataview-item__selection' : '']" @click="(event) => onDataViewItemSelected(item, event)" {{#if ctrl.cardHeight}}:style="{ height: '{{ctrl.cardHeight}}px' }"{{/if}}>
<template #title>
\{{item.srfmajortext}}
</template>
......@@ -77,6 +90,7 @@ defineExpose({ name, state, newRow, remove, save, load, refresh, getData, export
</template>
<span class="app-dataview-item__description">\{{item.srfdescription}}</span>
</a-card>
{{/if}}
</a-col>
</template>
</a-row>
......
......@@ -46,7 +46,8 @@ export class ControlVO extends ControlVOBase {
}
// 部件配置对象
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......@@ -166,4 +167,5 @@ export const ctrlState = {
},
// 锚点数据集合
anchorDatas: [],
}
};
\ No newline at end of file
......@@ -40,7 +40,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, load, loadDraft, save, remove, refresh, onEditorEvent, onComponentEvent, getData, xDataCtrl } = new FormControl(ctrlState, props, emit).moduleInstall();
const { name, state, load, loadDraft, save, remove, refresh, onEditorEvent, onComponentEvent, getData, xDataCtrl } = new FormControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state, load, loadDraft, save, remove, refresh, getData });
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
counter: 0,
......@@ -46,4 +47,5 @@ export const ctrlState = {
{{/if}}
{{/eq}}
{{/each}}
}
};
......@@ -34,7 +34,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new GridExpBarControl(ctrlState, props, emit).moduleInstall();
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new GridExpBarControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
......@@ -27,7 +27,8 @@ export class ControlVO extends ControlVOBase {
}
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
totalColumnWidth: {{ctrl.totalColumnWidth}},
......@@ -265,4 +266,5 @@ export const ctrlState = {
],
{{/each}}
}
}
};
\ No newline at end of file
......@@ -39,7 +39,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力
const { name, state, useCustom, onEditorEvent, onToolbarEvent, onActionColEvent, newRow, remove, save, load, refresh, getData, exportExcel } = new GridControl(ctrlState, props, emit).moduleInstall();
const { name, state, useCustom, onEditorEvent, onToolbarEvent, onActionColEvent, newRow, remove, save, load, refresh, getData, exportExcel } = new GridControl(ctrlState(), props, emit).moduleInstall();
const { useScrollOption, useRowKey, useRowClassName, useCustomRow, useRowSelectionOption, onResizeColumn, onGridChange, useExpandedRowKeys, onExpandedRowsChange, formRef } = useCustom;
{{#if ctrl.batchToolBarItems}}
const renderBatchToolbar = (total: number, range: IParam[]) => {
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
counter: 0,
......@@ -46,4 +47,5 @@ export const ctrlState = {
{{/if}}
{{/eq}}
{{/each}}
}
};
......@@ -34,7 +34,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new ListExpBarControl(ctrlState, props, emit).moduleInstall();
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new ListExpBarControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
......@@ -35,7 +35,8 @@ export class ControlVO extends ControlVOBase {
{{/each}}
}
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
appEntityCodeName: '{{ctrl.psAppDataEntity.codeName}}',
......@@ -120,4 +121,5 @@ export const ctrlState = {
{{/and}}
{{/each}}
}
}
}
\ No newline at end of file
......@@ -39,7 +39,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力
const { name, state, onUIAction, newRow, remove, save, load, refresh, getData, xDataControl, exportExcel, useCustom, onToolbarEvent} = new ListControl(ctrlState, props, emit).moduleInstall();
const { name, state, onUIAction, newRow, remove, save, load, refresh, getData, xDataControl, exportExcel, useCustom, onToolbarEvent} = new ListControl(ctrlState(), props, emit).moduleInstall();
const { onListItemSelected, isSelected, loadMore } = useCustom;
// 暴露内部状态及能力
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
appEntityCodeName: '{{ctrl.psAppDataEntity.codeName}}',
......@@ -14,4 +15,5 @@ export const ctrlState = {
{{/each}}
},
navDatas: []
}
}
\ No newline at end of file
......@@ -28,13 +28,14 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, load, onPanelItemEvents, getData, xDataCtrl } = new PanelControl(ctrlState, props, emit).moduleInstall();
const { name, state, onPanelItemEvents, getData, xDataControl } = new PanelControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state, load, getData });
defineExpose({ name, state, getData });
</script>
<template>
<AppRow
ref="xDataControl"
:class="[
'app-panel',
panelType === 'LAYOUT' ? 'app-layout-panel' : '',
......
export const ctrlState = {
export const ctrlState = () => {
return {
appEntityCodeName: '{{ctrl.psAppDataEntity.codeName}}',
appDeCodeName:'{{ctrl.psAppDataEntity.codeName}}',
appDeLogicName: '{{ctrl.psAppDataEntity.logicName}}',
......@@ -9,4 +10,5 @@ export const ctrlState = {
selectedData: [],
data: {},
items: []
}
};
\ No newline at end of file
......@@ -37,7 +37,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onViewEvent } = new PickupViewPanelControl(ctrlState, props, emit).moduleInstall();
const { name, state, onViewEvent } = new PickupViewPanelControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
// 部件配置对象
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
portletType: '{{ctrl.portletType}}',
......@@ -70,4 +71,5 @@ export const ctrlState = {
}
{{/ctrl.psControls}}
{{/eq}}
}
};
\ No newline at end of file
......@@ -42,7 +42,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onViewEvent, onCtrlEvent, handleItemClick, handleActionClick } = new PortletControl(ctrlState, props, emit).moduleInstall();
const { name, state, onViewEvent, onCtrlEvent, handleItemClick, handleActionClick } = new PortletControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
......@@ -49,7 +49,8 @@ export class ControlVO extends ControlVOBase {
}
// 部件配置对象
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
......@@ -85,5 +86,6 @@ export const ctrlState = {
{{/if}}
{{/neq}}
{{/each}}
},
}
}
};
\ No newline at end of file
......@@ -27,7 +27,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { name, state, getData, onEditorEvent } = new QuickSearchFormControl(ctrlState, props, emit).moduleInstall();
const { name, state, getData, onEditorEvent } = new QuickSearchFormControl(ctrlState(), props, emit).moduleInstall();
defineExpose({ name, state, getData });
</script>
......
import {{ctrl.codeName}}SearchBar from "./{{spinalCase ctrl.codeName}}-searchBar.vue";
import {{ctrl.codeName}}SearchBar from "./{{spinalCase ctrl.codeName}}-searchbar.vue";
export { {{ctrl.codeName}}SearchBar };
\ No newline at end of file
export const CtrlConfig = {
controlCodeName: "{{ctrl.codeName}}",
controlName: "{{ctrl.name}}",
detailsModel: {
{{#each ctrl.psSearchBarFilters as | filter | }}
{{filter.name}} : {
label: '{{filter.psAppDEField.logicName}}',
name: '{{filter.name}}',
prop: '{{lowerCase filter.psAppDEField.codeName}}',
disabled: false,
{{#if filter.psDEFSearchMode}}mode: '{{filter.psDEFSearchMode.valueOP}}',{{/if}}
},
{{/each}}
},
}
\ No newline at end of file
<script setup lang="ts">
import { Subject } from 'rxjs';
import { CtrlConfig } from './{{spinalCase ctrl.codeName}}-searchBar-config';
import { ctrlState } from './{{spinalCase ctrl.codeName}}-searchbar-state';
import { SearchBarControl, IActionParam, IParam, IContext, ControlAction, deepCopy } from '@core';
interface Props {
......@@ -22,7 +21,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { name, state } = new SearchBarControl(CtrlConfig, props, emit).moduleInstall();
const { name, state } = new SearchBarControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state});
......
export const ctrlState = () => {
return {
controlCodeName: "{{ctrl.codeName}}",
controlName: "{{ctrl.name}}",
detailsModel: {
{{#each ctrl.psSearchBarFilters as | filter | }}
{{filter.name}} : {
label: '{{filter.psAppDEField.logicName}}',
name: '{{filter.name}}',
prop: '{{lowerCase filter.psAppDEField.codeName}}',
disabled: false,
{{#if filter.psDEFSearchMode}}mode: '{{filter.psDEFSearchMode.valueOP}}',{{/if}}
},
{{/each}}
},
}
}
\ No newline at end of file
......@@ -48,7 +48,8 @@ export class ControlVO extends ControlVOBase {
}
// 部件配置对象
export const ctrlState = {
export const ctrlState = () => {
return {
autoSearch: {{ctrl.enableAutoSearch}},
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
......@@ -86,4 +87,5 @@ export const ctrlState = {
{{/neq}}
{{/each}}
},
}
};
\ No newline at end of file
......@@ -27,7 +27,7 @@ interface CtrlEmit {
const emit = defineEmits<CtrlEmit>();
// 安装功能模块,提供状态和能力方法
const { name, state, getData, onEditorEvent, onComponentEvent, onSearch, loadDraft, onSaveHistoryItem, onCancel, onRemoveHistoryItem } = new SearchFormControl(ctrlState, props, emit).moduleInstall();
const { name, state, getData, onEditorEvent, onComponentEvent, onSearch, loadDraft, onSaveHistoryItem, onCancel, onRemoveHistoryItem } = new SearchFormControl(ctrlState(), props, emit).moduleInstall();
defineExpose({ name, state, getData });
</script>
<template>
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
data: {},
......@@ -28,4 +29,5 @@ export const ctrlState = {
{{/each}}
{{/if}}
{{/if}}
}
};
\ No newline at end of file
......@@ -36,7 +36,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const tabExpPanelControl = new TabExpPanelControl(ctrlState, props, emit).moduleInstall();
const tabExpPanelControl = new TabExpPanelControl(ctrlState(), props, emit).moduleInstall();
const { name, state, onCtrlEvent, getCounterData } = tabExpPanelControl;
// 暴露内部状态及能力
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
appDeCodeName: '{{ctrl.psAppDataEntity.codeName}}',
......@@ -11,10 +12,11 @@ export const ctrlState = {
{{/if}}
}
{{/if}}
{{#if ctrl.psNavigateContexts}}
{{#if ctrl.psNavigateContexts}}
navContexts:{{> @macro/front-end/common/navparam.hbs appNavParams=ctrl.psNavigateContexts}},
{{/if}}
{{#if ctrl.psNavigateParams}}
{{/if}}
{{#if ctrl.psNavigateParams}}
navParams:{{> @macro/front-end/common/navparam.hbs appNavParams=ctrl.psNavigateParams}},
{{/if}}
{{/if}}
}
};
\ No newline at end of file
......@@ -30,7 +30,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onViewEvent } = new TabViewPanelControl(ctrlState, props, emit).moduleInstall();
const { name, state, onViewEvent } = new TabViewPanelControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
export const ctrlState = {
export const ctrlState = () => {
return {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
counter: 0,
......@@ -32,4 +33,5 @@ export const ctrlState = {
},
{{/each}}
]
}
};
......@@ -55,7 +55,7 @@ interface CtrlEmit {
const emit = defineEmits <CtrlEmit> ();
// 安装功能模块,提供状态和能力方法
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new TreeExpBarControl(ctrlState, props, emit).moduleInstall();
const { name, state, onCtrlEvent, xDataControl, search, onToolbarEvent } = new TreeExpBarControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state });
......
......@@ -184,7 +184,8 @@ export class ControlVO extends ControlVOBase implements TreeControlVO {
}
}
export const ctrlState = {
export const ctrlState = () => {
return {
appEntityCodeName: '{{ctrl.psAppDataEntity.codeName}}',
appDeCodeName:'{{ctrl.psAppDataEntity.codeName}}',
appDeLogicName: '{{ctrl.psAppDataEntity.logicName}}',
......@@ -227,4 +228,5 @@ export const ctrlState = {
selectedKeys: [],
selectedNodes: [],
selections: []
}
};
\ No newline at end of file
......@@ -49,7 +49,7 @@ const getCustomText = (scriptCode: any) => {
}
// 安装功能模块,提供状态和能力方法
const { name, state, load, refresh, onTreeNodeSelect, onContextMenuClick, onRightClick, onCheck, getCounterData } = new TreeControl(ctrlState, props, emit).moduleInstall();
const { name, state, load, refresh, onTreeNodeSelect, onContextMenuClick, onRightClick, onCheck, getCounterData } = new TreeControl(ctrlState(), props, emit).moduleInstall();
// 暴露内部状态及能力
defineExpose({ name, state, load, refresh });
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册