@steedos-widgets/sortable 1.3.4-beta.17 → 1.3.4-beta.19
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 +5 -5
- package/dist/sortable.cjs.js +117 -24
- package/dist/sortable.cjs.js.map +1 -1
- package/dist/sortable.esm.js +117 -24
- package/dist/sortable.esm.js.map +1 -1
- package/dist/sortable.umd.js +117 -24
- package/package.json +3 -3
- package/src/components/MultipleContainers.tsx +46 -16
package/dist/sortable.esm.js
CHANGED
|
@@ -55788,7 +55788,8 @@ const getCopyListviewButtonSchema = ()=>{
|
|
|
55788
55788
|
"&": "${list_view}",
|
|
55789
55789
|
"name":"",
|
|
55790
55790
|
"label": instance.t('frontend_listview_control_clone_defaultData_label_start') + " ${list_view.label} " + instance.t('frontend_listview_control_clone_defaultData_label_end'),
|
|
55791
|
-
"shared":false
|
|
55791
|
+
"shared":false,
|
|
55792
|
+
"object_name": "${targetObjectName}",
|
|
55792
55793
|
},
|
|
55793
55794
|
"fieldsExtend": fieldsExtend$3(),
|
|
55794
55795
|
"fields": fields(),
|
|
@@ -57496,7 +57497,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
57496
57497
|
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
|
|
57497
57498
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
57498
57499
|
const isCreate = lodash.exports.isBoolean(field.create) ? field.create : true;
|
|
57499
|
-
|
|
57500
|
+
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
57501
|
+
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
57502
|
+
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
57500
57503
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
57501
57504
|
new_button.align = "right";
|
|
57502
57505
|
// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
@@ -57870,10 +57873,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
57870
57873
|
|
|
57871
57874
|
const refObject = await getUISchema(referenceTo.objectName);
|
|
57872
57875
|
|
|
57873
|
-
//
|
|
57874
|
-
|
|
57875
|
-
//
|
|
57876
|
-
if(
|
|
57876
|
+
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
57877
|
+
let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
57878
|
+
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
57879
|
+
if(enableEnhancedLookup == true){
|
|
57877
57880
|
return await lookupToAmisPicker(field, readonly, ctx);
|
|
57878
57881
|
}else if(refObject.enable_tree) {
|
|
57879
57882
|
return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
@@ -58186,8 +58189,8 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
58186
58189
|
/*
|
|
58187
58190
|
* @Author: baozhoutao@steedos.com
|
|
58188
58191
|
* @Date: 2022-10-28 14:15:09
|
|
58189
|
-
* @LastEditors:
|
|
58190
|
-
* @LastEditTime:
|
|
58192
|
+
* @LastEditors: liaodaxue
|
|
58193
|
+
* @LastEditTime: 2023-10-30 17:51:54
|
|
58191
58194
|
* @Description:
|
|
58192
58195
|
*/
|
|
58193
58196
|
|
|
@@ -58238,11 +58241,26 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
58238
58241
|
useChunk: false, // 关闭分块上传
|
|
58239
58242
|
receiver: {
|
|
58240
58243
|
method: "post",
|
|
58244
|
+
dataType: "form-data",
|
|
58241
58245
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
58242
|
-
|
|
58243
|
-
|
|
58244
|
-
|
|
58245
|
-
|
|
58246
|
+
requestAdaptor: `
|
|
58247
|
+
const { _master, global,context } = api.body;
|
|
58248
|
+
// const { recordId, objectName } = _master;
|
|
58249
|
+
const { spaceId, userId, user } = global;
|
|
58250
|
+
/*
|
|
58251
|
+
record_id: recordId,
|
|
58252
|
+
parent: recordId,
|
|
58253
|
+
object_name: objectName,
|
|
58254
|
+
owner_name: user.name,
|
|
58255
|
+
space: spaceId,
|
|
58256
|
+
owner: userId
|
|
58257
|
+
*/
|
|
58258
|
+
// 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。
|
|
58259
|
+
api.data.append('space', spaceId);
|
|
58260
|
+
api.data.append('owner', userId);
|
|
58261
|
+
|
|
58262
|
+
return api;
|
|
58263
|
+
`,
|
|
58246
58264
|
adaptor: `
|
|
58247
58265
|
const { context } = api.body;
|
|
58248
58266
|
var rootUrl = context.rootUrl + "/api/files/${tableName}/";
|
|
@@ -58984,8 +59002,44 @@ var config = {
|
|
|
58984
59002
|
};
|
|
58985
59003
|
|
|
58986
59004
|
async function getQuickEditSchema(field, options){
|
|
59005
|
+
//判断在amis3.2以上环境下,放开批量编辑
|
|
59006
|
+
const isAmisVersionforBatchEdit = amisRequire('amis').version[0] >= 3 && amisRequire('amis').version[2] >= 2;
|
|
58987
59007
|
const quickEditId = options.objectName + "_" + field.name + "QuickEdit";//定义快速编辑的表单id,用于setvalue传值
|
|
58988
59008
|
var quickEditSchema = { body: [], id: quickEditId };
|
|
59009
|
+
//select,avatar,image,file等组件无法行记录字段赋值,暂不支持批量编辑;
|
|
59010
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
59011
|
+
const submitEvent = {
|
|
59012
|
+
submit: {
|
|
59013
|
+
actions: [
|
|
59014
|
+
{
|
|
59015
|
+
actionType: "custom",
|
|
59016
|
+
script: `
|
|
59017
|
+
const items = event.data.items;
|
|
59018
|
+
const selectedItems = event.data.selectedItems;
|
|
59019
|
+
if(event.data.isBatchEdit){
|
|
59020
|
+
selectedItems.forEach(function(selectedItem){
|
|
59021
|
+
items[selectedItem._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
59022
|
+
})
|
|
59023
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
59024
|
+
selectedItems.forEach(function(selectedItem){
|
|
59025
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + selectedItem._index});
|
|
59026
|
+
})
|
|
59027
|
+
}else{
|
|
59028
|
+
items[event.data._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
59029
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
59030
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + event.data._index});
|
|
59031
|
+
}
|
|
59032
|
+
`
|
|
59033
|
+
},
|
|
59034
|
+
{
|
|
59035
|
+
"actionType": "closeDialog"
|
|
59036
|
+
}
|
|
59037
|
+
]
|
|
59038
|
+
}
|
|
59039
|
+
};
|
|
59040
|
+
quickEditSchema.onEvent = submitEvent;
|
|
59041
|
+
}
|
|
59042
|
+
|
|
58989
59043
|
if (field.disabled) {
|
|
58990
59044
|
quickEditSchema = false;
|
|
58991
59045
|
} else {
|
|
@@ -59219,6 +59273,14 @@ async function getQuickEditSchema(field, options){
|
|
|
59219
59273
|
}
|
|
59220
59274
|
|
|
59221
59275
|
});
|
|
59276
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
59277
|
+
quickEditSchema.body.push({
|
|
59278
|
+
"name": "isBatchEdit",
|
|
59279
|
+
"type": "checkbox",
|
|
59280
|
+
"option": "更新${COUNT(selectedItems)}个选定记录",
|
|
59281
|
+
"visibleOn": "${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1}"
|
|
59282
|
+
});
|
|
59283
|
+
}
|
|
59222
59284
|
} else {
|
|
59223
59285
|
quickEditSchema = false;
|
|
59224
59286
|
}
|
|
@@ -59284,7 +59346,7 @@ async function getTableColumns(fields, options){
|
|
|
59284
59346
|
{
|
|
59285
59347
|
"args": {
|
|
59286
59348
|
"api": {
|
|
59287
|
-
"url": "${context.rootUrl
|
|
59349
|
+
"url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
|
|
59288
59350
|
"method": "get",
|
|
59289
59351
|
"headers": {
|
|
59290
59352
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -59331,7 +59393,7 @@ async function getTableColumns(fields, options){
|
|
|
59331
59393
|
else if(field.type === 'select'){
|
|
59332
59394
|
const map = getSelectMap(field.options);
|
|
59333
59395
|
columnItem = Object.assign({}, {
|
|
59334
|
-
type: "mapping",
|
|
59396
|
+
type: "static-mapping",
|
|
59335
59397
|
name: field.name,
|
|
59336
59398
|
label: field.label,
|
|
59337
59399
|
map: map,
|
|
@@ -59346,7 +59408,7 @@ async function getTableColumns(fields, options){
|
|
|
59346
59408
|
const tpl = await getFieldTpl(field, options);
|
|
59347
59409
|
let type = 'text';
|
|
59348
59410
|
if(tpl){
|
|
59349
|
-
type = '
|
|
59411
|
+
type = 'static';
|
|
59350
59412
|
}else if(field.type === 'html'){
|
|
59351
59413
|
type = 'markdown';
|
|
59352
59414
|
}else if(field.type === 'url'){
|
|
@@ -59387,6 +59449,7 @@ async function getTableColumns(fields, options){
|
|
|
59387
59449
|
columnItem.quickEdit = quickEditSchema;
|
|
59388
59450
|
columnItem.quickEditEnabledOn = "${is_system !== true}";
|
|
59389
59451
|
}
|
|
59452
|
+
columnItem.id = `${options.objectName}_${field.name}_\${_index}`;
|
|
59390
59453
|
columns.push(columnItem);
|
|
59391
59454
|
}
|
|
59392
59455
|
}
|
|
@@ -59764,6 +59827,7 @@ async function getTableSchema$1(fields, options){
|
|
|
59764
59827
|
}
|
|
59765
59828
|
return {
|
|
59766
59829
|
mode: "cards",
|
|
59830
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
59767
59831
|
name: "thelist",
|
|
59768
59832
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
59769
59833
|
className: "",
|
|
@@ -59786,6 +59850,7 @@ async function getTableSchema$1(fields, options){
|
|
|
59786
59850
|
|
|
59787
59851
|
return {
|
|
59788
59852
|
mode: "table",
|
|
59853
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
59789
59854
|
name: "thelist",
|
|
59790
59855
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
59791
59856
|
className: "",
|
|
@@ -65324,6 +65389,10 @@ function MultipleContainers(props) {
|
|
|
65324
65389
|
};
|
|
65325
65390
|
}), 2), items = _w[0], setItems = _w[1];
|
|
65326
65391
|
var _x = __read(react.exports.useState(Object.keys(items)), 2), containers = _x[0], setContainers = _x[1];
|
|
65392
|
+
react.exports.useEffect(function () {
|
|
65393
|
+
setItems(value);
|
|
65394
|
+
setContainers(Object.keys(value));
|
|
65395
|
+
}, [value]);
|
|
65327
65396
|
var handleChange = function (newItems) { return __awaiter(_this, void 0, void 0, function () {
|
|
65328
65397
|
var value, rendererEvent;
|
|
65329
65398
|
return __generator(this, function (_a) {
|
|
@@ -65340,7 +65409,7 @@ function MultipleContainers(props) {
|
|
|
65340
65409
|
if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
|
|
65341
65410
|
return [2 /*return*/];
|
|
65342
65411
|
}
|
|
65343
|
-
setTimeout(function () { return amisOnChange(value); },
|
|
65412
|
+
setTimeout(function () { return amisOnChange(value); }, 500);
|
|
65344
65413
|
return [2 /*return*/];
|
|
65345
65414
|
}
|
|
65346
65415
|
});
|
|
@@ -65443,6 +65512,7 @@ function MultipleContainers(props) {
|
|
|
65443
65512
|
var active = _a.active, over = _a.over;
|
|
65444
65513
|
var overId = over === null || over === void 0 ? void 0 : over.id;
|
|
65445
65514
|
if (overId == null || overId === TRASH_ID || active.id in items) {
|
|
65515
|
+
// 拖动的是分组则跳过后面的逻辑
|
|
65446
65516
|
return;
|
|
65447
65517
|
}
|
|
65448
65518
|
var overContainer = findContainer(overId);
|
|
@@ -65520,14 +65590,37 @@ function MultipleContainers(props) {
|
|
|
65520
65590
|
var overContainer = findContainer(overId);
|
|
65521
65591
|
var newItems = items;
|
|
65522
65592
|
if (overContainer) {
|
|
65523
|
-
|
|
65524
|
-
|
|
65525
|
-
|
|
65526
|
-
|
|
65527
|
-
|
|
65528
|
-
|
|
65529
|
-
|
|
65530
|
-
|
|
65593
|
+
if (activeContainer !== overContainer) {
|
|
65594
|
+
// 拖动变更分组之间的顺序时,activeContainer 与 overContainer 值不相等
|
|
65595
|
+
setTimeout(function () {
|
|
65596
|
+
var sortedGroups = over.data.current.sortable.items; //不加setTimeout的话,这里拿到的会是变更前的数据
|
|
65597
|
+
newItems = {};
|
|
65598
|
+
sortedGroups.forEach(function (groupKey) {
|
|
65599
|
+
newItems[groupKey] = items[groupKey];
|
|
65600
|
+
});
|
|
65601
|
+
delete newItems[TRASH_ID];
|
|
65602
|
+
delete newItems[PLACEHOLDER_ID];
|
|
65603
|
+
if (lodash.exports.keys(items).join(",") !== lodash.exports.keys(newItems).join(",")) {
|
|
65604
|
+
// 只有顺序发生变化时才触发change事件
|
|
65605
|
+
setItems(newItems);
|
|
65606
|
+
// console.log('拖动结束2,更新form value')
|
|
65607
|
+
handleChange(newItems);
|
|
65608
|
+
}
|
|
65609
|
+
setActiveId(null);
|
|
65610
|
+
}, 500);
|
|
65611
|
+
return;
|
|
65612
|
+
}
|
|
65613
|
+
else {
|
|
65614
|
+
// 同一个分组中字段顺序变更以及把一个字段从某个分组拖动到另一个分组内时,activeContainer 与 overContainer 值相等
|
|
65615
|
+
var activeIndex_1 = items[activeContainer].indexOf(active.id);
|
|
65616
|
+
var overIndex_1 = items[overContainer].indexOf(overId);
|
|
65617
|
+
if (activeIndex_1 !== overIndex_1) {
|
|
65618
|
+
setItems(function (items) {
|
|
65619
|
+
var _a;
|
|
65620
|
+
newItems = __assign$1(__assign$1({}, items), (_a = {}, _a[overContainer] = arrayMove(items[overContainer], activeIndex_1, overIndex_1), _a));
|
|
65621
|
+
return newItems;
|
|
65622
|
+
});
|
|
65623
|
+
}
|
|
65531
65624
|
}
|
|
65532
65625
|
}
|
|
65533
65626
|
setActiveId(null);
|