@steedos-widgets/sortable 1.3.4-beta.15 → 1.3.4-beta.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.
@@ -23118,6 +23118,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
23118
23118
  }
23119
23119
 
23120
23120
  function getObjectFooterToolbar(mainObject, formFactor, options) {
23121
+ // crud card模式与table模式两种情况下showPageInput默认值不一样,所以需要显式设置为false
23121
23122
  if (formFactor === 'SMALL') {
23122
23123
  // return [
23123
23124
  // "load-more",
@@ -23127,15 +23128,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
23127
23128
  "switch-per-page",
23128
23129
  {
23129
23130
  "type": "pagination",
23130
- "maxButtons": 5
23131
+ "maxButtons": 5,
23132
+ "showPageInput": false
23131
23133
  }
23132
23134
  ]
23133
23135
  }else {
23134
23136
  return [
23135
- "statistics",
23137
+ // "statistics",
23136
23138
  {
23137
23139
  "type": "pagination",
23138
- "maxButtons": 5
23140
+ "maxButtons": 5,
23141
+ "showPageInput": false
23139
23142
  }
23140
23143
  ]
23141
23144
  }
@@ -23144,7 +23147,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
23144
23147
  if(options && options.isRelated){
23145
23148
  return [
23146
23149
  "statistics",
23147
- "pagination"
23150
+ {
23151
+ "type": "pagination",
23152
+ "maxButtons": 10,
23153
+ "showPageInput": false
23154
+ }
23148
23155
  ]
23149
23156
 
23150
23157
  }
@@ -23152,7 +23159,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
23152
23159
  return [
23153
23160
  "switch-per-page",
23154
23161
  "statistics",
23155
- "pagination"
23162
+ {
23163
+ "type": "pagination",
23164
+ "maxButtons": 10,
23165
+ "showPageInput": false
23166
+ }
23156
23167
  ]
23157
23168
  }
23158
23169
  }
@@ -24035,15 +24046,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24035
24046
  var optionsFilters = [["${valueFieldKey}", optionsFiltersOp, []]];
24036
24047
  if (defaultValue && !api.data.$term) {
24037
24048
  const defaultValueOptionsQueryData = ${JSON.stringify(defaultValueOptionsQueryData)};
24038
- const defaultValueOptionsQuery = defaultValueOptionsQueryData.query.replace(/^{/,"").replace(/}$/,"");
24049
+ const defaultValueOptionsQuery = defaultValueOptionsQueryData?.query?.replace(/^{/,"").replace(/}$/,"");
24039
24050
  // 字段值单独请求,没值的时候在请求中返回空
24040
24051
  optionsFilters = [["${valueFieldKey}", optionsFiltersOp, defaultValue]];
24041
24052
  if(filters.length > 0){
24042
24053
  optionsFilters = [filters, optionsFilters];
24043
24054
  }
24044
- api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";
24045
- api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters))
24055
+ if(defaultValueOptionsQuery){
24056
+ api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";
24057
+ }
24046
24058
  }
24059
+ api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
24047
24060
  return api;
24048
24061
  `;
24049
24062
  referenceTo ? referenceTo.labelField.name : '';
@@ -24868,7 +24881,20 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
24868
24881
  type: getAmisStaticFieldType('number', readonly),
24869
24882
  min: field.min,
24870
24883
  max: field.max,
24871
- precision: field.scale
24884
+ precision: field.scale,
24885
+ suffix: "%",
24886
+ pipeIn: (value, data) => {
24887
+ if(value){
24888
+ return value*100;
24889
+ }
24890
+ return value;
24891
+ },
24892
+ pipeOut: (value, oldValue, data) => {
24893
+ if(value){
24894
+ return value/100;
24895
+ }
24896
+ return value;
24897
+ },
24872
24898
  };
24873
24899
  }
24874
24900
  break;
@@ -25347,7 +25373,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25347
25373
  break;
25348
25374
  case "percent":
25349
25375
  TempDisplayField = `
25350
- _display["${field.name}"] = (event.data.value * 100).toFixed(${field.scale}) + '%';
25376
+ _display["${field.name}"] = event.data.value.toFixed(${field.scale}) + '%';
25351
25377
  `;
25352
25378
  quickEditSchema.body[0].onEvent["change"] = quickEditOnEvent(TempDisplayField);
25353
25379
  break;
@@ -25978,23 +26004,86 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
25978
26004
  }
25979
26005
  }
25980
26006
 
26007
+ async function getDefaultCrudCard(columns, options) {
26008
+ let labelFieldName = options?.labelFieldName || "name";
26009
+ let titleColumn, bodyColumns = [];
26010
+ columns.forEach(function (item) {
26011
+ delete item.quickEdit;
26012
+ delete item.width;
26013
+ if (item.name === labelFieldName) {
26014
+ titleColumn = item;
26015
+ }
26016
+ else {
26017
+ if (item.name !== "_index") {
26018
+ bodyColumns.push(item);
26019
+ }
26020
+ }
26021
+ });
26022
+ let card = {
26023
+ "header": {
26024
+ "title": titleColumn.tpl
26025
+ },
26026
+ body: bodyColumns,
26027
+ // useCardLabel: false,
26028
+ toolbar: []
26029
+ };
26030
+ let hideToolbarOperation = options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1;
26031
+ if(!hideToolbarOperation){
26032
+ let toolbarOperation = await getTableOperation(options);
26033
+ if (toolbarOperation) {
26034
+ toolbarOperation.className += " inline-block w-auto";
26035
+ }
26036
+ card.toolbar.push(toolbarOperation);
26037
+ }
26038
+ return card;
26039
+ }
26040
+
25981
26041
  async function getTableSchema$1(fields, options){
25982
26042
  if(!options){
25983
26043
  options = {};
25984
26044
  }
25985
26045
  let { isLookup, hiddenColumnOperation } = options;
26046
+ const defaults = options.defaults;
26047
+ const listSchema = (defaults && defaults.listSchema) || {};
26048
+
25986
26049
  let columns = [];
25987
26050
  let useMobileColumns = options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1;
25988
26051
  if(isLookup){
25989
26052
  // 在lookup手机端列表模式调式好之前不使用getMobileTableColumns
25990
26053
  useMobileColumns = false;
25991
26054
  }
26055
+ if(listSchema.mode && listSchema.mode !== "table"){
26056
+ // 如果指定的mode,则不走我们内置的手机端列表效果,使用steedos组件内部开发的默认card/list效果,或者由用户自己实现card/list模式的crud列表
26057
+ useMobileColumns = false;
26058
+ }
25992
26059
  if(useMobileColumns){
25993
26060
  columns = await getMobileTableColumns(fields, options);
25994
26061
  }
25995
26062
  else {
25996
26063
  columns = await getTableColumns(fields, options);
25997
26064
 
26065
+ if(listSchema.mode === "cards"){
26066
+ let card = listSchema.card;
26067
+ if(!card){
26068
+ card = await getDefaultCrudCard(columns, options);
26069
+ }
26070
+ return {
26071
+ mode: "cards",
26072
+ name: "thelist",
26073
+ headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
26074
+ className: "",
26075
+ draggable: false,
26076
+ defaultParams: getDefaultParams(options),
26077
+ card: card,
26078
+ syncLocation: false,
26079
+ keepItemSelectionOnPageChange: true,
26080
+ checkOnItemClick: isLookup ? true : false,
26081
+ labelTpl: `\${${options.labelFieldName}}`,
26082
+ autoFillHeight: false, // 自动高度效果不理想,先关闭
26083
+ columnsTogglable: false
26084
+ }
26085
+ }
26086
+
25998
26087
  if(!isLookup && !hiddenColumnOperation){
25999
26088
  columns.push(await getTableOperation(options));
26000
26089
  }
@@ -26089,8 +26178,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26089
26178
  /*
26090
26179
  * @Author: baozhoutao@steedos.com
26091
26180
  * @Date: 2022-07-05 15:55:39
26092
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
26093
- * @LastEditTime: 2023-09-21 17:35:06
26181
+ * @LastEditors: liaodaxue
26182
+ * @LastEditTime: 2023-10-20 11:38:25
26094
26183
  * @Description:
26095
26184
  */
26096
26185
 
@@ -26387,8 +26476,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
26387
26476
  "filtersFunction": listview_filters,
26388
26477
  "sort": sort,
26389
26478
  "ctx": ctx,
26390
- "requestAdaptor": listView.requestAdaptor,
26391
- "adaptor": listView.adaptor,
26479
+ "requestAdaptor": listView.requestAdaptor || ctx.requestAdaptor,
26480
+ "adaptor": listView.adaptor || ctx.adaptor,
26392
26481
  "headerToolbarItems": ctx.headerToolbarItems,
26393
26482
  "filterVisible": ctx.filterVisible,
26394
26483
  "rowClassNameExpr": ctx.rowClassNameExpr,
@@ -31522,7 +31611,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
31522
31611
  var empty = [];
31523
31612
  function MultipleContainers(props) {
31524
31613
  var _this = this;
31525
- var _a = props.adjustScale, adjustScale = _a === void 0 ? false : _a; props.itemCount; var cancelDrop = props.cancelDrop, _c = props.columns, columns = _c === void 0 ? 1 : _c, _d = props.handle, handle = _d === void 0 ? true : _d, containerStyle = props.containerStyle, _e = props.coordinateGetter, coordinateGetter$1 = _e === void 0 ? coordinateGetter : _e, _f = props.getItemStyles, getItemStyles = _f === void 0 ? function () { return ({}); } : _f, _g = props.wrapperStyle, wrapperStyle = _g === void 0 ? function () { return ({}); } : _g, _h = props.minimal, minimal = _h === void 0 ? false : _h, modifiers = props.modifiers, renderItem = props.renderItem, _j = props.strategy, strategy = _j === void 0 ? verticalListSortingStrategy : _j, _k = props.addable, addable = _k === void 0 ? false : _k, _l = props.trashable, trashable = _l === void 0 ? false : _l, _m = props.vertical, vertical = _m === void 0 ? false : _m, scrollable = props.scrollable, _o = props.boardSource, boardSource = _o === void 0 ? [] : _o, _p = props.cardSource, cardSource = _p === void 0 ? [] : _p, defaultValue = props.defaultValue, amisOnChange = props.onChange, amisData = props.data, amisDispatchEvent = props.dispatchEvent, amisRender = props.render, _q = props.cardSchema, cardSchema = _q === void 0 ? [{
31614
+ var _a = props.adjustScale, adjustScale = _a === void 0 ? false : _a; props.itemCount; var cancelDrop = props.cancelDrop, _c = props.columns, columns = _c === void 0 ? 1 : _c, _d = props.handle, handle = _d === void 0 ? true : _d, containerStyle = props.containerStyle, _e = props.coordinateGetter, coordinateGetter$1 = _e === void 0 ? coordinateGetter : _e, _f = props.getItemStyles, getItemStyles = _f === void 0 ? function () { return ({}); } : _f, _g = props.wrapperStyle, wrapperStyle = _g === void 0 ? function () { return ({}); } : _g, _h = props.minimal, minimal = _h === void 0 ? false : _h, modifiers = props.modifiers, renderItem = props.renderItem, _j = props.strategy, strategy = _j === void 0 ? verticalListSortingStrategy : _j, _k = props.addable, addable = _k === void 0 ? false : _k, _l = props.trashable, trashable = _l === void 0 ? false : _l, _m = props.vertical, vertical = _m === void 0 ? false : _m, scrollable = props.scrollable, _o = props.boardSource, boardSource = _o === void 0 ? [] : _o, _p = props.cardSource, cardSource = _p === void 0 ? [] : _p, value = props.value, amisOnChange = props.onChange, amisData = props.data, amisDispatchEvent = props.dispatchEvent, amisRender = props.render, _q = props.cardSchema, cardSchema = _q === void 0 ? [{
31526
31615
  "type": "tpl",
31527
31616
  "tpl": "${label}",
31528
31617
  "inline": false,
@@ -31530,24 +31619,24 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
31530
31619
  "type": "tpl",
31531
31620
  "tpl": "${label}",
31532
31621
  }] : _r, _s = props.boardFooter, boardFooter = _s === void 0 ? [] : _s, _t = props.wrapperClassName, wrapperClassName = _t === void 0 ? "gap-2" : _t, _u = props.boardClassName, boardClassName = _u === void 0 ? "border rounded" : _u, _v = props.cardClassName, cardClassName = _v === void 0 ? "" : _v;
31533
- defaultValue && delete (defaultValue.$$id);
31622
+ value && delete (value.$$id);
31534
31623
  var _w = __read(React.useState(function () {
31535
31624
  var _a;
31536
- return (_a = defaultValue) !== null && _a !== void 0 ? _a : {
31625
+ return (_a = value) !== null && _a !== void 0 ? _a : {
31537
31626
  A: ['A1', 'A2'],
31538
31627
  B: ['B1', 'B2'],
31539
31628
  C: ['C1', 'C2'],
31540
31629
  };
31541
31630
  }), 2), items = _w[0], setItems = _w[1];
31542
31631
  var _x = __read(React.useState(Object.keys(items)), 2), containers = _x[0], setContainers = _x[1];
31543
- var handleChange = function () { return __awaiter(_this, void 0, void 0, function () {
31632
+ var handleChange = function (newItems) { return __awaiter(_this, void 0, void 0, function () {
31544
31633
  var value, rendererEvent;
31545
31634
  return __generator(this, function (_a) {
31546
31635
  switch (_a.label) {
31547
31636
  case 0:
31548
31637
  if (!amisDispatchEvent || !amisOnChange)
31549
31638
  return [2 /*return*/];
31550
- value = items;
31639
+ value = newItems || items;
31551
31640
  return [4 /*yield*/, amisDispatchEvent('change', createObject(amisData, {
31552
31641
  value: value
31553
31642
  }))];
@@ -31734,19 +31823,21 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
31734
31823
  return;
31735
31824
  }
31736
31825
  var overContainer = findContainer(overId);
31826
+ var newItems = items;
31737
31827
  if (overContainer) {
31738
31828
  var activeIndex_1 = items[activeContainer].indexOf(active.id);
31739
31829
  var overIndex_1 = items[overContainer].indexOf(overId);
31740
31830
  if (activeIndex_1 !== overIndex_1) {
31741
31831
  setItems(function (items) {
31742
31832
  var _a;
31743
- return (__assign$1(__assign$1({}, items), (_a = {}, _a[overContainer] = arrayMove(items[overContainer], activeIndex_1, overIndex_1), _a)));
31833
+ newItems = __assign$1(__assign$1({}, items), (_a = {}, _a[overContainer] = arrayMove(items[overContainer], activeIndex_1, overIndex_1), _a));
31834
+ return newItems;
31744
31835
  });
31745
31836
  }
31746
31837
  }
31747
31838
  setActiveId(null);
31748
31839
  // console.log('拖动结束2,更新form value')
31749
- handleChange();
31840
+ handleChange(newItems);
31750
31841
  }, cancelDrop: cancelDrop, onDragCancel: onDragCancel, modifiers: modifiers },
31751
31842
  React__default["default"].createElement("div", { style: {
31752
31843
  display: 'inline-grid',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-widgets/sortable",
3
- "version": "1.3.4-beta.15",
3
+ "version": "1.3.4-beta.17",
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": "1.3.4-beta.15"
48
+ "@steedos-widgets/amis-lib": "1.3.4-beta.17"
49
49
  },
50
- "gitHead": "00240969040c173c8ec7ade77767184c617876a8"
50
+ "gitHead": "184247f4260015e19c82a49fa4d6562839e73d2c"
51
51
  }
@@ -153,7 +153,7 @@ interface Props {
153
153
  vertical?: boolean;
154
154
  boardSource: [{id:string, label:string}?],
155
155
  cardSource: [{id:string, label:string, color: string, columnSpan: number, body: [any]}?],
156
- defaultValue: any,
156
+ value: any,
157
157
  onChange: Function,
158
158
  data: any,
159
159
  dispatchEvent: Function,
@@ -171,7 +171,6 @@ const PLACEHOLDER_ID = 'placeholder';
171
171
  const empty: UniqueIdentifier[] = [];
172
172
 
173
173
  export function MultipleContainers(props) {
174
-
175
174
  let {
176
175
  adjustScale = false,
177
176
  itemCount = 3,
@@ -192,7 +191,7 @@ export function MultipleContainers(props) {
192
191
  scrollable,
193
192
  boardSource = [],
194
193
  cardSource = [],
195
- defaultValue,
194
+ value,
196
195
  onChange: amisOnChange,
197
196
  data: amisData,
198
197
  dispatchEvent: amisDispatchEvent,
@@ -212,11 +211,11 @@ export function MultipleContainers(props) {
212
211
  cardClassName = "",
213
212
  }: Props = props
214
213
 
215
- defaultValue && delete(defaultValue.$$id);
214
+ value && delete(value.$$id);
216
215
 
217
216
  const [items, setItems] = useState<Items>(
218
217
  () => {
219
- return (defaultValue as Items) ?? {
218
+ return (value as Items) ?? {
220
219
  A: ['A1', 'A2'],
221
220
  B: ['B1', 'B2'],
222
221
  C: ['C1', 'C2'],
@@ -228,10 +227,10 @@ export function MultipleContainers(props) {
228
227
  Object.keys(items) as UniqueIdentifier[]
229
228
  );
230
229
 
231
- const handleChange = async () => {
230
+ const handleChange = async (newItems? : any) => {
232
231
  if (!amisDispatchEvent || !amisOnChange)
233
232
  return
234
- const value = items;
233
+ const value = newItems || items;
235
234
 
236
235
  // 支持 amis OnEvent.change
237
236
  const rendererEvent = await amisDispatchEvent(
@@ -494,26 +493,31 @@ export function MultipleContainers(props) {
494
493
 
495
494
  const overContainer = findContainer(overId);
496
495
 
496
+ let newItems = items;
497
+
497
498
  if (overContainer) {
498
499
  const activeIndex = items[activeContainer].indexOf(active.id);
499
500
  const overIndex = items[overContainer].indexOf(overId);
500
501
 
501
502
  if (activeIndex !== overIndex) {
502
- setItems((items) => ({
503
- ...items,
504
- [overContainer]: arrayMove(
505
- items[overContainer],
506
- activeIndex,
507
- overIndex
508
- ),
509
- }));
503
+ setItems((items) => {
504
+ newItems = {
505
+ ...items,
506
+ [overContainer]: arrayMove(
507
+ items[overContainer],
508
+ activeIndex,
509
+ overIndex
510
+ ),
511
+ }
512
+ return newItems;
513
+ });
510
514
  }
511
515
  }
512
516
 
513
517
  setActiveId(null);
514
518
 
515
519
  // console.log('拖动结束2,更新form value')
516
- handleChange()
520
+ handleChange(newItems)
517
521
  }}
518
522
  cancelDrop={cancelDrop}
519
523
  onDragCancel={onDragCancel}