@steedos-widgets/sortable 1.3.17-beta.2 → 1.3.17

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@1.3.17-beta.2/dist/sortable.umd.js",
7
- "https://unpkg.com/@steedos-widgets/sortable@1.3.17-beta.2/dist/sortable.umd.css"
6
+ "https://unpkg.com/@steedos-widgets/sortable@1.3.17/dist/sortable.umd.js",
7
+ "https://unpkg.com/@steedos-widgets/sortable@1.3.17/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@1.3.17-beta.2/dist/meta.js",
18
+ "url": "https://unpkg.com/@steedos-widgets/sortable@1.3.17/dist/meta.js",
19
19
  "urls": {
20
- "default": "https://unpkg.com/@steedos-widgets/sortable@1.3.17-beta.2/dist/meta.js",
21
- "design": "https://unpkg.com/@steedos-widgets/sortable@1.3.17-beta.2/dist/meta.js"
20
+ "default": "https://unpkg.com/@steedos-widgets/sortable@1.3.17/dist/meta.js",
21
+ "design": "https://unpkg.com/@steedos-widgets/sortable@1.3.17/dist/meta.js"
22
22
  }
23
23
  }
24
24
  ]
@@ -56338,6 +56338,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56338
56338
  const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
56339
56339
  const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
56340
56340
  const onSearchScript = `
56341
+ // console.log("===onSearchScript=form==");
56341
56342
  const scope = event.context.scoped;
56342
56343
  var filterForm = scope.parent.parent.getComponents().find(function(n){
56343
56344
  return n.props.type === "form";
@@ -56394,25 +56395,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56394
56395
  crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
56395
56396
  `;
56396
56397
  const onCancelScript = `
56397
- doAction(
56398
- {
56399
- "componentId": 'service_${ctx.crudId}',
56400
- "actionType": "setValue",
56401
- "args": {
56402
- "value": {
56403
- "__filterFormValues": null
56404
- }
56405
- }
56406
- }
56407
- )
56398
+ // console.log("===onCancelScript=form==");
56408
56399
  const scope = event.context.scoped;
56409
56400
  var filterForm = scope.parent.parent.getComponents().find(function(n){
56410
56401
  return n.props.type === "form";
56411
56402
  });
56412
56403
  var filterFormValues = filterForm.getValues();
56413
- var listView = scope.parent.parent.parent.getComponents().find(function(n){
56414
- return n.props.type === "crud";
56415
- });
56404
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
56416
56405
  const removedValues = {};
56417
56406
  for(var k in filterFormValues){
56418
56407
  if(/^__searchable__/.test(k)){
@@ -56427,7 +56416,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56427
56416
  if(localListViewProps){
56428
56417
  localListViewProps = JSON.parse(localListViewProps);
56429
56418
  for(var k in localListViewProps){
56430
- if(k !== "__keywords"){
56419
+ if(/^__searchable__/.test(k)){
56431
56420
  removedValues[k] = null;
56432
56421
  }
56433
56422
  }
@@ -56438,20 +56427,35 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56438
56427
  //lookup字段保留快速搜索条件
56439
56428
  removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];
56440
56429
  }
56441
- filterForm.reset();
56442
- setTimeout(()=>{
56443
- listView.handleFilterSubmit(removedValues);
56444
- }, 100);
56445
- const filterService = filterForm.context.getComponents().find(function(n){
56446
- return n.props.type === "service";
56447
- });
56448
- filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
56430
+ filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了
56431
+ // 以下方法都无法实现清除表单值
56432
+ // filterForm.setValues({}, true)
56433
+ // filterForm.reset();
56434
+ // filterForm.handleAction({},{
56435
+ // "actionType": "setValue",
56436
+ // "args": {
56437
+ // "value": removedValues
56438
+ // }
56439
+ // });
56440
+ // 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段
56441
+ // filterForm.handleAction({},{
56442
+ // "actionType": "clear"
56443
+ // });
56444
+
56445
+ // 清除__changedFilterFormValues中的值
56446
+ crud && crud.setData({__changedFilterFormValues: {}});
56447
+ filterForm.handleFormSubmit(event);
56448
+ // crud.handleFilterSubmit(removedValues);
56449
+
56450
+ let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
56451
+ filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
56449
56452
  //触发amis crud 高度重算
56450
56453
  setTimeout(()=>{
56451
56454
  window.dispatchEvent(new Event("resize"))
56452
56455
  }, 100);
56453
56456
  // 移除搜索按钮上的红点
56454
- let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
56457
+ // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
56458
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
56455
56459
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
56456
56460
  `;
56457
56461
  const dataProviderInited = `
@@ -57857,7 +57861,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
57857
57861
  // }
57858
57862
  `;
57859
57863
 
57860
- function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
57864
+ // function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords", crudId } = {}){
57865
+ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
57861
57866
  const searchableFieldsLabel = [];
57862
57867
  _.each(mainObject.fields, function (field) {
57863
57868
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
@@ -57873,6 +57878,33 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57873
57878
  crudKeywords = (localListViewProps && localListViewProps.__keywords) || "";
57874
57879
  }
57875
57880
 
57881
+ const onChangeScript = `
57882
+ const scope = event.context.scoped;
57883
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
57884
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
57885
+ let __changedSearchBoxValues = {};
57886
+ __changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
57887
+ // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
57888
+ // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
57889
+ crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
57890
+ `;
57891
+
57892
+ // onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
57893
+ // 而点击回车按键又不会触发blur事件,所以只能每次回车事件中额外再执行一次onChangeScript
57894
+ // 等升级到amis 3.4+,blur事件换成change事件执行onChangeScript,就可以不用在onSearchScript中执行onChangeScript了
57895
+ const onSearchScript = `
57896
+ ${onChangeScript}
57897
+
57898
+ // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题
57899
+ // const scope = event.context.scoped;
57900
+ // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
57901
+ // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
57902
+ let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
57903
+ setTimeout(function(){
57904
+ filterForm.setValues(event.data.__changedFilterFormValues);
57905
+ }, 500);
57906
+ `;
57907
+
57876
57908
  return {
57877
57909
  "type": "tooltip-wrapper",
57878
57910
  "id": "steedos_crud_toolbar_quick_search",
@@ -57891,28 +57923,24 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57891
57923
  "placeholder": "搜索此列表",
57892
57924
  "value": crudKeywords,
57893
57925
  "clearable": true,
57894
- "clearAndSubmit": true,
57926
+ // "clearAndSubmit": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
57895
57927
  "searchImediately": false,
57896
57928
  "onEvent": {
57897
- "change": {
57929
+ "search": {
57898
57930
  "actions": [
57899
57931
  {
57900
57932
  "actionType": "custom",
57901
- "script": `
57902
- doAction(
57903
- {
57904
- "componentId": 'service_${crudId}',
57905
- "actionType": "setValue",
57906
- "args": {
57907
- "value": {
57908
- "__serachBoxValues": event.data
57909
- }
57910
- }
57911
- }
57912
- )
57913
- `
57933
+ "script": onSearchScript
57914
57934
  }
57915
57935
  ]
57936
+ },
57937
+ "blur": { //这里把change事件换成blur是因为amis 3.2change事件中setData会卡,升级到3.4+后就可以换回change事件
57938
+ "actions": [
57939
+ {
57940
+ "actionType": "custom",
57941
+ "script": onChangeScript
57942
+ },
57943
+ ]
57916
57944
  }
57917
57945
  }
57918
57946
  }
@@ -57921,7 +57949,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57921
57949
  }
57922
57950
 
57923
57951
  function getObjectHeaderToolbar(mainObject, fields, formFactor, {
57924
- showDisplayAs = false, hiddenCount = false, headerToolbarItems, crudId,
57952
+ showDisplayAs = false, hiddenCount = false, headerToolbarItems,
57925
57953
  filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){
57926
57954
  // console.log(`getObjectHeaderToolbar====>`, filterVisible)
57927
57955
  // console.log(`getObjectHeaderToolbar`, mainObject)
@@ -58025,7 +58053,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
58025
58053
  };
58026
58054
  }
58027
58055
  let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name);
58028
- let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName, crudId });
58056
+ let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });
58029
58057
 
58030
58058
  // toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {"type": "tpl",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom
58031
58059
  // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
@@ -58173,6 +58201,20 @@ async function getObjectFilter(objectSchema, fields, options) {
58173
58201
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
58174
58202
  crudService && crudService.setData({isFieldsFilterEmpty});
58175
58203
  `;
58204
+ let onChangeScript = `
58205
+ const scope = event.context.scoped;
58206
+ // let filterFormValues = event.data;
58207
+ let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
58208
+ let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
58209
+ // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
58210
+ let filterFormValues = filterFormService.getData();
58211
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
58212
+ const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
58213
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
58214
+ // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
58215
+ // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
58216
+ crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
58217
+ `;
58176
58218
  return {
58177
58219
  "title": "",
58178
58220
  "submitText": "",
@@ -58196,19 +58238,7 @@ async function getObjectFilter(objectSchema, fields, options) {
58196
58238
  "actions": [
58197
58239
  {
58198
58240
  "actionType": "custom",
58199
- "script": `
58200
- doAction(
58201
- {
58202
- "componentId": 'service_${options.crudId}',
58203
- "actionType": "setValue",
58204
- "args": {
58205
- "value": {
58206
- "__filterFormValues": event.data
58207
- }
58208
- }
58209
- }
58210
- )
58211
- `
58241
+ "script": onChangeScript
58212
58242
  }
58213
58243
  ]
58214
58244
  }
@@ -58997,6 +59027,13 @@ async function lookupToAmisPicker(field, readonly, ctx){
58997
59027
  source.data.$self = "$$";
58998
59028
 
58999
59029
  source.requestAdaptor = `
59030
+ let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};
59031
+ let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
59032
+ // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
59033
+ // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
59034
+ // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
59035
+ // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
59036
+ Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
59000
59037
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
59001
59038
  var filters = [];
59002
59039
  var pageSize = api.data.pageSize || 10;
@@ -60516,9 +60553,7 @@ async function getFieldSearchable(perField, permissionFields, ctx){
60516
60553
 
60517
60554
  const amisField = await convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));
60518
60555
  if(amisField){
60519
- return Object.assign({}, amisField,{
60520
- submitOnChange: false
60521
- });
60556
+ return amisField;
60522
60557
  }
60523
60558
  }
60524
60559
  }