@steedos-widgets/amis-lib 1.3.3 → 1.3.4-beta.3

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.
package/dist/index.esm.js CHANGED
@@ -444,7 +444,7 @@ function getLookupListView(refObjectConfig) {
444
444
  * @Author: baozhoutao@steedos.com
445
445
  * @Date: 2022-05-23 09:53:08
446
446
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
447
- * @LastEditTime: 2023-08-29 15:04:39
447
+ * @LastEditTime: 2023-09-19 14:38:39
448
448
  * @Description:
449
449
  */
450
450
 
@@ -624,9 +624,13 @@ async function getLookupTpl(field, ctx){
624
624
  }
625
625
 
626
626
  function getSwitchTpl(field){
627
+ let fieldDataStrTpl = `data._display.${field.name}`;
628
+ if(field.isTableField){
629
+ fieldDataStrTpl = `data.${field.name}`;
630
+ }
627
631
  return `<% if (data.${field.name}) { %>
628
- <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${field.name}%>">
629
- <span ><%= data._display.${field.name} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : data._display.${field.name} %></span>
632
+ <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=${fieldDataStrTpl}%>">
633
+ <span ><%= ${fieldDataStrTpl} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : ${fieldDataStrTpl} %></span>
630
634
  </span>
631
635
  <% } %>`
632
636
  }
@@ -1204,7 +1208,7 @@ var frontend_display_type_is_split = "分栏视图";
1204
1208
  var frontend_display_as = "显示为";
1205
1209
  var frontend_record_sum = "个项目";
1206
1210
  var frontend_button_reload_tooltip = "刷新";
1207
- var frontend_button_search_tooltip = "查询";
1211
+ var frontend_button_search_tooltip = "筛选";
1208
1212
  var frontend_fields_filter_button_search = "搜索";
1209
1213
  var frontend_fields_filter_button_settings = "设置搜索项";
1210
1214
  var frontend_button_listview_control_tooltip = "列表视图控制";
@@ -2912,7 +2916,7 @@ const getObjectDetailButtonsSchemas = (objectSchema, recordId, ctx)=>{
2912
2916
  type: "steedos-dropdown-button",
2913
2917
  label: "",
2914
2918
  buttons: moreButtons,
2915
- className: 'slds-icon',
2919
+ className: 'slds-icon ml-1',
2916
2920
  visibleOn: moreButtonsVisibleOn
2917
2921
  };
2918
2922
  buttons.push(dropdownButtonsSchema);
@@ -3655,13 +3659,15 @@ function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {
3655
3659
  "visibleOn": "${display == 'split'?false:true}"
3656
3660
  }];
3657
3661
  if(ctx.formFactor !== 'SMALL'){
3662
+ const restButtons = Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== "standard_new"):[];
3658
3663
  buttonSchema.push({
3659
3664
  "type": "flex",
3660
3665
  "items":[
3661
3666
  standardNewButton,
3662
- {
3667
+ (restButtons.length > 0) && {
3663
3668
  "type": "dropdown-button",
3664
- "buttons": Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== "standard_new"):{},
3669
+ "buttons": restButtons,
3670
+ "className": " ml-1",
3665
3671
  "menuClassName": "p-none split-dropdown-buttons",
3666
3672
  "align": "right",
3667
3673
  "size": "sm"
@@ -3793,7 +3799,6 @@ async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {
3793
3799
  },
3794
3800
  {
3795
3801
  "body": [
3796
- fieldsFilterButtonSchema,
3797
3802
  {
3798
3803
  "type": "button",
3799
3804
  "label": "",
@@ -3802,6 +3807,7 @@ async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {
3802
3807
  "target": amisListViewId,
3803
3808
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500"
3804
3809
  },
3810
+ fieldsFilterButtonSchema,
3805
3811
  // {
3806
3812
  // "type": "button",
3807
3813
  // "label": "",
@@ -4049,7 +4055,7 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
4049
4055
  "body": [
4050
4056
  {
4051
4057
  "type": "tpl",
4052
- "tpl": `<a class="text-black text-base font-bold" href="/app/\${appId}/\${_master.objectName}/\${_master.recordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${relatedLabel}(\${$count})</a>`,
4058
+ "tpl": `<a class="text-black text-base font-bold hover:font-bold" href="/app/\${appId}/\${_master.objectName}/\${_master.recordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${relatedLabel}(\${$count})</a>`,
4053
4059
  "inline": false,
4054
4060
  "wrapperComponent": "",
4055
4061
  "className": "",
@@ -5138,7 +5144,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
5138
5144
  {
5139
5145
  "type": "search-box",
5140
5146
  "name": keywordsSearchBoxName,
5141
- "placeholder": "快速搜索",
5147
+ "placeholder": "搜索此列表",
5142
5148
  "value": crudKeywords,
5143
5149
  "clearable": true,
5144
5150
  "clearAndSubmit": true
@@ -5261,10 +5267,10 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
5261
5267
  if(toolbarCount){
5262
5268
  toolbars.push(toolbarCount);
5263
5269
  }
5264
- toolbars.push(toolbarReloadButton);
5265
5270
  if(toolbarFilter){
5266
5271
  toolbars.push(toolbarFilter);
5267
5272
  }
5273
+ toolbars.push(toolbarReloadButton);
5268
5274
  toolbars.push(toolbarDisplayAsButton);
5269
5275
  toolbars.push(toolbarDQuickSearchBox);
5270
5276
  return [
@@ -5280,10 +5286,10 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
5280
5286
  toolbars.push(toolbarFilter);
5281
5287
  }
5282
5288
  toolbars.push(toolbarReloadButton);
5289
+ toolbars.push(toolbarDisplayAsButton);
5283
5290
  if(mainObject?.permissions?.allowCreateListViews){
5284
5291
  toolbars.push(getSettingListviewToolbarButtonSchema());
5285
5292
  }
5286
- toolbars.push(toolbarDisplayAsButton);
5287
5293
  toolbars.push(toolbarDQuickSearchBox);
5288
5294
  return [
5289
5295
  // "filter-toggler",
@@ -7329,7 +7335,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
7329
7335
  label: subField.label,
7330
7336
  quickEdit: readonly ? false : gridSub
7331
7337
  };
7332
- if(subField.type === 'lookup'){
7338
+ if(["lookup", "boolean", "toggle"].indexOf(subField.type) > -1){
7333
7339
  gridItemSchema.type = gridSub.type;
7334
7340
  gridItemSchema.tpl = gridSub.tpl;
7335
7341
  }
@@ -8263,7 +8269,7 @@ async function getTableOperation(ctx){
8263
8269
  label: i18next.t('frontend_operation'),
8264
8270
  fixed: 'right',
8265
8271
  labelClassName: 'text-center',
8266
- className: 'text-center steedos-listview-operation w-20',
8272
+ className: 'text-center steedos-listview-operation w-10',
8267
8273
  buttons: [
8268
8274
  {
8269
8275
  "type": "steedos-dropdown-button",
@@ -8295,11 +8301,10 @@ async function getTableOperation(ctx){
8295
8301
  }
8296
8302
 
8297
8303
  async function getTableSchema$1(fields, options){
8298
- let isLookup = options && options.isLookup;
8299
- let hiddenColumnOperation = options && options.hiddenColumnOperation;
8300
8304
  if(!options){
8301
8305
  options = {};
8302
8306
  }
8307
+ let { isLookup, hiddenColumnOperation } = options;
8303
8308
  let columns = [];
8304
8309
  let useMobileColumns = options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1;
8305
8310
  if(isLookup){
@@ -8311,6 +8316,7 @@ async function getTableSchema$1(fields, options){
8311
8316
  }
8312
8317
  else {
8313
8318
  columns = await getTableColumns(fields, options);
8319
+
8314
8320
  if(!isLookup && !hiddenColumnOperation){
8315
8321
  columns.push(await getTableOperation(options));
8316
8322
  }
@@ -8319,7 +8325,7 @@ async function getTableSchema$1(fields, options){
8319
8325
  return {
8320
8326
  mode: "table",
8321
8327
  name: "thelist",
8322
- headerToolbarClassName: "py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",
8328
+ headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
8323
8329
  className: "",
8324
8330
  draggable: false,
8325
8331
  defaultParams: getDefaultParams(options),
@@ -9615,6 +9621,161 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
9615
9621
  return amisSchema;
9616
9622
  }
9617
9623
 
9624
+ /******************************************************************************
9625
+ Copyright (c) Microsoft Corporation.
9626
+
9627
+ Permission to use, copy, modify, and/or distribute this software for any
9628
+ purpose with or without fee is hereby granted.
9629
+
9630
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9631
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9632
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
9633
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
9634
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
9635
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
9636
+ PERFORMANCE OF THIS SOFTWARE.
9637
+ ***************************************************************************** */
9638
+
9639
+ var __assign = function() {
9640
+ __assign = Object.assign || function __assign(t) {
9641
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9642
+ s = arguments[i];
9643
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9644
+ }
9645
+ return t;
9646
+ };
9647
+ return __assign.apply(this, arguments);
9648
+ };
9649
+
9650
+ /**
9651
+ * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
9652
+ *
9653
+ * @param string 要转换的字符串
9654
+ */
9655
+ var keyToPath = function (string) {
9656
+ var result = [];
9657
+ if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
9658
+ result.push('');
9659
+ }
9660
+ string.replace(new RegExp('[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'), function (match, expression, quote, subString) {
9661
+ var key = match;
9662
+ if (quote) {
9663
+ key = subString.replace(/\\(\\)?/g, '$1');
9664
+ }
9665
+ else if (expression) {
9666
+ key = expression.trim();
9667
+ }
9668
+ result.push(key);
9669
+ return '';
9670
+ });
9671
+ return result;
9672
+ };
9673
+
9674
+ // 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
9675
+ function createObject(superProps, props, properties) {
9676
+ if (superProps && Object.isFrozen(superProps)) {
9677
+ superProps = cloneObject(superProps);
9678
+ }
9679
+ var obj = superProps
9680
+ ? Object.create(superProps, __assign(__assign({}, properties), { __super: {
9681
+ value: superProps,
9682
+ writable: false,
9683
+ enumerable: false
9684
+ } }))
9685
+ : Object.create(Object.prototype, properties);
9686
+ props &&
9687
+ isObject(props) &&
9688
+ Object.keys(props).forEach(function (key) { return (obj[key] = props[key]); });
9689
+ return obj;
9690
+ }
9691
+ function cloneObject(target, persistOwnProps) {
9692
+ if (persistOwnProps === void 0) { persistOwnProps = true; }
9693
+ var obj = target && target.__super
9694
+ ? Object.create(target.__super, {
9695
+ __super: {
9696
+ value: target.__super,
9697
+ writable: false,
9698
+ enumerable: false
9699
+ }
9700
+ })
9701
+ : Object.create(Object.prototype);
9702
+ persistOwnProps &&
9703
+ target &&
9704
+ Object.keys(target).forEach(function (key) { return (obj[key] = target[key]); });
9705
+ return obj;
9706
+ }
9707
+ function extendObject(target, src, persistOwnProps) {
9708
+ if (persistOwnProps === void 0) { persistOwnProps = true; }
9709
+ var obj = cloneObject(target, persistOwnProps);
9710
+ src && Object.keys(src).forEach(function (key) { return (obj[key] = src[key]); });
9711
+ return obj;
9712
+ }
9713
+ function isObject(obj) {
9714
+ var typename = typeof obj;
9715
+ return (obj &&
9716
+ typename !== 'string' &&
9717
+ typename !== 'number' &&
9718
+ typename !== 'boolean' &&
9719
+ typename !== 'function' &&
9720
+ !Array.isArray(obj));
9721
+ }
9722
+ function setVariable(data, key, value, convertKeyToPath) {
9723
+ data = data || {};
9724
+ if (key in data) {
9725
+ data[key] = value;
9726
+ return;
9727
+ }
9728
+ var parts = convertKeyToPath !== false ? keyToPath(key) : [key];
9729
+ var last = parts.pop();
9730
+ while (parts.length) {
9731
+ var key_1 = parts.shift();
9732
+ if (isPlainObject(data[key_1])) {
9733
+ data = data[key_1] = __assign({}, data[key_1]);
9734
+ }
9735
+ else if (Array.isArray(data[key_1])) {
9736
+ data[key_1] = data[key_1].concat();
9737
+ data = data[key_1];
9738
+ }
9739
+ else if (data[key_1]) {
9740
+ // throw new Error(`目标路径不是纯对象,不能覆盖`);
9741
+ // 强行转成对象
9742
+ data[key_1] = {};
9743
+ data = data[key_1];
9744
+ }
9745
+ else {
9746
+ data[key_1] = {};
9747
+ data = data[key_1];
9748
+ }
9749
+ }
9750
+ data[last] = value;
9751
+ }
9752
+ function deleteVariable(data, key) {
9753
+ if (!data) {
9754
+ return;
9755
+ }
9756
+ else if (data.hasOwnProperty(key)) {
9757
+ delete data[key];
9758
+ return;
9759
+ }
9760
+ var parts = keyToPath(key);
9761
+ var last = parts.pop();
9762
+ while (parts.length) {
9763
+ var key_2 = parts.shift();
9764
+ if (isPlainObject(data[key_2])) {
9765
+ data = data[key_2] = __assign({}, data[key_2]);
9766
+ }
9767
+ else if (data[key_2]) {
9768
+ throw new Error("\u76EE\u6807\u8DEF\u5F84\u4E0D\u662F\u7EAF\u5BF9\u8C61\uFF0C\u4E0D\u80FD\u4FEE\u6539");
9769
+ }
9770
+ else {
9771
+ break;
9772
+ }
9773
+ }
9774
+ if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
9775
+ delete data[last];
9776
+ }
9777
+ }
9778
+
9618
9779
  /*
9619
9780
  * @Author: baozhoutao@steedos.com
9620
9781
  * @Date: 2022-05-26 16:02:08
@@ -9855,9 +10016,30 @@ function getBulkActions(objectSchema){
9855
10016
  ]
9856
10017
  }
9857
10018
 
10019
+ async function getCrudSchemaWithDataFilter(crud, options = {}){
10020
+ const { crudDataFilter, amisData, env } = options;
10021
+ let onCrudDataFilter = options.onCrudDataFilter;
10022
+ if (!onCrudDataFilter && typeof crudDataFilter === 'string') {
10023
+ onCrudDataFilter = new Function(
10024
+ 'crud',
10025
+ 'env',
10026
+ 'data',
10027
+ crudDataFilter
10028
+ );
10029
+ }
10030
+
10031
+ try {
10032
+ onCrudDataFilter && (crud = await onCrudDataFilter(crud, env, amisData) || crud);
10033
+ } catch (e) {
10034
+ console.warn(e);
10035
+ }
10036
+ return crud;
10037
+ }
10038
+
9858
10039
  async function getObjectCRUD(objectSchema, fields, options){
9859
10040
  // console.time('getObjectCRUD');
9860
- const { top, perPage, showDisplayAs = false, displayAs, crudClassName = "" } = options;
10041
+ const { top, perPage, showDisplayAs = false, displayAs, crudClassName = "",
10042
+ crudDataFilter, onCrudDataFilter, amisData, env } = options;
9861
10043
  const nonpaged = objectSchema.paging && objectSchema.paging.enabled === false;
9862
10044
  const isTreeObject = objectSchema.enable_tree;
9863
10045
  const bulkActions = getBulkActions(objectSchema);
@@ -9898,6 +10080,14 @@ async function getObjectCRUD(objectSchema, fields, options){
9898
10080
  filterVisible: options.filterVisible
9899
10081
  });
9900
10082
 
10083
+ options.amisData = createObject(options.amisData, {
10084
+ objectName: objectSchema.name,
10085
+ // _id: null,
10086
+ recordPermissions: objectSchema.permissions,
10087
+ uiSchema: objectSchema,
10088
+ // loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
10089
+ });
10090
+
9901
10091
 
9902
10092
  let body = null;
9903
10093
  const id = `listview_${objectSchema.name}`;
@@ -9923,7 +10113,12 @@ async function getObjectCRUD(objectSchema, fields, options){
9923
10113
  if(objectSchema.name === 'organizations'){
9924
10114
  labelFieldName = 'name';
9925
10115
  }
9926
- const table = await getTableSchema$1(fields, Object.assign({idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName, permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit}, options));
10116
+ let tableOptions = Object.assign({
10117
+ idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName,
10118
+ permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit
10119
+ }, options);
10120
+ tableOptions.amisData = createObject(options.amisData || {}, {}).__super;
10121
+ const table = await getTableSchema$1(fields, tableOptions);
9927
10122
  delete table.mode;
9928
10123
  //image与avatar需要在提交修改时特别处理
9929
10124
  const imageNames = ___default.compact(___default.map(___default.filter(fields, (field) => ["image","avatar"].includes(field.type)), 'name'));
@@ -9983,9 +10178,9 @@ async function getObjectCRUD(objectSchema, fields, options){
9983
10178
  requestAdaptor: quickSaveApiRequestAdaptor,
9984
10179
  },
9985
10180
  rowClassNameExpr: options.rowClassNameExpr
9986
- },
9987
- bodyProps,
9988
- );
10181
+ }, bodyProps);
10182
+
10183
+ body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });
9989
10184
  }
9990
10185
 
9991
10186
  const defaults = options.defaults;
@@ -10020,16 +10215,10 @@ async function getObjectCRUD(objectSchema, fields, options){
10020
10215
  return {
10021
10216
  type: 'service',
10022
10217
  className: '',
10023
- //目前crud的service层id不认用户自定义id,只支持默认规则id
10218
+ //目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}
10024
10219
  id: `service_${id}`,
10025
10220
  name: `page`,
10026
- data: {
10027
- objectName: objectSchema.name,
10028
- // _id: null,
10029
- recordPermissions: objectSchema.permissions,
10030
- uiSchema: objectSchema,
10031
- // loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
10032
- },
10221
+ data: options.amisData,
10033
10222
  body: body
10034
10223
  }
10035
10224
  }
@@ -10504,7 +10693,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
10504
10693
  setDataToComponentId: componentId,
10505
10694
  // tableHiddenOn: hiddenEmptyTable ? "this.$count === 0" : null,
10506
10695
  appId: appId,
10507
- crudClassName: 'border-t border-slate-300 hidden',
10696
+ crudClassName: 'border-t border-gray-300 hidden',
10508
10697
  ...ctx
10509
10698
  };
10510
10699
  const amisSchema= (await getRelatedListSchema(relatedObjectName, 'all', options)).amisSchema;
@@ -10516,7 +10705,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
10516
10705
  amisSchema: {
10517
10706
  type: "service",
10518
10707
  id: componentId,
10519
- className: `steedos-record-related-list ${componentId} rounded border border-slate-300 bg-gray-100 mb-4 ${className}`,
10708
+ className: `steedos-record-related-list ${componentId} rounded border border-gray-300 bg-gray-100 mb-4 ${className}`,
10520
10709
  data: {
10521
10710
  relatedKey: relatedKey,
10522
10711
  listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
@@ -10681,7 +10870,7 @@ async function getRelatedListSchema(
10681
10870
  * @Author: baozhoutao@steedos.com
10682
10871
  * @Date: 2022-07-05 15:55:39
10683
10872
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
10684
- * @LastEditTime: 2023-09-14 13:57:32
10873
+ * @LastEditTime: 2023-09-15 09:04:49
10685
10874
  * @Description:
10686
10875
  */
10687
10876
 
@@ -11014,7 +11203,9 @@ async function getListSchema(
11014
11203
  "adaptor": listView.adaptor,
11015
11204
  "headerToolbarItems": ctx.headerToolbarItems,
11016
11205
  "filterVisible": ctx.filterVisible,
11017
- "rowClassNameExpr": ctx.rowClassNameExpr
11206
+ "rowClassNameExpr": ctx.rowClassNameExpr,
11207
+ "crudDataFilter": ctx.crudDataFilter,
11208
+ "onCrudDataFilter": ctx.onCrudDataFilter
11018
11209
  };
11019
11210
  // console.log(`getListSchema===>`,amisSchema)
11020
11211
  return {
@@ -11117,7 +11308,7 @@ async function getTableSchema(
11117
11308
  fields = fields.concat(extraFields);
11118
11309
  }
11119
11310
 
11120
- const amisSchema = await getObjectCRUD(uiSchema, fields, {
11311
+ let crudOptions = {
11121
11312
  tabId: objectName,
11122
11313
  appId: appName,
11123
11314
  objectName: objectName,
@@ -11126,8 +11317,9 @@ async function getTableSchema(
11126
11317
  sort,
11127
11318
  headerToolbarItems: ctx.headerToolbarItems,
11128
11319
  buttons: await getListViewItemButtons(uiSchema, ctx)
11129
- });
11130
- console.log('getTableSchema====>amisSchema', amisSchema);
11320
+ };
11321
+ crudOptions.amisData = createObject(ctx.amisData || {}, {}).__super;
11322
+ const amisSchema = await getObjectCRUD(uiSchema, fields, crudOptions);
11131
11323
  // console.timeEnd('getTableSchema');
11132
11324
  return {
11133
11325
  uiSchema,
@@ -11199,7 +11391,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
11199
11391
  };
11200
11392
  const content = {
11201
11393
  "type": "tabs",
11202
- "className": "sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-slate-300 p-4",
11394
+ "className": "sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-gray-300 p-4",
11203
11395
  "tabs": [
11204
11396
  detailed
11205
11397
  ],
@@ -11386,7 +11578,7 @@ async function getListPageInitSchema(objectApiName, formFactor, userSession) {
11386
11578
  "columnsTogglable": false,
11387
11579
  "showHeader": true,
11388
11580
  // "headerSchema": headerSchema
11389
- className: "sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid"
11581
+ className: "sm:border bg-white sm:shadow sm:rounded border-gray-300 border-solid"
11390
11582
  }]
11391
11583
  }
11392
11584
  }
@@ -11444,7 +11636,7 @@ async function getRecordPageInitSchema(objectApiName){
11444
11636
  ]
11445
11637
  }
11446
11638
  ],
11447
- "className": "sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-slate-300",
11639
+ "className": "sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-gray-300",
11448
11640
  "linksClassName": "pl-4 pt-2"
11449
11641
  };
11450
11642
  if(relatedList.length){
@@ -11911,161 +12103,6 @@ const registerRemoteAssets = async (assetUrls)=>{
11911
12103
  }
11912
12104
  };
11913
12105
 
11914
- /******************************************************************************
11915
- Copyright (c) Microsoft Corporation.
11916
-
11917
- Permission to use, copy, modify, and/or distribute this software for any
11918
- purpose with or without fee is hereby granted.
11919
-
11920
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
11921
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11922
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11923
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11924
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
11925
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
11926
- PERFORMANCE OF THIS SOFTWARE.
11927
- ***************************************************************************** */
11928
-
11929
- var __assign = function() {
11930
- __assign = Object.assign || function __assign(t) {
11931
- for (var s, i = 1, n = arguments.length; i < n; i++) {
11932
- s = arguments[i];
11933
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
11934
- }
11935
- return t;
11936
- };
11937
- return __assign.apply(this, arguments);
11938
- };
11939
-
11940
- /**
11941
- * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
11942
- *
11943
- * @param string 要转换的字符串
11944
- */
11945
- var keyToPath = function (string) {
11946
- var result = [];
11947
- if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
11948
- result.push('');
11949
- }
11950
- string.replace(new RegExp('[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'), function (match, expression, quote, subString) {
11951
- var key = match;
11952
- if (quote) {
11953
- key = subString.replace(/\\(\\)?/g, '$1');
11954
- }
11955
- else if (expression) {
11956
- key = expression.trim();
11957
- }
11958
- result.push(key);
11959
- return '';
11960
- });
11961
- return result;
11962
- };
11963
-
11964
- // 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
11965
- function createObject(superProps, props, properties) {
11966
- if (superProps && Object.isFrozen(superProps)) {
11967
- superProps = cloneObject(superProps);
11968
- }
11969
- var obj = superProps
11970
- ? Object.create(superProps, __assign(__assign({}, properties), { __super: {
11971
- value: superProps,
11972
- writable: false,
11973
- enumerable: false
11974
- } }))
11975
- : Object.create(Object.prototype, properties);
11976
- props &&
11977
- isObject(props) &&
11978
- Object.keys(props).forEach(function (key) { return (obj[key] = props[key]); });
11979
- return obj;
11980
- }
11981
- function cloneObject(target, persistOwnProps) {
11982
- if (persistOwnProps === void 0) { persistOwnProps = true; }
11983
- var obj = target && target.__super
11984
- ? Object.create(target.__super, {
11985
- __super: {
11986
- value: target.__super,
11987
- writable: false,
11988
- enumerable: false
11989
- }
11990
- })
11991
- : Object.create(Object.prototype);
11992
- persistOwnProps &&
11993
- target &&
11994
- Object.keys(target).forEach(function (key) { return (obj[key] = target[key]); });
11995
- return obj;
11996
- }
11997
- function extendObject(target, src, persistOwnProps) {
11998
- if (persistOwnProps === void 0) { persistOwnProps = true; }
11999
- var obj = cloneObject(target, persistOwnProps);
12000
- src && Object.keys(src).forEach(function (key) { return (obj[key] = src[key]); });
12001
- return obj;
12002
- }
12003
- function isObject(obj) {
12004
- var typename = typeof obj;
12005
- return (obj &&
12006
- typename !== 'string' &&
12007
- typename !== 'number' &&
12008
- typename !== 'boolean' &&
12009
- typename !== 'function' &&
12010
- !Array.isArray(obj));
12011
- }
12012
- function setVariable(data, key, value, convertKeyToPath) {
12013
- data = data || {};
12014
- if (key in data) {
12015
- data[key] = value;
12016
- return;
12017
- }
12018
- var parts = convertKeyToPath !== false ? keyToPath(key) : [key];
12019
- var last = parts.pop();
12020
- while (parts.length) {
12021
- var key_1 = parts.shift();
12022
- if (isPlainObject(data[key_1])) {
12023
- data = data[key_1] = __assign({}, data[key_1]);
12024
- }
12025
- else if (Array.isArray(data[key_1])) {
12026
- data[key_1] = data[key_1].concat();
12027
- data = data[key_1];
12028
- }
12029
- else if (data[key_1]) {
12030
- // throw new Error(`目标路径不是纯对象,不能覆盖`);
12031
- // 强行转成对象
12032
- data[key_1] = {};
12033
- data = data[key_1];
12034
- }
12035
- else {
12036
- data[key_1] = {};
12037
- data = data[key_1];
12038
- }
12039
- }
12040
- data[last] = value;
12041
- }
12042
- function deleteVariable(data, key) {
12043
- if (!data) {
12044
- return;
12045
- }
12046
- else if (data.hasOwnProperty(key)) {
12047
- delete data[key];
12048
- return;
12049
- }
12050
- var parts = keyToPath(key);
12051
- var last = parts.pop();
12052
- while (parts.length) {
12053
- var key_2 = parts.shift();
12054
- if (isPlainObject(data[key_2])) {
12055
- data = data[key_2] = __assign({}, data[key_2]);
12056
- }
12057
- else if (data[key_2]) {
12058
- throw new Error("\u76EE\u6807\u8DEF\u5F84\u4E0D\u662F\u7EAF\u5BF9\u8C61\uFF0C\u4E0D\u80FD\u4FEE\u6539");
12059
- }
12060
- else {
12061
- break;
12062
- }
12063
- }
12064
- if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
12065
- delete data[last];
12066
- }
12067
- }
12068
-
12069
12106
  /*
12070
12107
  * @Author: baozhoutao@steedos.com
12071
12108
  * @Date: 2022-12-17 17:03:40