@steedos-widgets/amis-lib 1.3.1 → 1.3.2-beta.2

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
@@ -382,11 +382,26 @@ const Router = {
382
382
  /*
383
383
  * @Author: baozhoutao@steedos.com
384
384
  * @Date: 2022-07-20 16:29:22
385
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
386
- * @LastEditTime: 2023-09-08 14:09:48
385
+ * @LastEditors: liaodaxue
386
+ * @LastEditTime: 2023-09-11 17:19:53
387
387
  * @Description:
388
388
  */
389
389
 
390
+ function getImageFieldUrl(url) {
391
+ if (window.Meteor && window.Meteor.isCordova != true) {
392
+ // '//'的位置
393
+ const doubleSlashIndex = url.indexOf('//');
394
+ const urlIndex = url.indexOf('/', doubleSlashIndex + 2);
395
+ const rootUrl = url.substring(urlIndex);
396
+ return rootUrl;
397
+ }
398
+ return url;
399
+ }
400
+
401
+ if(typeof window != 'undefined'){
402
+ window.getImageFieldUrl = getImageFieldUrl;
403
+ }
404
+
390
405
  function getContrastColor(bgColor) {
391
406
  var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;
392
407
  var r = parseInt(backgroundColor.substr(0, 2), 16);
@@ -8548,7 +8563,13 @@ async function getTableApi(mainObject, fields, options){
8548
8563
  if(field.type === 'file'){
8549
8564
  item[key] = value
8550
8565
  }else{
8551
- item[key] = _.map(value, 'url')
8566
+ item[key] = _.map(value, (item)=>{
8567
+ if(field.type === 'image'){
8568
+ const url = window.getImageFieldUrl(item.url);
8569
+ return url;
8570
+ }
8571
+ return item.url;
8572
+ })
8552
8573
  }
8553
8574
  }
8554
8575
  })
@@ -8790,10 +8811,14 @@ function getScriptForAddUrlPrefixForImgFields(fields){
8790
8811
  let fieldProps = imgFields[item];
8791
8812
  if(fieldProps.multiple){
8792
8813
  if(imgFieldDisplayValue instanceof Array){
8793
- data[item] = imgFieldDisplayValue.map((i)=>{ return i.url });
8814
+ data[item] = imgFieldDisplayValue.map((i)=>{
8815
+ const url = window.getImageFieldUrl(i.url);
8816
+ return url;
8817
+ });
8794
8818
  }
8795
8819
  }else{
8796
- data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;
8820
+ const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);
8821
+ data[item] = url;
8797
8822
  }
8798
8823
  }
8799
8824
  })
@@ -10954,53 +10979,34 @@ async function getListSchema(
10954
10979
  };
10955
10980
  }
10956
10981
 
10957
- // 获取对象表格
10958
- async function getTableSchema(
10959
- appName,
10960
- objectName,
10961
- columns,
10962
- ctx = {}
10963
- ) {
10964
- // console.time('getTableSchema', columns);
10965
- const uiSchema = await getUISchema(objectName);
10966
-
10967
- let sort = ctx.sort;
10968
- if(!sort){
10969
- const sortField = ctx.sortField;
10970
- const sortOrder = ctx.sortOrder;
10971
- if(sortField){
10972
- let sortStr = sortField + ' ' + sortOrder || 'asc';
10973
- sort = sortStr;
10974
- }
10975
- }
10976
-
10982
+ async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
10977
10983
  let fields = [];
10978
- for(const column of columns){
10984
+ for (const column of columns) {
10979
10985
  if (isString(column)) {
10980
- if(column.indexOf('.') > 0){
10986
+ if (column.indexOf('.') > 0) {
10981
10987
  const fieldName = column.split('.')[0];
10982
10988
  const displayName = column.split('.')[1];
10983
10989
  const filedInfo = uiSchema.fields[fieldName];
10984
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to) ){
10990
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
10985
10991
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
10986
10992
  const rfFieldInfo = rfUiSchema.fields[displayName];
10987
- fields.push(Object.assign({}, rfFieldInfo, {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}}));
10993
+ fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));
10988
10994
  }
10989
- }else {
10990
- if(uiSchema.fields[column]){
10991
- fields.push(uiSchema.fields[column]);
10995
+ } else {
10996
+ if (uiSchema.fields[column]) {
10997
+ fields.push(Object.assign({}, uiSchema.fields[column], ctx));
10992
10998
  }
10993
10999
  }
10994
11000
  } else if (isObject$1(column)) {
10995
- if(column.field.indexOf('.') > 0){
11001
+ if (column.field.indexOf('.') > 0) {
10996
11002
  const fieldName = column.field.split('.')[0];
10997
11003
  const displayName = column.field.split('.')[1];
10998
11004
  const filedInfo = uiSchema.fields[fieldName];
10999
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to) ){
11005
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
11000
11006
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
11001
11007
  const rfFieldInfo = rfUiSchema.fields[displayName];
11002
- fields.push(Object.assign({}, rfFieldInfo,
11003
- {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}},
11008
+ fields.push(Object.assign({}, rfFieldInfo, ctx,
11009
+ { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },
11004
11010
  {
11005
11011
  width: column.width,
11006
11012
  wrap: column.wrap, // wrap = true 是没效果的
@@ -11008,10 +11014,10 @@ async function getTableSchema(
11008
11014
  }
11009
11015
  ));
11010
11016
  }
11011
- }else {
11012
- if(uiSchema.fields[column.field]){
11017
+ } else {
11018
+ if (uiSchema.fields[column.field]) {
11013
11019
  fields.push(
11014
- Object.assign({}, uiSchema.fields[column.field], {
11020
+ Object.assign({}, uiSchema.fields[column.field], ctx, {
11015
11021
  width: column.width,
11016
11022
  wrap: column.wrap, // wrap = true 是没效果的
11017
11023
  amis: column.amis
@@ -11021,17 +11027,36 @@ async function getTableSchema(
11021
11027
  }
11022
11028
  }
11023
11029
  }
11030
+ return fields;
11031
+ }
11032
+
11033
+ // 获取对象表格
11034
+ async function getTableSchema(
11035
+ appName,
11036
+ objectName,
11037
+ columns,
11038
+ ctx = {}
11039
+ ) {
11040
+ // console.time('getTableSchema', columns);
11041
+ const uiSchema = await getUISchema(objectName);
11042
+
11043
+ let sort = ctx.sort;
11044
+ if(!sort){
11045
+ const sortField = ctx.sortField;
11046
+ const sortOrder = ctx.sortOrder;
11047
+ if(sortField){
11048
+ let sortStr = sortField + ' ' + sortOrder || 'asc';
11049
+ sort = sortStr;
11050
+ }
11051
+ }
11052
+
11053
+ let fields = await convertColumnsToTableFields(columns, uiSchema);
11024
11054
 
11025
11055
  const extraColumns = ctx.extraColumns;
11026
11056
 
11027
11057
  if (extraColumns) {
11028
- each(extraColumns, function (column) {
11029
- if (isString(column)) {
11030
- fields.push({ extra: true, name: column });
11031
- } else if (isObject$1(column)) {
11032
- fields.push({ extra: true, name: column.field });
11033
- }
11034
- });
11058
+ let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});
11059
+ fields = fields.concat(extraFields);
11035
11060
  }
11036
11061
 
11037
11062
  const amisSchema = await getObjectCRUD(uiSchema, fields, {