@gct-paas/design 6.0.0-dev.21 → 6.0.0-dev.23

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.
@@ -267,6 +267,13 @@ function useDesignSave() {
267
267
  async function saveTxn(flag = true, showSuccess = true) {
268
268
  const pageId = _gct.store.context.pid;
269
269
  const { createPageJson, detailPageJson } = resolveTxnPageJsonPair();
270
+ const MAX_TITLE_LENGTH = 100;
271
+ const createTitle = createPageJson.pageConfig?.title;
272
+ const detailTitle = detailPageJson.pageConfig?.title;
273
+ if (createTitle && createTitle.length > MAX_TITLE_LENGTH || detailTitle && detailTitle.length > MAX_TITLE_LENGTH) {
274
+ message.error(t("sys.pageDesigner.titleMaxLength"));
275
+ return false;
276
+ }
270
277
  const createPayload = await preparePagePayload(createPageJson);
271
278
  if (!createPayload) return false;
272
279
  const detailPayload = await preparePagePayload(detailPageJson);
@@ -2,7 +2,7 @@ import { useWidgetRegistry } from "../widget/useWidgetRegistry.mjs";
2
2
  import { useModelField } from "../../use-model-field/use-model-field.mjs";
3
3
  import "../../index.mjs";
4
4
  import { clone, cloneDeep } from "lodash-es";
5
- import { CategoryTypeEnum, ContextSceneEnum, FormComponents, Platform, ToolkitEnum } from "@gct-paas/core";
5
+ import { CategoryTypeEnum, ContextSceneEnum, ContextTxnPageModeEnum, FormComponents, Platform, ToolkitEnum } from "@gct-paas/core";
6
6
  import { ref } from "vue";
7
7
  import { getWidgetInfo } from "@gct-paas/schema";
8
8
  //#region src/hooks/design-view/layout/useToolkit.ts
@@ -153,12 +153,15 @@ var instance = class ComponentUtils {
153
153
  CategoryTypeEnum.LAYOUT,
154
154
  CategoryTypeEnum.ADVANCED
155
155
  ];
156
- if (this.groupType === ComponentUtils.TxnPageGroup) return [
157
- CategoryTypeEnum.FORM,
158
- CategoryTypeEnum.LAYOUT,
159
- CategoryTypeEnum.DATA,
160
- CategoryTypeEnum.BUTTON
161
- ];
156
+ if (this.groupType === ComponentUtils.TxnPageGroup) {
157
+ let res = [
158
+ CategoryTypeEnum.FORM,
159
+ CategoryTypeEnum.LAYOUT,
160
+ CategoryTypeEnum.DATA
161
+ ];
162
+ if (_gct.store.context.txnPageMode === ContextTxnPageModeEnum.CREATE) res = [...res, CategoryTypeEnum.BUTTON];
163
+ return res;
164
+ }
162
165
  if (this.groupType === ComponentUtils.DetailPageGroup) return [
163
166
  CategoryTypeEnum.FORM,
164
167
  CategoryTypeEnum.LAYOUT,
@@ -1,5 +1,5 @@
1
1
  import { Ref, App } from 'vue';
2
- import { PanelEnum } from '@gct-paas/core';
2
+ import { PanelEnum, ContextTxnPageModeEnum } from '@gct-paas/core';
3
3
  import { PermissionResponse } from '@gct-paas/api/apaas';
4
4
  export type { PageInfo } from '../design-state';
5
5
  export { pageInfo } from '../design-state';
@@ -50,7 +50,7 @@ export declare function loadDetailPageInfo(app: App): Promise<void>;
50
50
  /**
51
51
  * @param mode 切换模式
52
52
  */
53
- export declare function toggleTxnPageInfo(mode: 'create' | 'detail'): Promise<void>;
53
+ export declare function toggleTxnPageInfo(mode: ContextTxnPageModeEnum): Promise<void>;
54
54
  /**
55
55
  * 初始化界面占用信息
56
56
  */
@@ -10,7 +10,7 @@ import { useCacheHistory } from "../../develop/useCacheHistory.mjs";
10
10
  import { useToolkit } from "../layout/useToolkit.mjs";
11
11
  import { useDesigner } from "../useDesigner.mjs";
12
12
  import { isEmpty, isNil } from "lodash-es";
13
- import { ButtonSize, ButtonStyle, ContextSceneEnum, FormComponents, KitPkgUtil, PanelEnum, Platform, t } from "@gct-paas/core";
13
+ import { ButtonSize, ButtonStyle, ContextSceneEnum, ContextTxnPageModeEnum, FormComponents, KitPkgUtil, PanelEnum, Platform, t } from "@gct-paas/core";
14
14
  import { computed, createVNode, ref } from "vue";
15
15
  import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
16
16
  import { Modal } from "ant-design-vue";
@@ -117,6 +117,7 @@ async function loadPageInfo(app) {
117
117
  * @returns
118
118
  */
119
119
  async function loadTxnPageInfo(app) {
120
+ await _gct.store.setContext({ txnPageMode: ContextTxnPageModeEnum.CREATE });
120
121
  const { initToolkitWidgets } = useToolkit();
121
122
  const { setPageJson, loadPageDesignHistoryList, emitCache, pageJson, setPluginConfigs, savePageJsonSnapshot } = useDesigner();
122
123
  const { historyUtils } = useCacheHistory();
@@ -290,8 +291,9 @@ async function loadDetailPageInfo(app) {
290
291
  * @param mode 切换模式
291
292
  */
292
293
  async function toggleTxnPageInfo(mode) {
294
+ await _gct.store.setContext({ txnPageMode: mode });
293
295
  const { setTxnPageJson, pageJson } = useDesigner();
294
- if (mode === "create") {
296
+ if (mode === ContextTxnPageModeEnum.CREATE) {
295
297
  pageInfo.value.detailDesignerJson = JSON.stringify(pageJson);
296
298
  pageInfo.value.txnPageMode = mode;
297
299
  setTxnPageJson({ ...JSON.parse(pageInfo.value._designerJson) });
@@ -3,7 +3,7 @@ import { useScope } from "../../hooks/design-view/layout/useScope.mjs";
3
3
  import { useDesigner } from "../../hooks/design-view/useDesigner.mjs";
4
4
  import "../../hooks/index.mjs";
5
5
  import { has } from "lodash-es";
6
- import { BindCmpStyleEnum, BindCmpStyleTypeEnum, ContextSceneEnum, EntityModelTypeEnum, FIELD_TYPE, FormComponents, MaterialEnum, Platform, PropGroup, TreeHelper } from "@gct-paas/core";
6
+ import { BindCmpStyleEnum, BindCmpStyleTypeEnum, ContextSceneEnum, ContextTxnPageModeEnum, EntityModelTypeEnum, FIELD_TYPE, FormComponents, MaterialEnum, Platform, PropGroup, TreeHelper } from "@gct-paas/core";
7
7
  import { isFormFieldType } from "@gct-paas/schema";
8
8
  //#region src/schema/common-config/common-field-editor-config.ts
9
9
  /** 字段名称和显示标题config */
@@ -62,7 +62,7 @@ var getInputAttrEditor = (needFieldAttrs) => {
62
62
  }
63
63
  },
64
64
  hidden(widget) {
65
- return widget.props.field === "operating_state_" || widget.props.bindFieldKey || widget.materialType === MaterialEnum.DescriptionsFormField || widget.props.fieldReadonly || _gct.store.context.scene === ContextSceneEnum.DETAIL;
65
+ return widget.props.field === "operating_state_" || widget.props.bindFieldKey || widget.materialType === MaterialEnum.DescriptionsFormField || widget.props.fieldReadonly || _gct.store.context.scene === ContextSceneEnum.DETAIL || _gct.store.context.txnPageMode === ContextTxnPageModeEnum.DETAIL;
66
66
  }
67
67
  }];
68
68
  };
@@ -1,7 +1,7 @@
1
1
  import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
2
2
  import { widget as widget$1 } from "./modal-body.mjs";
3
3
  import { widget as widget$2 } from "./modal-footer.mjs";
4
- import { BuiltinType, ContextSceneEnum, Platform, PropGroup, StyleGroup } from "@gct-paas/core";
4
+ import { BuiltinType, ContextSceneEnum, ContextTxnPageModeEnum, Platform, PropGroup, StyleGroup } from "@gct-paas/core";
5
5
  //#region src/schema/modal/modal.ts
6
6
  var modal_exports = /* @__PURE__ */ __exportAll({
7
7
  beforeCreate: () => beforeCreate,
@@ -145,7 +145,7 @@ var propEditorList = [
145
145
  label: "sys.pageDesigner.operateButton",
146
146
  group: PropGroup.BUTTON,
147
147
  hidden: (widget) => {
148
- return widget.props.isSubTableModal || _gct.store.context.scene === ContextSceneEnum.DETAIL;
148
+ return widget.props.isSubTableModal || _gct.store.context.scene === ContextSceneEnum.DETAIL || _gct.store.context.txnPageMode === ContextTxnPageModeEnum.DETAIL;
149
149
  }
150
150
  }
151
151
  ];
@@ -166,7 +166,7 @@ var eventList = [{
166
166
  }];
167
167
  var runCallback = () => {};
168
168
  var beforeCreate = (widget) => {
169
- if (_gct.store.context.scene === ContextSceneEnum.DETAIL) widget.props.hasFooter = false;
169
+ if (_gct.store.context.scene === ContextSceneEnum.DETAIL || _gct.store.context.txnPageMode === ContextTxnPageModeEnum.DETAIL) widget.props.hasFooter = false;
170
170
  };
171
171
  var designerConfig = { basicProps: {
172
172
  key_label: "弹窗",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/design",
3
- "version": "6.0.0-dev.21",
3
+ "version": "6.0.0-dev.23",
4
4
  "type": "module",
5
5
  "description": "paas 平台设计界面底包",
6
6
  "loader": "dist/loader.esm.min.js",
@@ -51,10 +51,10 @@
51
51
  "react-dnd-html5-backend": "^16.0.1",
52
52
  "vue": "^3.5.30",
53
53
  "vue3-dnd": "^2.1.0",
54
- "@gct-paas/core": "6.0.0-dev.21",
55
- "@gct-paas/core-web": "6.0.0-dev.21",
56
- "@gct-paas/schema": "6.0.0-dev.21",
57
- "@gct-paas/scss": "6.0.0-dev.21"
54
+ "@gct-paas/core-web": "6.0.0-dev.23",
55
+ "@gct-paas/schema": "6.0.0-dev.23",
56
+ "@gct-paas/core": "6.0.0-dev.23",
57
+ "@gct-paas/scss": "6.0.0-dev.23"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/babel__core": "^7.20.5",
@@ -64,10 +64,10 @@
64
64
  "peerDependencies": {
65
65
  "@gct-paas/api": "^6.0.0-dev.9",
66
66
  "vue": ">=3",
67
- "@gct-paas/core": "6.0.0-dev.21",
68
- "@gct-paas/schema": "6.0.0-dev.21",
69
- "@gct-paas/core-web": "6.0.0-dev.21",
70
- "@gct-paas/scss": "6.0.0-dev.21"
67
+ "@gct-paas/core": "6.0.0-dev.23",
68
+ "@gct-paas/core-web": "6.0.0-dev.23",
69
+ "@gct-paas/schema": "6.0.0-dev.23",
70
+ "@gct-paas/scss": "6.0.0-dev.23"
71
71
  },
72
72
  "scripts": {
73
73
  "dev": "cross-env NODE_ENV=development vite build --watch --config vite.dev.config.ts",