@steedos-widgets/amis-object 6.3.2 → 6.3.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.
@@ -1371,6 +1371,9 @@ fieldset.antd-Collapse > legend{
1371
1371
  .md\:overflow-auto {
1372
1372
  overflow: auto
1373
1373
  }
1374
+ .md\:border-b {
1375
+ border-bottom-width: 1px
1376
+ }
1374
1377
  }
1375
1378
  @media (min-width: 1024px) {
1376
1379
  .lg\:z-\[1000\] {
@@ -10930,7 +10930,7 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
10930
10930
 
10931
10931
  // console.log('=======================max=========================', max)
10932
10932
 
10933
- if(objectSchema.compactLayouts){
10933
+ if(objectSchema.compactLayouts && objectSchema.compactLayouts.length > 0){
10934
10934
  const details = [];
10935
10935
  _.each(_.slice(_.difference(objectSchema.compactLayouts, [objectSchema.NAME_FIELD_KEY]), 0, max), (fieldName)=>{
10936
10936
  const field = objectSchema.fields[fieldName];
@@ -12126,18 +12126,19 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
12126
12126
  }
12127
12127
  let toolbarReloadButton;
12128
12128
  const onReloadScript = `
12129
- // const scope = event.context.scoped;
12130
- // var listView = scope.parent.getComponents().find(function(n){
12131
- // return n.props.type === "crud";
12132
- // });
12133
- // listView.handleChangePage(1);
12134
-
12135
-
12136
12129
  // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页
12137
12130
  const scope = event.context.scoped;
12138
12131
  const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");
12139
- const sbValue = sb.state.value;
12140
- sb.handleSearch(sbValue);
12132
+ if (sb) {
12133
+ const sbValue = sb.state.value;
12134
+ sb.handleSearch(sbValue);
12135
+ }else{
12136
+ var listView = scope.parent.getComponents().find(function(n){
12137
+ return n.props.type === "crud";
12138
+ });
12139
+ listView.handleChangePage(1);
12140
+ }
12141
+
12141
12142
  `;
12142
12143
  toolbarReloadButton = {
12143
12144
  // "type": "reload",//不可以直接使用reload,因为它不会设置页码到第一页,这在加载更多按钮的翻页模式下会有问题
@@ -12828,9 +12829,10 @@ async function getFormSchemaWithDataFilter(form, options = {}){
12828
12829
  async function getObjectForm(objectSchema, ctx){
12829
12830
  const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "horizontal", labelAlign, tabId, appId, defaults, submitSuccActions = [],
12830
12831
  formDataFilter, onFormDataFilter, amisData, env } = ctx;
12832
+ let enableTabs = ctx.enableTabs;
12831
12833
  //优先识别组件上的enableTabs属性,若不存在,则识别对象上定义的
12832
- if (typeof ctx.enableTabs !== 'boolean') {
12833
- ctx.enableTabs = objectSchema.enable_form_tabs;
12834
+ if (typeof enableTabs !== 'boolean') {
12835
+ enableTabs = objectSchema.enable_form_tabs;
12834
12836
  }
12835
12837
  const fields = _$1__default.values(objectSchema.fields);
12836
12838
  const formFields = getFormFields$1(objectSchema, ctx);
@@ -12874,7 +12876,7 @@ async function getObjectForm(objectSchema, ctx){
12874
12876
  body: {
12875
12877
  type: 'wrapper',
12876
12878
  className: 'p-0 m-0',
12877
- body: await getFormBody(fields, formFields, Object.assign({}, ctx, {fieldGroups: objectSchema.field_groups, omitReadonlyFields: true})),
12879
+ body: await getFormBody(fields, formFields, Object.assign({}, ctx, {fieldGroups: objectSchema.field_groups, omitReadonlyFields: true, enableTabs})),
12878
12880
  hiddenOn: "${editFormInited != true}",
12879
12881
  },
12880
12882
  panelClassName:'m-0 sm:rounded-lg shadow-none border-none',
@@ -12929,6 +12931,11 @@ async function getObjectDetail(objectSchema, recordId, ctx){
12929
12931
  const fields = _$1__default.values(objectSchema.fields);
12930
12932
  const formFields = getFormFields$1(objectSchema, ctx);
12931
12933
  const serviceId = `service_detail_page`;
12934
+ let enableTabs = ctx.enableTabs;
12935
+ //优先识别组件上的enableTabs属性,若不存在,则识别对象上定义的
12936
+ if (typeof enableTabs !== 'boolean') {
12937
+ enableTabs = objectSchema.enable_form_tabs;
12938
+ }
12932
12939
  const amisSchema = {
12933
12940
  type: 'service',
12934
12941
  name: `page_readonly_${recordId}`,
@@ -12955,7 +12962,7 @@ async function getObjectDetail(objectSchema, recordId, ctx){
12955
12962
  body: await getFormBody(
12956
12963
  map(fields, (field) => { field.readonly = true; return field; }),
12957
12964
  map(formFields, (field) => { field.readonly = true; return field; }),
12958
- Object.assign({}, ctx, { showSystemFields: true, fieldGroups: objectSchema.field_groups })
12965
+ Object.assign({}, ctx, { showSystemFields: true, fieldGroups: objectSchema.field_groups, enableTabs })
12959
12966
  ),
12960
12967
  className: 'steedos-amis-form bg-white',
12961
12968
  actions: [], // 不显示表单默认的提交按钮
@@ -22122,6 +22129,7 @@ var SteedosSkeleton = function (props) {
22122
22129
  }))) : null));
22123
22130
  };
22124
22131
 
22132
+ // md:border-b
22125
22133
  var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0, function () {
22126
22134
  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;
22127
22135
  return __generator(this, function (_f) {
@@ -22187,7 +22195,7 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
22187
22195
  initApiRequestAdaptor: initApiRequestAdaptor,
22188
22196
  initApiAdaptor: initApiAdaptor,
22189
22197
  enableTabs: enableTabs,
22190
- tabsMode: tabsMode,
22198
+ tabsMode: tabsMode || "vertical",
22191
22199
  formDataFilter: formDataFilter,
22192
22200
  onFormDataFilter: onFormDataFilter,
22193
22201
  amisData: allData,
@@ -24184,6 +24192,9 @@ function getAmisStaticFieldType(type, data_type, options) {
24184
24192
  else if (type === 'color') {
24185
24193
  return 'static-color';
24186
24194
  }
24195
+ else if (type === 'file') {
24196
+ return 'control';
24197
+ }
24187
24198
  return type;
24188
24199
  }
24189
24200
  function getLookupLinkOnClick(field, options) {
@@ -24276,7 +24287,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
24276
24287
  }
24277
24288
  _5.label = 1;
24278
24289
  case 1:
24279
- _5.trys.push([1, 33, , 34]);
24290
+ _5.trys.push([1, 22, , 23]);
24280
24291
  if (!(fStatic && (steedosField.type === 'lookup' || steedosField.type === 'master_detail'))) return [3 /*break*/, 16];
24281
24292
  lookupATagClick = 'onclick="return false;"';
24282
24293
  if (window.innerWidth < 768) {
@@ -24513,7 +24524,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
24513
24524
  // console.log(`steedos field [lookup] schema:`, schema)
24514
24525
  return [2 /*return*/, schema];
24515
24526
  case 16:
24516
- if (!fStatic) return [3 /*break*/, 30];
24527
+ if (!fStatic) return [3 /*break*/, 19];
24517
24528
  if (!props.data.hasOwnProperty("_display")) return [3 /*break*/, 18];
24518
24529
  return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, true, ctx)];
24519
24530
  case 17:
@@ -24563,123 +24574,138 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
24563
24574
  static: true,
24564
24575
  label: steedosField.label
24565
24576
  });
24566
- if (!(steedosField.type === "time" || steedosField.type === "input-time-range")) return [3 /*break*/, 19];
24567
- Object.assign(schema, {
24568
- inputFormat: 'HH:mm',
24569
- timeFormat: 'HH:mm',
24570
- format: '1970-01-01THH:mm:00.000[Z]',
24571
- });
24572
- return [3 /*break*/, 29];
24573
- case 19:
24574
- if (!(steedosField.type === "percent")) return [3 /*break*/, 20];
24575
- Object.assign(schema, {
24576
- "percent": steedosField.scale ? steedosField.scale : true
24577
- });
24578
- return [3 /*break*/, 29];
24579
- case 20:
24580
- if (!(steedosField.type === "password")) return [3 /*break*/, 21];
24581
- Object.assign(schema, {
24582
- "tpl": "******"
24583
- });
24584
- return [3 /*break*/, 29];
24585
- case 21:
24586
- if (!(steedosField.type === "select")) return [3 /*break*/, 22];
24587
- map = getSelectMap(steedosField.options);
24588
- Object.assign(schema, {
24589
- "placeholder": "",
24590
- "map": map
24591
- });
24592
- return [3 /*break*/, 29];
24593
- case 22:
24594
- if (!(steedosField.type === "color")) return [3 /*break*/, 23];
24595
- Object.assign(schema, {
24596
- "defaultColor": null
24597
- });
24598
- return [3 /*break*/, 29];
24599
- case 23:
24600
- if (!(steedosField.type === "number" || steedosField.type === 'currency')) return [3 /*break*/, 24];
24601
- // amis input-number和number组件中的precision表示小数位数,并不是魔方平台的精度概念,要转换下,否则小数点后会显示很多的0
24602
- Object.assign(schema, {
24603
- "precision": steedosField.scale || 0,
24604
- "kilobitSeparator": steedosField.enable_thousands //识别enable_thousands,控制千分位分隔符
24605
- });
24606
- return [3 /*break*/, 29];
24607
- case 24:
24608
- if (!(steedosField.type === "table")) return [3 /*break*/, 25];
24609
- if (steedosField.subFields) {
24610
- tableFields = [];
24611
- try {
24612
- for (_m = __values(steedosField.subFields), _o = _m.next(); !_o.done; _o = _m.next()) {
24613
- subField = _o.value;
24614
- if (!subField.name.endsWith(".$")) {
24615
- subFieldName = subField.name.replace("".concat(steedosField._prefix || '').concat(steedosField.name, ".$."), '').replace("".concat(steedosField.name, "."), '');
24616
- // const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName, isTableField: true}), readonly, ctx);
24617
- tableFields.push(Object.assign({}, subField, { name: subFieldName }));
24577
+ if (steedosField.type === "time" || steedosField.type === "input-time-range") {
24578
+ Object.assign(schema, {
24579
+ inputFormat: 'HH:mm',
24580
+ timeFormat: 'HH:mm',
24581
+ format: '1970-01-01THH:mm:00.000[Z]',
24582
+ });
24583
+ }
24584
+ else if (steedosField.type === "percent") {
24585
+ Object.assign(schema, {
24586
+ "percent": steedosField.scale ? steedosField.scale : true
24587
+ });
24588
+ }
24589
+ else if (steedosField.type === "password") {
24590
+ Object.assign(schema, {
24591
+ "tpl": "******"
24592
+ });
24593
+ }
24594
+ else if (steedosField.type === "select") {
24595
+ map = getSelectMap(steedosField.options);
24596
+ Object.assign(schema, {
24597
+ "placeholder": "",
24598
+ "map": map
24599
+ });
24600
+ }
24601
+ else if (steedosField.type === "color") {
24602
+ Object.assign(schema, {
24603
+ "defaultColor": null
24604
+ });
24605
+ }
24606
+ else if (steedosField.type === "number" || steedosField.type === 'currency') {
24607
+ // amis input-number和number组件中的precision表示小数位数,并不是魔方平台的精度概念,要转换下,否则小数点后会显示很多的0
24608
+ Object.assign(schema, {
24609
+ "precision": steedosField.scale || 0,
24610
+ "kilobitSeparator": steedosField.enable_thousands //识别enable_thousands,控制千分位分隔符
24611
+ });
24612
+ }
24613
+ else if (steedosField.type === "table") {
24614
+ if (steedosField.subFields) {
24615
+ tableFields = [];
24616
+ try {
24617
+ for (_m = __values(steedosField.subFields), _o = _m.next(); !_o.done; _o = _m.next()) {
24618
+ subField = _o.value;
24619
+ if (!subField.name.endsWith(".$")) {
24620
+ subFieldName = subField.name.replace("".concat(steedosField._prefix || '').concat(steedosField.name, ".$."), '').replace("".concat(steedosField.name, "."), '');
24621
+ // const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName, isTableField: true}), readonly, ctx);
24622
+ tableFields.push(Object.assign({}, subField, { name: subFieldName }));
24623
+ }
24618
24624
  }
24619
24625
  }
24620
- }
24621
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
24622
- finally {
24623
- try {
24624
- if (_o && !_o.done && (_y = _m.return)) _y.call(_m);
24626
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
24627
+ finally {
24628
+ try {
24629
+ if (_o && !_o.done && (_y = _m.return)) _y.call(_m);
24630
+ }
24631
+ finally { if (e_1) throw e_1.error; }
24625
24632
  }
24626
- finally { if (e_1) throw e_1.error; }
24633
+ Object.assign(schema, {
24634
+ type: 'steedos-input-table',
24635
+ editable: false,
24636
+ addable: false,
24637
+ removable: false,
24638
+ draggable: false,
24639
+ fields: tableFields,
24640
+ amis: {
24641
+ columnsTogglable: false
24642
+ }
24643
+ });
24627
24644
  }
24628
- Object.assign(schema, {
24629
- type: 'steedos-input-table',
24630
- editable: false,
24631
- addable: false,
24632
- removable: false,
24633
- draggable: false,
24634
- fields: tableFields,
24635
- amis: {
24636
- columnsTogglable: false
24637
- }
24638
- });
24639
24645
  }
24640
- return [3 /*break*/, 29];
24641
- case 25:
24642
- if (!(steedosField.type === "image")) return [3 /*break*/, 26];
24643
- Object.assign(schema, {
24644
- enlargeAble: true,
24645
- showToolbar: true,
24646
- pipeIn: function (value, data) {
24647
- if (steedosField.multiple) {
24648
- if (!value) {
24649
- value = [defaultImageValue];
24646
+ else if (steedosField.type === "image") {
24647
+ Object.assign(schema, {
24648
+ enlargeAble: true,
24649
+ showToolbar: true,
24650
+ pipeIn: function (value, data) {
24651
+ if (steedosField.multiple) {
24652
+ if (!value) {
24653
+ value = [defaultImageValue];
24654
+ }
24655
+ value = value.map(function (item) {
24656
+ if (item && item.split("/").length === 1) {
24657
+ // 不是url格式时转为url格式显示
24658
+ return window.getImageFieldUrl(window.Meteor.absoluteUrl("/api/files/images/".concat(item)));
24659
+ }
24660
+ else {
24661
+ return item;
24662
+ }
24663
+ });
24650
24664
  }
24651
- value = value.map(function (item) {
24652
- if (item && item.split("/").length === 1) {
24653
- // 不是url格式时转为url格式显示
24654
- return window.getImageFieldUrl(window.Meteor.absoluteUrl("/api/files/images/".concat(item)));
24665
+ else {
24666
+ if (isArray(value)) {
24667
+ value = value[0];
24655
24668
  }
24656
- else {
24657
- return item;
24669
+ if (value && value.split("/").length === 1) {
24670
+ // 不是url格式时转为url格式显示
24671
+ return window.getImageFieldUrl(window.Meteor.absoluteUrl("/api/files/images/".concat(value)));
24658
24672
  }
24659
- });
24660
- }
24661
- else {
24662
- if (isArray(value)) {
24663
- value = value[0];
24664
- }
24665
- if (value && value.split("/").length === 1) {
24666
- // 不是url格式时转为url格式显示
24667
- return window.getImageFieldUrl(window.Meteor.absoluteUrl("/api/files/images/".concat(value)));
24668
24673
  }
24674
+ return value;
24669
24675
  }
24670
- return value;
24671
- }
24672
- });
24673
- return [3 /*break*/, 29];
24674
- case 26:
24675
- if (!(steedosField.type === "file")) return [3 /*break*/, 28];
24676
- return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, true, ctx)];
24677
- case 27:
24678
- // 附件static模式先保持原来的逻辑,依赖_display,审批王中相关功能在creator中
24679
- // convertSFieldToAmisField中会合并steedosField.amis,所以也不需要再次合并steedosField.amis,直接return就好
24680
- return [2 /*return*/, _5.sent()];
24681
- case 28:
24682
- if (steedosField.type === 'formula' || steedosField.type === 'summary') {
24676
+ });
24677
+ }
24678
+ else if (steedosField.type === "file") {
24679
+ Object.assign(schema, {
24680
+ "body": [
24681
+ {
24682
+ "type": "service",
24683
+ "api": {
24684
+ "method": "post",
24685
+ "url": "${context.rootUrl}/graphql?file=${".concat(steedosField.name, "}"),
24686
+ "headers": {
24687
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
24688
+ },
24689
+ "data": {
24690
+ "query": "{fileData:cfs_files_filerecord(filters:[\"_id\",\"in\",${".concat(steedosField.name, "|asArray|json}]){_id,original}}")
24691
+ }
24692
+ },
24693
+ "body": [
24694
+ {
24695
+ "type": "each",
24696
+ "source": "${fileData}",
24697
+ "className": "flex flex-col",
24698
+ "items": {
24699
+ "type": "tpl",
24700
+ "tpl": "<a href='${context.rootUrl}/api/files/files/${_id}?download=true' target='_blank'>${original.name}</a>"
24701
+ }
24702
+ }
24703
+ ]
24704
+ }
24705
+ ]
24706
+ }, { name: "" });
24707
+ }
24708
+ else if (steedosField.type === 'formula' || steedosField.type === 'summary') {
24683
24709
  if (steedosField.data_type === 'number' || steedosField.data_type === 'currency') {
24684
24710
  Object.assign(schema, {
24685
24711
  "precision": steedosField.scale || 0
@@ -24739,11 +24765,9 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
24739
24765
  disabled: true
24740
24766
  });
24741
24767
  }
24742
- _5.label = 29;
24743
- case 29:
24744
24768
  Object.assign(schema, steedosField.amis || {});
24745
24769
  return [2 /*return*/, schema];
24746
- case 30:
24770
+ case 19:
24747
24771
  if (!ctx.className) {
24748
24772
  ctx.className = className;
24749
24773
  }
@@ -24804,16 +24828,16 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
24804
24828
  }
24805
24829
  }
24806
24830
  return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
24807
- case 31:
24831
+ case 20:
24808
24832
  schema = _5.sent();
24809
24833
  // console.log(`AmisSteedosField return schema`, schema)
24810
24834
  return [2 /*return*/, schema];
24811
- case 32: return [3 /*break*/, 34];
24812
- case 33:
24835
+ case 21: return [3 /*break*/, 23];
24836
+ case 22:
24813
24837
  error_1 = _5.sent();
24814
24838
  console.log("error", error_1);
24815
- return [3 /*break*/, 34];
24816
- case 34: return [2 /*return*/, null];
24839
+ return [3 /*break*/, 23];
24840
+ case 23: return [2 /*return*/, null];
24817
24841
  }
24818
24842
  });
24819
24843
  }); };