@steedos-widgets/amis-object 3.6.12 → 6.3.0-beta.4

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.
@@ -436,6 +436,11 @@ fieldset.antd-Collapse > legend{
436
436
  .antd-InputTable .antd-Table-table > thead > tr > th:not(:last-child) {
437
437
  border-right: none;
438
438
  }
439
+
440
+ /* amis升级到6.3.0后配置了menuTpl属性的input-tree组件,菜单项内的wrapper组件宽度计算出bug了,需要指定宽度为100% */
441
+ .antd-Tree .antd-Tree-list .antd-Tree-item .antd-Tree-itemLabel-item .antd-Tree-itemText >.antd-Wrapper{
442
+ width: 100%;
443
+ }
439
444
  .ant-dropdown{
440
445
  z-index: 1400;
441
446
  }
@@ -12049,10 +12049,6 @@ async function getObjectCRUD(objectSchema, fields, options){
12049
12049
  }
12050
12050
  }
12051
12051
  `;
12052
- let autoFillHeight = true;
12053
- if(options.isRelated || window.innerWidth < 768){
12054
- autoFillHeight = false;
12055
- }
12056
12052
 
12057
12053
  body = Object.assign({}, table, {
12058
12054
  type: 'crud',
@@ -12063,7 +12059,7 @@ async function getObjectCRUD(objectSchema, fields, options){
12063
12059
  keepItemSelectionOnPageChange: true,
12064
12060
  api: await getTableApi(objectSchema, fields, options),
12065
12061
  hiddenOn: options.tableHiddenOn,
12066
- autoFillHeight,
12062
+ // autoFillHeight,//autoFillHeight按amis规范默认为false,需要配置此属性时在各个组件层配置,比如列表视图组件那边传入此属性为true
12067
12063
  className: `flex-auto ${crudClassName || ""}`,
12068
12064
  // 这里不可以用动态className,因为它会把样式类加到.antd-Crud和.antd-Table.antd-Crud-body这两层div中,而子表列表中crudClassName中有hidden样式类会造成所有子表都不显示的bug
12069
12065
  // className: {
@@ -12329,7 +12325,7 @@ async function getObjectForm(objectSchema, ctx){
12329
12325
 
12330
12326
  async function getObjectDetail(objectSchema, recordId, ctx){
12331
12327
  const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "horizontal", labelAlign,
12332
- formDataFilter, onFormDataFilter, amisData, env } = ctx;
12328
+ formDataFilter, onFormDataFilter, amisData, env, enableInitApi } = ctx;
12333
12329
  const fields = _$1__default.values(objectSchema.fields);
12334
12330
  const formFields = getFormFields$1(objectSchema, ctx);
12335
12331
  const serviceId = `service_detail_page`;
@@ -12396,6 +12392,16 @@ async function getObjectDetail(objectSchema, recordId, ctx){
12396
12392
  // }
12397
12393
  };
12398
12394
 
12395
+ if(enableInitApi){
12396
+ amisSchema.api = await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx);
12397
+ // 开启初始化api请求时,如果不把recordLoaded默认设置为false,recordLoaded值会取RecordServic组件中的recordLoaded值
12398
+ // 这会造成表单内steedos field组件lookup字段中props.data取到的是RecordServic组件
12399
+ amisSchema.data = {
12400
+ ...amisSchema.data,
12401
+ recordLoaded: false
12402
+ };
12403
+ }
12404
+
12399
12405
  amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });
12400
12406
  // console.log('getObjectDetail=====>', amisSchema);
12401
12407
  return amisSchema;
@@ -12887,7 +12893,7 @@ async function getObjectRelatedListsMiniSchema(objectApiName){
12887
12893
  * @Author: baozhoutao@steedos.com
12888
12894
  * @Date: 2022-07-05 15:55:39
12889
12895
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
12890
- * @LastEditTime: 2024-02-23 16:37:06
12896
+ * @LastEditTime: 2024-04-25 19:01:52
12891
12897
  * @Description:
12892
12898
  */
12893
12899
 
@@ -13152,37 +13158,41 @@ async function getListSchema(
13152
13158
  * 本次存储代码段
13153
13159
  */
13154
13160
  try {
13155
- const listViewPropsStoreKey = location.pathname + "/crud";
13156
- let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);
13157
- /**
13158
- * localListViewProps规范来自crud请求api中api.data.$self参数值的。
13159
- * 比如:{"perPage":20,"page":1,"__searchable__name":"7","__searchable__between__n1__c":[null,null],"filter":[["name","contains","a"]]}
13160
- * __searchable__...:顶部放大镜搜索条件
13161
- * filter:右侧过滤器
13162
- * perPage:每页条数
13163
- * page:当前页码
13164
- * orderBy:排序字段
13165
- * orderDir:排序方向
13166
- */
13167
- if (localListViewProps) {
13168
- localListViewProps = JSON.parse(localListViewProps);
13169
- // localListViewProps.perPage = 3;
13170
- let listSchema = {};
13171
- if(localListViewProps.orderBy){
13172
- listSchema.orderBy = localListViewProps.orderBy;
13173
- }
13174
- if(localListViewProps.orderDir){
13175
- listSchema.orderDir = localListViewProps.orderDir;
13176
- }
13161
+ const listViewPropsStoreKey = location.pathname + "/crud";
13162
+ let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);
13163
+ /**
13164
+ * localListViewProps规范来自crud请求api中api.data.$self参数值的。
13165
+ * 比如:{"perPage":20,"page":1,"__searchable__name":"7","__searchable__between__n1__c":[null,null],"filter":[["name","contains","a"]]}
13166
+ * __searchable__...:顶部放大镜搜索条件
13167
+ * filter:右侧过滤器
13168
+ * perPage:每页条数
13169
+ * page:当前页码
13170
+ * orderBy:排序字段
13171
+ * orderDir:排序方向
13172
+ */
13173
+ if (localListViewProps) {
13174
+ localListViewProps = JSON.parse(localListViewProps);
13175
+ // localListViewProps.perPage = 3;
13176
+ let listSchema = {};
13177
+ if (localListViewProps.orderBy) {
13178
+ listSchema.orderBy = localListViewProps.orderBy;
13179
+ }
13180
+ if (localListViewProps.orderDir) {
13181
+ listSchema.orderDir = localListViewProps.orderDir;
13182
+ }
13177
13183
 
13178
- if(localListViewProps.perPage){
13179
- listSchema.perPage = localListViewProps.perPage;
13184
+ if (localListViewProps.perPage) {
13185
+ listSchema.perPage = localListViewProps.perPage;
13186
+ }
13187
+ if (window.innerWidth > 768) {
13188
+ // 列表视图组件PC端高度自动计算实现满屏效果,手机端不需要满屏效果,所以不用autofillheight
13189
+ listSchema.autoFillHeight = true;
13190
+ }
13191
+ defaults.listSchema = defaultsDeep$1({}, listSchema, defaults.listSchema || {});
13180
13192
  }
13181
- defaults.listSchema = defaultsDeep$1({}, listSchema, defaults.listSchema || {});
13182
- }
13183
13193
  }
13184
13194
  catch (ex) {
13185
- console.error("本地存储中crud参数解析异常:", ex);
13195
+ console.error("本地存储中crud参数解析异常:", ex);
13186
13196
  }
13187
13197
 
13188
13198
  ctx.defaults = defaults;
@@ -13489,6 +13499,10 @@ async function getRecordServiceSchema(objectName, appId, props = {}, body) {
13489
13499
  data: {
13490
13500
  "_master.objectName": "${objectName}",
13491
13501
  "_master.recordId": "${recordId}",
13502
+ // 微页面设计器中用RecordServic组件包裹一个ObjectForm只读组件时,如果这里不把recordLoaded默认设置为false
13503
+ // recordLoaded值会取父作用域中已经被设置为true的值(比如父级有RecordServic组件,在加载完数据后,父作用域中recordLoaded值为true)
13504
+ // 这会造成表单内steedos field组件lookup字段中props.data取到的是父作用域中的数据
13505
+ "recordLoaded": false,
13492
13506
  ...(props.data || {})
13493
13507
  },
13494
13508
  "style": {
@@ -21449,11 +21463,11 @@ var SteedosSkeleton = function (props) {
21449
21463
  };
21450
21464
 
21451
21465
  var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0, function () {
21452
- var $schema, recordId, defaultData, mode, _a, layout, labelAlign, appId, fieldsExtend, _b, excludedFields, _c, fields, _d, form, _e, className, initApiRequestAdaptor, initApiAdaptor, apiRequestAdaptor, apiAdaptor, enableTabs, tabsMode, submitSuccActions, data, formDataFilter, onFormDataFilter, env, objectApiName, schemaKeys, formSchema, defaults, options, globalData, amisSchema, uiSchema, allData, schema, schema, formData, fieldsArray, excludedFieldsArray, InitApiResendOn;
21466
+ var $schema, recordId, defaultData, mode, _a, layout, labelAlign, appId, fieldsExtend, _b, excludedFields, _c, fields, _d, form, _e, className, enableInitApi, initApiRequestAdaptor, initApiAdaptor, apiRequestAdaptor, apiAdaptor, enableTabs, tabsMode, submitSuccActions, data, formDataFilter, onFormDataFilter, env, objectApiName, schemaKeys, formSchema, defaults, options, globalData, amisSchema, uiSchema, allData, schema, schema, formData;
21453
21467
  return __generator(this, function (_f) {
21454
21468
  switch (_f.label) {
21455
21469
  case 0:
21456
- $schema = props.$schema, recordId = props.recordId, defaultData = props.defaultData, mode = props.mode, _a = props.layout, layout = _a === void 0 ? "horizontal" : _a, labelAlign = props.labelAlign, appId = props.appId, fieldsExtend = props.fieldsExtend, _b = props.excludedFields, excludedFields = _b === void 0 ? null : _b, _c = props.fields, fields = _c === void 0 ? null : _c, _d = props.form, form = _d === void 0 ? {} : _d, _e = props.className, className = _e === void 0 ? "" : _e, initApiRequestAdaptor = props.initApiRequestAdaptor, initApiAdaptor = props.initApiAdaptor, apiRequestAdaptor = props.apiRequestAdaptor, apiAdaptor = props.apiAdaptor, enableTabs = props.enableTabs, tabsMode = props.tabsMode, submitSuccActions = props.submitSuccActions, data = props.data, formDataFilter = props.formDataFilter, onFormDataFilter = props.onFormDataFilter, env = props.env;
21470
+ $schema = props.$schema, recordId = props.recordId, defaultData = props.defaultData, mode = props.mode, _a = props.layout, layout = _a === void 0 ? "horizontal" : _a, labelAlign = props.labelAlign, appId = props.appId, fieldsExtend = props.fieldsExtend, _b = props.excludedFields, excludedFields = _b === void 0 ? null : _b, _c = props.fields, fields = _c === void 0 ? null : _c, _d = props.form, form = _d === void 0 ? {} : _d, _e = props.className, className = _e === void 0 ? "" : _e, enableInitApi = props.enableInitApi, initApiRequestAdaptor = props.initApiRequestAdaptor, initApiAdaptor = props.initApiAdaptor, apiRequestAdaptor = props.apiRequestAdaptor, apiAdaptor = props.apiAdaptor, enableTabs = props.enableTabs, tabsMode = props.tabsMode, submitSuccActions = props.submitSuccActions, data = props.data, formDataFilter = props.formDataFilter, onFormDataFilter = props.onFormDataFilter, env = props.env;
21457
21471
  objectApiName = props.objectApiName || "space_users";
21458
21472
  schemaKeys = difference(keys($schema), ["id", "form", "type", "mode", "layout", "defaultData", "formDataFilter", "onFormDataFilter", "env"]);
21459
21473
  formSchema = pick(props, schemaKeys);
@@ -21509,6 +21523,7 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
21509
21523
  options.isEditor = true;
21510
21524
  }
21511
21525
  return [4 /*yield*/, getViewSchema(objectApiName, recordId, Object.assign({}, options, {
21526
+ enableInitApi: enableInitApi,
21512
21527
  initApiRequestAdaptor: initApiRequestAdaptor,
21513
21528
  initApiAdaptor: initApiAdaptor,
21514
21529
  enableTabs: enableTabs,
@@ -21538,16 +21553,6 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
21538
21553
  if (has(props, 'objectApiName')) {
21539
21554
  amisSchema.data.objectName = objectApiName;
21540
21555
  }
21541
- if (props.$$editor) {
21542
- fieldsArray = fields || [];
21543
- excludedFieldsArray = excludedFields || [];
21544
- InitApiResendOn = fieldsArray.concat(excludedFieldsArray).join('');
21545
- if (InitApiResendOn) {
21546
- amisSchema.data.InitApiResendOn = InitApiResendOn;
21547
- amisSchema.api.url += "&InitApiResendOn=${InitApiResendOn}";
21548
- // amisSchema.api.InitApiResendOn = "${InitApiResendOn}"; 这种写法有bug,当多选几个显示的字段/排除的字段时,表单一直loding。
21549
- }
21550
- }
21551
21556
  return [2 /*return*/, amisSchema];
21552
21557
  }
21553
21558
  });
@@ -21965,12 +21970,12 @@ var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void
21965
21970
  /*
21966
21971
  * @Author: baozhoutao@steedos.com
21967
21972
  * @Date: 2022-12-08 10:32:17
21968
- * @LastEditors: baozhoutao@steedos.com
21969
- * @LastEditTime: 2024-02-18 16:05:56
21973
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
21974
+ * @LastEditTime: 2024-04-25 19:21:15
21970
21975
  * @Description:
21971
21976
  */
21972
21977
  var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void 0, function () {
21973
- var className, $schema, appId, _a, objectApiName, body, style, recordId, options, schema;
21978
+ var className, $schema, appId, _a, objectApiName, body, style, recordId, options, schema, formData;
21974
21979
  return __generator(this, function (_b) {
21975
21980
  switch (_b.label) {
21976
21981
  case 0:
@@ -21997,6 +22002,14 @@ var AmisRecordService = function (props) { return __awaiter(void 0, void 0, void
21997
22002
  }
21998
22003
  Object.assign(schema.style, style);
21999
22004
  }
22005
+ formData = {};
22006
+ if (has(props, "recordId") && $schema.recordId !== "${recordId}") {
22007
+ formData.recordId = props.recordId;
22008
+ }
22009
+ schema.data = Object.assign({}, schema.data || {}, formData);
22010
+ if (has(props, 'objectApiName')) {
22011
+ schema.data.objectName = objectApiName;
22012
+ }
22000
22013
  // console.log(`AmisRecordService====schema==>`, schema)
22001
22014
  return [2 /*return*/, schema];
22002
22015
  }