@ibiz-template/vue3-util 0.7.38-alpha.12 → 0.7.38-alpha.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +1 -1
  3. package/es/common/view-shell/view-shell.d.ts.map +1 -1
  4. package/es/common/view-shell/view-shell.mjs +26 -3
  5. package/es/index.mjs +1 -0
  6. package/es/panel-component/index.d.ts +1 -0
  7. package/es/panel-component/index.d.ts.map +1 -1
  8. package/es/panel-component/index.mjs +1 -0
  9. package/es/panel-component/panel-container/panel-container.css +1 -1
  10. package/es/panel-component/panel-ctrl-view-page-caption/index.d.ts +24 -0
  11. package/es/panel-component/panel-ctrl-view-page-caption/index.d.ts.map +1 -0
  12. package/es/panel-component/panel-ctrl-view-page-caption/index.mjs +19 -0
  13. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.controller.d.ts +29 -0
  14. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.controller.d.ts.map +1 -0
  15. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.controller.mjs +24 -0
  16. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.d.ts +25 -0
  17. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.d.ts.map +1 -0
  18. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.mjs +49 -0
  19. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.provider.d.ts +17 -0
  20. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.provider.d.ts.map +1 -0
  21. package/es/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.provider.mjs +15 -0
  22. package/es/view/common/index.d.ts +1 -1
  23. package/es/view/common/view.d.ts +1 -1
  24. package/es/view/common/view.d.ts.map +1 -1
  25. package/es/view/common/view.mjs +1 -1
  26. package/lib/common/view-shell/view-shell.cjs +25 -2
  27. package/lib/index.cjs +25 -23
  28. package/lib/panel-component/index.cjs +2 -0
  29. package/lib/panel-component/panel-container/panel-container.css +1 -1
  30. package/lib/panel-component/panel-ctrl-view-page-caption/index.cjs +24 -0
  31. package/lib/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.cjs +51 -0
  32. package/lib/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.controller.cjs +26 -0
  33. package/lib/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.provider.cjs +17 -0
  34. package/lib/view/common/view.cjs +1 -1
  35. package/package.json +5 -5
@@ -2,7 +2,7 @@ import { defineComponent, ref, watch, h, resolveComponent, withDirectives, creat
2
2
  import { calcDynaSysParams, getViewProvider, getErrorViewProvider } from '@ibiz-template/runtime';
3
3
  import { RuntimeError } from '@ibiz-template/core';
4
4
  import { createUUID } from 'qx-util';
5
- import { isNil, isEmpty, clone } from 'ramda';
5
+ import { clone, isNil, isEmpty } from 'ramda';
6
6
  import '../../use/index.mjs';
7
7
  import './view-shell.css';
8
8
  import { useNamespace } from '../../use/namespace/namespace.mjs';
@@ -25,7 +25,9 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
25
25
  type: String
26
26
  }
27
27
  },
28
- setup(props) {
28
+ setup(props, {
29
+ attrs
30
+ }) {
29
31
  const ns = useNamespace("view-shell");
30
32
  const isComplete = ref(false);
31
33
  const errMsg = ref("");
@@ -34,6 +36,7 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
34
36
  const hasAuthority = ref(true);
35
37
  const context = ref(props.context);
36
38
  const params = ref(props.params || {});
39
+ let dynaViewCacheKey = "";
37
40
  watch(() => ({
38
41
  context: props.context,
39
42
  params: props.params
@@ -76,6 +79,13 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
76
79
  return checkResult;
77
80
  };
78
81
  let viewModel;
82
+ const getDynaViewCacheKey = (args) => {
83
+ const copyArgs = clone(args);
84
+ if (copyArgs.srfdatatype) {
85
+ delete copyArgs.srfdatatype;
86
+ }
87
+ return JSON.stringify(copyArgs);
88
+ };
79
89
  const initViewModel = async () => {
80
90
  if (props.modelData) {
81
91
  viewModel = props.modelData;
@@ -100,7 +110,7 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
100
110
  }));
101
111
  }
102
112
  const loadModelParams = await calcDynaSysParams(appDataEntityId, context.value, {
103
- viewParams: params,
113
+ viewParams: params.value,
104
114
  appId: viewModel.appId
105
115
  });
106
116
  if (params.value.srfdatatype) {
@@ -142,7 +152,15 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
142
152
  }
143
153
  }
144
154
  }
155
+ const curDynaViewCacheKey = getDynaViewCacheKey(loadModelParams);
156
+ if (curDynaViewCacheKey === dynaViewCacheKey) {
157
+ setTimeout(() => {
158
+ isComplete.value = true;
159
+ });
160
+ return;
161
+ }
145
162
  viewModelData.value = await ibiz.hub.loadAppView(viewModel.appId, viewModel.id, loadModelParams);
163
+ dynaViewCacheKey = getDynaViewCacheKey(loadModelParams);
146
164
  } else {
147
165
  viewModelData.value = viewModel;
148
166
  }
@@ -166,6 +184,11 @@ const IBizViewShell = /* @__PURE__ */ defineComponent({
166
184
  } = redrawData;
167
185
  Object.assign(context.value, redrawData.context);
168
186
  Object.assign(params.value, redrawData.params);
187
+ const modal = attrs.modal;
188
+ if (modal) {
189
+ modal.hooks.shouldDismiss.clear();
190
+ modal.hooks.beforeDismiss.clear();
191
+ }
169
192
  if (isReloadModel) {
170
193
  await init();
171
194
  } else {
package/es/index.mjs CHANGED
@@ -58,6 +58,7 @@ export { IBizPanelItemRender } from './panel-component/panel-item-render/index.m
58
58
  export { TeleportPlaceholderProvider } from './panel-component/teleport-placeholder/teleport-placeholder.provider.mjs';
59
59
  export { IBizTeleportPlaceholder } from './panel-component/teleport-placeholder/index.mjs';
60
60
  export { IBizPanelContainerTabs } from './panel-component/panel-container-tabs/index.mjs';
61
+ export { IBizPanelCtrlViewPageCaption } from './panel-component/panel-ctrl-view-page-caption/index.mjs';
61
62
  export { AppRedirectView } from './view/app-redirect-view/app-redirect-view.mjs';
62
63
  export { IBizView } from './view/common/index.mjs';
63
64
  export { TodoRedirect } from './view/todo-redirect/todo-redirect.mjs';
@@ -14,4 +14,5 @@ export * from './panel-tab-page';
14
14
  export * from './panel-item-render';
15
15
  export * from './teleport-placeholder';
16
16
  export * from './panel-container-tabs';
17
+ export * from './panel-ctrl-view-page-caption';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/panel-component/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/panel-component/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC"}
@@ -14,6 +14,7 @@ export { IBizPanelTabPage } from './panel-tab-page/index.mjs';
14
14
  export { IBizPanelItemRender } from './panel-item-render/index.mjs';
15
15
  export { IBizTeleportPlaceholder } from './teleport-placeholder/index.mjs';
16
16
  export { IBizPanelContainerTabs } from './panel-container-tabs/index.mjs';
17
+ export { IBizPanelCtrlViewPageCaption } from './panel-ctrl-view-page-caption/index.mjs';
17
18
  export { PanelContainerState } from './panel-container/panel-container.state.mjs';
18
19
  export { PanelContainerController } from './panel-container/panel-container.controller.mjs';
19
20
  export { PanelCtrlPosController } from './panel-ctrl-pos/panel-ctrl-pos.controller.mjs';
@@ -1 +1 @@
1
- .ibiz-panel-container{width:100%;height:100%}.ibiz-panel-container>.ibiz-row{height:100%;overflow-x:hidden;overflow-y:auto}.ibiz-panel-container.is-hidden{display:none}
1
+ .ibiz-panel-container{--ibiz-panel-scroll:auto;width:100%;height:100%}.ibiz-panel-container>.ibiz-row{height:100%;overflow:hidden var(--ibiz-panel-scroll)}.ibiz-panel-container.is-hidden{display:none}
@@ -0,0 +1,24 @@
1
+ export declare const IBizPanelCtrlViewPageCaption: import("../../util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelItem>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: import("vue").PropType<import("./panel-ctrl-view-page-caption.controller").PanelCtrlViewPageCaptionController>;
8
+ required: true;
9
+ };
10
+ }, {
11
+ ns: import("@ibiz-template/core").Namespace;
12
+ classArr: import("vue").ComputedRef<(string | false)[]>;
13
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
14
+ modelData: {
15
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelItem>;
16
+ required: true;
17
+ };
18
+ controller: {
19
+ type: import("vue").PropType<import("./panel-ctrl-view-page-caption.controller").PanelCtrlViewPageCaptionController>;
20
+ required: true;
21
+ };
22
+ }>>, {}, {}>>;
23
+ export default IBizPanelCtrlViewPageCaption;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-component/panel-ctrl-view-page-caption/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;aASxC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
2
+ import '../../util/index.mjs';
3
+ import { PanelCtrlViewPageCaption } from './panel-ctrl-view-page-caption.mjs';
4
+ import { PanelCtrlViewPageProvider } from './panel-ctrl-view-page-caption.provider.mjs';
5
+ import { withInstall } from '../../util/install.mjs';
6
+
7
+ "use strict";
8
+ const IBizPanelCtrlViewPageCaption = withInstall(
9
+ PanelCtrlViewPageCaption,
10
+ function(v) {
11
+ v.component(PanelCtrlViewPageCaption.name, PanelCtrlViewPageCaption);
12
+ registerPanelItemProvider(
13
+ "CTRLPOS_VIEW_PAGECAPTION",
14
+ () => new PanelCtrlViewPageProvider()
15
+ );
16
+ }
17
+ );
18
+
19
+ export { IBizPanelCtrlViewPageCaption, IBizPanelCtrlViewPageCaption as default };
@@ -0,0 +1,29 @@
1
+ import { IPanelItemState, PanelItemController } from '@ibiz-template/runtime';
2
+ interface viewPagecaptionState extends IPanelItemState {
3
+ /**
4
+ * 标题
5
+ *
6
+ * @type {string}
7
+ * @memberof viewPagecaptionState
8
+ */
9
+ caption: string;
10
+ }
11
+ export declare class PanelCtrlViewPageCaptionController extends PanelItemController {
12
+ /**
13
+ *状态
14
+ *
15
+ * @type {viewPagecaptionState}
16
+ * @memberof PanelCtrlViewPageCaptionController
17
+ */
18
+ state: viewPagecaptionState;
19
+ /**
20
+ * 初始化
21
+ *
22
+ * @protected
23
+ * @return {*} {Promise<void>}
24
+ * @memberof PanelCtrlViewPageCaptionController
25
+ */
26
+ protected onInit(): Promise<void>;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=panel-ctrl-view-page-caption.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-ctrl-view-page-caption.controller.d.ts","sourceRoot":"","sources":["../../../src/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,UAAU,oBAAqB,SAAQ,eAAe;IACpD;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kCAAmC,SAAQ,mBAAmB;IACzE;;;;;OAKG;IACH,KAAK,EAAG,oBAAoB,CAAC;IAE7B;;;;;;OAMG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAYxC"}
@@ -0,0 +1,24 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ class PanelCtrlViewPageCaptionController extends PanelItemController {
5
+ /**
6
+ * 初始化
7
+ *
8
+ * @protected
9
+ * @return {*} {Promise<void>}
10
+ * @memberof PanelCtrlViewPageCaptionController
11
+ */
12
+ async onInit() {
13
+ await super.onInit();
14
+ this.state.caption = this.panel.view.model.caption || "";
15
+ this.panel.view.evt.on(
16
+ "onViewInfoChange",
17
+ ({ caption: _caption, dataInfo }) => {
18
+ this.state.caption = "".concat(this.panel.view.model.caption).concat(dataInfo ? "-".concat(dataInfo) : "");
19
+ }
20
+ );
21
+ }
22
+ }
23
+
24
+ export { PanelCtrlViewPageCaptionController };
@@ -0,0 +1,25 @@
1
+ import { PropType } from 'vue';
2
+ import { PanelCtrlViewPageCaptionController } from './panel-ctrl-view-page-caption.controller';
3
+ export declare const PanelCtrlViewPageCaption: import("vue").DefineComponent<{
4
+ modelData: {
5
+ type: PropType<import("@ibiz/model-core").IPanelItem>;
6
+ required: true;
7
+ };
8
+ controller: {
9
+ type: PropType<PanelCtrlViewPageCaptionController>;
10
+ required: true;
11
+ };
12
+ }, {
13
+ ns: import("@ibiz-template/core").Namespace;
14
+ classArr: import("vue").ComputedRef<(string | false)[]>;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
16
+ modelData: {
17
+ type: PropType<import("@ibiz/model-core").IPanelItem>;
18
+ required: true;
19
+ };
20
+ controller: {
21
+ type: PropType<PanelCtrlViewPageCaptionController>;
22
+ required: true;
23
+ };
24
+ }>>, {}, {}>;
25
+ //# sourceMappingURL=panel-ctrl-view-page-caption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-ctrl-view-page-caption.d.ts","sourceRoot":"","sources":["../../../src/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.tsx"],"names":[],"mappings":"AACA,OAAO,EAA6B,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE1D,OAAO,EAAE,kCAAkC,EAAE,MAAM,2CAA2C,CAAC;AAE/F,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;YAkDnC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { defineComponent, computed, createVNode } from 'vue';
2
+ import '../../use/index.mjs';
3
+ import { useNamespace } from '../../use/namespace/namespace.mjs';
4
+
5
+ "use strict";
6
+ const PanelCtrlViewPageCaption = /* @__PURE__ */ defineComponent({
7
+ name: "IBizPanelCtrlViewPageCaption",
8
+ props: {
9
+ modelData: {
10
+ type: Object,
11
+ required: true
12
+ },
13
+ controller: {
14
+ type: Object,
15
+ required: true
16
+ }
17
+ },
18
+ setup(props) {
19
+ const ns = useNamespace("panel-ctrl-view-page-caption");
20
+ const classArr = computed(() => {
21
+ const {
22
+ id
23
+ } = props.modelData;
24
+ const result = [ns.b(), ns.m(id)];
25
+ result.push(...props.controller.containerClass);
26
+ return result;
27
+ });
28
+ return {
29
+ ns,
30
+ classArr
31
+ };
32
+ },
33
+ render() {
34
+ let editor = null;
35
+ if (this.controller.data) {
36
+ editor = createVNode("span", {
37
+ "class": this.ns.b("content")
38
+ }, [this.controller.state.caption]);
39
+ }
40
+ return createVNode("div", {
41
+ "class": this.classArr,
42
+ "onClick": () => {
43
+ this.controller.onClick();
44
+ }
45
+ }, [editor]);
46
+ }
47
+ });
48
+
49
+ export { PanelCtrlViewPageCaption };
@@ -0,0 +1,17 @@
1
+ import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelCtrlPos } from '@ibiz/model-core';
3
+ import { PanelCtrlViewPageCaptionController } from './panel-ctrl-view-page-caption.controller';
4
+ /**
5
+ * 面板控件占位适配器
6
+ *
7
+ * @author lxm
8
+ * @date 2022-09-19 22:09:03
9
+ * @export
10
+ * @class PanelCtrlPosProvider
11
+ * @implements {EditorProvider}
12
+ */
13
+ export declare class PanelCtrlViewPageProvider implements IPanelItemProvider {
14
+ component: string;
15
+ createController(panelItem: IPanelCtrlPos, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelCtrlViewPageCaptionController>;
16
+ }
17
+ //# sourceMappingURL=panel-ctrl-view-page-caption.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-ctrl-view-page-caption.provider.d.ts","sourceRoot":"","sources":["../../../src/panel-component/panel-ctrl-view-page-caption/panel-ctrl-view-page-caption.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,2CAA2C,CAAC;AAE/F;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,SAAS,EAAE,MAAM,CAAkC;IAE7C,gBAAgB,CACpB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,kCAAkC,CAAC;CAK/C"}
@@ -0,0 +1,15 @@
1
+ import { PanelCtrlViewPageCaptionController } from './panel-ctrl-view-page-caption.controller.mjs';
2
+
3
+ "use strict";
4
+ class PanelCtrlViewPageProvider {
5
+ constructor() {
6
+ this.component = "IBizPanelCtrlViewPageCaption";
7
+ }
8
+ async createController(panelItem, panel, parent) {
9
+ const c = new PanelCtrlViewPageCaptionController(panelItem, panel, parent);
10
+ await c.init();
11
+ return c;
12
+ }
13
+ }
14
+
15
+ export { PanelCtrlViewPageProvider };
@@ -22,7 +22,7 @@ export declare const IBizView: import("../../util").TypeWithInstall<import("vue"
22
22
  ns: import("@ibiz-template/core").Namespace;
23
23
  controls: import("@ibiz/model-core").IControl[];
24
24
  teleportControls: import("@ibiz/model-core").IControl[];
25
- viewClassNames: import("vue").ComputedRef<(string | undefined)[]>;
25
+ viewClassNames: import("vue").ComputedRef<(string | string[] | undefined)[]>;
26
26
  onLayoutPanelCreated: (controller: import("@ibiz-template/runtime").IViewLayoutPanelController) => void;
27
27
  getCtrlProps: (ctrl: import("@ibiz/model-core").IControl, slotProps?: IData) => IParams;
28
28
  renderControl: (ctrl: import("@ibiz/model-core").IControl, slotProps?: IData) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -26,7 +26,7 @@ export declare const View: import("vue").DefineComponent<{
26
26
  ns: import("@ibiz-template/core").Namespace;
27
27
  controls: IControl[];
28
28
  teleportControls: IControl[];
29
- viewClassNames: import("vue").ComputedRef<(string | undefined)[]>;
29
+ viewClassNames: import("vue").ComputedRef<(string | string[] | undefined)[]>;
30
30
  onLayoutPanelCreated: (controller: IViewLayoutPanelController) => void;
31
31
  getCtrlProps: (ctrl: IControl, slotProps?: IData) => IParams;
32
32
  renderControl: (ctrl: IControl, slotProps?: IData) => VNode;
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,QAAQ,EAER,KAAK,EAIN,MAAM,KAAK,CAAC;AACb,OAAO,aAAa,CAAC;AAGrB,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;uCAsDC,0BAA0B,KACrC,IAAI;yBAmBqB,QAAQ,cAAa,KAAK,KAAQ,OAAO;0BAkBxC,QAAQ,cAAa,KAAK,KAAQ,KAAK;+BA9DlC,QAAQ,KAAG,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;MAsLjE,CAAC"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,QAAQ,EAER,KAAK,EAIN,MAAM,KAAK,CAAC;AACb,OAAO,aAAa,CAAC;AAGrB,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;uCAuDC,0BAA0B,KACrC,IAAI;yBAmBqB,QAAQ,cAAa,KAAK,KAAQ,OAAO;0BAkBxC,QAAQ,cAAa,KAAK,KAAQ,KAAK;+BA/DlC,QAAQ,KAAG,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;MAuLjE,CAAC"}
@@ -70,7 +70,7 @@ const View = /* @__PURE__ */ defineComponent({
70
70
  } = c.model;
71
71
  const typeClass = viewType.toLowerCase();
72
72
  const sysCssName = sysCss == null ? void 0 : sysCss.cssName;
73
- const viewClassNames = computed(() => [ns.b(), ns.b(typeClass), ns.m(codeName), sysCssName, c.state.viewMessages.TOP ? "has-top-message" : "", c.state.viewMessages.BOTTOM ? "has-bottom-message" : ""]);
73
+ const viewClassNames = computed(() => [ns.b(), ns.b(typeClass), ns.m(codeName), sysCssName, c.state.viewMessages.TOP ? "has-top-message" : "", c.state.viewMessages.BOTTOM ? "has-bottom-message" : "", c.state.presetClassList]);
74
74
  const onLayoutPanelCreated = (controller) => {
75
75
  c.setLayoutPanel(controller);
76
76
  };
@@ -27,7 +27,9 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
27
27
  type: String
28
28
  }
29
29
  },
30
- setup(props) {
30
+ setup(props, {
31
+ attrs
32
+ }) {
31
33
  const ns = namespace.useNamespace("view-shell");
32
34
  const isComplete = vue.ref(false);
33
35
  const errMsg = vue.ref("");
@@ -36,6 +38,7 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
36
38
  const hasAuthority = vue.ref(true);
37
39
  const context = vue.ref(props.context);
38
40
  const params = vue.ref(props.params || {});
41
+ let dynaViewCacheKey = "";
39
42
  vue.watch(() => ({
40
43
  context: props.context,
41
44
  params: props.params
@@ -78,6 +81,13 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
78
81
  return checkResult;
79
82
  };
80
83
  let viewModel;
84
+ const getDynaViewCacheKey = (args) => {
85
+ const copyArgs = ramda.clone(args);
86
+ if (copyArgs.srfdatatype) {
87
+ delete copyArgs.srfdatatype;
88
+ }
89
+ return JSON.stringify(copyArgs);
90
+ };
81
91
  const initViewModel = async () => {
82
92
  if (props.modelData) {
83
93
  viewModel = props.modelData;
@@ -102,7 +112,7 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
102
112
  }));
103
113
  }
104
114
  const loadModelParams = await runtime.calcDynaSysParams(appDataEntityId, context.value, {
105
- viewParams: params,
115
+ viewParams: params.value,
106
116
  appId: viewModel.appId
107
117
  });
108
118
  if (params.value.srfdatatype) {
@@ -144,7 +154,15 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
144
154
  }
145
155
  }
146
156
  }
157
+ const curDynaViewCacheKey = getDynaViewCacheKey(loadModelParams);
158
+ if (curDynaViewCacheKey === dynaViewCacheKey) {
159
+ setTimeout(() => {
160
+ isComplete.value = true;
161
+ });
162
+ return;
163
+ }
147
164
  viewModelData.value = await ibiz.hub.loadAppView(viewModel.appId, viewModel.id, loadModelParams);
165
+ dynaViewCacheKey = getDynaViewCacheKey(loadModelParams);
148
166
  } else {
149
167
  viewModelData.value = viewModel;
150
168
  }
@@ -168,6 +186,11 @@ const IBizViewShell = /* @__PURE__ */ vue.defineComponent({
168
186
  } = redrawData;
169
187
  Object.assign(context.value, redrawData.context);
170
188
  Object.assign(params.value, redrawData.params);
189
+ const modal = attrs.modal;
190
+ if (modal) {
191
+ modal.hooks.shouldDismiss.clear();
192
+ modal.hooks.beforeDismiss.clear();
193
+ }
171
194
  if (isReloadModel) {
172
195
  await init();
173
196
  } else {
package/lib/index.cjs CHANGED
@@ -60,14 +60,15 @@ var index$d = require('./panel-component/panel-item-render/index.cjs');
60
60
  var teleportPlaceholder_provider = require('./panel-component/teleport-placeholder/teleport-placeholder.provider.cjs');
61
61
  var index$e = require('./panel-component/teleport-placeholder/index.cjs');
62
62
  var index$f = require('./panel-component/panel-container-tabs/index.cjs');
63
+ var index$g = require('./panel-component/panel-ctrl-view-page-caption/index.cjs');
63
64
  var appRedirectView = require('./view/app-redirect-view/app-redirect-view.cjs');
64
- var index$g = require('./view/common/index.cjs');
65
+ var index$h = require('./view/common/index.cjs');
65
66
  var todoRedirect = require('./view/todo-redirect/todo-redirect.cjs');
66
- var index$h = require('./view/portal-view/index.cjs');
67
- var index$i = require('./view/de-redirect-view/index.cjs');
68
- var index$j = require('./view/html-view/index.cjs');
69
- var index$k = require('./control/panel/view-layout-panel/index.cjs');
70
- var index$l = require('./control/panel/panel/index.cjs');
67
+ var index$i = require('./view/portal-view/index.cjs');
68
+ var index$j = require('./view/de-redirect-view/index.cjs');
69
+ var index$k = require('./view/html-view/index.cjs');
70
+ var index$l = require('./control/panel/view-layout-panel/index.cjs');
71
+ var index$m = require('./control/panel/panel/index.cjs');
71
72
  var pluginFactory = require('./plugin/plugin-factory/plugin-factory.cjs');
72
73
  var clickOutside = require('./use/click-outside/click-outside.cjs');
73
74
  var useControlController = require('./use/control/use-control-controller/use-control-controller.cjs');
@@ -75,11 +76,11 @@ var event = require('./use/event/event.cjs');
75
76
  var focusBlur = require('./use/focus-blur/focus-blur.cjs');
76
77
  var namespace = require('./use/namespace/namespace.cjs');
77
78
  var route = require('./use/route/route.cjs');
78
- var index$m = require('./use/util/index.cjs');
79
+ var index$n = require('./use/util/index.cjs');
79
80
  var useViewController = require('./use/view/use-view-controller/use-view-controller.cjs');
80
81
  var vue = require('./use/vue/vue.cjs');
81
82
  var codelistListen = require('./use/codeList-listen/codelist-listen.cjs');
82
- var index$n = require('./use/storage/index.cjs');
83
+ var index$o = require('./use/storage/index.cjs');
83
84
  var autofocusBlur = require('./use/autofocus-blur/autofocus-blur.cjs');
84
85
  var overlayContainer = require('./util/overlay-container/overlay-container.cjs');
85
86
  var overlayPopoverContainer = require('./util/overlay-popover-container/overlay-popover-container.cjs');
@@ -92,7 +93,7 @@ var render = require('./util/render/render.cjs');
92
93
  var overlayViewUtil = require('./util/overlay-view-util/overlay-view-util.cjs');
93
94
  var appStore = require('./util/store/app-store/app-store.cjs');
94
95
  var uiStore = require('./util/store/ui-store/ui-store.cjs');
95
- var index$o = require('./util/store/index.cjs');
96
+ var index$p = require('./util/store/index.cjs');
96
97
  var common = require('./props/common.cjs');
97
98
  var textBox = require('./props/editor/text-box.cjs');
98
99
  var span = require('./props/editor/span.cjs');
@@ -119,8 +120,8 @@ var markdown = require('./props/editor/markdown.cjs');
119
120
  var array = require('./props/editor/array.cjs');
120
121
  var cascader = require('./props/editor/cascader.cjs');
121
122
  var colorPicker = require('./props/editor/color-picker.cjs');
122
- var index$p = require('./locale/en/index.cjs');
123
- var index$q = require('./locale/zh-CN/index.cjs');
123
+ var index$q = require('./locale/en/index.cjs');
124
+ var index$r = require('./locale/zh-CN/index.cjs');
124
125
 
125
126
  "use strict";
126
127
 
@@ -173,14 +174,15 @@ exports.IBizPanelItemRender = index$d.IBizPanelItemRender;
173
174
  exports.TeleportPlaceholderProvider = teleportPlaceholder_provider.TeleportPlaceholderProvider;
174
175
  exports.IBizTeleportPlaceholder = index$e.IBizTeleportPlaceholder;
175
176
  exports.IBizPanelContainerTabs = index$f.IBizPanelContainerTabs;
177
+ exports.IBizPanelCtrlViewPageCaption = index$g.IBizPanelCtrlViewPageCaption;
176
178
  exports.AppRedirectView = appRedirectView.AppRedirectView;
177
- exports.IBizView = index$g.IBizView;
179
+ exports.IBizView = index$h.IBizView;
178
180
  exports.TodoRedirect = todoRedirect.TodoRedirect;
179
- exports.IBizPortalView = index$h.IBizPortalView;
180
- exports.IBizDeRedirectView = index$i.IBizDeRedirectView;
181
- exports.IBizHtmlView = index$j.IBizHtmlView;
182
- exports.IBizViewLayoutPanelControl = index$k.IBizViewLayoutPanelControl;
183
- exports.IBizPanelControl = index$l.IBizPanelControl;
181
+ exports.IBizPortalView = index$i.IBizPortalView;
182
+ exports.IBizDeRedirectView = index$j.IBizDeRedirectView;
183
+ exports.IBizHtmlView = index$k.IBizHtmlView;
184
+ exports.IBizViewLayoutPanelControl = index$l.IBizViewLayoutPanelControl;
185
+ exports.IBizPanelControl = index$m.IBizPanelControl;
184
186
  exports.PluginFactory = pluginFactory.PluginFactory;
185
187
  exports.useClickOutside = clickOutside.useClickOutside;
186
188
  exports.useControlController = useControlController.useControlController;
@@ -189,8 +191,8 @@ exports.useFocusAndBlur = focusBlur.useFocusAndBlur;
189
191
  exports.useNamespace = namespace.useNamespace;
190
192
  exports.useRouteKey = route.useRouteKey;
191
193
  exports.useRouterQuery = route.useRouterQuery;
192
- exports.useCtx = index$m.useCtx;
193
- exports.useMobCtx = index$m.useMobCtx;
194
+ exports.useCtx = index$n.useCtx;
195
+ exports.useMobCtx = index$n.useMobCtx;
194
196
  exports.useViewController = useViewController.useViewController;
195
197
  exports.EmptyVNode = vue.EmptyVNode;
196
198
  exports.getOrigin = vue.getOrigin;
@@ -201,7 +203,7 @@ exports.useForceTogether = vue.useForceTogether;
201
203
  exports.useProps = vue.useProps;
202
204
  exports.usePropsWatch = vue.usePropsWatch;
203
205
  exports.useCodeListListen = codelistListen.useCodeListListen;
204
- exports.useLocalCacheKey = index$n.useLocalCacheKey;
206
+ exports.useLocalCacheKey = index$o.useLocalCacheKey;
205
207
  exports.useAutoFocusBlur = autofocusBlur.useAutoFocusBlur;
206
208
  exports.OverlayContainer = overlayContainer.OverlayContainer;
207
209
  exports.OverlayPopoverContainer = overlayPopoverContainer.OverlayPopoverContainer;
@@ -228,7 +230,7 @@ exports.openViewModal = overlayViewUtil.openViewModal;
228
230
  exports.openViewPopover = overlayViewUtil.openViewPopover;
229
231
  exports.useAppStore = appStore.useAppStore;
230
232
  exports.useUIStore = uiStore.useUIStore;
231
- exports.piniaInstance = index$o.piniaInstance;
233
+ exports.piniaInstance = index$p.piniaInstance;
232
234
  exports.RequiredProp = common.RequiredProp;
233
235
  exports.getGridInputIpProps = textBox.getGridInputIpProps;
234
236
  exports.getGridInputNumberProps = textBox.getGridInputNumberProps;
@@ -286,5 +288,5 @@ exports.getCascaderProps = cascader.getCascaderProps;
286
288
  exports.getGridCascaderProps = cascader.getGridCascaderProps;
287
289
  exports.getColorPickerProps = colorPicker.getColorPickerProps;
288
290
  exports.getGridColorPickerProps = colorPicker.getGridColorPickerProps;
289
- exports.en = index$p.en;
290
- exports.zhCn = index$q.zhCn;
291
+ exports.en = index$q.en;
292
+ exports.zhCn = index$r.zhCn;
@@ -16,6 +16,7 @@ var index$c = require('./panel-tab-page/index.cjs');
16
16
  var index$d = require('./panel-item-render/index.cjs');
17
17
  var index$e = require('./teleport-placeholder/index.cjs');
18
18
  var index$f = require('./panel-container-tabs/index.cjs');
19
+ var index$g = require('./panel-ctrl-view-page-caption/index.cjs');
19
20
  var panelContainer_state = require('./panel-container/panel-container.state.cjs');
20
21
  var panelContainer_controller = require('./panel-container/panel-container.controller.cjs');
21
22
  var panelCtrlPos_controller = require('./panel-ctrl-pos/panel-ctrl-pos.controller.cjs');
@@ -59,6 +60,7 @@ exports.IBizPanelTabPage = index$c.IBizPanelTabPage;
59
60
  exports.IBizPanelItemRender = index$d.IBizPanelItemRender;
60
61
  exports.IBizTeleportPlaceholder = index$e.IBizTeleportPlaceholder;
61
62
  exports.IBizPanelContainerTabs = index$f.IBizPanelContainerTabs;
63
+ exports.IBizPanelCtrlViewPageCaption = index$g.IBizPanelCtrlViewPageCaption;
62
64
  exports.PanelContainerState = panelContainer_state.PanelContainerState;
63
65
  exports.PanelContainerController = panelContainer_controller.PanelContainerController;
64
66
  exports.PanelCtrlPosController = panelCtrlPos_controller.PanelCtrlPosController;
@@ -1 +1 @@
1
- .ibiz-panel-container{width:100%;height:100%}.ibiz-panel-container>.ibiz-row{height:100%;overflow-x:hidden;overflow-y:auto}.ibiz-panel-container.is-hidden{display:none}
1
+ .ibiz-panel-container{--ibiz-panel-scroll:auto;width:100%;height:100%}.ibiz-panel-container>.ibiz-row{height:100%;overflow:hidden var(--ibiz-panel-scroll)}.ibiz-panel-container.is-hidden{display:none}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ require('../../util/index.cjs');
7
+ var panelCtrlViewPageCaption = require('./panel-ctrl-view-page-caption.cjs');
8
+ var panelCtrlViewPageCaption_provider = require('./panel-ctrl-view-page-caption.provider.cjs');
9
+ var install = require('../../util/install.cjs');
10
+
11
+ "use strict";
12
+ const IBizPanelCtrlViewPageCaption = install.withInstall(
13
+ panelCtrlViewPageCaption.PanelCtrlViewPageCaption,
14
+ function(v) {
15
+ v.component(panelCtrlViewPageCaption.PanelCtrlViewPageCaption.name, panelCtrlViewPageCaption.PanelCtrlViewPageCaption);
16
+ runtime.registerPanelItemProvider(
17
+ "CTRLPOS_VIEW_PAGECAPTION",
18
+ () => new panelCtrlViewPageCaption_provider.PanelCtrlViewPageProvider()
19
+ );
20
+ }
21
+ );
22
+
23
+ exports.IBizPanelCtrlViewPageCaption = IBizPanelCtrlViewPageCaption;
24
+ exports.default = IBizPanelCtrlViewPageCaption;