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

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.
@@ -22221,6 +22221,14 @@
22221
22221
 
22222
22222
  }
22223
22223
 
22224
+ const treeConfig = {};
22225
+
22226
+ if(options.enable_tree){
22227
+ treeConfig.expandConfig = {
22228
+ expand: 'first'
22229
+ };
22230
+ }
22231
+
22224
22232
  return {
22225
22233
  mode: "table",
22226
22234
  perPageAvailable: [5, 10, 20, 50, 100, 500],
@@ -22236,6 +22244,7 @@
22236
22244
  labelTpl: `\${${options.labelFieldName}}`,
22237
22245
  autoFillHeight: false, // 自动高度效果不理想,先关闭
22238
22246
  columnsTogglable: false,
22247
+ ...treeConfig
22239
22248
  }
22240
22249
  }
22241
22250
 
@@ -22790,7 +22799,7 @@
22790
22799
  // crud && crud.setData({__changedFilterFormValues: {}});
22791
22800
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
22792
22801
  if(isLookup && __lookupField){
22793
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
22802
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
22794
22803
  if(__lookupField.reference_to_field){
22795
22804
  lookupTag += "__" + __lookupField.reference_to_field;
22796
22805
  }
@@ -24289,7 +24298,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24289
24298
  let __lookupField = event.data.__lookupField;
24290
24299
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
24291
24300
  if(isLookup && __lookupField){
24292
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
24301
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
24293
24302
  if(__lookupField.reference_to_field){
24294
24303
  lookupTag += "__" + __lookupField.reference_to_field;
24295
24304
  }
@@ -24601,13 +24610,13 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24601
24610
  let onChangeScript = `
24602
24611
  let isLookup = event.data.isLookup;
24603
24612
  let __lookupField = event.data.__lookupField;
24604
- console.log("==onChangeScript=isLookup===", isLookup);
24605
24613
  const scope = event.context.scoped;
24606
24614
  // let filterFormValues = event.data;
24607
24615
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
24608
24616
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
24609
24617
  // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
24610
24618
  let filterFormValues = filterFormService.getData();
24619
+ filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
24611
24620
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
24612
24621
  const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
24613
24622
  // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
@@ -24616,7 +24625,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24616
24625
  // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
24617
24626
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
24618
24627
  if(isLookup && __lookupField){
24619
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
24628
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
24620
24629
  if(__lookupField.reference_to_field){
24621
24630
  lookupTag += "__" + __lookupField.reference_to_field;
24622
24631
  }
@@ -25229,6 +25238,58 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25229
25238
  }
25230
25239
 
25231
25240
  function getLookupSapceUserTreeSchema(isMobile){
25241
+ let apiAdaptor = `
25242
+ // console.log("===getLookupSapceUserTreeSchema===", JSON.stringify(payload));
25243
+ const records = payload.data.options;
25244
+ let isTreeOptionsComputed = false;
25245
+ if(records.length === 1 && records[0].children){
25246
+ isTreeOptionsComputed = true;
25247
+ }
25248
+ if(isTreeOptionsComputed){
25249
+ return payload;
25250
+ }
25251
+ const treeRecords = [];
25252
+ const getChildren = (records, childrenIds) => {
25253
+ if (!childrenIds) {
25254
+ return;
25255
+ }
25256
+ const children = _.filter(records, (record) => {
25257
+ return _.includes(childrenIds, record.value)
25258
+ });
25259
+ _.each(children, (item) => {
25260
+ if (item.children) {
25261
+ item.children = getChildren(records, item.children)
25262
+ }
25263
+ })
25264
+ return children;
25265
+ }
25266
+
25267
+ const getRoot = (records) => {
25268
+ for (var i = 0; i < records.length; i++) {
25269
+ records[i].noParent = 0;
25270
+ if (!!records[i].parent) {
25271
+ biaozhi = 1
25272
+ for (var j = 0; j < records.length; j++) {
25273
+ if (records[i].parent == records[j].value)
25274
+ biaozhi = 0;
25275
+ }
25276
+ if (biaozhi == 1) records[i].noParent = 1;
25277
+ } else records[i].noParent = 1;
25278
+ }
25279
+ }
25280
+ getRoot(records);
25281
+ console.log(records)
25282
+
25283
+ _.each(records, (record) => {
25284
+ if (record.noParent == 1) {
25285
+ treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));
25286
+ }
25287
+ });
25288
+ console.log(treeRecords)
25289
+
25290
+ payload.data.options = treeRecords;
25291
+ return payload;
25292
+ `;
25232
25293
  const treeSchema = {
25233
25294
  "type": "input-tree",
25234
25295
  "className":"steedos-select-user-tree",
@@ -25239,8 +25300,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25239
25300
  "headers": {
25240
25301
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
25241
25302
  },
25242
- "adaptor": "if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",
25243
- "requestAdaptor": "\n ",
25303
+ "adaptor": apiAdaptor,
25244
25304
  "data": {
25245
25305
  "query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
25246
25306
  },
@@ -25444,7 +25504,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25444
25504
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
25445
25505
  let __lookupField = api.data.$self.__lookupField;
25446
25506
  if(__lookupField){
25447
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
25507
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
25448
25508
  if(__lookupField.reference_to_field){
25449
25509
  lookupTag += "__" + __lookupField.reference_to_field;
25450
25510
  }
@@ -25596,14 +25656,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25596
25656
  }
25597
25657
  });
25598
25658
  payload.data.rows = treeRecords;
25599
- try{
25600
- setTimeout(() => {
25601
- $('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
25602
- }, 600);
25603
- }
25604
- catch(ex){
25605
- console.error("tree数据格式展开异常:", ex);
25606
- }
25607
25659
  }
25608
25660
  return payload;
25609
25661
  `;
@@ -25630,6 +25682,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25630
25682
  labelFieldName,
25631
25683
  top: top,
25632
25684
  isLookup: true,
25685
+ enable_tree: refObjectConfig.enable_tree,
25633
25686
  ...ctx
25634
25687
  });
25635
25688
 
@@ -26041,10 +26094,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26041
26094
  let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
26042
26095
  let amisVersion = getComparableAmisVersion();
26043
26096
  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;
26097
+ // amis 3.6.3单选和多选的树picker都有bug(https://github.com/baidu/amis/issues/9279,https://github.com/baidu/amis/issues/9295),我们改amis源码修正了
26098
+ // amis 3.6.3多选的下拉树组件有bug,多选树字段的选中值在编辑模式展开树时不会自动勾选树里面的节点,而是始终勾选显示在最外面的选中值选项(即defaultValueOptions),amis 3.2没有这个问题
26099
+ // 这里强制禁用多选下拉树,统一改为弹出树,如果以后需要下拉树功能,可以把下拉树组件改为一次性加载所有树节点数据模式来跳过这个问题
26100
+ if(!enableEnhancedLookup && refObject.enable_tree && field.multiple){
26101
+ enableEnhancedLookup = true;
26048
26102
  }
26049
26103
  }
26050
26104
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "3.6.0-beta.5",
3
+ "version": "3.6.0-beta.7",
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.5"
48
+ "@steedos-widgets/amis-lib": "3.6.0-beta.7"
49
49
  },
50
- "gitHead": "7babba3c01fe0aa4410cdc834c862774d4c59824"
50
+ "gitHead": "9787e8edaf6e30ac08651eddcf0ca1b99f341a37"
51
51
  }