@steedos-widgets/amis-lib 1.2.25 → 1.2.27

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
@@ -336,7 +336,7 @@ const getSteedosAuth = () => {
336
336
  * @Author: baozhoutao@steedos.com
337
337
  * @Date: 2022-08-16 17:02:08
338
338
  * @LastEditors: baozhoutao@steedos.com
339
- * @LastEditTime: 2023-04-19 15:25:50
339
+ * @LastEditTime: 2023-06-20 13:50:15
340
340
  * @Description:
341
341
  */
342
342
 
@@ -347,14 +347,14 @@ const Router = {
347
347
  if(urlSearch.has('display')){
348
348
  return urlSearch.get('display')
349
349
  }
350
- // const key = `tab.${tab_id}.display`;
351
- const key = `page_display`;
350
+ const key = `tab_${tab_id}_display`;
351
+ // const key = `page_display`;
352
352
  const value = localStorage.getItem(key);
353
353
  return value ? value : 'grid'
354
354
  },
355
355
 
356
356
  setTabDisplayAs(tab_id, displayAs){
357
- const key = `tab.${tab_id}.display`;
357
+ const key = `tab_${tab_id}_display`;
358
358
  localStorage.setItem(key, displayAs);
359
359
  },
360
360
  getAppPath({formFactor, appId}){
@@ -368,15 +368,10 @@ const Router = {
368
368
  },
369
369
  getObjectDetailPath(props){
370
370
  const {formFactor, appId, objectName, recordId, listViewName, _templateType} = props;
371
- // var urlParams = new URLSearchParams(window.location.search);
372
- // if(objectName === 'instances'){
373
- // return `/workflow/space/\${context.tenantId}/\${listName}/${recordId}`;
374
- // }
375
- const displayAs = Router.getTabDisplayAs(objectName); //urlParams.get("display") ||
376
371
  if(_templateType === 'JavaScript'){
377
- return `/app/${appId}/${objectName}/view/${recordId}?display=${displayAs}&side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`;
372
+ return `/app/${appId}/${objectName}/view/${recordId}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`;
378
373
  }
379
- return `/app/${appId}/${objectName}/view/${recordId}?display=${displayAs}&side_object=\${objectName}&side_listview_id=\${listName}`;
374
+ return `/app/${appId}/${objectName}/view/${recordId}?side_object=\${objectName}&side_listview_id=\${listName}`;
380
375
  },
381
376
  getObjectRelatedViewPath({formFactor, appId, masterObjectName, masterRecordId, objectName, foreignKey}){
382
377
  return `/app/${appId}/${masterObjectName}/${masterRecordId}/${objectName}/grid?related_field_name=${foreignKey}`;
@@ -652,6 +647,10 @@ async function getFieldsTemplate(fields, expand){
652
647
  if(includes(['percent','time','filesize','date','datetime','boolean','number','currency', 'select', 'file', 'image', 'avatar', 'formula', 'summary', 'object', 'grid'], field.type)){
653
648
  displayFields.push(`${field.name}`);
654
649
  }
650
+ }else {
651
+ objectFieldName = field.name.split('.')[0];
652
+ fieldsName.push(objectFieldName);
653
+ displayFields.push(objectFieldName);
655
654
  }
656
655
  }
657
656
 
@@ -3126,7 +3125,10 @@ async function getObjectFieldsFilterFormSchema(ctx) {
3126
3125
  const formSchema = {
3127
3126
  "type": "service",
3128
3127
  "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
3129
- "className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2" : "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",
3128
+ "className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",
3129
+ "style":{
3130
+ "max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
3131
+ },
3130
3132
  "schemaApi": {
3131
3133
  method: 'post',
3132
3134
  url: `\${context.rootUrl}/graphql?reload=\${filterFormSearchableFields|join}`,
@@ -5059,14 +5061,14 @@ const getDisplayAsButton = function(objectName, showDisplayAs){
5059
5061
  {
5060
5062
  "type": "button",
5061
5063
  "label": i18next.t('frontend_display_type_is_table'),
5062
- "onClick": "let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
5064
+ "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
5063
5065
  "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
5064
5066
  "rightIconClassName": "m-l-sm"
5065
5067
  },
5066
5068
  {
5067
5069
  "type": "button",
5068
5070
  "label": i18next.t('frontend_display_type_is_split'),
5069
- "onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
5071
+ "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
5070
5072
  "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
5071
5073
  "rightIconClassName": "m-l-sm"
5072
5074
  }
@@ -5228,7 +5230,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
5228
5230
  },
5229
5231
  // getExportExcelToolbarButtonSchema(),
5230
5232
  getSettingListviewToolbarButtonSchema(),
5231
- getDisplayAsButton(showDisplayAs),
5233
+ getDisplayAsButton(mainObject?.name),
5232
5234
  filterVisible ? {
5233
5235
  "label": i18next.t('frontend_button_search_tooltip'),
5234
5236
  "icon": "fa fa-search",
@@ -7924,6 +7926,7 @@ async function getTableApi(mainObject, fields, options){
7924
7926
  let valueField = mainObject.key_field || '_id';
7925
7927
  const api = await getApi(mainObject, null, fields, {count: options.queryCount, alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"`});
7926
7928
 
7929
+ api.url += "&objectName=${objectName}";//设计器上对象表格组件需要切换对象重新请求列表数据
7927
7930
  if(options.isRelated){
7928
7931
  api.url += "&recordId=${_master.recordId}";
7929
7932
  }
@@ -8059,13 +8062,13 @@ async function getTableApi(mainObject, fields, options){
8059
8062
  const masterRecord = self._master.record;
8060
8063
  const masterObjectName = self._master.objectName;
8061
8064
  let relatedValue = self._master.recordId;
8062
- if(refField.reference_to_field && refField.reference_to_field != '_id'){
8065
+ if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){
8063
8066
  relatedValue = masterRecord[refField.reference_to_field]
8064
8067
  }
8065
8068
  let relatedFilters;
8066
8069
  if (
8067
- refField._reference_to ||
8068
- (refField.reference_to && !_.isString(refField.reference_to))
8070
+ refField && (refField._reference_to ||
8071
+ (refField.reference_to && !_.isString(refField.reference_to)))
8069
8072
  ) {
8070
8073
  relatedFilters = [
8071
8074
  [relatedKey + "/o", "=", masterObjectName],
@@ -8215,7 +8218,7 @@ function getRecordPermissionsApi(object, recordId, options){
8215
8218
 
8216
8219
  const API_CACHE = 100;
8217
8220
 
8218
- function getReadonlyFormAdaptor(object, fields){
8221
+ function getReadonlyFormAdaptor(object, fields, options){
8219
8222
  let scriptStr = '';
8220
8223
  const selectFields = _$1.filter(fields, function(field){return field.name.indexOf('.') < 0 && ((field.type == 'select' && field.options) || ((field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to))});
8221
8224
  const gridAndObjectFieldsName = _$1.map(_$1.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type === 'object' || field.type === 'grid')}), 'name');
@@ -8253,11 +8256,24 @@ function getReadonlyFormAdaptor(object, fields){
8253
8256
  // }
8254
8257
  // })
8255
8258
 
8259
+ var fieldNames = _$1.map(fields, function(n){return n.name});
8256
8260
  return `
8257
8261
  if(payload.data.data.length === 0){
8258
- return {
8259
- status: 2,
8260
- msg: "无法找到记录"
8262
+ var isEditor = !!${options && options.isEditor};
8263
+ if(isEditor){
8264
+ var fieldNames = ${JSON.stringify(fieldNames)};
8265
+ var emptyDoc = {};//这里如果不把每个字段值设置为空的话,表单上会显示上一次表单上的字段值
8266
+ fieldNames.forEach(function(n){
8267
+ emptyDoc[n] = null;
8268
+ });
8269
+ // 设计器中始终显示表单,有记录则显示第一条记录,没记录时显示为空表单
8270
+ payload.data.data = [emptyDoc];
8271
+ }
8272
+ else{
8273
+ return {
8274
+ status: 2,
8275
+ msg: "无法找到记录"
8276
+ }
8261
8277
  }
8262
8278
  }
8263
8279
  if(payload.data.data){
@@ -8274,7 +8290,7 @@ function getReadonlyFormAdaptor(object, fields){
8274
8290
  var record = _.cloneDeep(data);
8275
8291
  try{
8276
8292
  _.each(gridAndObjectFieldsName, function(name){
8277
- data[name] = data._display[name];
8293
+ data[name] = data._display && data._display[name];
8278
8294
  })
8279
8295
  }catch(e){
8280
8296
  console.error(e)
@@ -8295,10 +8311,10 @@ function getReadonlyFormAdaptor(object, fields){
8295
8311
  async function getReadonlyFormInitApi(object, recordId, fields, options){
8296
8312
  return {
8297
8313
  method: "post",
8298
- url: getApi$2()+"&recordId=${recordId}",
8314
+ url: getApi$2() + '&objectName=${objectName}' + "&recordId=${recordId}",
8299
8315
  cache: API_CACHE,
8300
8316
  // requestAdaptor: "console.log('getReadonlyFormInitApi requestAdaptor', api);return api;",
8301
- adaptor: getReadonlyFormAdaptor(object, fields),
8317
+ adaptor: getReadonlyFormAdaptor(object, fields, options),
8302
8318
  data: await getFindOneQuery$1(object, recordId, fields, options),
8303
8319
  headers: {
8304
8320
  Authorization: "Bearer ${context.tenantId},${context.authToken}"
@@ -9730,8 +9746,8 @@ const getRecordPermissions = async (objectName, recordId)=>{
9730
9746
  /*
9731
9747
  * @Author: baozhoutao@steedos.com
9732
9748
  * @Date: 2022-07-05 15:55:39
9733
- * @LastEditors: Please set LastEditors
9734
- * @LastEditTime: 2023-05-17 09:09:33
9749
+ * @LastEditors: liaodaxue
9750
+ * @LastEditTime: 2023-06-20 14:05:50
9735
9751
  * @Description:
9736
9752
  */
9737
9753
 
@@ -9774,10 +9790,11 @@ async function getObjectRelatedList(
9774
9790
  if(!isEmpty(relatedLists)){
9775
9791
  for (const relatedList of relatedLists) {
9776
9792
  const arr = relatedList.related_field_fullname.split(".");
9793
+ const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
9777
9794
  related.push({
9778
9795
  masterObjectName: objectName,
9779
9796
  object_name: arr[0],
9780
- foreign_key: arr[1],
9797
+ foreign_key,
9781
9798
  label: relatedList.label,
9782
9799
  columns: relatedList.field_names,
9783
9800
  sort: relatedList.sort,
@@ -9790,10 +9807,11 @@ async function getObjectRelatedList(
9790
9807
  const details = [].concat(uiSchema.details || []);
9791
9808
  for (const detail of details) {
9792
9809
  const arr = detail.split(".");
9810
+ const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
9793
9811
  related.push({
9794
9812
  masterObjectName: objectName,
9795
9813
  object_name: arr[0],
9796
- foreign_key: arr[1]
9814
+ foreign_key
9797
9815
  });
9798
9816
  }
9799
9817
  }
@@ -9825,14 +9843,16 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
9825
9843
  if(!isEmpty(mainRelatedLists)){
9826
9844
  for (const relatedList of mainRelatedLists) {
9827
9845
  const arr = relatedList.related_field_fullname.split(".");
9828
- mainRelated[arr[0]] = arr[1];
9846
+ const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
9847
+ mainRelated[arr[0]] = foreign_key_value;
9829
9848
  }
9830
9849
  }else {
9831
9850
  const details = union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];
9832
9851
  for (const detail of details) {
9833
9852
  const arr = detail.split(".");
9853
+ const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];
9834
9854
  if(!has(mainRelated,arr[0])){
9835
- mainRelated[arr[0]] = arr[1];
9855
+ mainRelated[arr[0]] = foreign_key_value;
9836
9856
  }
9837
9857
  }
9838
9858
  }