@steedos-widgets/amis-lib 1.3.0-beta.2 → 1.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.
package/dist/index.cjs.js CHANGED
@@ -814,7 +814,7 @@ function getScriptForRemoveUrlPrefixForImgFields(fields){
814
814
  if(imgFields[item].multiple){
815
815
  if(imgFieldValue instanceof Array){
816
816
  formData[item] = imgFieldValue.map((value)=>{
817
- let itemValue = value?.split('/');
817
+ let itemValue = value && value.split('/');
818
818
  return itemValue[itemValue.length - 1];
819
819
  });
820
820
  }
@@ -2285,7 +2285,7 @@ const getSchema$2 = (uiSchema) => {
2285
2285
  "Bearer ${context.tenantId},${context.authToken}",
2286
2286
  },
2287
2287
  requestAdaptor:
2288
- "\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",
2288
+ "\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",
2289
2289
  adaptor:
2290
2290
  "\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n ",
2291
2291
  },
@@ -3667,7 +3667,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3667
3667
  const selfData = api.body.$self;
3668
3668
  const uiSchema = selfData.uiSchema;
3669
3669
  const fields = uiSchema.fields;
3670
- const options = (payload.data?.options || []).filter(function(item){
3670
+ const options = ((payload.data && payload.data.options) || []).filter(function(item){
3671
3671
  let field = fields[item.value];
3672
3672
  // TODO: 暂时禁用location类型字段的列表搜索
3673
3673
  return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'
@@ -4946,10 +4946,10 @@ function apiRequestAdaptor$1(){
4946
4946
  const recordId_tmp = api.body.recordId;
4947
4947
 
4948
4948
  if (typeof formData_tmp.columns == 'string') {
4949
- formData_tmp.columns = formData_tmp.columns?.split(',');
4949
+ formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');
4950
4950
  }
4951
4951
  if (typeof formData_tmp.mobile_columns == 'string') {
4952
- formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');
4952
+ formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');
4953
4953
  }
4954
4954
 
4955
4955
  // 数据格式转换
@@ -5082,7 +5082,7 @@ function apiRequestAdaptor(){
5082
5082
  const recordId = api.body.recordId;
5083
5083
  //数据格式转换
5084
5084
  if (typeof formData.sort == 'string') {
5085
- formData.sort = formData.sort?.split(',');
5085
+ formData.sort = formData.sort && formData.sort.split(',');
5086
5086
  }
5087
5087
  formData.sort = lodash.map(formData.sort, (item) => {
5088
5088
  const arr = item.split(':');
@@ -5272,7 +5272,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5272
5272
 
5273
5273
  function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
5274
5274
  const searchableFieldsLabel = [];
5275
- _.each(fields, function (field) {
5275
+ _.each(mainObject.fields, function (field) {
5276
5276
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
5277
5277
  searchableFieldsLabel.push(field.label);
5278
5278
  }
@@ -5464,8 +5464,14 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
5464
5464
 
5465
5465
  function getObjectFooterToolbar(mainObject, formFactor, options) {
5466
5466
  if (formFactor === 'SMALL') {
5467
+ // return [
5468
+ // "load-more",
5469
+ // ]
5467
5470
  return [
5468
- "load-more",
5471
+ {
5472
+ "type": "pagination",
5473
+ "maxButtons": 5
5474
+ }
5469
5475
  ]
5470
5476
  }
5471
5477
  else {
@@ -5864,13 +5870,16 @@ async function lookupToAmisPicker(field, readonly, ctx){
5864
5870
  })){
5865
5871
  i++;
5866
5872
  tableFields.push(field);
5867
- if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
5868
- searchableFields.push(field.name);
5869
- }
5870
5873
  }
5871
5874
  }
5872
5875
  });
5873
5876
 
5877
+ ___namespace.each(refObjectConfig.fields, function (field) {
5878
+ if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
5879
+ searchableFields.push(field.name);
5880
+ }
5881
+ });
5882
+
5874
5883
  const fields = {
5875
5884
  [referenceTo.labelField.name]: referenceTo.labelField,
5876
5885
  [referenceTo.valueField.name]: referenceTo.valueField
@@ -5922,7 +5931,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
5922
5931
  if(api.data.$term){
5923
5932
  filters = [["name", "contains", "'+ api.data.$term +'"]];
5924
5933
  }else if(selfData.op === 'loadOptions' && selfData.value){
5925
- if(selfData.value?.indexOf(',') > 0){
5934
+ if(selfData.value && selfData.value.indexOf(',') > 0){
5926
5935
  fieldValue = selfData.value.split(',');
5927
5936
  filters = [["${referenceTo.valueField.name}", "=", fieldValue]];
5928
5937
  }else{
@@ -6117,7 +6126,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
6117
6126
  {
6118
6127
  "actionType": "custom",
6119
6128
  "script": `
6120
- const masterRecord = event.data._master?.record;
6129
+ const masterRecord = event.data._master && event.data._master.record;
6121
6130
  const fieldConfig = ${JSON.stringify(field)};
6122
6131
  let reference_to = fieldConfig.reference_to;
6123
6132
  let saveValue;
@@ -6500,7 +6509,7 @@ async function getIdsPickerSchema(field, readonly, ctx){
6500
6509
  var pageNo = api.data.pageNo || 1;
6501
6510
  var skip = (pageNo - 1) * pageSize;
6502
6511
  if(selfData.op === 'loadOptions' && selfData.value){
6503
- if(selfData.value?.indexOf(',') > 0){
6512
+ if(selfData.value && selfData.value.indexOf(',') > 0){
6504
6513
  filters = [["${referenceTo.valueField.name}", "=", selfData.value.split(',')]];
6505
6514
  }else{
6506
6515
  filters = [["${referenceTo.valueField.name}", "=", selfData.value]];
@@ -7739,7 +7748,7 @@ async function getQuickEditSchema(field, options){
7739
7748
  case "number":
7740
7749
  case "currency":
7741
7750
  TempDisplayField = `
7742
- _display["${field.name}"] = event.data.value?.toFixed(${field.scale});
7751
+ _display["${field.name}"] = event.data.value && event.data.value.toFixed(${field.scale});
7743
7752
  `;
7744
7753
  quickEditSchema.body[0].onEvent["change"] = quickEditOnEvent(TempDisplayField);
7745
7754
 
@@ -7927,13 +7936,15 @@ async function getTableColumns(fields, options){
7927
7936
  }
7928
7937
  },
7929
7938
  "actionType": "download",
7930
- "expression": "!!!window?.nw?.require"//浏览器上直接下载
7939
+ // "expression": "!!!window?.nw?.require"//浏览器上直接下载
7940
+ "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
7931
7941
  },
7932
7942
  {
7933
7943
  "args": {},
7934
7944
  "actionType": "custom",
7935
7945
  "script": previewFileScript,
7936
- "expression": "!!window?.nw?.require" //PC客户端预览附件
7946
+ // "expression": "!!window?.nw?.require" //PC客户端预览附件
7947
+ "expression": "!!!(window && window.nw && window.nw.require)"//PC客户端预览附件
7937
7948
  }
7938
7949
  ]
7939
7950
  }
@@ -8075,7 +8086,7 @@ function getMobileLines(tpls){
8075
8086
  lineChildrenClassName = "steedos-listview-item-left two-lines-truncate";
8076
8087
  if(item.field.is_wide){
8077
8088
  // 左侧全行样式可以单独写
8078
- lineChildrenClassName = "steedos-listview-item-wide truncate";
8089
+ lineChildrenClassName = "steedos-listview-item-wide two-lines-truncate";
8079
8090
  }
8080
8091
  if(lines.length === 0){
8081
8092
  // 第一个字段加粗黑色显示
@@ -8388,7 +8399,7 @@ async function getTableApi(mainObject, fields, options){
8388
8399
  baseFilters = filter;
8389
8400
  }
8390
8401
 
8391
- ___namespace.each(fields, function (field) {
8402
+ ___namespace.each(mainObject.fields, function (field) {
8392
8403
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
8393
8404
  searchableFields.push(field.name);
8394
8405
  }
@@ -8449,8 +8460,9 @@ async function getTableApi(mainObject, fields, options){
8449
8460
  // 所以会把localSearchableFilter中已经存过的页码覆盖
8450
8461
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
8451
8462
  let formFactor = "${options.formFactor}";
8452
- // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
8453
- api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8463
+ // api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8464
+ // 移动端暂时去除加载更多,放开翻页
8465
+ api.data.pageNo = localListViewProps.page || 1;
8454
8466
  }
8455
8467
  }
8456
8468
  }
@@ -8650,7 +8662,8 @@ async function getTableApi(mainObject, fields, options){
8650
8662
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
8651
8663
  let formFactor = "${options.formFactor}";
8652
8664
  // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
8653
- selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8665
+ // selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8666
+ selfData.page = localListViewProps.page || 1;
8654
8667
  }
8655
8668
  }
8656
8669
  delete selfData.context;
@@ -8668,7 +8681,13 @@ async function getTableApi(mainObject, fields, options){
8668
8681
  const setDataToComponentId = "${setDataToComponentId}";
8669
8682
  if(setDataToComponentId){
8670
8683
  //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9
8671
- SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8684
+ var scope = SteedosUI.getRef(api.body.$self.$scopeId);
8685
+ var scopeParent = scope && scope.parent;
8686
+ var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);
8687
+ if(setDataToComponent){
8688
+ setDataToComponent.setData({$count: payload.data.count});
8689
+ }
8690
+ // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8672
8691
  };
8673
8692
  ${options.adaptor || ''}
8674
8693
  return payload;
@@ -8954,7 +8973,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
8954
8973
  var uiSchema = api.body.uiSchema;
8955
8974
  var defaultData = api.body.defaultData;
8956
8975
  var defaultValues = {};
8957
- _.each(uiSchema?.fields, function(field){
8976
+ _.each(uiSchema && uiSchema.fields, function(field){
8958
8977
  var value = SteedosUI.getFieldDefaultValue(field, api.body.global);
8959
8978
  if(value){
8960
8979
  defaultValues[field.name] = value;
@@ -9173,7 +9192,12 @@ async function getCalendarApi(mainObject, fields, options) {
9173
9192
  window.postMessage(Object.assign({type: "listview.loaded"}), "*");
9174
9193
  const setDataToComponentId = "${setDataToComponentId}";
9175
9194
  if(setDataToComponentId){
9176
- SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
9195
+ var scope = SteedosUI.getRef(api.body.$self.scopeId);
9196
+ var setDataToComponent = scope && scope.getComponentById(setDataToComponentId);
9197
+ if(setDataToComponent){
9198
+ setDataToComponent.setData({$count: payload.data.count});
9199
+ }
9200
+ // SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
9177
9201
  }
9178
9202
  const rows = payload.data.rows || [];
9179
9203
  const selfData = api.data.$self;
@@ -12281,7 +12305,7 @@ const getNextStepUsersInput = async (instance) => {
12281
12305
  id: "u:ffff15b76c89",
12282
12306
  className: "b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm",
12283
12307
  subFormMode: "",
12284
- hiddenOn: "!!!this.new_next_step || this.new_next_step?.step_type === 'end'"
12308
+ hiddenOn: "!!!this.new_next_step || (this.new_next_step && this.new_next_step.step_type === 'end')"
12285
12309
  };
12286
12310
  };
12287
12311
 
@@ -13201,7 +13225,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
13201
13225
  map[item.value] = item.label;
13202
13226
  });
13203
13227
  tpl.type = 'static';
13204
- tpl.tpl = `<% var options = ${JSON.stringify(map)}; return options?.[data.${field.code}] || ''%>`;
13228
+ tpl.tpl = `<% var options = ${JSON.stringify(map)}; return (options && options[data.${field.code}]) || ''%>`;
13205
13229
  }else if(field.type === 'odata'){
13206
13230
  tpl.type = 'static';
13207
13231
  tpl.tpl = `<div>\${${field.code}['@label']}</div>`;
@@ -13231,7 +13255,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
13231
13255
  if(field.is_multiselect){
13232
13256
  tpl.tpl = `\${_.map(${field.code}, 'name')}`;
13233
13257
  }else {
13234
- tpl.tpl = `\${${field.code}?.name}`;
13258
+ tpl.tpl = `\${${field.code} && ${field.code}.name}`;
13235
13259
  }
13236
13260
  }else if(field.type === 'group'){
13237
13261
  tpl.type = 'static';