@steedos-widgets/sortable 3.6.2-beta.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.
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@3.6.2-beta.1/dist/sortable.umd.js",
7
- "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.1/dist/sortable.umd.css"
6
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.10/dist/sortable.umd.js",
7
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.10/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@3.6.2-beta.1/dist/meta.js",
18
+ "url": "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.10/dist/meta.js",
19
19
  "urls": {
20
- "default": "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.1/dist/meta.js",
21
- "design": "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.1/dist/meta.js"
20
+ "default": "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.10/dist/meta.js",
21
+ "design": "https://unpkg.com/@steedos-widgets/sortable@3.6.2-beta.10/dist/meta.js"
22
22
  }
23
23
  }
24
24
  ]
@@ -53937,22 +53937,26 @@ function getRootUrl(defaultRootUrl){
53937
53937
  * @Description:
53938
53938
  */
53939
53939
 
53940
-
53941
53940
  const Router = {
53942
53941
  getTabDisplayAs(tab_id){
53942
+ const uiSchema = getUISchemaSync$1(tab_id, false);
53943
53943
  var urlSearch = new URLSearchParams(document.location.search);
53944
53944
  if(urlSearch.has('display')){
53945
53945
  return urlSearch.get('display')
53946
53946
  }
53947
53947
  const key = `tab_${tab_id}_display`;
53948
53948
  // const key = `page_display`;
53949
- const value = localStorage.getItem(key);
53950
- return value ? value : 'grid'
53949
+ const value = sessionStorage.getItem(key);
53950
+ let defaultDisplay = "grid";
53951
+ if(uiSchema.enable_split){
53952
+ defaultDisplay = "split";
53953
+ }
53954
+ return value ? value : defaultDisplay;
53951
53955
  },
53952
53956
 
53953
53957
  setTabDisplayAs(tab_id, displayAs){
53954
53958
  const key = `tab_${tab_id}_display`;
53955
- localStorage.setItem(key, displayAs);
53959
+ sessionStorage.setItem(key, displayAs);
53956
53960
  },
53957
53961
  getAppPath({formFactor, appId}){
53958
53962
  return `/app/${appId}`;
@@ -54106,7 +54110,7 @@ function getSelectMap(selectOptions){
54106
54110
 
54107
54111
  function getNameTplUrl(field, ctx){
54108
54112
  if(ctx.objectName === 'cms_files'){
54109
- return `\${context.rootUrl}/api/files/files/\${versions[0]}?download=true`
54113
+ return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
54110
54114
  }
54111
54115
  const href = Router.getObjectDetailPath({
54112
54116
  ...ctx, formFactor: ctx.formFactor, appId: "${appId}", objectName: ctx.objectName || "${objectName}", recordId: `\${${ctx.idFieldName}}`
@@ -54746,9 +54750,9 @@ var frontend_display_type_is_split = "分栏视图";
54746
54750
  var frontend_display_as = "显示为";
54747
54751
  var frontend_record_sum = "个项目";
54748
54752
  var frontend_button_reload_tooltip = "刷新";
54749
- var frontend_button_search_tooltip = "筛选";
54753
+ var frontend_button_search_tooltip = "搜索";
54750
54754
  var frontend_fields_filter_button_search = "搜索";
54751
- var frontend_fields_filter_button_settings = "设置搜索项";
54755
+ var frontend_fields_filter_button_settings = "选择搜索项";
54752
54756
  var frontend_button_listview_control_tooltip = "列表视图控制";
54753
54757
  var frontend_button_listview_control_label = "列表视图控制";
54754
54758
  var frontend_listview_control_columns = "显示的列";
@@ -55403,9 +55407,13 @@ async function getTableColumns(fields, options){
55403
55407
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
55404
55408
  let className = "";
55405
55409
  if(field.wrap != true){
55406
- className += " whitespace-nowrap ";
55410
+ if(field.wrap != false && field.is_wide){
55411
+ className += " break-words ";
55412
+ }else {
55413
+ className += " whitespace-nowrap ";
55414
+ }
55407
55415
  }else {
55408
- className += " break-all ";
55416
+ className += " break-words ";
55409
55417
  }
55410
55418
  let columnItem;
55411
55419
  if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
@@ -55502,12 +55510,24 @@ async function getTableColumns(fields, options){
55502
55510
  if(field.type === 'textarea'){
55503
55511
  className += 'min-w-56';
55504
55512
  }
55505
- if(field.type === 'date'){
55506
- className += 'date-min-w';
55507
- }
55508
- if(field.type === 'datetime'){
55509
- className += 'datetime-min-w';
55513
+ // if(field.type === 'date'){
55514
+ // className += 'date-min-w';
55515
+ // }
55516
+ // if(field.type === 'datetime'){
55517
+ // className += 'datetime-min-w';
55518
+ // }
55519
+
55520
+ //field上的amis属性里的clssname需要单独判断类型合并
55521
+ if (typeof field.amis?.className == "object") {
55522
+ className = {
55523
+ [className]: "true",
55524
+ ...field.amis.className
55525
+ };
55526
+ } else if (typeof field.amis?.className == "string") {
55527
+ className = `${className} ${field.amis.className} `;
55510
55528
  }
55529
+ delete field.amis?.className;
55530
+
55511
55531
  if(!field.hidden && !field.extra){
55512
55532
  columnItem = Object.assign({}, {
55513
55533
  name: field.name,
@@ -55590,7 +55610,7 @@ function getMobileLines(tpls){
55590
55610
  }
55591
55611
  if(isLeft){
55592
55612
  // 左侧半行
55593
- lineChildrenClassName = "steedos-listview-item-left truncate";
55613
+ lineChildrenClassName = "steedos-listview-item-left truncate h-5";
55594
55614
  if(item.field.is_wide){
55595
55615
  // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate
55596
55616
  lineChildrenClassName = "steedos-listview-item-wide";
@@ -55602,14 +55622,26 @@ function getMobileLines(tpls){
55602
55622
  }
55603
55623
  else {
55604
55624
  // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了
55605
- lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0";
55625
+ lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0 h-5";
55626
+ }
55627
+ //支持字段amis属性配置classname,识别classname的类型,与原样式合并
55628
+ var className;
55629
+ if (typeof item.field.amis?.className == "object") {
55630
+ className = {
55631
+ [lineChildrenClassName]: "true",
55632
+ ...item.field.amis.className
55633
+ };
55634
+ } else if (typeof item.field.amis?.className == "string") {
55635
+ className = `${lineChildrenClassName} ${item.field.amis.className} `;
55636
+ } else {
55637
+ className = lineChildrenClassName;
55606
55638
  }
55607
55639
  lineChildren.push({
55608
55640
  "type": "tpl",
55609
55641
  "tpl": item.tpl,
55610
- "className": lineChildrenClassName
55642
+ className
55611
55643
  });
55612
-
55644
+
55613
55645
  if(item.field.is_wide){
55614
55646
  // 宽字段占整行
55615
55647
  isLeft = true;
@@ -55659,8 +55691,7 @@ async function getMobileTableColumns(fields, options){
55659
55691
  tpl = await getFieldTpl(field, options);
55660
55692
  }
55661
55693
  if(!tpl){
55662
- //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉
55663
- tpl = `\${${field.name} | raw}`;
55694
+ tpl = `\${${field.name}}`;
55664
55695
  }
55665
55696
  if(!field.hidden && !field.extra){
55666
55697
  tpls.push({ field, tpl });
@@ -55673,7 +55704,7 @@ async function getMobileTableColumns(fields, options){
55673
55704
 
55674
55705
  let column = {
55675
55706
  name: nameField.name,
55676
- label: nameField.label,
55707
+ label: options.displayAs == 'split' ? '' : nameField.label,
55677
55708
  sortable: nameField.sortable,
55678
55709
  type: "button",
55679
55710
  level: "link",
@@ -55702,7 +55733,15 @@ async function getMobileTableColumns(fields, options){
55702
55733
  "actions": [
55703
55734
  {
55704
55735
  "script": `
55705
- let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"
55736
+ let cms_url = '';
55737
+ let value = event.data.versions[0];
55738
+ if(value){
55739
+ if(value.url){
55740
+ cms_url = value.url;
55741
+ }else{
55742
+ cms_url = "/api/files/files/"+value+"?download=true"
55743
+ }
55744
+ }
55706
55745
  Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);
55707
55746
  `,
55708
55747
  "actionType": "custom"
@@ -55818,7 +55857,8 @@ async function getTableOperation(ctx){
55818
55857
  label: " ",
55819
55858
  fixed: 'right',
55820
55859
  labelClassName: 'text-center',
55821
- className: 'text-center steedos-listview-operation w-10',
55860
+ //TODO:目前3.6.3-patch.3版本中对于动态classname处理存在问题,简单处理固定列问题,等待amis解决crud的columns不支持动态classname的问题
55861
+ className: 'text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right',
55822
55862
  buttons: [
55823
55863
  {
55824
55864
  "type": "steedos-dropdown-button",
@@ -55914,7 +55954,7 @@ async function getTableSchema$1(fields, options){
55914
55954
  }
55915
55955
  return {
55916
55956
  mode: "cards",
55917
- perPageAvailable: [5, 10, 20, 50, 100, 500],
55957
+ perPageAvailable: [20, 50, 100, 500],
55918
55958
  name: "thelist",
55919
55959
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
55920
55960
  className: "",
@@ -55947,7 +55987,7 @@ async function getTableSchema$1(fields, options){
55947
55987
 
55948
55988
  return {
55949
55989
  mode: "table",
55950
- perPageAvailable: [5, 10, 20, 50, 100, 500],
55990
+ perPageAvailable: [20, 50, 100, 500],
55951
55991
  name: "thelist",
55952
55992
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
55953
55993
  className: "",
@@ -56073,7 +56113,7 @@ async function getListBody(fields, options){
56073
56113
 
56074
56114
  function getDefaultParams(options){
56075
56115
  return {
56076
- perPage: options.top || options.perPage || 10
56116
+ perPage: options.top || options.perPage || 20
56077
56117
  }
56078
56118
  }
56079
56119
 
@@ -56127,7 +56167,6 @@ const getSchema$5 = async (uiSchema, ctx) => {
56127
56167
  "objectApiName": "\${objectName}",
56128
56168
  "recordId": "",
56129
56169
  "mode": "edit",
56130
- "layout": "normal"
56131
56170
  };
56132
56171
 
56133
56172
  if (payload && payload.schema) {
@@ -57911,14 +57950,14 @@ const getDisplayAsButton = function(objectName, showDisplayAs){
57911
57950
  {
57912
57951
  "type": "button",
57913
57952
  "label": instance.t('frontend_display_type_is_table'),
57914
- "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');",
57953
+ "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');",
57915
57954
  "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
57916
57955
  "rightIconClassName": "m-l-sm"
57917
57956
  },
57918
57957
  {
57919
57958
  "type": "button",
57920
57959
  "label": instance.t('frontend_display_type_is_split'),
57921
- "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
57960
+ "onClick": "const key = 'tab_"+objectName+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
57922
57961
  "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
57923
57962
  "rightIconClassName": "m-l-sm"
57924
57963
  }
@@ -58061,7 +58100,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
58061
58100
  {
58062
58101
  "type": "search-box",
58063
58102
  "name": keywordsSearchBoxName,
58064
- "placeholder": "搜索此列表",
58103
+ "placeholder": "快捷搜索",
58065
58104
  "value": crudKeywords,
58066
58105
  // "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
58067
58106
  "clearAndSubmit": true,
@@ -58265,7 +58304,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58265
58304
  // ]
58266
58305
  if(options.displayAs === 'split'){
58267
58306
  return [
58268
- "switch-per-page",
58307
+ {
58308
+ "type": "switch-per-page",
58309
+ "visibleOn": "${count >= 20}"
58310
+ },
58269
58311
  {
58270
58312
  "type": "pagination",
58271
58313
  "maxButtons": 5,
@@ -58287,7 +58329,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58287
58329
  else {
58288
58330
  if(options && options.isRelated){
58289
58331
  return [
58290
- "statistics",
58291
58332
  {
58292
58333
  "type": "pagination",
58293
58334
  "maxButtons": 10,
@@ -58300,7 +58341,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58300
58341
  const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);
58301
58342
  const is_lookup = options.isLookup;
58302
58343
  const commonConfig = [
58303
- "statistics",
58304
58344
  {
58305
58345
  "type": "pagination",
58306
58346
  "maxButtons": 10,
@@ -58311,7 +58351,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58311
58351
  if (no_pagination && is_lookup) {
58312
58352
  return commonConfig;
58313
58353
  } else {
58314
- return ["switch-per-page", ...commonConfig];
58354
+ return [{
58355
+ "type": "switch-per-page",
58356
+ "visibleOn": "${count >= 20}"
58357
+ }, ...commonConfig];
58315
58358
  }
58316
58359
  }
58317
58360
  }
@@ -58411,8 +58454,8 @@ async function getObjectFilter(objectSchema, fields, options) {
58411
58454
  /*
58412
58455
  * @Author: baozhoutao@steedos.com
58413
58456
  * @Date: 2022-07-05 15:55:39
58414
- * @LastEditors: liaodaxue
58415
- * @LastEditTime: 2023-10-20 11:38:25
58457
+ * @LastEditors: baozhoutao@steedos.com
58458
+ * @LastEditTime: 2024-01-16 11:14:34
58416
58459
  * @Description:
58417
58460
  */
58418
58461
 
@@ -59357,9 +59400,11 @@ async function lookupToAmisPicker(field, readonly, ctx){
59357
59400
  */
59358
59401
  if(enable_tree){
59359
59402
  const rows = _.map(payload.data.rows, (item)=>{
59360
- delete item.children;
59361
- delete item.parent;
59362
- return item;
59403
+ if (!item.children) {
59404
+ return { ...item, children: [] };
59405
+ } else {
59406
+ return item;
59407
+ }
59363
59408
  })
59364
59409
  payload.data.rows = rows;
59365
59410
  }
@@ -59808,9 +59853,17 @@ async function lookupToAmis(field, readonly, ctx){
59808
59853
  }
59809
59854
  // console.log(`lookupToAmis====`, field, readonly, ctx)
59810
59855
  if(readonly){
59811
- return {
59812
- type: getAmisStaticFieldType('picker', readonly),
59813
- tpl: getRelatedFieldTpl(field, ctx)
59856
+ if(field.reference_to){
59857
+ return {
59858
+ type: 'steedos-field',
59859
+ config: field,
59860
+ static: true
59861
+ }
59862
+ }else {
59863
+ return {
59864
+ type: getAmisStaticFieldType('picker', readonly),
59865
+ tpl: getRelatedFieldTpl(field, ctx)
59866
+ }
59814
59867
  }
59815
59868
  }
59816
59869
  if(field.reference_to && !lodash.exports.isString(field.reference_to) && !readonly){
@@ -60693,11 +60746,9 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60693
60746
  if(field.subFields){
60694
60747
  convertData = {
60695
60748
  type: 'steedos-input-table',
60696
- showIndex: true,
60697
60749
  editable: !readonly,
60698
60750
  addable: !readonly,
60699
60751
  removable: !readonly,
60700
- draggable: !readonly,
60701
60752
  fields: [],
60702
60753
  amis:{
60703
60754
  columnsTogglable: false
@@ -60749,7 +60800,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60749
60800
  if(field.is_wide || convertData.type === 'group'){
60750
60801
  convertData.className = 'col-span-2 m-0';
60751
60802
  }else {
60752
- convertData.className = 'm-1';
60803
+ convertData.className = 'm-0';
60753
60804
  }
60754
60805
  if(readonly){
60755
60806
  convertData.className = `${convertData.className} border-b`;
@@ -60774,6 +60825,10 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60774
60825
  }
60775
60826
  }
60776
60827
 
60828
+ if(ctx.amisData && ctx.amisData._master && ctx.amisData._master.relatedKey === field.name){
60829
+ convertData.className = `${convertData.className || ''} hidden`;
60830
+ }
60831
+
60777
60832
  if(lodash.exports.isString(baseData.required)){
60778
60833
  if(baseData.required.startsWith("{{")){
60779
60834
  baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;