@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.esm.js CHANGED
@@ -787,7 +787,7 @@ function getScriptForRemoveUrlPrefixForImgFields(fields){
787
787
  if(imgFields[item].multiple){
788
788
  if(imgFieldValue instanceof Array){
789
789
  formData[item] = imgFieldValue.map((value)=>{
790
- let itemValue = value?.split('/');
790
+ let itemValue = value && value.split('/');
791
791
  return itemValue[itemValue.length - 1];
792
792
  });
793
793
  }
@@ -2258,7 +2258,7 @@ const getSchema$2 = (uiSchema) => {
2258
2258
  "Bearer ${context.tenantId},${context.authToken}",
2259
2259
  },
2260
2260
  requestAdaptor:
2261
- "\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 ",
2261
+ "\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 ",
2262
2262
  adaptor:
2263
2263
  "\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 ",
2264
2264
  },
@@ -3640,7 +3640,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3640
3640
  const selfData = api.body.$self;
3641
3641
  const uiSchema = selfData.uiSchema;
3642
3642
  const fields = uiSchema.fields;
3643
- const options = (payload.data?.options || []).filter(function(item){
3643
+ const options = ((payload.data && payload.data.options) || []).filter(function(item){
3644
3644
  let field = fields[item.value];
3645
3645
  // TODO: 暂时禁用location类型字段的列表搜索
3646
3646
  return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'
@@ -4919,10 +4919,10 @@ function apiRequestAdaptor$1(){
4919
4919
  const recordId_tmp = api.body.recordId;
4920
4920
 
4921
4921
  if (typeof formData_tmp.columns == 'string') {
4922
- formData_tmp.columns = formData_tmp.columns?.split(',');
4922
+ formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');
4923
4923
  }
4924
4924
  if (typeof formData_tmp.mobile_columns == 'string') {
4925
- formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');
4925
+ formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');
4926
4926
  }
4927
4927
 
4928
4928
  // 数据格式转换
@@ -5055,7 +5055,7 @@ function apiRequestAdaptor(){
5055
5055
  const recordId = api.body.recordId;
5056
5056
  //数据格式转换
5057
5057
  if (typeof formData.sort == 'string') {
5058
- formData.sort = formData.sort?.split(',');
5058
+ formData.sort = formData.sort && formData.sort.split(',');
5059
5059
  }
5060
5060
  formData.sort = lodash.map(formData.sort, (item) => {
5061
5061
  const arr = item.split(':');
@@ -5245,7 +5245,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5245
5245
 
5246
5246
  function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
5247
5247
  const searchableFieldsLabel = [];
5248
- _.each(fields, function (field) {
5248
+ _.each(mainObject.fields, function (field) {
5249
5249
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
5250
5250
  searchableFieldsLabel.push(field.label);
5251
5251
  }
@@ -5437,8 +5437,14 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
5437
5437
 
5438
5438
  function getObjectFooterToolbar(mainObject, formFactor, options) {
5439
5439
  if (formFactor === 'SMALL') {
5440
+ // return [
5441
+ // "load-more",
5442
+ // ]
5440
5443
  return [
5441
- "load-more",
5444
+ {
5445
+ "type": "pagination",
5446
+ "maxButtons": 5
5447
+ }
5442
5448
  ]
5443
5449
  }
5444
5450
  else {
@@ -5837,13 +5843,16 @@ async function lookupToAmisPicker(field, readonly, ctx){
5837
5843
  })){
5838
5844
  i++;
5839
5845
  tableFields.push(field);
5840
- if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
5841
- searchableFields.push(field.name);
5842
- }
5843
5846
  }
5844
5847
  }
5845
5848
  });
5846
5849
 
5850
+ _$1.each(refObjectConfig.fields, function (field) {
5851
+ if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
5852
+ searchableFields.push(field.name);
5853
+ }
5854
+ });
5855
+
5847
5856
  const fields = {
5848
5857
  [referenceTo.labelField.name]: referenceTo.labelField,
5849
5858
  [referenceTo.valueField.name]: referenceTo.valueField
@@ -5895,7 +5904,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
5895
5904
  if(api.data.$term){
5896
5905
  filters = [["name", "contains", "'+ api.data.$term +'"]];
5897
5906
  }else if(selfData.op === 'loadOptions' && selfData.value){
5898
- if(selfData.value?.indexOf(',') > 0){
5907
+ if(selfData.value && selfData.value.indexOf(',') > 0){
5899
5908
  fieldValue = selfData.value.split(',');
5900
5909
  filters = [["${referenceTo.valueField.name}", "=", fieldValue]];
5901
5910
  }else{
@@ -6090,7 +6099,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
6090
6099
  {
6091
6100
  "actionType": "custom",
6092
6101
  "script": `
6093
- const masterRecord = event.data._master?.record;
6102
+ const masterRecord = event.data._master && event.data._master.record;
6094
6103
  const fieldConfig = ${JSON.stringify(field)};
6095
6104
  let reference_to = fieldConfig.reference_to;
6096
6105
  let saveValue;
@@ -6473,7 +6482,7 @@ async function getIdsPickerSchema(field, readonly, ctx){
6473
6482
  var pageNo = api.data.pageNo || 1;
6474
6483
  var skip = (pageNo - 1) * pageSize;
6475
6484
  if(selfData.op === 'loadOptions' && selfData.value){
6476
- if(selfData.value?.indexOf(',') > 0){
6485
+ if(selfData.value && selfData.value.indexOf(',') > 0){
6477
6486
  filters = [["${referenceTo.valueField.name}", "=", selfData.value.split(',')]];
6478
6487
  }else{
6479
6488
  filters = [["${referenceTo.valueField.name}", "=", selfData.value]];
@@ -7712,7 +7721,7 @@ async function getQuickEditSchema(field, options){
7712
7721
  case "number":
7713
7722
  case "currency":
7714
7723
  TempDisplayField = `
7715
- _display["${field.name}"] = event.data.value?.toFixed(${field.scale});
7724
+ _display["${field.name}"] = event.data.value && event.data.value.toFixed(${field.scale});
7716
7725
  `;
7717
7726
  quickEditSchema.body[0].onEvent["change"] = quickEditOnEvent(TempDisplayField);
7718
7727
 
@@ -7900,13 +7909,15 @@ async function getTableColumns(fields, options){
7900
7909
  }
7901
7910
  },
7902
7911
  "actionType": "download",
7903
- "expression": "!!!window?.nw?.require"//浏览器上直接下载
7912
+ // "expression": "!!!window?.nw?.require"//浏览器上直接下载
7913
+ "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
7904
7914
  },
7905
7915
  {
7906
7916
  "args": {},
7907
7917
  "actionType": "custom",
7908
7918
  "script": previewFileScript,
7909
- "expression": "!!window?.nw?.require" //PC客户端预览附件
7919
+ // "expression": "!!window?.nw?.require" //PC客户端预览附件
7920
+ "expression": "!!!(window && window.nw && window.nw.require)"//PC客户端预览附件
7910
7921
  }
7911
7922
  ]
7912
7923
  }
@@ -8048,7 +8059,7 @@ function getMobileLines(tpls){
8048
8059
  lineChildrenClassName = "steedos-listview-item-left two-lines-truncate";
8049
8060
  if(item.field.is_wide){
8050
8061
  // 左侧全行样式可以单独写
8051
- lineChildrenClassName = "steedos-listview-item-wide truncate";
8062
+ lineChildrenClassName = "steedos-listview-item-wide two-lines-truncate";
8052
8063
  }
8053
8064
  if(lines.length === 0){
8054
8065
  // 第一个字段加粗黑色显示
@@ -8361,7 +8372,7 @@ async function getTableApi(mainObject, fields, options){
8361
8372
  baseFilters = filter;
8362
8373
  }
8363
8374
 
8364
- _$1.each(fields, function (field) {
8375
+ _$1.each(mainObject.fields, function (field) {
8365
8376
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
8366
8377
  searchableFields.push(field.name);
8367
8378
  }
@@ -8422,8 +8433,9 @@ async function getTableApi(mainObject, fields, options){
8422
8433
  // 所以会把localSearchableFilter中已经存过的页码覆盖
8423
8434
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
8424
8435
  let formFactor = "${options.formFactor}";
8425
- // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
8426
- api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8436
+ // api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8437
+ // 移动端暂时去除加载更多,放开翻页
8438
+ api.data.pageNo = localListViewProps.page || 1;
8427
8439
  }
8428
8440
  }
8429
8441
  }
@@ -8623,7 +8635,8 @@ async function getTableApi(mainObject, fields, options){
8623
8635
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
8624
8636
  let formFactor = "${options.formFactor}";
8625
8637
  // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
8626
- selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8638
+ // selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
8639
+ selfData.page = localListViewProps.page || 1;
8627
8640
  }
8628
8641
  }
8629
8642
  delete selfData.context;
@@ -8641,7 +8654,13 @@ async function getTableApi(mainObject, fields, options){
8641
8654
  const setDataToComponentId = "${setDataToComponentId}";
8642
8655
  if(setDataToComponentId){
8643
8656
  //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9
8644
- SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8657
+ var scope = SteedosUI.getRef(api.body.$self.$scopeId);
8658
+ var scopeParent = scope && scope.parent;
8659
+ var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);
8660
+ if(setDataToComponent){
8661
+ setDataToComponent.setData({$count: payload.data.count});
8662
+ }
8663
+ // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8645
8664
  };
8646
8665
  ${options.adaptor || ''}
8647
8666
  return payload;
@@ -8927,7 +8946,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
8927
8946
  var uiSchema = api.body.uiSchema;
8928
8947
  var defaultData = api.body.defaultData;
8929
8948
  var defaultValues = {};
8930
- _.each(uiSchema?.fields, function(field){
8949
+ _.each(uiSchema && uiSchema.fields, function(field){
8931
8950
  var value = SteedosUI.getFieldDefaultValue(field, api.body.global);
8932
8951
  if(value){
8933
8952
  defaultValues[field.name] = value;
@@ -9146,7 +9165,12 @@ async function getCalendarApi(mainObject, fields, options) {
9146
9165
  window.postMessage(Object.assign({type: "listview.loaded"}), "*");
9147
9166
  const setDataToComponentId = "${setDataToComponentId}";
9148
9167
  if(setDataToComponentId){
9149
- SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
9168
+ var scope = SteedosUI.getRef(api.body.$self.scopeId);
9169
+ var setDataToComponent = scope && scope.getComponentById(setDataToComponentId);
9170
+ if(setDataToComponent){
9171
+ setDataToComponent.setData({$count: payload.data.count});
9172
+ }
9173
+ // SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
9150
9174
  }
9151
9175
  const rows = payload.data.rows || [];
9152
9176
  const selfData = api.data.$self;
@@ -12254,7 +12278,7 @@ const getNextStepUsersInput = async (instance) => {
12254
12278
  id: "u:ffff15b76c89",
12255
12279
  className: "b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm",
12256
12280
  subFormMode: "",
12257
- hiddenOn: "!!!this.new_next_step || this.new_next_step?.step_type === 'end'"
12281
+ hiddenOn: "!!!this.new_next_step || (this.new_next_step && this.new_next_step.step_type === 'end')"
12258
12282
  };
12259
12283
  };
12260
12284
 
@@ -13174,7 +13198,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
13174
13198
  map[item.value] = item.label;
13175
13199
  });
13176
13200
  tpl.type = 'static';
13177
- tpl.tpl = `<% var options = ${JSON.stringify(map)}; return options?.[data.${field.code}] || ''%>`;
13201
+ tpl.tpl = `<% var options = ${JSON.stringify(map)}; return (options && options[data.${field.code}]) || ''%>`;
13178
13202
  }else if(field.type === 'odata'){
13179
13203
  tpl.type = 'static';
13180
13204
  tpl.tpl = `<div>\${${field.code}['@label']}</div>`;
@@ -13204,7 +13228,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
13204
13228
  if(field.is_multiselect){
13205
13229
  tpl.tpl = `\${_.map(${field.code}, 'name')}`;
13206
13230
  }else {
13207
- tpl.tpl = `\${${field.code}?.name}`;
13231
+ tpl.tpl = `\${${field.code} && ${field.code}.name}`;
13208
13232
  }
13209
13233
  }else if(field.type === 'group'){
13210
13234
  tpl.type = 'static';