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

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);
@@ -5952,7 +5967,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
5952
5967
 
5953
5968
  pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
5954
5969
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
5955
- if (isAllowCreate) {
5970
+ const isCreate = _$1.isBoolean(field.create) ? field.create : true;
5971
+ if (isAllowCreate && isCreate) {
5956
5972
  const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
5957
5973
  new_button.align = "right";
5958
5974
  // 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
@@ -8548,7 +8564,13 @@ async function getTableApi(mainObject, fields, options){
8548
8564
  if(field.type === 'file'){
8549
8565
  item[key] = value
8550
8566
  }else{
8551
- item[key] = _.map(value, 'url')
8567
+ item[key] = _.map(value, (item)=>{
8568
+ if(field.type === 'image'){
8569
+ const url = window.getImageFieldUrl(item.url);
8570
+ return url;
8571
+ }
8572
+ return item.url;
8573
+ })
8552
8574
  }
8553
8575
  }
8554
8576
  })
@@ -8790,10 +8812,14 @@ function getScriptForAddUrlPrefixForImgFields(fields){
8790
8812
  let fieldProps = imgFields[item];
8791
8813
  if(fieldProps.multiple){
8792
8814
  if(imgFieldDisplayValue instanceof Array){
8793
- data[item] = imgFieldDisplayValue.map((i)=>{ return i.url });
8815
+ data[item] = imgFieldDisplayValue.map((i)=>{
8816
+ const url = window.getImageFieldUrl(i.url);
8817
+ return url;
8818
+ });
8794
8819
  }
8795
8820
  }else{
8796
- data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;
8821
+ const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);
8822
+ data[item] = url;
8797
8823
  }
8798
8824
  }
8799
8825
  })
@@ -10954,53 +10980,34 @@ async function getListSchema(
10954
10980
  };
10955
10981
  }
10956
10982
 
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
-
10983
+ async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
10977
10984
  let fields = [];
10978
- for(const column of columns){
10985
+ for (const column of columns) {
10979
10986
  if (isString(column)) {
10980
- if(column.indexOf('.') > 0){
10987
+ if (column.indexOf('.') > 0) {
10981
10988
  const fieldName = column.split('.')[0];
10982
10989
  const displayName = column.split('.')[1];
10983
10990
  const filedInfo = uiSchema.fields[fieldName];
10984
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to) ){
10991
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
10985
10992
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
10986
10993
  const rfFieldInfo = rfUiSchema.fields[displayName];
10987
- fields.push(Object.assign({}, rfFieldInfo, {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}}));
10994
+ fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));
10988
10995
  }
10989
- }else {
10990
- if(uiSchema.fields[column]){
10991
- fields.push(uiSchema.fields[column]);
10996
+ } else {
10997
+ if (uiSchema.fields[column]) {
10998
+ fields.push(Object.assign({}, uiSchema.fields[column], ctx));
10992
10999
  }
10993
11000
  }
10994
11001
  } else if (isObject$1(column)) {
10995
- if(column.field.indexOf('.') > 0){
11002
+ if (column.field.indexOf('.') > 0) {
10996
11003
  const fieldName = column.field.split('.')[0];
10997
11004
  const displayName = column.field.split('.')[1];
10998
11005
  const filedInfo = uiSchema.fields[fieldName];
10999
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to) ){
11006
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
11000
11007
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
11001
11008
  const rfFieldInfo = rfUiSchema.fields[displayName];
11002
- fields.push(Object.assign({}, rfFieldInfo,
11003
- {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}},
11009
+ fields.push(Object.assign({}, rfFieldInfo, ctx,
11010
+ { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },
11004
11011
  {
11005
11012
  width: column.width,
11006
11013
  wrap: column.wrap, // wrap = true 是没效果的
@@ -11008,10 +11015,10 @@ async function getTableSchema(
11008
11015
  }
11009
11016
  ));
11010
11017
  }
11011
- }else {
11012
- if(uiSchema.fields[column.field]){
11018
+ } else {
11019
+ if (uiSchema.fields[column.field]) {
11013
11020
  fields.push(
11014
- Object.assign({}, uiSchema.fields[column.field], {
11021
+ Object.assign({}, uiSchema.fields[column.field], ctx, {
11015
11022
  width: column.width,
11016
11023
  wrap: column.wrap, // wrap = true 是没效果的
11017
11024
  amis: column.amis
@@ -11021,17 +11028,36 @@ async function getTableSchema(
11021
11028
  }
11022
11029
  }
11023
11030
  }
11031
+ return fields;
11032
+ }
11033
+
11034
+ // 获取对象表格
11035
+ async function getTableSchema(
11036
+ appName,
11037
+ objectName,
11038
+ columns,
11039
+ ctx = {}
11040
+ ) {
11041
+ // console.time('getTableSchema', columns);
11042
+ const uiSchema = await getUISchema(objectName);
11043
+
11044
+ let sort = ctx.sort;
11045
+ if(!sort){
11046
+ const sortField = ctx.sortField;
11047
+ const sortOrder = ctx.sortOrder;
11048
+ if(sortField){
11049
+ let sortStr = sortField + ' ' + sortOrder || 'asc';
11050
+ sort = sortStr;
11051
+ }
11052
+ }
11053
+
11054
+ let fields = await convertColumnsToTableFields(columns, uiSchema);
11024
11055
 
11025
11056
  const extraColumns = ctx.extraColumns;
11026
11057
 
11027
11058
  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
- });
11059
+ let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});
11060
+ fields = fields.concat(extraFields);
11035
11061
  }
11036
11062
 
11037
11063
  const amisSchema = await getObjectCRUD(uiSchema, fields, {