@steedos-widgets/sortable 3.6.0-beta.3 → 3.6.0-beta.5

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/assets.json CHANGED
@@ -3,8 +3,8 @@
3
3
  {
4
4
  "package": "@steedos-widgets/sortable",
5
5
  "urls": [
6
- "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.3/dist/sortable.umd.js",
7
- "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.3/dist/sortable.umd.css"
6
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.5/dist/sortable.umd.js",
7
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.5/dist/sortable.umd.css"
8
8
  ],
9
9
  "library": "BuilderSortable"
10
10
  }
@@ -15,10 +15,10 @@
15
15
  "npm": {
16
16
  "package": "@steedos-widgets/sortable"
17
17
  },
18
- "url": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.3/dist/meta.js",
18
+ "url": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.5/dist/meta.js",
19
19
  "urls": {
20
- "default": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.3/dist/meta.js",
21
- "design": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.3/dist/meta.js"
20
+ "default": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.5/dist/meta.js",
21
+ "design": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.5/dist/meta.js"
22
22
  }
23
23
  }
24
24
  ]
@@ -53979,8 +53979,8 @@ const Router = {
53979
53979
  /*
53980
53980
  * @Author: baozhoutao@steedos.com
53981
53981
  * @Date: 2022-07-20 16:29:22
53982
- * @LastEditors: liaodaxue
53983
- * @LastEditTime: 2023-09-11 17:19:53
53982
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
53983
+ * @LastEditTime: 2023-12-28 14:59:08
53984
53984
  * @Description:
53985
53985
  */
53986
53986
 
@@ -54037,6 +54037,21 @@ function getLookupListView(refObjectConfig) {
54037
54037
  return listView;
54038
54038
  }
54039
54039
 
54040
+
54041
+ /**
54042
+ * 获取可比较的amis版本号
54043
+ * @returns 只返回前两位版本,第三位忽略,比如3.6.3返回3.6
54044
+ */
54045
+ function getComparableAmisVersion() {
54046
+ let amis = (window.amisRequire && window.amisRequire('amis')) || window.Amis;
54047
+ let amisVersion = amis && amis.version;
54048
+ if(amisVersion){
54049
+ let comparableVersions = amisVersion.split(".");
54050
+ let comparableVersion = parseFloat(comparableVersions[0].toString() + "." + comparableVersions[1].toString());
54051
+ return comparableVersion;
54052
+ }
54053
+ }
54054
+
54040
54055
  function getNumberTpl(field){
54041
54056
  return `<span>\${_display.${field.name}}</span>`
54042
54057
  }
@@ -54105,7 +54120,7 @@ function getNameTpl(field, ctx){
54105
54120
  if(ctx && ctx.isLookup){
54106
54121
  linkTarget = "target='_blank'";
54107
54122
  }
54108
- return `<a href="${href}" ${linkTarget}>\${${field.name}}</a>`
54123
+ return `<a href="${href}" ${linkTarget}>\${${field.name} | raw}</a>`
54109
54124
  }
54110
54125
 
54111
54126
  function getRelatedFieldTpl(field, ctx){
@@ -54430,7 +54445,7 @@ function getAmisStaticFieldType(type, readonly, options){
54430
54445
  * @Author: baozhoutao@steedos.com
54431
54446
  * @Date: 2022-10-28 14:15:09
54432
54447
  * @LastEditors: liaodaxue
54433
- * @LastEditTime: 2023-10-30 17:51:54
54448
+ * @LastEditTime: 2023-12-29 10:46:50
54434
54449
  * @Description:
54435
54450
  */
54436
54451
 
@@ -54484,7 +54499,8 @@ const getAmisFileEditSchema = (steedosField)=>{
54484
54499
  dataType: "form-data",
54485
54500
  url: `\${context.rootUrl}/s3/${tableName}`,
54486
54501
  requestAdaptor: `
54487
- const { _master, global,context } = api.body;
54502
+ const superData = (typeof context != 'undefined') ? context : api.body;
54503
+ const { _master, global } = superData;
54488
54504
  // const { recordId, objectName } = _master;
54489
54505
  const { spaceId, userId, user } = global;
54490
54506
  /*
@@ -54502,8 +54518,9 @@ const getAmisFileEditSchema = (steedosField)=>{
54502
54518
  return api;
54503
54519
  `,
54504
54520
  adaptor: `
54505
- const { context } = api.body;
54506
- var rootUrl = context.rootUrl + "/api/files/${tableName}/";
54521
+ const superData = (typeof context != 'undefined') ? context : api.body;
54522
+ const { context:pageContext } = superData;
54523
+ var rootUrl = pageContext.rootUrl + "/api/files/${tableName}/";
54507
54524
  payload = {
54508
54525
  status: response.status == 200 ? 0 : response.status,
54509
54526
  msg: response.statusText,
@@ -55107,8 +55124,9 @@ async function getQuickEditSchema(field, options){
55107
55124
  case "avatar":
55108
55125
  case "image":
55109
55126
  quickEditSchema.body[0].receiver.adaptor = `
55110
- const { context } = api.body;
55111
- var rootUrl = context.rootUrl + "/api/files/${field.type}s/";
55127
+ const superData = (typeof context != 'undefined') ? context : api.body;
55128
+ const { context:pageContext } = superData;
55129
+ var rootUrl = pageContext.rootUrl + "/api/files/${field.type}s/";
55112
55130
  payload = {
55113
55131
  status: response.status == 200 ? 0 : response.status,
55114
55132
  msg: response.statusText,
@@ -55511,8 +55529,8 @@ async function getTableColumns(fields, options){
55511
55529
  const href = Router.getObjectDetailPath({
55512
55530
  ...options, formFactor: options.formFactor, appId: "${appId}", objectName: options.objectName || "${objectName}", recordId: `\${${options.idFieldName}}`
55513
55531
  });
55514
- columns[1].type = "tpl";
55515
- columns[1].tpl = `<a href="${href}">\${${columns[1].name}}</a>`;
55532
+ columns[0].type = "tpl";
55533
+ columns[0].tpl = `<a href="${href}">\${${columns[0].name}}</a>`;
55516
55534
  }
55517
55535
  return columns;
55518
55536
  }
@@ -55771,7 +55789,7 @@ async function getTableOperation(ctx){
55771
55789
  type: 'steedos-object-button',
55772
55790
  name: button.name,
55773
55791
  objectName: button.objectName,
55774
- visibleOn: getButtonVisibleOn$1(button),
55792
+ visibleOnAlias: getButtonVisibleOn$1(button),
55775
55793
  className: 'antd-Button--default'
55776
55794
  });
55777
55795
  });
@@ -55896,7 +55914,8 @@ async function getTableSchema$1(fields, options){
55896
55914
  }
55897
55915
 
55898
55916
  if(!isLookup && !hiddenColumnOperation){
55899
- columns.push(await getTableOperation(options));
55917
+ const toolbarOperation = await getTableOperation(options);
55918
+ columns.push(toolbarOperation);
55900
55919
  }
55901
55920
 
55902
55921
  }
@@ -56418,6 +56437,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56418
56437
  `;
56419
56438
  const onCancelScript = `
56420
56439
  // console.log("===onCancelScript=form==");
56440
+ let isLookup = event.data.isLookup;
56441
+ let __lookupField = event.data.__lookupField;
56421
56442
  const scope = event.context.scoped;
56422
56443
  var filterForm = scope.parent.parent.getComponents().find(function(n){
56423
56444
  return n.props.type === "form";
@@ -56465,7 +56486,20 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56465
56486
  // });
56466
56487
 
56467
56488
  // 清除__changedFilterFormValues中的值
56468
- crud && crud.setData({__changedFilterFormValues: {}});
56489
+ // crud && crud.setData({__changedFilterFormValues: {}});
56490
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
56491
+ if(isLookup && __lookupField){
56492
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
56493
+ if(__lookupField.reference_to_field){
56494
+ lookupTag += "__" + __lookupField.reference_to_field;
56495
+ }
56496
+ __changedFilterFormValuesKey += lookupTag;
56497
+ }
56498
+ if(crud){
56499
+ let crudData = crud.getData();
56500
+ crudData[__changedFilterFormValuesKey] = {};
56501
+ crud.setData(crudData);
56502
+ }
56469
56503
  filterForm.handleFormSubmit(event);
56470
56504
  // crud.handleFilterSubmit(removedValues);
56471
56505
 
@@ -57932,7 +57966,12 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57932
57966
  __changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
57933
57967
  // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
57934
57968
  // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
57935
- crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
57969
+ // crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
57970
+ if(crud){
57971
+ let crudData = crud.getData();
57972
+ crudData.__changedSearchBoxValues = __changedSearchBoxValues;
57973
+ crud.setData(crudData);
57974
+ }
57936
57975
  `;
57937
57976
 
57938
57977
  // onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
@@ -57945,9 +57984,19 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57945
57984
  // const scope = event.context.scoped;
57946
57985
  // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
57947
57986
  // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
57987
+ let isLookup = event.data.isLookup;
57988
+ let __lookupField = event.data.__lookupField;
57989
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
57990
+ if(isLookup && __lookupField){
57991
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
57992
+ if(__lookupField.reference_to_field){
57993
+ lookupTag += "__" + __lookupField.reference_to_field;
57994
+ }
57995
+ __changedFilterFormValuesKey += lookupTag;
57996
+ }
57948
57997
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
57949
57998
  setTimeout(function(){
57950
- filterForm.setValues(event.data.__changedFilterFormValues);
57999
+ filterForm.setValues(event.data[__changedFilterFormValuesKey]);
57951
58000
  }, 500);
57952
58001
  `;
57953
58002
 
@@ -57968,8 +58017,8 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57968
58017
  "name": keywordsSearchBoxName,
57969
58018
  "placeholder": "搜索此列表",
57970
58019
  "value": crudKeywords,
57971
- "clearable": true,
57972
- // "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
58020
+ // "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
58021
+ "clearAndSubmit": true,
57973
58022
  "searchImediately": false,
57974
58023
  "onEvent": {
57975
58024
  "search": {
@@ -58249,6 +58298,9 @@ async function getObjectFilter(objectSchema, fields, options) {
58249
58298
  crudService && crudService.setData({isFieldsFilterEmpty});
58250
58299
  `;
58251
58300
  let onChangeScript = `
58301
+ let isLookup = event.data.isLookup;
58302
+ let __lookupField = event.data.__lookupField;
58303
+ console.log("==onChangeScript=isLookup===", isLookup);
58252
58304
  const scope = event.context.scoped;
58253
58305
  // let filterFormValues = event.data;
58254
58306
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
@@ -58260,7 +58312,20 @@ async function getObjectFilter(objectSchema, fields, options) {
58260
58312
  // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
58261
58313
  // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
58262
58314
  // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
58263
- crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
58315
+ // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
58316
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
58317
+ if(isLookup && __lookupField){
58318
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
58319
+ if(__lookupField.reference_to_field){
58320
+ lookupTag += "__" + __lookupField.reference_to_field;
58321
+ }
58322
+ __changedFilterFormValuesKey += lookupTag;
58323
+ }
58324
+ if(crud){
58325
+ let crudData = crud.getData();
58326
+ crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
58327
+ crud.setData(crudData);
58328
+ }
58264
58329
  `;
58265
58330
  return {
58266
58331
  "title": "",
@@ -59075,13 +59140,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
59075
59140
  let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
59076
59141
 
59077
59142
  source.requestAdaptor = `
59078
- let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
59143
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
59144
+ let __lookupField = api.data.$self.__lookupField;
59145
+ if(__lookupField){
59146
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
59147
+ if(__lookupField.reference_to_field){
59148
+ lookupTag += "__" + __lookupField.reference_to_field;
59149
+ }
59150
+ __changedFilterFormValuesKey += lookupTag;
59151
+ }
59152
+ let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};
59079
59153
  let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
59080
59154
  // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
59081
59155
  // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
59082
59156
  // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
59083
59157
  // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
59084
- Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
59158
+ if(api.data.$self.op !== 'loadOptions'){
59159
+ Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
59160
+ }
59085
59161
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
59086
59162
  var filters = [];
59087
59163
  var pageSize = api.data.pageSize || 10;
@@ -59288,7 +59364,12 @@ async function lookupToAmisPicker(field, readonly, ctx){
59288
59364
  "objectName": refObjectConfig.name,
59289
59365
  "uiSchema": refObjectConfig,
59290
59366
  "listName": listName,// 需要按视图取可搜索项
59291
- "isLookup": true
59367
+ "isLookup": true,
59368
+ "__lookupField": {
59369
+ "name": field.name,
59370
+ "reference_to": refObjectConfig.name,
59371
+ "reference_to_field": field.reference_to_field
59372
+ }
59292
59373
  });
59293
59374
 
59294
59375
  if(!pickerSchema.onEvent){
@@ -59461,7 +59542,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
59461
59542
  sendOn.push(`this.${fName}`);
59462
59543
  });
59463
59544
  if(depend_on.length > 0){
59464
- apiInfo.url = `${apiInfo.url}?${depend_on.join('&')}`;
59545
+ apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
59465
59546
  apiInfo.sendOn = `${sendOn.join(' && ')}`;
59466
59547
  }
59467
59548
  }
@@ -59569,6 +59650,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
59569
59650
  autoComplete: apiInfo,
59570
59651
  searchable: true,
59571
59652
  };
59653
+ let amisVersion = getComparableAmisVersion();
59654
+ if(amisVersion >= 3.6){
59655
+ // amis 3.6中不加source会造成子表组件中弹出行编辑窗口的lookup字段有时不请求接口(概率现象,同一个地方反复操作有时请求有时不请求)
59656
+ // 但是同时配置autoComplete和source会多请求一次接口
59657
+ // TODO:应该想办法把是否字段在子表组件内,即ctx.isInputTable,如果不在子表组件内不需要加source
59658
+ data.source = apiInfo;
59659
+ }
59572
59660
  //删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
59573
59661
  const select_menuTpl = `<span class='flex items-center mt-0.5'>
59574
59662
  <span role='img' aria-label='smile' class='anticon anticon-smile'>
@@ -59650,6 +59738,14 @@ async function lookupToAmis(field, readonly, ctx){
59650
59738
 
59651
59739
  // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
59652
59740
  let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
59741
+ let amisVersion = getComparableAmisVersion();
59742
+ if(amisVersion >= 3.6){
59743
+ // amis 3.6.3单选的树picker有严重bug(https://github.com/baidu/amis/issues/9279),先强制使用下拉方式显示
59744
+ // amis 3.6.3多选的树会自动把下层节点,及下下层等所有子节点自动选中,跟amis 3.2不一样,而且目前没有开关,这不适合目前的业务场景,也先强制使用下拉方式显示
59745
+ if(enableEnhancedLookup && refObject.enable_tree){
59746
+ enableEnhancedLookup = false;
59747
+ }
59748
+ }
59653
59749
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
59654
59750
  if(enableEnhancedLookup == true){
59655
59751
  return await lookupToAmisPicker(field, readonly, ctx);
@@ -60531,9 +60627,9 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60531
60627
  }
60532
60628
  if(!lodash.exports.isEmpty(convertData)){
60533
60629
  if(field.is_wide || convertData.type === 'group'){
60534
- convertData.className = 'col-span-2 m-1';
60630
+ convertData.className = 'col-span-2 m-0';
60535
60631
  }else {
60536
- convertData.className = 'm-1';
60632
+ convertData.className = 'm-0';
60537
60633
  }
60538
60634
  if(readonly){
60539
60635
  convertData.className = `${convertData.className} border-b`;