@steedos-widgets/sortable 3.6.0-beta.4 → 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.
@@ -20421,7 +20421,7 @@
20421
20421
  if(ctx && ctx.isLookup){
20422
20422
  linkTarget = "target='_blank'";
20423
20423
  }
20424
- return `<a href="${href}" ${linkTarget}>\${${field.name}}</a>`
20424
+ return `<a href="${href}" ${linkTarget}>\${${field.name} | raw}</a>`
20425
20425
  }
20426
20426
 
20427
20427
  function getRelatedFieldTpl(field, ctx){
@@ -20746,7 +20746,7 @@
20746
20746
  * @Author: baozhoutao@steedos.com
20747
20747
  * @Date: 2022-10-28 14:15:09
20748
20748
  * @LastEditors: liaodaxue
20749
- * @LastEditTime: 2023-10-30 17:51:54
20749
+ * @LastEditTime: 2023-12-29 10:46:50
20750
20750
  * @Description:
20751
20751
  */
20752
20752
 
@@ -20800,7 +20800,8 @@
20800
20800
  dataType: "form-data",
20801
20801
  url: `\${context.rootUrl}/s3/${tableName}`,
20802
20802
  requestAdaptor: `
20803
- const { _master, global,context } = api.body;
20803
+ const superData = (typeof context != 'undefined') ? context : api.body;
20804
+ const { _master, global } = superData;
20804
20805
  // const { recordId, objectName } = _master;
20805
20806
  const { spaceId, userId, user } = global;
20806
20807
  /*
@@ -20818,8 +20819,9 @@
20818
20819
  return api;
20819
20820
  `,
20820
20821
  adaptor: `
20821
- const { context } = api.body;
20822
- var rootUrl = context.rootUrl + "/api/files/${tableName}/";
20822
+ const superData = (typeof context != 'undefined') ? context : api.body;
20823
+ const { context:pageContext } = superData;
20824
+ var rootUrl = pageContext.rootUrl + "/api/files/${tableName}/";
20823
20825
  payload = {
20824
20826
  status: response.status == 200 ? 0 : response.status,
20825
20827
  msg: response.statusText,
@@ -21423,8 +21425,9 @@
21423
21425
  case "avatar":
21424
21426
  case "image":
21425
21427
  quickEditSchema.body[0].receiver.adaptor = `
21426
- const { context } = api.body;
21427
- var rootUrl = context.rootUrl + "/api/files/${field.type}s/";
21428
+ const superData = (typeof context != 'undefined') ? context : api.body;
21429
+ const { context:pageContext } = superData;
21430
+ var rootUrl = pageContext.rootUrl + "/api/files/${field.type}s/";
21428
21431
  payload = {
21429
21432
  status: response.status == 200 ? 0 : response.status,
21430
21433
  msg: response.statusText,
@@ -22087,7 +22090,7 @@
22087
22090
  type: 'steedos-object-button',
22088
22091
  name: button.name,
22089
22092
  objectName: button.objectName,
22090
- visibleOn: getButtonVisibleOn$1(button),
22093
+ visibleOnAlias: getButtonVisibleOn$1(button),
22091
22094
  className: 'antd-Button--default'
22092
22095
  });
22093
22096
  });
@@ -22212,7 +22215,8 @@
22212
22215
  }
22213
22216
 
22214
22217
  if(!isLookup && !hiddenColumnOperation){
22215
- columns.push(await getTableOperation(options));
22218
+ const toolbarOperation = await getTableOperation(options);
22219
+ columns.push(toolbarOperation);
22216
22220
  }
22217
22221
 
22218
22222
  }
@@ -22734,6 +22738,8 @@
22734
22738
  `;
22735
22739
  const onCancelScript = `
22736
22740
  // console.log("===onCancelScript=form==");
22741
+ let isLookup = event.data.isLookup;
22742
+ let __lookupField = event.data.__lookupField;
22737
22743
  const scope = event.context.scoped;
22738
22744
  var filterForm = scope.parent.parent.getComponents().find(function(n){
22739
22745
  return n.props.type === "form";
@@ -22781,7 +22787,20 @@
22781
22787
  // });
22782
22788
 
22783
22789
  // 清除__changedFilterFormValues中的值
22784
- crud && crud.setData({__changedFilterFormValues: {}});
22790
+ // crud && crud.setData({__changedFilterFormValues: {}});
22791
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
22792
+ if(isLookup && __lookupField){
22793
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
22794
+ if(__lookupField.reference_to_field){
22795
+ lookupTag += "__" + __lookupField.reference_to_field;
22796
+ }
22797
+ __changedFilterFormValuesKey += lookupTag;
22798
+ }
22799
+ if(crud){
22800
+ let crudData = crud.getData();
22801
+ crudData[__changedFilterFormValuesKey] = {};
22802
+ crud.setData(crudData);
22803
+ }
22785
22804
  filterForm.handleFormSubmit(event);
22786
22805
  // crud.handleFilterSubmit(removedValues);
22787
22806
 
@@ -24248,7 +24267,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24248
24267
  __changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
24249
24268
  // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
24250
24269
  // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
24251
- crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
24270
+ // crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
24271
+ if(crud){
24272
+ let crudData = crud.getData();
24273
+ crudData.__changedSearchBoxValues = __changedSearchBoxValues;
24274
+ crud.setData(crudData);
24275
+ }
24252
24276
  `;
24253
24277
 
24254
24278
  // onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
@@ -24261,9 +24285,19 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24261
24285
  // const scope = event.context.scoped;
24262
24286
  // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
24263
24287
  // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
24288
+ let isLookup = event.data.isLookup;
24289
+ let __lookupField = event.data.__lookupField;
24290
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
24291
+ if(isLookup && __lookupField){
24292
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
24293
+ if(__lookupField.reference_to_field){
24294
+ lookupTag += "__" + __lookupField.reference_to_field;
24295
+ }
24296
+ __changedFilterFormValuesKey += lookupTag;
24297
+ }
24264
24298
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
24265
24299
  setTimeout(function(){
24266
- filterForm.setValues(event.data.__changedFilterFormValues);
24300
+ filterForm.setValues(event.data[__changedFilterFormValuesKey]);
24267
24301
  }, 500);
24268
24302
  `;
24269
24303
 
@@ -24284,8 +24318,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24284
24318
  "name": keywordsSearchBoxName,
24285
24319
  "placeholder": "搜索此列表",
24286
24320
  "value": crudKeywords,
24287
- "clearable": true,
24288
- // "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
24321
+ // "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
24322
+ "clearAndSubmit": true,
24289
24323
  "searchImediately": false,
24290
24324
  "onEvent": {
24291
24325
  "search": {
@@ -24565,6 +24599,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24565
24599
  crudService && crudService.setData({isFieldsFilterEmpty});
24566
24600
  `;
24567
24601
  let onChangeScript = `
24602
+ let isLookup = event.data.isLookup;
24603
+ let __lookupField = event.data.__lookupField;
24604
+ console.log("==onChangeScript=isLookup===", isLookup);
24568
24605
  const scope = event.context.scoped;
24569
24606
  // let filterFormValues = event.data;
24570
24607
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
@@ -24576,7 +24613,20 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24576
24613
  // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
24577
24614
  // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
24578
24615
  // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
24579
- crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
24616
+ // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
24617
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
24618
+ if(isLookup && __lookupField){
24619
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
24620
+ if(__lookupField.reference_to_field){
24621
+ lookupTag += "__" + __lookupField.reference_to_field;
24622
+ }
24623
+ __changedFilterFormValuesKey += lookupTag;
24624
+ }
24625
+ if(crud){
24626
+ let crudData = crud.getData();
24627
+ crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
24628
+ crud.setData(crudData);
24629
+ }
24580
24630
  `;
24581
24631
  return {
24582
24632
  "title": "",
@@ -25391,13 +25441,24 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25391
25441
  let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
25392
25442
 
25393
25443
  source.requestAdaptor = `
25394
- let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
25444
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
25445
+ let __lookupField = api.data.$self.__lookupField;
25446
+ if(__lookupField){
25447
+ let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
25448
+ if(__lookupField.reference_to_field){
25449
+ lookupTag += "__" + __lookupField.reference_to_field;
25450
+ }
25451
+ __changedFilterFormValuesKey += lookupTag;
25452
+ }
25453
+ let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};
25395
25454
  let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
25396
25455
  // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
25397
25456
  // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
25398
25457
  // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
25399
25458
  // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
25400
- Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
25459
+ if(api.data.$self.op !== 'loadOptions'){
25460
+ Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
25461
+ }
25401
25462
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
25402
25463
  var filters = [];
25403
25464
  var pageSize = api.data.pageSize || 10;
@@ -25604,7 +25665,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25604
25665
  "objectName": refObjectConfig.name,
25605
25666
  "uiSchema": refObjectConfig,
25606
25667
  "listName": listName,// 需要按视图取可搜索项
25607
- "isLookup": true
25668
+ "isLookup": true,
25669
+ "__lookupField": {
25670
+ "name": field.name,
25671
+ "reference_to": refObjectConfig.name,
25672
+ "reference_to_field": field.reference_to_field
25673
+ }
25608
25674
  });
25609
25675
 
25610
25676
  if(!pickerSchema.onEvent){
@@ -25973,6 +26039,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25973
26039
 
25974
26040
  // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
25975
26041
  let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
26042
+ let amisVersion = getComparableAmisVersion();
26043
+ if(amisVersion >= 3.6){
26044
+ // amis 3.6.3单选的树picker有严重bug(https://github.com/baidu/amis/issues/9279),先强制使用下拉方式显示
26045
+ // amis 3.6.3多选的树会自动把下层节点,及下下层等所有子节点自动选中,跟amis 3.2不一样,而且目前没有开关,这不适合目前的业务场景,也先强制使用下拉方式显示
26046
+ if(enableEnhancedLookup && refObject.enable_tree){
26047
+ enableEnhancedLookup = false;
26048
+ }
26049
+ }
25976
26050
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
25977
26051
  if(enableEnhancedLookup == true){
25978
26052
  return await lookupToAmisPicker(field, readonly, ctx);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "3.6.0-beta.4",
3
+ "version": "3.6.0-beta.5",
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": "3.6.0-beta.4"
48
+ "@steedos-widgets/amis-lib": "3.6.0-beta.5"
49
49
  },
50
- "gitHead": "208ec610433e82578eeb30b5f397a0bfe9284b77"
50
+ "gitHead": "7babba3c01fe0aa4410cdc834c862774d4c59824"
51
51
  }