@steedos-widgets/amis-lib 1.2.7 → 1.2.8

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/index.esm.js CHANGED
@@ -2596,7 +2596,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
2596
2596
  return Promise.all(filterFormSearchableFields.map(function (item) {
2597
2597
  const field = _.clone(fields[item]);
2598
2598
  if (
2599
- !_.includes(
2599
+ field && !_.includes(
2600
2600
  [
2601
2601
  "grid",
2602
2602
  "avatar",
@@ -2643,7 +2643,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
2643
2643
  var filterForm = scope.parent.parent.getComponents().find(function(n){
2644
2644
  return n.props.type === "form";
2645
2645
  });
2646
- filterForm.handleFormSubmit(event)
2646
+ filterForm.handleFormSubmit(event);
2647
2647
  // var filterFormValues = filterForm.getValues();
2648
2648
  // var listView = scope.parent.parent.parent.getComponents().find(function(n){
2649
2649
  // return n.props.type === "crud";
@@ -2657,6 +2657,28 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
2657
2657
  // }
2658
2658
  // }
2659
2659
  // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
2660
+
2661
+ let isMobile = Steedos.isMobile();
2662
+ if(isMobile){
2663
+ // 手机端点击搜索的时候自动收起搜索栏
2664
+ let resizeWindow = function(){
2665
+ //触发amis crud 高度重算
2666
+ setTimeout(()=>{
2667
+ window.dispatchEvent(new Event("resize"))
2668
+ }, 500);
2669
+ }
2670
+ const filterService = filterForm.context.getComponents().find(function(n){
2671
+ return n.props.type === "service";
2672
+ });
2673
+ filterService.setData({showFieldsFilter: false});
2674
+ resizeWindow();
2675
+ // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
2676
+ let filterFormValues = event.data;
2677
+ let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
2678
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
2679
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
2680
+ crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});
2681
+ }
2660
2682
  `;
2661
2683
  const onCancelScript = `
2662
2684
  const scope = event.context.scoped;
@@ -2694,7 +2716,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
2694
2716
  setTimeout(()=>{
2695
2717
  window.dispatchEvent(new Event("resize"))
2696
2718
  }, 100);
2697
- `;
2719
+ let isMobile = Steedos.isMobile();
2720
+ if(isMobile){
2721
+ // 手机端移除搜索按钮上的红点
2722
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
2723
+ crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
2724
+ }
2725
+ `;
2698
2726
  const dataProviderInited = `
2699
2727
  const objectName = data.objectName;
2700
2728
  const isLookup = data.isLookup;
@@ -2748,7 +2776,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
2748
2776
  });
2749
2777
  // 有过滤条件时自动展开搜索栏
2750
2778
  if(!_.isEmpty(omitedEmptyFormValue)){
2751
- setData({ showFieldsFilter: true });
2779
+ let isMobile = Steedos.isMobile();
2780
+ if(isMobile){
2781
+ // 手机端不展开,只显示搜索按钮上的红点
2782
+ let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
2783
+ crudService && crudService.setData({isFieldsFilterEmpty: false});
2784
+ }
2785
+ else{
2786
+ setData({ showFieldsFilter: true });
2787
+ }
2752
2788
  }
2753
2789
  }
2754
2790
  }
@@ -3509,7 +3545,12 @@ let resizeWindow = function(){
3509
3545
  window.dispatchEvent(new Event("resize"))
3510
3546
  }, 500);
3511
3547
  }
3548
+ let isMobile = Steedos.isMobile();
3512
3549
  if(filterService.props.data.showFieldsFilter){
3550
+ if(isMobile){
3551
+ // 手机上只能通过取消按钮来关闭搜索栏
3552
+ return;
3553
+ }
3513
3554
  let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
3514
3555
  direction: "down",
3515
3556
  name: "btn_filter_form_cancel"
@@ -3521,6 +3562,11 @@ if(filterService.props.data.showFieldsFilter){
3521
3562
  else{
3522
3563
  filterService.setData({showFieldsFilter: true});
3523
3564
  resizeWindow();
3565
+ if(isMobile){
3566
+ // 手机端在显示搜索栏时隐藏刷新按钮
3567
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
3568
+ crudService && crudService.setData({showFieldsFilter: true});
3569
+ }
3524
3570
  }
3525
3571
  `;
3526
3572
 
@@ -3606,6 +3652,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3606
3652
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
3607
3653
  "label": "",
3608
3654
  "icon": "fa fa-sync",
3655
+ "visibleOn": "${!showFieldsFilter}",
3609
3656
  "onEvent": {
3610
3657
  "click": {
3611
3658
  "actions": [
@@ -3621,6 +3668,15 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3621
3668
  "label": "",
3622
3669
  "icon": "fa fa-search",
3623
3670
  "type": "button",
3671
+ "badge": {
3672
+ "offsetx": [
3673
+ -2,
3674
+ 2
3675
+ ],
3676
+ "size":8,
3677
+ "animation": true,
3678
+ "visibleOn": "${isFieldsFilterEmpty == false}"
3679
+ },
3624
3680
  "align": "right",
3625
3681
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
3626
3682
  "onEvent": {
@@ -6721,7 +6777,8 @@ async function getObjectCRUD(objectSchema, fields, options){
6721
6777
  api: await getTableApi(objectSchema, fields, options),
6722
6778
  hiddenOn: options.tableHiddenOn,
6723
6779
  autoFillHeight: options.isRelated ? false : true,
6724
- className: `flex-auto bg-white ${crudClassName || ""}`,
6780
+ className: `flex-auto ${crudClassName || ""}`,
6781
+ bodyClassName: "bg-white",
6725
6782
  crudClassName: crudClassName,
6726
6783
  },
6727
6784
  bodyProps,