@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.
@@ -53933,22 +53933,26 @@ function getRootUrl(defaultRootUrl){
53933
53933
  * @Description:
53934
53934
  */
53935
53935
 
53936
-
53937
53936
  const Router = {
53938
53937
  getTabDisplayAs(tab_id){
53938
+ const uiSchema = getUISchemaSync$1(tab_id, false);
53939
53939
  var urlSearch = new URLSearchParams(document.location.search);
53940
53940
  if(urlSearch.has('display')){
53941
53941
  return urlSearch.get('display')
53942
53942
  }
53943
53943
  const key = `tab_${tab_id}_display`;
53944
53944
  // const key = `page_display`;
53945
- const value = localStorage.getItem(key);
53946
- return value ? value : 'grid'
53945
+ const value = sessionStorage.getItem(key);
53946
+ let defaultDisplay = "grid";
53947
+ if(uiSchema.enable_split){
53948
+ defaultDisplay = "split";
53949
+ }
53950
+ return value ? value : defaultDisplay;
53947
53951
  },
53948
53952
 
53949
53953
  setTabDisplayAs(tab_id, displayAs){
53950
53954
  const key = `tab_${tab_id}_display`;
53951
- localStorage.setItem(key, displayAs);
53955
+ sessionStorage.setItem(key, displayAs);
53952
53956
  },
53953
53957
  getAppPath({formFactor, appId}){
53954
53958
  return `/app/${appId}`;
@@ -54102,7 +54106,7 @@ function getSelectMap(selectOptions){
54102
54106
 
54103
54107
  function getNameTplUrl(field, ctx){
54104
54108
  if(ctx.objectName === 'cms_files'){
54105
- return `\${context.rootUrl}/api/files/files/\${versions[0]}?download=true`
54109
+ return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
54106
54110
  }
54107
54111
  const href = Router.getObjectDetailPath({
54108
54112
  ...ctx, formFactor: ctx.formFactor, appId: "${appId}", objectName: ctx.objectName || "${objectName}", recordId: `\${${ctx.idFieldName}}`
@@ -54742,9 +54746,9 @@ var frontend_display_type_is_split = "分栏视图";
54742
54746
  var frontend_display_as = "显示为";
54743
54747
  var frontend_record_sum = "个项目";
54744
54748
  var frontend_button_reload_tooltip = "刷新";
54745
- var frontend_button_search_tooltip = "筛选";
54749
+ var frontend_button_search_tooltip = "搜索";
54746
54750
  var frontend_fields_filter_button_search = "搜索";
54747
- var frontend_fields_filter_button_settings = "设置搜索项";
54751
+ var frontend_fields_filter_button_settings = "选择搜索项";
54748
54752
  var frontend_button_listview_control_tooltip = "列表视图控制";
54749
54753
  var frontend_button_listview_control_label = "列表视图控制";
54750
54754
  var frontend_listview_control_columns = "显示的列";
@@ -55399,9 +55403,13 @@ async function getTableColumns(fields, options){
55399
55403
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
55400
55404
  let className = "";
55401
55405
  if(field.wrap != true){
55402
- className += " whitespace-nowrap ";
55406
+ if(field.wrap != false && field.is_wide){
55407
+ className += " break-words ";
55408
+ }else {
55409
+ className += " whitespace-nowrap ";
55410
+ }
55403
55411
  }else {
55404
- className += " break-all ";
55412
+ className += " break-words ";
55405
55413
  }
55406
55414
  let columnItem;
55407
55415
  if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
@@ -55498,12 +55506,24 @@ async function getTableColumns(fields, options){
55498
55506
  if(field.type === 'textarea'){
55499
55507
  className += 'min-w-56';
55500
55508
  }
55501
- if(field.type === 'date'){
55502
- className += 'date-min-w';
55503
- }
55504
- if(field.type === 'datetime'){
55505
- className += 'datetime-min-w';
55509
+ // if(field.type === 'date'){
55510
+ // className += 'date-min-w';
55511
+ // }
55512
+ // if(field.type === 'datetime'){
55513
+ // className += 'datetime-min-w';
55514
+ // }
55515
+
55516
+ //field上的amis属性里的clssname需要单独判断类型合并
55517
+ if (typeof field.amis?.className == "object") {
55518
+ className = {
55519
+ [className]: "true",
55520
+ ...field.amis.className
55521
+ };
55522
+ } else if (typeof field.amis?.className == "string") {
55523
+ className = `${className} ${field.amis.className} `;
55506
55524
  }
55525
+ delete field.amis?.className;
55526
+
55507
55527
  if(!field.hidden && !field.extra){
55508
55528
  columnItem = Object.assign({}, {
55509
55529
  name: field.name,
@@ -55586,7 +55606,7 @@ function getMobileLines(tpls){
55586
55606
  }
55587
55607
  if(isLeft){
55588
55608
  // 左侧半行
55589
- lineChildrenClassName = "steedos-listview-item-left truncate";
55609
+ lineChildrenClassName = "steedos-listview-item-left truncate h-5";
55590
55610
  if(item.field.is_wide){
55591
55611
  // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate
55592
55612
  lineChildrenClassName = "steedos-listview-item-wide";
@@ -55598,14 +55618,26 @@ function getMobileLines(tpls){
55598
55618
  }
55599
55619
  else {
55600
55620
  // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了
55601
- lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0";
55621
+ lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0 h-5";
55622
+ }
55623
+ //支持字段amis属性配置classname,识别classname的类型,与原样式合并
55624
+ var className;
55625
+ if (typeof item.field.amis?.className == "object") {
55626
+ className = {
55627
+ [lineChildrenClassName]: "true",
55628
+ ...item.field.amis.className
55629
+ };
55630
+ } else if (typeof item.field.amis?.className == "string") {
55631
+ className = `${lineChildrenClassName} ${item.field.amis.className} `;
55632
+ } else {
55633
+ className = lineChildrenClassName;
55602
55634
  }
55603
55635
  lineChildren.push({
55604
55636
  "type": "tpl",
55605
55637
  "tpl": item.tpl,
55606
- "className": lineChildrenClassName
55638
+ className
55607
55639
  });
55608
-
55640
+
55609
55641
  if(item.field.is_wide){
55610
55642
  // 宽字段占整行
55611
55643
  isLeft = true;
@@ -55655,8 +55687,7 @@ async function getMobileTableColumns(fields, options){
55655
55687
  tpl = await getFieldTpl(field, options);
55656
55688
  }
55657
55689
  if(!tpl){
55658
- //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉
55659
- tpl = `\${${field.name} | raw}`;
55690
+ tpl = `\${${field.name}}`;
55660
55691
  }
55661
55692
  if(!field.hidden && !field.extra){
55662
55693
  tpls.push({ field, tpl });
@@ -55669,7 +55700,7 @@ async function getMobileTableColumns(fields, options){
55669
55700
 
55670
55701
  let column = {
55671
55702
  name: nameField.name,
55672
- label: nameField.label,
55703
+ label: options.displayAs == 'split' ? '' : nameField.label,
55673
55704
  sortable: nameField.sortable,
55674
55705
  type: "button",
55675
55706
  level: "link",
@@ -55698,7 +55729,15 @@ async function getMobileTableColumns(fields, options){
55698
55729
  "actions": [
55699
55730
  {
55700
55731
  "script": `
55701
- let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"
55732
+ let cms_url = '';
55733
+ let value = event.data.versions[0];
55734
+ if(value){
55735
+ if(value.url){
55736
+ cms_url = value.url;
55737
+ }else{
55738
+ cms_url = "/api/files/files/"+value+"?download=true"
55739
+ }
55740
+ }
55702
55741
  Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);
55703
55742
  `,
55704
55743
  "actionType": "custom"
@@ -55814,7 +55853,8 @@ async function getTableOperation(ctx){
55814
55853
  label: " ",
55815
55854
  fixed: 'right',
55816
55855
  labelClassName: 'text-center',
55817
- className: 'text-center steedos-listview-operation w-10',
55856
+ //TODO:目前3.6.3-patch.3版本中对于动态classname处理存在问题,简单处理固定列问题,等待amis解决crud的columns不支持动态classname的问题
55857
+ className: 'text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right',
55818
55858
  buttons: [
55819
55859
  {
55820
55860
  "type": "steedos-dropdown-button",
@@ -55910,7 +55950,7 @@ async function getTableSchema$1(fields, options){
55910
55950
  }
55911
55951
  return {
55912
55952
  mode: "cards",
55913
- perPageAvailable: [5, 10, 20, 50, 100, 500],
55953
+ perPageAvailable: [20, 50, 100, 500],
55914
55954
  name: "thelist",
55915
55955
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
55916
55956
  className: "",
@@ -55943,7 +55983,7 @@ async function getTableSchema$1(fields, options){
55943
55983
 
55944
55984
  return {
55945
55985
  mode: "table",
55946
- perPageAvailable: [5, 10, 20, 50, 100, 500],
55986
+ perPageAvailable: [20, 50, 100, 500],
55947
55987
  name: "thelist",
55948
55988
  headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
55949
55989
  className: "",
@@ -56069,7 +56109,7 @@ async function getListBody(fields, options){
56069
56109
 
56070
56110
  function getDefaultParams(options){
56071
56111
  return {
56072
- perPage: options.top || options.perPage || 10
56112
+ perPage: options.top || options.perPage || 20
56073
56113
  }
56074
56114
  }
56075
56115
 
@@ -56123,7 +56163,6 @@ const getSchema$5 = async (uiSchema, ctx) => {
56123
56163
  "objectApiName": "\${objectName}",
56124
56164
  "recordId": "",
56125
56165
  "mode": "edit",
56126
- "layout": "normal"
56127
56166
  };
56128
56167
 
56129
56168
  if (payload && payload.schema) {
@@ -57907,14 +57946,14 @@ const getDisplayAsButton = function(objectName, showDisplayAs){
57907
57946
  {
57908
57947
  "type": "button",
57909
57948
  "label": instance.t('frontend_display_type_is_table'),
57910
- "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');",
57949
+ "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');",
57911
57950
  "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
57912
57951
  "rightIconClassName": "m-l-sm"
57913
57952
  },
57914
57953
  {
57915
57954
  "type": "button",
57916
57955
  "label": instance.t('frontend_display_type_is_split'),
57917
- "onClick": "const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
57956
+ "onClick": "const key = 'tab_"+objectName+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
57918
57957
  "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
57919
57958
  "rightIconClassName": "m-l-sm"
57920
57959
  }
@@ -58057,7 +58096,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
58057
58096
  {
58058
58097
  "type": "search-box",
58059
58098
  "name": keywordsSearchBoxName,
58060
- "placeholder": "搜索此列表",
58099
+ "placeholder": "快捷搜索",
58061
58100
  "value": crudKeywords,
58062
58101
  // "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
58063
58102
  "clearAndSubmit": true,
@@ -58261,7 +58300,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58261
58300
  // ]
58262
58301
  if(options.displayAs === 'split'){
58263
58302
  return [
58264
- "switch-per-page",
58303
+ {
58304
+ "type": "switch-per-page",
58305
+ "visibleOn": "${count >= 20}"
58306
+ },
58265
58307
  {
58266
58308
  "type": "pagination",
58267
58309
  "maxButtons": 5,
@@ -58283,7 +58325,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58283
58325
  else {
58284
58326
  if(options && options.isRelated){
58285
58327
  return [
58286
- "statistics",
58287
58328
  {
58288
58329
  "type": "pagination",
58289
58330
  "maxButtons": 10,
@@ -58296,7 +58337,6 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58296
58337
  const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);
58297
58338
  const is_lookup = options.isLookup;
58298
58339
  const commonConfig = [
58299
- "statistics",
58300
58340
  {
58301
58341
  "type": "pagination",
58302
58342
  "maxButtons": 10,
@@ -58307,7 +58347,10 @@ function getObjectFooterToolbar(mainObject, formFactor, options) {
58307
58347
  if (no_pagination && is_lookup) {
58308
58348
  return commonConfig;
58309
58349
  } else {
58310
- return ["switch-per-page", ...commonConfig];
58350
+ return [{
58351
+ "type": "switch-per-page",
58352
+ "visibleOn": "${count >= 20}"
58353
+ }, ...commonConfig];
58311
58354
  }
58312
58355
  }
58313
58356
  }
@@ -58407,8 +58450,8 @@ async function getObjectFilter(objectSchema, fields, options) {
58407
58450
  /*
58408
58451
  * @Author: baozhoutao@steedos.com
58409
58452
  * @Date: 2022-07-05 15:55:39
58410
- * @LastEditors: liaodaxue
58411
- * @LastEditTime: 2023-10-20 11:38:25
58453
+ * @LastEditors: baozhoutao@steedos.com
58454
+ * @LastEditTime: 2024-01-16 11:14:34
58412
58455
  * @Description:
58413
58456
  */
58414
58457
 
@@ -59353,9 +59396,11 @@ async function lookupToAmisPicker(field, readonly, ctx){
59353
59396
  */
59354
59397
  if(enable_tree){
59355
59398
  const rows = _.map(payload.data.rows, (item)=>{
59356
- delete item.children;
59357
- delete item.parent;
59358
- return item;
59399
+ if (!item.children) {
59400
+ return { ...item, children: [] };
59401
+ } else {
59402
+ return item;
59403
+ }
59359
59404
  })
59360
59405
  payload.data.rows = rows;
59361
59406
  }
@@ -59804,9 +59849,17 @@ async function lookupToAmis(field, readonly, ctx){
59804
59849
  }
59805
59850
  // console.log(`lookupToAmis====`, field, readonly, ctx)
59806
59851
  if(readonly){
59807
- return {
59808
- type: getAmisStaticFieldType('picker', readonly),
59809
- tpl: getRelatedFieldTpl(field, ctx)
59852
+ if(field.reference_to){
59853
+ return {
59854
+ type: 'steedos-field',
59855
+ config: field,
59856
+ static: true
59857
+ }
59858
+ }else {
59859
+ return {
59860
+ type: getAmisStaticFieldType('picker', readonly),
59861
+ tpl: getRelatedFieldTpl(field, ctx)
59862
+ }
59810
59863
  }
59811
59864
  }
59812
59865
  if(field.reference_to && !lodash.exports.isString(field.reference_to) && !readonly){
@@ -60689,11 +60742,9 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60689
60742
  if(field.subFields){
60690
60743
  convertData = {
60691
60744
  type: 'steedos-input-table',
60692
- showIndex: true,
60693
60745
  editable: !readonly,
60694
60746
  addable: !readonly,
60695
60747
  removable: !readonly,
60696
- draggable: !readonly,
60697
60748
  fields: [],
60698
60749
  amis:{
60699
60750
  columnsTogglable: false
@@ -60745,7 +60796,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60745
60796
  if(field.is_wide || convertData.type === 'group'){
60746
60797
  convertData.className = 'col-span-2 m-0';
60747
60798
  }else {
60748
- convertData.className = 'm-1';
60799
+ convertData.className = 'm-0';
60749
60800
  }
60750
60801
  if(readonly){
60751
60802
  convertData.className = `${convertData.className} border-b`;
@@ -60770,6 +60821,10 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60770
60821
  }
60771
60822
  }
60772
60823
 
60824
+ if(ctx.amisData && ctx.amisData._master && ctx.amisData._master.relatedKey === field.name){
60825
+ convertData.className = `${convertData.className || ''} hidden`;
60826
+ }
60827
+
60773
60828
  if(lodash.exports.isString(baseData.required)){
60774
60829
  if(baseData.required.startsWith("{{")){
60775
60830
  baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;