@steedos-widgets/sortable 6.3.0-beta.10 → 6.3.0-beta.12

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.
@@ -20431,9 +20431,9 @@
20431
20431
  }
20432
20432
 
20433
20433
  function getNameTplUrl(field, ctx){
20434
- if(ctx.objectName === 'cms_files'){
20435
- return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
20436
- }
20434
+ // if(ctx.objectName === 'cms_files'){
20435
+ // return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
20436
+ // }
20437
20437
  const href = Router.getObjectDetailPath({
20438
20438
  ...ctx, formFactor: ctx.formFactor, appId: "${appId}", objectName: ctx.objectName || "${objectName}", recordId: `\${${ctx.idFieldName}}`
20439
20439
  });
@@ -20623,12 +20623,15 @@
20623
20623
  }
20624
20624
  }
20625
20625
 
20626
- async function getFieldsTemplate(fields, display){
20626
+ async function getFieldsTemplate(object, fields, display){
20627
20627
  let expandFields = [];
20628
20628
  if(display != false){
20629
20629
  display = true;
20630
20630
  }
20631
20631
  let fieldsName = ['_id'];
20632
+ if(!object.datasource || object.datasource === 'default' || object.datasource === 'meteor'){
20633
+ fieldsName.push('space');
20634
+ }
20632
20635
  let displayFields = [];
20633
20636
  let fieldsArr = [];
20634
20637
  if(lodash.exports.isArray(fields)){
@@ -20714,7 +20717,7 @@
20714
20717
  // return item.replace(/^{/,"").replace(/}$/,"");
20715
20718
  // }).join(",")) : "";
20716
20719
 
20717
- const fieldsTemplate = `${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}`;
20720
+ const fieldsTemplate = `${await getFieldsTemplate(object, fields, options.expand)}${treeFields}${cfsFields}`;
20718
20721
 
20719
20722
  return {
20720
20723
  orderBy: "${orderBy}",
@@ -20943,6 +20946,7 @@
20943
20946
  var frontend_form_delete$1 = "Delete";
20944
20947
  var frontend_form_view$1 = "view";
20945
20948
  var frontend_form_details$1 = "details";
20949
+ var frontend_form_validation_failed_url$1 = "The URL format is incorrect";
20946
20950
  var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
20947
20951
  var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
20948
20952
  var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
@@ -21031,6 +21035,7 @@
21031
21035
  frontend_form_delete: frontend_form_delete$1,
21032
21036
  frontend_form_view: frontend_form_view$1,
21033
21037
  frontend_form_details: frontend_form_details$1,
21038
+ frontend_form_validation_failed_url: frontend_form_validation_failed_url$1,
21034
21039
  frontend_delete_confirm_text: frontend_delete_confirm_text$1,
21035
21040
  frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
21036
21041
  frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
@@ -21120,6 +21125,7 @@
21120
21125
  var frontend_form_delete = "删除";
21121
21126
  var frontend_form_view = "查看";
21122
21127
  var frontend_form_details = "详情";
21128
+ var frontend_form_validation_failed_url = "URL 格式不正确";
21123
21129
  var frontend_delete_confirm_text = "确定要删除此项目?";
21124
21130
  var frontend_delete_many_selected_required = "请选择要删除的项";
21125
21131
  var frontend_delete_many_confirm_text = "确定要删除吗?";
@@ -21209,6 +21215,7 @@
21209
21215
  frontend_form_delete: frontend_form_delete,
21210
21216
  frontend_form_view: frontend_form_view,
21211
21217
  frontend_form_details: frontend_form_details,
21218
+ frontend_form_validation_failed_url: frontend_form_validation_failed_url,
21212
21219
  frontend_delete_confirm_text: frontend_delete_confirm_text,
21213
21220
  frontend_delete_many_selected_required: frontend_delete_many_selected_required,
21214
21221
  frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
@@ -21313,6 +21320,29 @@
21313
21320
  }
21314
21321
  });
21315
21322
 
21323
+ /*
21324
+ * @Author: baozhoutao@steedos.com
21325
+ * @Date: 2022-07-13 15:18:03
21326
+ * @LastEditors: baozhoutao@steedos.com
21327
+ * @LastEditTime: 2023-04-11 10:34:26
21328
+ * @Description:
21329
+ */
21330
+
21331
+ async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){
21332
+ const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;
21333
+ const page = await fetchAPI(api);
21334
+ if (page && page.schema) {
21335
+ page.schema = JSON.parse(page.schema);
21336
+ if(page.schema.data){
21337
+ delete page.schema.data.recordId;
21338
+ delete page.schema.data.objectName;
21339
+ delete page.schema.data.context;
21340
+ delete page.schema.data.global;
21341
+ }
21342
+ return page;
21343
+ }
21344
+ }
21345
+
21316
21346
  async function getQuickEditSchema(object, columnField, options){
21317
21347
  let field = object.fields[columnField.name];
21318
21348
  //判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑
@@ -21782,6 +21812,59 @@
21782
21812
  }
21783
21813
  }
21784
21814
 
21815
+ async function getColumnItemOnClick(field, options){
21816
+ const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor });
21817
+ const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
21818
+ "recordId": `\${${options.idFieldName}}`,
21819
+ "data": {
21820
+ ...recordPage.schema.data,
21821
+ "_inDrawer": true, // 用于判断是否在抽屉中
21822
+ "recordLoaded": false, // 重置数据加载状态
21823
+ }
21824
+ }) : {
21825
+ "type": "steedos-record-detail",
21826
+ "objectApiName": "${objectName}",
21827
+ "recordId": `\${${options.idFieldName}}`,
21828
+ "showBackButton": false,
21829
+ "showButtons": true,
21830
+ "data": {
21831
+ "_inDrawer": true, // 用于判断是否在抽屉中
21832
+ "recordLoaded": false, // 重置数据加载状态
21833
+ }
21834
+ };
21835
+
21836
+ if(!(field.is_name || field.name === options.labelFieldName)){
21837
+ drawerRecordDetailSchema.objectApiName = field.reference_to;
21838
+ drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
21839
+ }
21840
+ return {
21841
+ "click": {
21842
+ "actions": [
21843
+ {
21844
+ "actionType": "drawer",
21845
+ "drawer": {
21846
+ "type": "drawer",
21847
+ "title": " ",
21848
+ "headerClassName": "hidden",
21849
+ "size": "lg",
21850
+ "bodyClassName": "p-0 m-0 bg-gray-100",
21851
+ "closeOnEsc": true,
21852
+ "closeOnOutside": true,
21853
+ "resizable": true,
21854
+ "actions": [],
21855
+ "body": [
21856
+ drawerRecordDetailSchema
21857
+ ],
21858
+ "className": "steedos-record-detail-drawer app-popover",
21859
+ "id": "u:fc5f055afa8c"
21860
+ },
21861
+ "preventDefault": true
21862
+ }
21863
+ ]
21864
+ }
21865
+ };
21866
+ }
21867
+
21785
21868
  async function getTableColumns(object, fields, options){
21786
21869
  const columns = [];
21787
21870
  if(!options.isLookup && !options.isInputTable){
@@ -21821,7 +21904,10 @@
21821
21904
  delete fieldAmis?.className;
21822
21905
 
21823
21906
  let columnItem;
21824
- if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
21907
+
21908
+ // PC客户端点击名称字段直接预览
21909
+ let isNode = !!(window && window.nw && window.nw.require);
21910
+ if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files' && isNode){
21825
21911
  const previewFileScript = `
21826
21912
  var data = event.data;
21827
21913
  var file_name = data.versions ? data.name : "${field.label}";
@@ -21836,20 +21922,20 @@
21836
21922
  "onEvent": {
21837
21923
  "click": {
21838
21924
  "actions": [
21839
- {
21840
- "args": {
21841
- "api": {
21842
- "url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
21843
- "method": "get",
21844
- "headers": {
21845
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
21846
- }
21847
- }
21848
- },
21849
- "actionType": "download",
21850
- // "expression": "!!!window?.nw?.require"//浏览器上直接下载
21851
- "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
21852
- },
21925
+ // {
21926
+ // "args": {
21927
+ // "api": {
21928
+ // "url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
21929
+ // "method": "get",
21930
+ // "headers": {
21931
+ // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
21932
+ // }
21933
+ // }
21934
+ // },
21935
+ // "actionType": "download",
21936
+ // // "expression": "!!!window?.nw?.require"//浏览器上直接下载
21937
+ // "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
21938
+ // },
21853
21939
  {
21854
21940
  "args": {},
21855
21941
  "actionType": "custom",
@@ -21947,51 +22033,7 @@
21947
22033
  }
21948
22034
 
21949
22035
  if(window.innerWidth >= 768 && ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && lodash.exports.isString(field.reference_to) && field.multiple != true)) && options.isRelated){
21950
-
21951
- const drawerRecordDetailSchema = {
21952
- "type": "steedos-record-detail",
21953
- "objectApiName": "${objectName}",
21954
- "recordId": `\${${options.idFieldName}}`,
21955
- "showBackButton": false,
21956
- "showButtons": true,
21957
- "data": {
21958
- "_inDrawer": true, // 用于判断是否在抽屉中
21959
- "recordLoaded": false, // 重置数据加载状态
21960
- }
21961
- };
21962
-
21963
-
21964
- if(!(field.is_name || field.name === options.labelFieldName)){
21965
- drawerRecordDetailSchema.objectApiName = field.reference_to;
21966
- drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
21967
- }
21968
-
21969
- columnItem.onEvent = {
21970
- "click": {
21971
- "actions": [
21972
- {
21973
- "actionType": "drawer",
21974
- "drawer": {
21975
- "type": "drawer",
21976
- "title": " ",
21977
- "headerClassName": "hidden",
21978
- "size": "lg",
21979
- "bodyClassName": "p-0 m-0 bg-gray-100",
21980
- "closeOnEsc": true,
21981
- "closeOnOutside": true,
21982
- "resizable": true,
21983
- "actions": [],
21984
- "body": [
21985
- drawerRecordDetailSchema
21986
- ],
21987
- "className": "steedos-record-detail-drawer app-popover",
21988
- "id": "u:fc5f055afa8c"
21989
- },
21990
- "preventDefault": true
21991
- }
21992
- ]
21993
- }
21994
- };
22036
+ columnItem.onEvent = await getColumnItemOnClick(field, options);
21995
22037
  }
21996
22038
 
21997
22039
  }
@@ -22204,17 +22246,23 @@
22204
22246
  onEvent: {
22205
22247
  "click": {
22206
22248
  "actions": [
22249
+ // {
22250
+ // "args": {
22251
+ // "api": {
22252
+ // "url": url,
22253
+ // "method": "get",
22254
+ // "headers": {
22255
+ // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
22256
+ // }
22257
+ // }
22258
+ // },
22259
+ // "actionType": "download"
22260
+ // }
22207
22261
  {
22262
+ "actionType": "link",
22208
22263
  "args": {
22209
- "api": {
22210
- "url": url,
22211
- "method": "get",
22212
- "headers": {
22213
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
22214
- }
22215
- }
22216
- },
22217
- "actionType": "download"
22264
+ "link": url
22265
+ }
22218
22266
  }
22219
22267
  ],
22220
22268
  "weight": 0
@@ -26038,7 +26086,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26038
26086
  // 如果当前元素不是数组,则处理该元素
26039
26087
  // 下面正则用于匹配amis公式\${}
26040
26088
  if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
26041
- arr[i] = currentAmis.evaluate(arr[i], api.data.$self);
26089
+ try{
26090
+ arr[i] = currentAmis.evaluate(arr[i], api.context);
26091
+ }catch(ex){
26092
+ console.error("运行lookup过滤公式时出现错误:",ex);
26093
+ }
26042
26094
  }
26043
26095
  }
26044
26096
  }
@@ -26455,7 +26507,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26455
26507
  // 如果当前元素不是数组,则处理该元素
26456
26508
  // 下面正则用于匹配amis公式\${}
26457
26509
  if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
26458
- arr[i] = currentAmis.evaluate(arr[i], api.data.$self);
26510
+ try{
26511
+ arr[i] = currentAmis.evaluate(arr[i], api.context);
26512
+ }catch(ex){
26513
+ console.error("运行lookup过滤公式时出现错误:",ex);
26514
+ }
26459
26515
  }
26460
26516
  }
26461
26517
  }
@@ -27450,6 +27506,21 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
27450
27506
  type: getAmisStaticFieldType('url', readonly, field),
27451
27507
  static: readonly ? true : false
27452
27508
  };
27509
+ if(!readonly){
27510
+ // amis input-url控件不支持相对路径,这里支持下
27511
+ // 如果要使用amis原生input-url控件的默认的isUrl验证效果或自定义字段validations效果,配置字段的amis.validations属性即可,配置为null或空字符串则使用amis默认的isUrl效果
27512
+ let fieldAmisValidations = field.amis?.validations;
27513
+ if(typeof fieldAmisValidations === "undefined"){
27514
+ Object.assign(convertData, {
27515
+ "validations": {
27516
+ "matchRegexp": "^((http:\\/\\/|https:\\/\\/|ftp:\\/\\/|sftp:\\/\\/)+([^\\s\\/\\.]+(\\.[^\\s\\/\\.]+)+))*(\\/[^\\s\\.\\/]+)*$"
27517
+ },
27518
+ "validationErrors": {
27519
+ "matchRegexp": instance.t('frontend_form_validation_failed_url')//"URL 格式不正确"
27520
+ }
27521
+ });
27522
+ }
27523
+ }
27453
27524
  if(readonly && field.show_as_qr){
27454
27525
  convertData = {
27455
27526
  type: "control",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "6.3.0-beta.10",
3
+ "version": "6.3.0-beta.12",
4
4
  "main": "dist/sortable.cjs.js",
5
5
  "module": "dist/sortable.esm.js",
6
6
  "unpkg": "dist/sortable.umd.js",
@@ -45,7 +45,7 @@
45
45
  "dependencies": {
46
46
  "@dnd-kit/core": "^6.0.5",
47
47
  "@dnd-kit/sortable": "^7.0.1",
48
- "@steedos-widgets/amis-lib": "6.3.0-beta.10"
48
+ "@steedos-widgets/amis-lib": "6.3.0-beta.12"
49
49
  },
50
- "gitHead": "9bde0fd0766dc725e40940998b53e4f8fbeaea05"
50
+ "gitHead": "32bda6c188edebe8f497731d6ee0b468b1a2fe25"
51
51
  }