@steedos-widgets/sortable 3.6.1 → 3.6.2-beta.10

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.
@@ -20238,22 +20238,26 @@
20238
20238
  * @Description:
20239
20239
  */
20240
20240
 
20241
-
20242
20241
  const Router = {
20243
20242
  getTabDisplayAs(tab_id){
20243
+ const uiSchema = getUISchemaSync$1(tab_id, false);
20244
20244
  var urlSearch = new URLSearchParams(document.location.search);
20245
20245
  if(urlSearch.has('display')){
20246
20246
  return urlSearch.get('display')
20247
20247
  }
20248
20248
  const key = `tab_${tab_id}_display`;
20249
20249
  // const key = `page_display`;
20250
- const value = localStorage.getItem(key);
20251
- return value ? value : 'grid'
20250
+ const value = sessionStorage.getItem(key);
20251
+ let defaultDisplay = "grid";
20252
+ if(uiSchema.enable_split){
20253
+ defaultDisplay = "split";
20254
+ }
20255
+ return value ? value : defaultDisplay;
20252
20256
  },
20253
20257
 
20254
20258
  setTabDisplayAs(tab_id, displayAs){
20255
20259
  const key = `tab_${tab_id}_display`;
20256
- localStorage.setItem(key, displayAs);
20260
+ sessionStorage.setItem(key, displayAs);
20257
20261
  },
20258
20262
  getAppPath({formFactor, appId}){
20259
20263
  return `/app/${appId}`;
@@ -20407,7 +20411,7 @@
20407
20411
 
20408
20412
  function getNameTplUrl(field, ctx){
20409
20413
  if(ctx.objectName === 'cms_files'){
20410
- return `\${context.rootUrl}/api/files/files/\${versions[0]}?download=true`
20414
+ return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
20411
20415
  }
20412
20416
  const href = Router.getObjectDetailPath({
20413
20417
  ...ctx, formFactor: ctx.formFactor, appId: "${appId}", objectName: ctx.objectName || "${objectName}", recordId: `\${${ctx.idFieldName}}`
@@ -21047,9 +21051,9 @@
21047
21051
  var frontend_display_as = "显示为";
21048
21052
  var frontend_record_sum = "个项目";
21049
21053
  var frontend_button_reload_tooltip = "刷新";
21050
- var frontend_button_search_tooltip = "筛选";
21054
+ var frontend_button_search_tooltip = "搜索";
21051
21055
  var frontend_fields_filter_button_search = "搜索";
21052
- var frontend_fields_filter_button_settings = "设置搜索项";
21056
+ var frontend_fields_filter_button_settings = "选择搜索项";
21053
21057
  var frontend_button_listview_control_tooltip = "列表视图控制";
21054
21058
  var frontend_button_listview_control_label = "列表视图控制";
21055
21059
  var frontend_listview_control_columns = "显示的列";
@@ -21248,16 +21252,17 @@
21248
21252
  {
21249
21253
  actionType: "custom",
21250
21254
  script: `
21255
+ console.log("asdasd");
21251
21256
  let items = _.cloneDeep(event.data.items);
21252
21257
  let selectedItems = _.cloneDeep(event.data.selectedItems);
21253
21258
  if(event.data.isBatchEdit){
21254
21259
  selectedItems.forEach(function(selectedItem){
21255
21260
  selectedItem._display.${field.name} = event.data._display.${field.name};
21256
- doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: ${options.objectName} + "_display_" + selectedItem._index});
21261
+ doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${options.objectName}" + "_display_" + selectedItem._index});
21257
21262
  doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + selectedItem._index});
21258
21263
  })
21259
21264
  }else{
21260
- doAction({actionType: 'setValue', "args": {"value": event.data._display},componentId: ${options.objectName} + "_display_" + event.data._index});
21265
+ doAction({actionType: 'setValue', "args": {"value": event.data._display},componentId: "${options.objectName}" + "_display_" + event.data._index});
21261
21266
  doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + event.data._index});
21262
21267
  }
21263
21268
  `
@@ -21703,9 +21708,13 @@
21703
21708
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
21704
21709
  let className = "";
21705
21710
  if(field.wrap != true){
21706
- className += " whitespace-nowrap ";
21711
+ if(field.wrap != false && field.is_wide){
21712
+ className += " break-words ";
21713
+ }else {
21714
+ className += " whitespace-nowrap ";
21715
+ }
21707
21716
  }else {
21708
- className += " break-all ";
21717
+ className += " break-words ";
21709
21718
  }
21710
21719
  let columnItem;
21711
21720
  if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
@@ -21802,12 +21811,24 @@
21802
21811
  if(field.type === 'textarea'){
21803
21812
  className += 'min-w-56';
21804
21813
  }
21805
- if(field.type === 'date'){
21806
- className += 'date-min-w';
21807
- }
21808
- if(field.type === 'datetime'){
21809
- className += 'datetime-min-w';
21814
+ // if(field.type === 'date'){
21815
+ // className += 'date-min-w';
21816
+ // }
21817
+ // if(field.type === 'datetime'){
21818
+ // className += 'datetime-min-w';
21819
+ // }
21820
+
21821
+ //field上的amis属性里的clssname需要单独判断类型合并
21822
+ if (typeof field.amis?.className == "object") {
21823
+ className = {
21824
+ [className]: "true",
21825
+ ...field.amis.className
21826
+ };
21827
+ } else if (typeof field.amis?.className == "string") {
21828
+ className = `${className} ${field.amis.className} `;
21810
21829
  }
21830
+ delete field.amis?.className;
21831
+
21811
21832
  if(!field.hidden && !field.extra){
21812
21833
  columnItem = Object.assign({}, {
21813
21834
  name: field.name,
@@ -21890,7 +21911,7 @@
21890
21911
  }
21891
21912
  if(isLeft){
21892
21913
  // 左侧半行
21893
- lineChildrenClassName = "steedos-listview-item-left truncate";
21914
+ lineChildrenClassName = "steedos-listview-item-left truncate h-5";
21894
21915
  if(item.field.is_wide){
21895
21916
  // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate
21896
21917
  lineChildrenClassName = "steedos-listview-item-wide";
@@ -21902,14 +21923,26 @@
21902
21923
  }
21903
21924
  else {
21904
21925
  // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了
21905
- lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0";
21926
+ lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0 h-5";
21927
+ }
21928
+ //支持字段amis属性配置classname,识别classname的类型,与原样式合并
21929
+ var className;
21930
+ if (typeof item.field.amis?.className == "object") {
21931
+ className = {
21932
+ [lineChildrenClassName]: "true",
21933
+ ...item.field.amis.className
21934
+ };
21935
+ } else if (typeof item.field.amis?.className == "string") {
21936
+ className = `${lineChildrenClassName} ${item.field.amis.className} `;
21937
+ } else {
21938
+ className = lineChildrenClassName;
21906
21939
  }
21907
21940
  lineChildren.push({
21908
21941
  "type": "tpl",
21909
21942
  "tpl": item.tpl,
21910
- "className": lineChildrenClassName
21943
+ className
21911
21944
  });
21912
-
21945
+
21913
21946
  if(item.field.is_wide){
21914
21947
  // 宽字段占整行
21915
21948
  isLeft = true;
@@ -21959,8 +21992,7 @@
21959
21992
  tpl = await getFieldTpl(field, options);
21960
21993
  }
21961
21994
  if(!tpl){
21962
- //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉
21963
- tpl = `\${${field.name} | raw}`;
21995
+ tpl = `\${${field.name}}`;
21964
21996
  }
21965
21997
  if(!field.hidden && !field.extra){
21966
21998
  tpls.push({ field, tpl });
@@ -21973,7 +22005,7 @@
21973
22005
 
21974
22006
  let column = {
21975
22007
  name: nameField.name,
21976
- label: nameField.label,
22008
+ label: options.displayAs == 'split' ? '' : nameField.label,
21977
22009
  sortable: nameField.sortable,
21978
22010
  type: "button",
21979
22011
  level: "link",
@@ -22002,7 +22034,15 @@
22002
22034
  "actions": [
22003
22035
  {
22004
22036
  "script": `
22005
- let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"
22037
+ let cms_url = '';
22038
+ let value = event.data.versions[0];
22039
+ if(value){
22040
+ if(value.url){
22041
+ cms_url = value.url;
22042
+ }else{
22043
+ cms_url = "/api/files/files/"+value+"?download=true"
22044
+ }
22045
+ }
22006
22046
  Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);
22007
22047
  `,
22008
22048
  "actionType": "custom"
@@ -22118,7 +22158,8 @@
22118
22158
  label: " ",
22119
22159
  fixed: 'right',
22120
22160
  labelClassName: 'text-center',
22121
- className: 'text-center steedos-listview-operation w-10',
22161
+ //TODO:目前3.6.3-patch.3版本中对于动态classname处理存在问题,简单处理固定列问题,等待amis解决crud的columns不支持动态classname的问题
22162
+ className: 'text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right',
22122
22163
  buttons: [
22123
22164
  {
22124
22165
  "type": "steedos-dropdown-button",
@@ -22214,7 +22255,7 @@
22214
22255
  }
22215
22256
  return {
22216
22257
  mode: "cards",
22217
- perPageAvailable: [5, 10, 20, 50, 100, 500],
22258
+ perPageAvailable: [20, 50, 100, 500],
22218
22259
  name: "thelist",
22219
22260
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
22220
22261
  className: "",
@@ -22247,7 +22288,7 @@
22247
22288
 
22248
22289
  return {
22249
22290
  mode: "table",
22250
- perPageAvailable: [5, 10, 20, 50, 100, 500],
22291
+ perPageAvailable: [20, 50, 100, 500],
22251
22292
  name: "thelist",
22252
22293
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
22253
22294
  className: "",
@@ -22373,7 +22414,7 @@
22373
22414
 
22374
22415
  function getDefaultParams(options){
22375
22416
  return {
22376
- perPage: options.top || options.perPage || 10
22417
+ perPage: options.top || options.perPage || 20
22377
22418
  }
22378
22419
  }
22379
22420
 
@@ -22427,7 +22468,6 @@
22427
22468
  "objectApiName": "\${objectName}",
22428
22469
  "recordId": "",
22429
22470
  "mode": "edit",
22430
- "layout": "normal"
22431
22471
  };
22432
22472
 
22433
22473
  if (payload && payload.schema) {
@@ -24211,14 +24251,14 @@
24211
24251
  {
24212
24252
  "type": "button",
24213
24253
  "label": instance.t('frontend_display_type_is_table'),
24214
- "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
24254
+ "onClick": "const key = 'tab_"+objectName+"_display';sessionStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
24215
24255
  "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
24216
24256
  "rightIconClassName": "m-l-sm"
24217
24257
  },
24218
24258
  {
24219
24259
  "type": "button",
24220
24260
  "label": instance.t('frontend_display_type_is_split'),
24221
- "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
24261
+ "onClick": "const key = 'tab_"+objectName+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
24222
24262
  "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
24223
24263
  "rightIconClassName": "m-l-sm"
24224
24264
  }
@@ -24361,7 +24401,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24361
24401
  {
24362
24402
  "type": "search-box",
24363
24403
  "name": keywordsSearchBoxName,
24364
- "placeholder": "搜索此列表",
24404
+ "placeholder": "快捷搜索",
24365
24405
  "value": crudKeywords,
24366
24406
  // "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
24367
24407
  "clearAndSubmit": true,
@@ -24565,7 +24605,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24565
24605
  // ]
24566
24606
  if(options.displayAs === 'split'){
24567
24607
  return [
24568
- "switch-per-page",
24608
+ {
24609
+ "type": "switch-per-page",
24610
+ "visibleOn": "${count >= 20}"
24611
+ },
24569
24612
  {
24570
24613
  "type": "pagination",
24571
24614
  "maxButtons": 5,
@@ -24587,7 +24630,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24587
24630
  else {
24588
24631
  if(options && options.isRelated){
24589
24632
  return [
24590
- "statistics",
24591
24633
  {
24592
24634
  "type": "pagination",
24593
24635
  "maxButtons": 10,
@@ -24600,7 +24642,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24600
24642
  const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);
24601
24643
  const is_lookup = options.isLookup;
24602
24644
  const commonConfig = [
24603
- "statistics",
24604
24645
  {
24605
24646
  "type": "pagination",
24606
24647
  "maxButtons": 10,
@@ -24611,7 +24652,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24611
24652
  if (no_pagination && is_lookup) {
24612
24653
  return commonConfig;
24613
24654
  } else {
24614
- return ["switch-per-page", ...commonConfig];
24655
+ return [{
24656
+ "type": "switch-per-page",
24657
+ "visibleOn": "${count >= 20}"
24658
+ }, ...commonConfig];
24615
24659
  }
24616
24660
  }
24617
24661
  }
@@ -24711,8 +24755,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24711
24755
  /*
24712
24756
  * @Author: baozhoutao@steedos.com
24713
24757
  * @Date: 2022-07-05 15:55:39
24714
- * @LastEditors: liaodaxue
24715
- * @LastEditTime: 2023-10-20 11:38:25
24758
+ * @LastEditors: baozhoutao@steedos.com
24759
+ * @LastEditTime: 2024-01-16 11:14:34
24716
24760
  * @Description:
24717
24761
  */
24718
24762
 
@@ -25657,9 +25701,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25657
25701
  */
25658
25702
  if(enable_tree){
25659
25703
  const rows = _.map(payload.data.rows, (item)=>{
25660
- delete item.children;
25661
- delete item.parent;
25662
- return item;
25704
+ if (!item.children) {
25705
+ return { ...item, children: [] };
25706
+ } else {
25707
+ return item;
25708
+ }
25663
25709
  })
25664
25710
  payload.data.rows = rows;
25665
25711
  }
@@ -26108,9 +26154,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26108
26154
  }
26109
26155
  // console.log(`lookupToAmis====`, field, readonly, ctx)
26110
26156
  if(readonly){
26111
- return {
26112
- type: getAmisStaticFieldType('picker', readonly),
26113
- tpl: getRelatedFieldTpl(field, ctx)
26157
+ if(field.reference_to){
26158
+ return {
26159
+ type: 'steedos-field',
26160
+ config: field,
26161
+ static: true
26162
+ }
26163
+ }else {
26164
+ return {
26165
+ type: getAmisStaticFieldType('picker', readonly),
26166
+ tpl: getRelatedFieldTpl(field, ctx)
26167
+ }
26114
26168
  }
26115
26169
  }
26116
26170
  if(field.reference_to && !lodash.exports.isString(field.reference_to) && !readonly){
@@ -26993,11 +27047,9 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26993
27047
  if(field.subFields){
26994
27048
  convertData = {
26995
27049
  type: 'steedos-input-table',
26996
- showIndex: true,
26997
27050
  editable: !readonly,
26998
27051
  addable: !readonly,
26999
27052
  removable: !readonly,
27000
- draggable: !readonly,
27001
27053
  fields: [],
27002
27054
  amis:{
27003
27055
  columnsTogglable: false
@@ -27049,7 +27101,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
27049
27101
  if(field.is_wide || convertData.type === 'group'){
27050
27102
  convertData.className = 'col-span-2 m-0';
27051
27103
  }else {
27052
- convertData.className = 'm-1';
27104
+ convertData.className = 'm-0';
27053
27105
  }
27054
27106
  if(readonly){
27055
27107
  convertData.className = `${convertData.className} border-b`;
@@ -27074,6 +27126,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
27074
27126
  }
27075
27127
  }
27076
27128
 
27129
+ if(ctx.amisData && ctx.amisData._master && ctx.amisData._master.relatedKey === field.name){
27130
+ convertData.className = `${convertData.className || ''} hidden`;
27131
+ }
27132
+
27077
27133
  if(lodash.exports.isString(baseData.required)){
27078
27134
  if(baseData.required.startsWith("{{")){
27079
27135
  baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "3.6.1",
3
+ "version": "3.6.2-beta.10",
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.1"
48
+ "@steedos-widgets/amis-lib": "3.6.2-beta.10"
49
49
  },
50
- "gitHead": "b2b52d0b516c85f7b57e75b13f29c8a9023762d0"
50
+ "gitHead": "9074b66d1cfd4cdc7a5ebce711a3ac0d295269c1"
51
51
  }