@steedos-widgets/amis-lib 1.3.4-beta.4 → 1.3.4-beta.6

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
@@ -452,39 +452,39 @@ function getCreatedInfoTpl(formFactor){
452
452
  const href = Router.getObjectDetailPath({
453
453
  formFactor, appId: "admin", objectName: 'users', recordId: '${created_by._id}'
454
454
  });
455
- return `<div><a href='${href}'>\${_display.created_by.label}</a>\${_display.created}</div>`
455
+ return `<span><a href='${href}'>\${_display.created_by.label}</a>\${_display.created}</span>`
456
456
  }
457
457
 
458
458
  function getModifiedInfoTpl(formFactor){
459
459
  const href = Router.getObjectDetailPath({
460
460
  formFactor, appId: "admin", objectName: 'users', recordId: '${modified_by._id}'
461
461
  });
462
- return `<div><a href='${href}'>\${_display.modified_by.label}</a>\${_display.modified}</div>`
462
+ return `<span><a href='${href}'>\${_display.modified_by.label}</a>\${_display.modified}</span>`
463
463
  }
464
464
 
465
465
  function getNumberTpl(field){
466
- return `<div>\${_display.${field.name}}</div>`
466
+ return `<span>\${_display.${field.name}}</span>`
467
467
  }
468
468
 
469
469
  function getTimeTpl(field){
470
- return `<div>\${_display.${field.name}}</div>`
470
+ return `<span>\${_display.${field.name}}</span>`
471
471
  }
472
472
 
473
473
  function getDateTpl(field){
474
- return `<div>\${_display.${field.name}}</div>`
474
+ return `<span>\${_display.${field.name}}</span>`
475
475
  }
476
476
 
477
477
 
478
478
  function getDateTimeTpl(field){
479
- return `<div>\${_display.${field.name}}</div>`
479
+ return `<span>\${_display.${field.name}}</span>`
480
480
  }
481
481
 
482
482
  function getUiFieldTpl(field){
483
- return `<div>\${_display.${field.name}}</div>`
483
+ return `<span>\${_display.${field.name}}</span>`
484
484
  }
485
485
 
486
486
  function getUiFileSizeTpl(field){
487
- return `<div>\${_display.${field.name}}</div>`
487
+ return `<span>\${_display.${field.name}}</span>`
488
488
  }
489
489
 
490
490
  //TODO 处理name字段
@@ -495,7 +495,7 @@ async function getRefObjectNameFieldName(field){
495
495
  }
496
496
 
497
497
  function getSelectTpl(field){
498
- return `<div>\${_display.${field.name}}</div>`
498
+ return `<span>\${_display.${field.name}}</span>`
499
499
  }
500
500
  function getSelectMap(selectOptions){
501
501
  let map = {};
@@ -1830,7 +1830,7 @@ const parseSingleExpression = function (func, formData, dataPath, global, userSe
1830
1830
  * @Author: baozhoutao@steedos.com
1831
1831
  * @Date: 2022-11-01 15:51:00
1832
1832
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
1833
- * @LastEditTime: 2023-06-28 23:19:41
1833
+ * @LastEditTime: 2023-09-23 11:25:18
1834
1834
  * @Description:
1835
1835
  */
1836
1836
 
@@ -1849,18 +1849,31 @@ const getSchema$5 = async (uiSchema, ctx) => {
1849
1849
  formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;
1850
1850
  }
1851
1851
 
1852
+ const fields = ${JSON.stringify(uiSchema.fields)};
1853
+ const selectedRowResponseResult = api.body.selectedRowResponseResult;
1854
+ let defaultData = {};
1855
+
1856
+ if(!_.isEmpty(selectedRowResponseResult)){
1857
+ const fieldsKeys = _.keys(fields);
1858
+ // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,
1859
+ // 原规则见:https://github.com/steedos/steedos-frontend/issues/297
1860
+ _.forEach(selectedRowResponseResult, (val, key) => {
1861
+ if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true) {
1862
+ defaultData[key] = val;
1863
+ }
1864
+ })
1865
+ }
1866
+
1852
1867
  const _master = api.body._master;
1853
1868
  if(_master && _master._isRelated){
1854
1869
  const relatedKey = _master.relatedKey;
1855
1870
  const masterObjectName = _master.objectName;
1856
1871
  const recordId = _master.recordId;
1857
1872
  let relatedKeySaveValue = recordId;
1858
- const fields = ${JSON.stringify(uiSchema.fields)};
1859
1873
  const relatedField = fields[relatedKey];
1860
1874
  if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){
1861
1875
  relatedKeySaveValue = _master.record[relatedField.reference_to_field];
1862
1876
  }
1863
- let defaultData = {};
1864
1877
  let relatedKeyValue;
1865
1878
  if(!_.isString(relatedField.reference_to)){
1866
1879
  relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };
@@ -1870,6 +1883,9 @@ const getSchema$5 = async (uiSchema, ctx) => {
1870
1883
  relatedKeyValue = relatedKeySaveValue;
1871
1884
  }
1872
1885
  defaultData[relatedKey]=relatedKeyValue;
1886
+ }
1887
+
1888
+ if(!_.isEmpty(defaultData)){
1873
1889
  if(payload.schema){
1874
1890
  // 表单微页面第一层要求是page
1875
1891
  formSchema.data.defaultData = defaultData;
@@ -1892,6 +1908,13 @@ const getSchema$5 = async (uiSchema, ctx) => {
1892
1908
  });
1893
1909
  }, 200);
1894
1910
  `;
1911
+ const getSelectedRowsScript = `
1912
+ const uiSchema = event.data.uiSchema;
1913
+ const objectName = event.data.objectName;
1914
+ const listViewRef = event.context.scoped.getComponentById("listview_" + objectName);
1915
+ const selectedItems = listViewRef.props.store.toJSON().selectedItems || [];
1916
+ event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');
1917
+ `;
1895
1918
  return {
1896
1919
  "type": "service",
1897
1920
  "body": [
@@ -1904,6 +1927,21 @@ const getSchema$5 = async (uiSchema, ctx) => {
1904
1927
  "click": {
1905
1928
  "weight": 0,
1906
1929
  "actions": [
1930
+ {
1931
+ "actionType": "custom",
1932
+ "script": getSelectedRowsScript
1933
+ },
1934
+ {
1935
+ "actionType": "ajax",
1936
+ "outputVar": "selectedRowResponseResult",
1937
+ "args": {
1938
+ "api": {
1939
+ "url": "${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}",
1940
+ "method": "get"
1941
+ }
1942
+ },
1943
+ "expression": "${selectedIds.length > 0}"
1944
+ },
1907
1945
  {
1908
1946
  "actionType": "dialog",
1909
1947
  "dialog": {
@@ -1921,7 +1959,8 @@ const getSchema$5 = async (uiSchema, ctx) => {
1921
1959
  "displayAs": "${displayAs}",
1922
1960
  "uiSchema": "${uiSchema}",
1923
1961
  "isLookup": "${isLookup}",
1924
- "listName": "${listName}"
1962
+ "listName": "${listName}",
1963
+ "selectedRowResponseResult": "${selectedRowResponseResult}",
1925
1964
  },
1926
1965
  "title":i18next.t('frontend_form_new') + " ${uiSchema.label | raw}",
1927
1966
  "body": [
@@ -1933,7 +1972,8 @@ const getSchema$5 = async (uiSchema, ctx) => {
1933
1972
  "data": {
1934
1973
  "isLookup": "${isLookup}",
1935
1974
  "_master": "${_master}",
1936
- "url": "${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}"
1975
+ "url": "${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",
1976
+ "selectedRowResponseResult": "${selectedRowResponseResult}"
1937
1977
  },
1938
1978
  "url": "${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",
1939
1979
  "method": "get",
@@ -10180,13 +10220,15 @@ async function getObjectCRUD(objectSchema, fields, options){
10180
10220
  rowClassNameExpr: options.rowClassNameExpr
10181
10221
  }, bodyProps);
10182
10222
 
10183
- body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });
10184
10223
  }
10185
10224
 
10186
10225
  const defaults = options.defaults;
10226
+
10227
+ const listSchema = (defaults && defaults.listSchema) || {};
10228
+ body = defaultsDeep({}, listSchema, body);
10229
+ body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });
10230
+
10187
10231
  if (defaults) {
10188
- const listSchema = defaults.listSchema || {};
10189
- body = defaultsDeep({}, listSchema, body);
10190
10232
  const headerSchema = defaults.headerSchema;
10191
10233
  const footerSchema = defaults.footerSchema;
10192
10234
  if (headerSchema || footerSchema) {