@steedos-widgets/sortable 1.3.22-beta.3 → 3.6.0-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 +5 -5
- package/dist/sortable.cjs.js +285 -70
- package/dist/sortable.cjs.js.map +1 -1
- package/dist/sortable.esm.js +285 -70
- package/dist/sortable.esm.js.map +1 -1
- package/dist/sortable.umd.js +285 -70
- package/package.json +3 -3
package/dist/sortable.cjs.js
CHANGED
|
@@ -53979,8 +53979,8 @@ const Router = {
|
|
|
53979
53979
|
/*
|
|
53980
53980
|
* @Author: baozhoutao@steedos.com
|
|
53981
53981
|
* @Date: 2022-07-20 16:29:22
|
|
53982
|
-
* @LastEditors:
|
|
53983
|
-
* @LastEditTime: 2023-
|
|
53982
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
53983
|
+
* @LastEditTime: 2023-12-28 14:59:08
|
|
53984
53984
|
* @Description:
|
|
53985
53985
|
*/
|
|
53986
53986
|
|
|
@@ -54037,6 +54037,21 @@ function getLookupListView(refObjectConfig) {
|
|
|
54037
54037
|
return listView;
|
|
54038
54038
|
}
|
|
54039
54039
|
|
|
54040
|
+
|
|
54041
|
+
/**
|
|
54042
|
+
* 获取可比较的amis版本号
|
|
54043
|
+
* @returns 只返回前两位版本,第三位忽略,比如3.6.3返回3.6
|
|
54044
|
+
*/
|
|
54045
|
+
function getComparableAmisVersion() {
|
|
54046
|
+
let amis = (window.amisRequire && window.amisRequire('amis')) || window.Amis;
|
|
54047
|
+
let amisVersion = amis && amis.version;
|
|
54048
|
+
if(amisVersion){
|
|
54049
|
+
let comparableVersions = amisVersion.split(".");
|
|
54050
|
+
let comparableVersion = parseFloat(comparableVersions[0].toString() + "." + comparableVersions[1].toString());
|
|
54051
|
+
return comparableVersion;
|
|
54052
|
+
}
|
|
54053
|
+
}
|
|
54054
|
+
|
|
54040
54055
|
function getNumberTpl(field){
|
|
54041
54056
|
return `<span>\${_display.${field.name}}</span>`
|
|
54042
54057
|
}
|
|
@@ -54105,7 +54120,7 @@ function getNameTpl(field, ctx){
|
|
|
54105
54120
|
if(ctx && ctx.isLookup){
|
|
54106
54121
|
linkTarget = "target='_blank'";
|
|
54107
54122
|
}
|
|
54108
|
-
return `<a href="${href}" ${linkTarget}>\${${field.name}}</a>`
|
|
54123
|
+
return `<a href="${href}" ${linkTarget}>\${${field.name} | raw}</a>`
|
|
54109
54124
|
}
|
|
54110
54125
|
|
|
54111
54126
|
function getRelatedFieldTpl(field, ctx){
|
|
@@ -54430,7 +54445,7 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
54430
54445
|
* @Author: baozhoutao@steedos.com
|
|
54431
54446
|
* @Date: 2022-10-28 14:15:09
|
|
54432
54447
|
* @LastEditors: liaodaxue
|
|
54433
|
-
* @LastEditTime: 2023-
|
|
54448
|
+
* @LastEditTime: 2023-12-29 10:46:50
|
|
54434
54449
|
* @Description:
|
|
54435
54450
|
*/
|
|
54436
54451
|
|
|
@@ -54484,7 +54499,8 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
54484
54499
|
dataType: "form-data",
|
|
54485
54500
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
54486
54501
|
requestAdaptor: `
|
|
54487
|
-
const
|
|
54502
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
54503
|
+
const { _master, global } = superData;
|
|
54488
54504
|
// const { recordId, objectName } = _master;
|
|
54489
54505
|
const { spaceId, userId, user } = global;
|
|
54490
54506
|
/*
|
|
@@ -54502,8 +54518,9 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
54502
54518
|
return api;
|
|
54503
54519
|
`,
|
|
54504
54520
|
adaptor: `
|
|
54505
|
-
const
|
|
54506
|
-
|
|
54521
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
54522
|
+
const { context:pageContext } = superData;
|
|
54523
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${tableName}/";
|
|
54507
54524
|
payload = {
|
|
54508
54525
|
status: response.status == 200 ? 0 : response.status,
|
|
54509
54526
|
msg: response.statusText,
|
|
@@ -54969,7 +54986,6 @@ async function getQuickEditSchema(field, options){
|
|
|
54969
54986
|
{
|
|
54970
54987
|
"actionType": "custom",
|
|
54971
54988
|
"script": `
|
|
54972
|
-
|
|
54973
54989
|
var _display = _.cloneDeep(event.data._display);
|
|
54974
54990
|
${displayField}
|
|
54975
54991
|
doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${quickEditId}"});
|
|
@@ -55107,8 +55123,9 @@ async function getQuickEditSchema(field, options){
|
|
|
55107
55123
|
case "avatar":
|
|
55108
55124
|
case "image":
|
|
55109
55125
|
quickEditSchema.body[0].receiver.adaptor = `
|
|
55110
|
-
const
|
|
55111
|
-
|
|
55126
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
55127
|
+
const { context:pageContext } = superData;
|
|
55128
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${field.type}s/";
|
|
55112
55129
|
payload = {
|
|
55113
55130
|
status: response.status == 200 ? 0 : response.status,
|
|
55114
55131
|
msg: response.statusText,
|
|
@@ -55139,9 +55156,26 @@ async function getQuickEditSchema(field, options){
|
|
|
55139
55156
|
"onEvent":{
|
|
55140
55157
|
"init":{
|
|
55141
55158
|
"actions":[
|
|
55159
|
+
//amis3.6无法从数据域中直接拿到正确的selectitems,需要通过crud组件的getSelected()函数获取
|
|
55160
|
+
{
|
|
55161
|
+
"actionType": "custom",
|
|
55162
|
+
"script": `
|
|
55163
|
+
crudScoped = event.context.scoped.getComponentById('${options.crudId}');
|
|
55164
|
+
const selectedItems = crudScoped && crudScoped.control.getSelected();
|
|
55165
|
+
doAction({
|
|
55166
|
+
"componentId": "${quickEditId}",
|
|
55167
|
+
"actionType": "setValue",
|
|
55168
|
+
"args": {
|
|
55169
|
+
"value": {
|
|
55170
|
+
selectedItems
|
|
55171
|
+
}
|
|
55172
|
+
}
|
|
55173
|
+
});
|
|
55174
|
+
`
|
|
55175
|
+
},
|
|
55142
55176
|
{
|
|
55143
55177
|
"actionType": "setValue",
|
|
55144
|
-
"componentId":
|
|
55178
|
+
"componentId": quickEditId,
|
|
55145
55179
|
"args": {
|
|
55146
55180
|
"value":{
|
|
55147
55181
|
"quickedit_record_permissions_loading": true
|
|
@@ -55166,7 +55200,7 @@ async function getQuickEditSchema(field, options){
|
|
|
55166
55200
|
},
|
|
55167
55201
|
{
|
|
55168
55202
|
"actionType": "setValue",
|
|
55169
|
-
"componentId":
|
|
55203
|
+
"componentId": quickEditId,
|
|
55170
55204
|
"args": {
|
|
55171
55205
|
"value":{
|
|
55172
55206
|
"quickedit_record_permissions_loading": false
|
|
@@ -55175,7 +55209,7 @@ async function getQuickEditSchema(field, options){
|
|
|
55175
55209
|
},
|
|
55176
55210
|
{
|
|
55177
55211
|
"actionType": "setValue",
|
|
55178
|
-
"componentId":
|
|
55212
|
+
"componentId": quickEditId,
|
|
55179
55213
|
"args": {
|
|
55180
55214
|
"value":{
|
|
55181
55215
|
"quickedit_record_permissions": "${event.data}"
|
|
@@ -55354,8 +55388,6 @@ function getFieldWidth(width){
|
|
|
55354
55388
|
async function getTableColumns(fields, options){
|
|
55355
55389
|
const columns = [];
|
|
55356
55390
|
if(!options.isLookup && !options.isInputTable){
|
|
55357
|
-
//将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
|
|
55358
|
-
columns.push({name: '_display',type: 'static', width: 32, placeholder: "",id: "_display_${_index}", className: "hidden"});
|
|
55359
55391
|
if(!options.enable_tree){
|
|
55360
55392
|
columns.push({name: '_index',type: 'text', width: 32, placeholder: ""});
|
|
55361
55393
|
}
|
|
@@ -55513,8 +55545,8 @@ async function getTableColumns(fields, options){
|
|
|
55513
55545
|
const href = Router.getObjectDetailPath({
|
|
55514
55546
|
...options, formFactor: options.formFactor, appId: "${appId}", objectName: options.objectName || "${objectName}", recordId: `\${${options.idFieldName}}`
|
|
55515
55547
|
});
|
|
55516
|
-
columns[
|
|
55517
|
-
columns[
|
|
55548
|
+
columns[0].type = "tpl";
|
|
55549
|
+
columns[0].tpl = `<a href="${href}">\${${columns[0].name}}</a>`;
|
|
55518
55550
|
}
|
|
55519
55551
|
return columns;
|
|
55520
55552
|
}
|
|
@@ -55773,7 +55805,7 @@ async function getTableOperation(ctx){
|
|
|
55773
55805
|
type: 'steedos-object-button',
|
|
55774
55806
|
name: button.name,
|
|
55775
55807
|
objectName: button.objectName,
|
|
55776
|
-
|
|
55808
|
+
visibleOnAlias: getButtonVisibleOn$1(button),
|
|
55777
55809
|
className: 'antd-Button--default'
|
|
55778
55810
|
});
|
|
55779
55811
|
});
|
|
@@ -55898,8 +55930,18 @@ async function getTableSchema$1(fields, options){
|
|
|
55898
55930
|
}
|
|
55899
55931
|
|
|
55900
55932
|
if(!isLookup && !hiddenColumnOperation){
|
|
55901
|
-
|
|
55933
|
+
const toolbarOperation = await getTableOperation(options);
|
|
55934
|
+
columns.push(toolbarOperation);
|
|
55902
55935
|
}
|
|
55936
|
+
|
|
55937
|
+
}
|
|
55938
|
+
|
|
55939
|
+
const treeConfig = {};
|
|
55940
|
+
|
|
55941
|
+
if(options.enable_tree){
|
|
55942
|
+
treeConfig.expandConfig = {
|
|
55943
|
+
expand: 'first'
|
|
55944
|
+
};
|
|
55903
55945
|
}
|
|
55904
55946
|
|
|
55905
55947
|
return {
|
|
@@ -55917,6 +55959,7 @@ async function getTableSchema$1(fields, options){
|
|
|
55917
55959
|
labelTpl: `\${${options.labelFieldName}}`,
|
|
55918
55960
|
autoFillHeight: false, // 自动高度效果不理想,先关闭
|
|
55919
55961
|
columnsTogglable: false,
|
|
55962
|
+
...treeConfig
|
|
55920
55963
|
}
|
|
55921
55964
|
}
|
|
55922
55965
|
|
|
@@ -56381,12 +56424,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56381
56424
|
// }
|
|
56382
56425
|
// listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
|
|
56383
56426
|
// 点击搜索的时候自动收起搜索栏
|
|
56384
|
-
|
|
56385
|
-
|
|
56386
|
-
|
|
56387
|
-
|
|
56388
|
-
|
|
56389
|
-
|
|
56427
|
+
//触发amis crud 高度重算
|
|
56428
|
+
doAction({
|
|
56429
|
+
"actionType": "broadcast",
|
|
56430
|
+
"args": {
|
|
56431
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56432
|
+
},
|
|
56433
|
+
"data": {
|
|
56434
|
+
"timeOut": 500
|
|
56435
|
+
}
|
|
56436
|
+
});
|
|
56390
56437
|
const filterService = filterForm.context.getComponents().find(function(n){
|
|
56391
56438
|
return n.props.type === "service";
|
|
56392
56439
|
});
|
|
@@ -56419,6 +56466,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56419
56466
|
`;
|
|
56420
56467
|
const onCancelScript = `
|
|
56421
56468
|
// console.log("===onCancelScript=form==");
|
|
56469
|
+
let isLookup = event.data.isLookup;
|
|
56470
|
+
let __lookupField = event.data.__lookupField;
|
|
56422
56471
|
const scope = event.context.scoped;
|
|
56423
56472
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
56424
56473
|
return n.props.type === "form";
|
|
@@ -56466,16 +56515,36 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56466
56515
|
// });
|
|
56467
56516
|
|
|
56468
56517
|
// 清除__changedFilterFormValues中的值
|
|
56469
|
-
crud && crud.setData({__changedFilterFormValues: {}});
|
|
56518
|
+
// crud && crud.setData({__changedFilterFormValues: {}});
|
|
56519
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
56520
|
+
if(isLookup && __lookupField){
|
|
56521
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
56522
|
+
if(__lookupField.reference_to_field){
|
|
56523
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
56524
|
+
}
|
|
56525
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
56526
|
+
}
|
|
56527
|
+
if(crud){
|
|
56528
|
+
let crudData = crud.getData();
|
|
56529
|
+
crudData[__changedFilterFormValuesKey] = {};
|
|
56530
|
+
crud.setData(crudData);
|
|
56531
|
+
}
|
|
56470
56532
|
filterForm.handleFormSubmit(event);
|
|
56471
56533
|
// crud.handleFilterSubmit(removedValues);
|
|
56472
56534
|
|
|
56473
56535
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
56474
56536
|
filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
|
|
56475
56537
|
//触发amis crud 高度重算
|
|
56476
|
-
|
|
56477
|
-
|
|
56478
|
-
|
|
56538
|
+
doAction({
|
|
56539
|
+
"actionType": "broadcast",
|
|
56540
|
+
"args": {
|
|
56541
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56542
|
+
},
|
|
56543
|
+
"data": {
|
|
56544
|
+
"timeOut": 100
|
|
56545
|
+
}
|
|
56546
|
+
});
|
|
56547
|
+
|
|
56479
56548
|
// 移除搜索按钮上的红点
|
|
56480
56549
|
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
56481
56550
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
@@ -56632,9 +56701,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56632
56701
|
sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
|
|
56633
56702
|
}
|
|
56634
56703
|
//触发amis crud 高度重算
|
|
56635
|
-
|
|
56636
|
-
|
|
56637
|
-
|
|
56704
|
+
doAction({
|
|
56705
|
+
"actionType": "broadcast",
|
|
56706
|
+
"args": {
|
|
56707
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56708
|
+
},
|
|
56709
|
+
"data": {
|
|
56710
|
+
"timeOut": 100
|
|
56711
|
+
}
|
|
56712
|
+
});
|
|
56638
56713
|
// ===END===
|
|
56639
56714
|
`;
|
|
56640
56715
|
return {
|
|
@@ -57876,13 +57951,16 @@ const filterService = filterForm.context.getComponents().find(function(n){
|
|
|
57876
57951
|
});
|
|
57877
57952
|
let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
|
|
57878
57953
|
filterService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
57879
|
-
|
|
57880
|
-
|
|
57881
|
-
|
|
57882
|
-
|
|
57883
|
-
|
|
57884
|
-
}
|
|
57885
|
-
|
|
57954
|
+
//触发amis crud 高度重算
|
|
57955
|
+
doAction({
|
|
57956
|
+
"actionType": "broadcast",
|
|
57957
|
+
"args": {
|
|
57958
|
+
"eventName": "@height.changed." + event.data.objectName
|
|
57959
|
+
},
|
|
57960
|
+
"data": {
|
|
57961
|
+
"timeOut": 1000
|
|
57962
|
+
}
|
|
57963
|
+
});
|
|
57886
57964
|
// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
57887
57965
|
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
57888
57966
|
crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
@@ -57933,7 +58011,12 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57933
58011
|
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
57934
58012
|
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
57935
58013
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
57936
|
-
crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
58014
|
+
// crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
58015
|
+
if(crud){
|
|
58016
|
+
let crudData = crud.getData();
|
|
58017
|
+
crudData.__changedSearchBoxValues = __changedSearchBoxValues;
|
|
58018
|
+
crud.setData(crudData);
|
|
58019
|
+
}
|
|
57937
58020
|
`;
|
|
57938
58021
|
|
|
57939
58022
|
// onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
|
|
@@ -57946,9 +58029,19 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57946
58029
|
// const scope = event.context.scoped;
|
|
57947
58030
|
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
57948
58031
|
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
58032
|
+
let isLookup = event.data.isLookup;
|
|
58033
|
+
let __lookupField = event.data.__lookupField;
|
|
58034
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
58035
|
+
if(isLookup && __lookupField){
|
|
58036
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
58037
|
+
if(__lookupField.reference_to_field){
|
|
58038
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
58039
|
+
}
|
|
58040
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
58041
|
+
}
|
|
57949
58042
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
57950
58043
|
setTimeout(function(){
|
|
57951
|
-
filterForm.setValues(event.data
|
|
58044
|
+
filterForm.setValues(event.data[__changedFilterFormValuesKey]);
|
|
57952
58045
|
}, 500);
|
|
57953
58046
|
`;
|
|
57954
58047
|
|
|
@@ -57969,8 +58062,8 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57969
58062
|
"name": keywordsSearchBoxName,
|
|
57970
58063
|
"placeholder": "搜索此列表",
|
|
57971
58064
|
"value": crudKeywords,
|
|
57972
|
-
"clearable": true
|
|
57973
|
-
|
|
58065
|
+
// "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
58066
|
+
"clearAndSubmit": true,
|
|
57974
58067
|
"searchImediately": false,
|
|
57975
58068
|
"onEvent": {
|
|
57976
58069
|
"search": {
|
|
@@ -58231,12 +58324,16 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
58231
58324
|
return;
|
|
58232
58325
|
}
|
|
58233
58326
|
// 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏
|
|
58234
|
-
|
|
58235
|
-
|
|
58236
|
-
|
|
58237
|
-
|
|
58238
|
-
|
|
58239
|
-
|
|
58327
|
+
//触发amis crud 高度重算
|
|
58328
|
+
doAction({
|
|
58329
|
+
"actionType": "broadcast",
|
|
58330
|
+
"args": {
|
|
58331
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
58332
|
+
},
|
|
58333
|
+
"data": {
|
|
58334
|
+
"timeOut": 1000
|
|
58335
|
+
}
|
|
58336
|
+
});
|
|
58240
58337
|
resizeWindow();
|
|
58241
58338
|
const scope = event.context.scoped;
|
|
58242
58339
|
// let filterFormValues = event.data;
|
|
@@ -58250,18 +58347,34 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
58250
58347
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
58251
58348
|
`;
|
|
58252
58349
|
let onChangeScript = `
|
|
58350
|
+
let isLookup = event.data.isLookup;
|
|
58351
|
+
let __lookupField = event.data.__lookupField;
|
|
58253
58352
|
const scope = event.context.scoped;
|
|
58254
58353
|
// let filterFormValues = event.data;
|
|
58255
58354
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
58256
58355
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
58257
58356
|
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
58258
58357
|
let filterFormValues = filterFormService.getData();
|
|
58358
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
58259
58359
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
58260
58360
|
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
58261
58361
|
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
58262
58362
|
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58263
58363
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
58264
|
-
crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58364
|
+
// crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58365
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
58366
|
+
if(isLookup && __lookupField){
|
|
58367
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
58368
|
+
if(__lookupField.reference_to_field){
|
|
58369
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
58370
|
+
}
|
|
58371
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
58372
|
+
}
|
|
58373
|
+
if(crud){
|
|
58374
|
+
let crudData = crud.getData();
|
|
58375
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
58376
|
+
crud.setData(crudData);
|
|
58377
|
+
}
|
|
58265
58378
|
`;
|
|
58266
58379
|
return {
|
|
58267
58380
|
"title": "",
|
|
@@ -58864,6 +58977,60 @@ function getReferenceToSync(field) {
|
|
|
58864
58977
|
}
|
|
58865
58978
|
|
|
58866
58979
|
function getLookupSapceUserTreeSchema(isMobile){
|
|
58980
|
+
let apiAdaptor = `
|
|
58981
|
+
// console.log("===getLookupSapceUserTreeSchema===", JSON.stringify(payload));
|
|
58982
|
+
const records = payload.data.options;
|
|
58983
|
+
let isTreeOptionsComputed = false;
|
|
58984
|
+
if(records.length === 1 && records[0].children){
|
|
58985
|
+
isTreeOptionsComputed = true;
|
|
58986
|
+
}
|
|
58987
|
+
if(isTreeOptionsComputed){
|
|
58988
|
+
return payload;
|
|
58989
|
+
}
|
|
58990
|
+
const treeRecords = [];
|
|
58991
|
+
const getChildren = (records, childrenIds) => {
|
|
58992
|
+
if (!childrenIds) {
|
|
58993
|
+
return;
|
|
58994
|
+
}
|
|
58995
|
+
const children = _.filter(records, (record) => {
|
|
58996
|
+
return _.includes(childrenIds, record.value)
|
|
58997
|
+
});
|
|
58998
|
+
_.each(children, (item) => {
|
|
58999
|
+
if (item.children) {
|
|
59000
|
+
item.children = getChildren(records, item.children)
|
|
59001
|
+
}else{
|
|
59002
|
+
item.children = [];
|
|
59003
|
+
}
|
|
59004
|
+
})
|
|
59005
|
+
return children;
|
|
59006
|
+
}
|
|
59007
|
+
|
|
59008
|
+
const getRoot = (records) => {
|
|
59009
|
+
for (var i = 0; i < records.length; i++) {
|
|
59010
|
+
records[i].noParent = 0;
|
|
59011
|
+
if (!!records[i].parent) {
|
|
59012
|
+
biaozhi = 1
|
|
59013
|
+
for (var j = 0; j < records.length; j++) {
|
|
59014
|
+
if (records[i].parent == records[j].value)
|
|
59015
|
+
biaozhi = 0;
|
|
59016
|
+
}
|
|
59017
|
+
if (biaozhi == 1) records[i].noParent = 1;
|
|
59018
|
+
} else records[i].noParent = 1;
|
|
59019
|
+
}
|
|
59020
|
+
}
|
|
59021
|
+
getRoot(records);
|
|
59022
|
+
console.log(records)
|
|
59023
|
+
|
|
59024
|
+
_.each(records, (record) => {
|
|
59025
|
+
if (record.noParent == 1) {
|
|
59026
|
+
treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));
|
|
59027
|
+
}
|
|
59028
|
+
});
|
|
59029
|
+
console.log(treeRecords)
|
|
59030
|
+
|
|
59031
|
+
payload.data.options = treeRecords;
|
|
59032
|
+
return payload;
|
|
59033
|
+
`;
|
|
58867
59034
|
const treeSchema = {
|
|
58868
59035
|
"type": "input-tree",
|
|
58869
59036
|
"className":"steedos-select-user-tree",
|
|
@@ -58874,8 +59041,7 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
58874
59041
|
"headers": {
|
|
58875
59042
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
58876
59043
|
},
|
|
58877
|
-
"adaptor":
|
|
58878
|
-
"requestAdaptor": "\n ",
|
|
59044
|
+
"adaptor": apiAdaptor,
|
|
58879
59045
|
"data": {
|
|
58880
59046
|
"query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
|
|
58881
59047
|
},
|
|
@@ -59076,13 +59242,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59076
59242
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
59077
59243
|
|
|
59078
59244
|
source.requestAdaptor = `
|
|
59079
|
-
let
|
|
59245
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
59246
|
+
let __lookupField = api.data.$self.__lookupField;
|
|
59247
|
+
if(__lookupField){
|
|
59248
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
59249
|
+
if(__lookupField.reference_to_field){
|
|
59250
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
59251
|
+
}
|
|
59252
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
59253
|
+
}
|
|
59254
|
+
let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};
|
|
59080
59255
|
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
59081
59256
|
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
59082
59257
|
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
59083
59258
|
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
59084
59259
|
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
59085
|
-
|
|
59260
|
+
if(api.data.$self.op !== 'loadOptions'){
|
|
59261
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
59262
|
+
}
|
|
59086
59263
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
59087
59264
|
var filters = [];
|
|
59088
59265
|
var pageSize = api.data.pageSize || 10;
|
|
@@ -59177,8 +59354,19 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59177
59354
|
})
|
|
59178
59355
|
payload.data.rows = rows;
|
|
59179
59356
|
*/
|
|
59357
|
+
if(enable_tree){
|
|
59358
|
+
const rows = _.map(payload.data.rows, (item)=>{
|
|
59359
|
+
delete item.children;
|
|
59360
|
+
delete item.parent;
|
|
59361
|
+
return item;
|
|
59362
|
+
})
|
|
59363
|
+
payload.data.rows = rows;
|
|
59364
|
+
}
|
|
59180
59365
|
return payload;
|
|
59181
59366
|
}
|
|
59367
|
+
if(!payload.data.rows){
|
|
59368
|
+
payload.data.rows = [];
|
|
59369
|
+
}
|
|
59182
59370
|
if(enable_tree){
|
|
59183
59371
|
const records = payload.data.rows;
|
|
59184
59372
|
const treeRecords = [];
|
|
@@ -59205,6 +59393,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59205
59393
|
_.each(children, (item)=>{
|
|
59206
59394
|
if(item.children){
|
|
59207
59395
|
item.children = getChildren(records, item.children)
|
|
59396
|
+
}else{
|
|
59397
|
+
item.children = [];
|
|
59208
59398
|
}
|
|
59209
59399
|
})
|
|
59210
59400
|
return children;
|
|
@@ -59217,14 +59407,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59217
59407
|
}
|
|
59218
59408
|
});
|
|
59219
59409
|
payload.data.rows = treeRecords;
|
|
59220
|
-
try{
|
|
59221
|
-
setTimeout(() => {
|
|
59222
|
-
$('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
|
|
59223
|
-
}, 600);
|
|
59224
|
-
}
|
|
59225
|
-
catch(ex){
|
|
59226
|
-
console.error("tree数据格式展开异常:", ex);
|
|
59227
|
-
}
|
|
59228
59410
|
}
|
|
59229
59411
|
return payload;
|
|
59230
59412
|
`;
|
|
@@ -59251,6 +59433,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59251
59433
|
labelFieldName,
|
|
59252
59434
|
top: top,
|
|
59253
59435
|
isLookup: true,
|
|
59436
|
+
enable_tree: refObjectConfig.enable_tree,
|
|
59254
59437
|
...ctx
|
|
59255
59438
|
});
|
|
59256
59439
|
|
|
@@ -59266,7 +59449,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59266
59449
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
59267
59450
|
const isCreate = lodash.exports.isBoolean(field.create) ? field.create : true;
|
|
59268
59451
|
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
59269
|
-
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
59452
|
+
let isHasFilters = (field.filters || field.filtersFunction || field._filtersFunction) ? true : false;
|
|
59270
59453
|
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
59271
59454
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
59272
59455
|
new_button.align = "right";
|
|
@@ -59286,7 +59469,12 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59286
59469
|
"objectName": refObjectConfig.name,
|
|
59287
59470
|
"uiSchema": refObjectConfig,
|
|
59288
59471
|
"listName": listName,// 需要按视图取可搜索项
|
|
59289
|
-
"isLookup": true
|
|
59472
|
+
"isLookup": true,
|
|
59473
|
+
"__lookupField": {
|
|
59474
|
+
"name": field.name,
|
|
59475
|
+
"reference_to": refObjectConfig.name,
|
|
59476
|
+
"reference_to_field": field.reference_to_field
|
|
59477
|
+
}
|
|
59290
59478
|
});
|
|
59291
59479
|
|
|
59292
59480
|
if(!pickerSchema.onEvent){
|
|
@@ -59459,7 +59647,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
59459
59647
|
sendOn.push(`this.${fName}`);
|
|
59460
59648
|
});
|
|
59461
59649
|
if(depend_on.length > 0){
|
|
59462
|
-
apiInfo.url = `${apiInfo.url}
|
|
59650
|
+
apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
|
|
59463
59651
|
apiInfo.sendOn = `${sendOn.join(' && ')}`;
|
|
59464
59652
|
}
|
|
59465
59653
|
}
|
|
@@ -59567,6 +59755,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
59567
59755
|
autoComplete: apiInfo,
|
|
59568
59756
|
searchable: true,
|
|
59569
59757
|
};
|
|
59758
|
+
let amisVersion = getComparableAmisVersion();
|
|
59759
|
+
if(amisVersion >= 3.6){
|
|
59760
|
+
// amis 3.6中不加source会造成子表组件中弹出行编辑窗口的lookup字段有时不请求接口(概率现象,同一个地方反复操作有时请求有时不请求)
|
|
59761
|
+
// 但是同时配置autoComplete和source会多请求一次接口
|
|
59762
|
+
// TODO:应该想办法把是否字段在子表组件内,即ctx.isInputTable,如果不在子表组件内不需要加source
|
|
59763
|
+
data.source = apiInfo;
|
|
59764
|
+
}
|
|
59570
59765
|
//删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
|
|
59571
59766
|
const select_menuTpl = `<span class='flex items-center mt-0.5'>
|
|
59572
59767
|
<span role='img' aria-label='smile' class='anticon anticon-smile'>
|
|
@@ -59648,18 +59843,37 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
59648
59843
|
|
|
59649
59844
|
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
59650
59845
|
let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
59846
|
+
let amisVersion = getComparableAmisVersion();
|
|
59847
|
+
if(amisVersion >= 3.6){
|
|
59848
|
+
// amis 3.6.3单选和多选的树picker都有bug(https://github.com/baidu/amis/issues/9279,https://github.com/baidu/amis/issues/9295),我们改amis源码修正了
|
|
59849
|
+
// amis 3.6.3多选的下拉树组件有bug,多选树字段的选中值在编辑模式展开树时不会自动勾选树里面的节点,而是始终勾选显示在最外面的选中值选项(即defaultValueOptions),amis 3.2没有这个问题
|
|
59850
|
+
// 这里强制禁用多选下拉树,统一改为弹出树,如果以后需要下拉树功能,可以把下拉树组件改为一次性加载所有树节点数据模式来跳过这个问题
|
|
59851
|
+
if(!enableEnhancedLookup && refObject.enable_tree && field.multiple){
|
|
59852
|
+
enableEnhancedLookup = true;
|
|
59853
|
+
}
|
|
59854
|
+
}
|
|
59855
|
+
let amisSchema;
|
|
59651
59856
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
59652
59857
|
if(enableEnhancedLookup == true){
|
|
59653
|
-
|
|
59858
|
+
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
59654
59859
|
}else if(refObject.enable_tree) {
|
|
59655
|
-
|
|
59860
|
+
amisSchema = await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
59656
59861
|
labelField: referenceTo.labelField?.name || 'name',
|
|
59657
59862
|
valueField: referenceTo.valueField?.name || '_id',
|
|
59658
59863
|
objectName: referenceTo.objectName
|
|
59659
59864
|
}));
|
|
59660
59865
|
}else {
|
|
59661
|
-
|
|
59866
|
+
amisSchema = await lookupToAmisSelect(field, readonly, ctx);
|
|
59662
59867
|
}
|
|
59868
|
+
let refLookupPage = refObject.pages && refObject.pages.lookup;
|
|
59869
|
+
if(refLookupPage){
|
|
59870
|
+
if(typeof refLookupPage == 'string'){
|
|
59871
|
+
refLookupPage = JSON.parse(refLookupPage);
|
|
59872
|
+
}
|
|
59873
|
+
// Object.assign(amisSchema, refLookupPage);
|
|
59874
|
+
// amisSchema = _.defaultsDeep({}, refLookupPage, amisSchema);
|
|
59875
|
+
}
|
|
59876
|
+
return amisSchema;
|
|
59663
59877
|
}
|
|
59664
59878
|
|
|
59665
59879
|
async function lookupToAmisIdsPicker(field, readonly, ctx){
|
|
@@ -60297,7 +60511,8 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
60297
60511
|
},
|
|
60298
60512
|
pipeOut: (value, oldValue, data) => {
|
|
60299
60513
|
if(value){
|
|
60300
|
-
|
|
60514
|
+
const result = value/100;
|
|
60515
|
+
return Number(result.toFixed(field.scale+2));
|
|
60301
60516
|
}
|
|
60302
60517
|
return value;
|
|
60303
60518
|
},
|
|
@@ -60529,7 +60744,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
60529
60744
|
}
|
|
60530
60745
|
if(!lodash.exports.isEmpty(convertData)){
|
|
60531
60746
|
if(field.is_wide || convertData.type === 'group'){
|
|
60532
|
-
convertData.className = 'col-span-2 m-
|
|
60747
|
+
convertData.className = 'col-span-2 m-0';
|
|
60533
60748
|
}else {
|
|
60534
60749
|
convertData.className = 'm-1';
|
|
60535
60750
|
}
|