@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.esm.js
CHANGED
|
@@ -53975,8 +53975,8 @@ const Router = {
|
|
|
53975
53975
|
/*
|
|
53976
53976
|
* @Author: baozhoutao@steedos.com
|
|
53977
53977
|
* @Date: 2022-07-20 16:29:22
|
|
53978
|
-
* @LastEditors:
|
|
53979
|
-
* @LastEditTime: 2023-
|
|
53978
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
53979
|
+
* @LastEditTime: 2023-12-28 14:59:08
|
|
53980
53980
|
* @Description:
|
|
53981
53981
|
*/
|
|
53982
53982
|
|
|
@@ -54033,6 +54033,21 @@ function getLookupListView(refObjectConfig) {
|
|
|
54033
54033
|
return listView;
|
|
54034
54034
|
}
|
|
54035
54035
|
|
|
54036
|
+
|
|
54037
|
+
/**
|
|
54038
|
+
* 获取可比较的amis版本号
|
|
54039
|
+
* @returns 只返回前两位版本,第三位忽略,比如3.6.3返回3.6
|
|
54040
|
+
*/
|
|
54041
|
+
function getComparableAmisVersion() {
|
|
54042
|
+
let amis = (window.amisRequire && window.amisRequire('amis')) || window.Amis;
|
|
54043
|
+
let amisVersion = amis && amis.version;
|
|
54044
|
+
if(amisVersion){
|
|
54045
|
+
let comparableVersions = amisVersion.split(".");
|
|
54046
|
+
let comparableVersion = parseFloat(comparableVersions[0].toString() + "." + comparableVersions[1].toString());
|
|
54047
|
+
return comparableVersion;
|
|
54048
|
+
}
|
|
54049
|
+
}
|
|
54050
|
+
|
|
54036
54051
|
function getNumberTpl(field){
|
|
54037
54052
|
return `<span>\${_display.${field.name}}</span>`
|
|
54038
54053
|
}
|
|
@@ -54101,7 +54116,7 @@ function getNameTpl(field, ctx){
|
|
|
54101
54116
|
if(ctx && ctx.isLookup){
|
|
54102
54117
|
linkTarget = "target='_blank'";
|
|
54103
54118
|
}
|
|
54104
|
-
return `<a href="${href}" ${linkTarget}>\${${field.name}}</a>`
|
|
54119
|
+
return `<a href="${href}" ${linkTarget}>\${${field.name} | raw}</a>`
|
|
54105
54120
|
}
|
|
54106
54121
|
|
|
54107
54122
|
function getRelatedFieldTpl(field, ctx){
|
|
@@ -54426,7 +54441,7 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
54426
54441
|
* @Author: baozhoutao@steedos.com
|
|
54427
54442
|
* @Date: 2022-10-28 14:15:09
|
|
54428
54443
|
* @LastEditors: liaodaxue
|
|
54429
|
-
* @LastEditTime: 2023-
|
|
54444
|
+
* @LastEditTime: 2023-12-29 10:46:50
|
|
54430
54445
|
* @Description:
|
|
54431
54446
|
*/
|
|
54432
54447
|
|
|
@@ -54480,7 +54495,8 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
54480
54495
|
dataType: "form-data",
|
|
54481
54496
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
54482
54497
|
requestAdaptor: `
|
|
54483
|
-
const
|
|
54498
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
54499
|
+
const { _master, global } = superData;
|
|
54484
54500
|
// const { recordId, objectName } = _master;
|
|
54485
54501
|
const { spaceId, userId, user } = global;
|
|
54486
54502
|
/*
|
|
@@ -54498,8 +54514,9 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
54498
54514
|
return api;
|
|
54499
54515
|
`,
|
|
54500
54516
|
adaptor: `
|
|
54501
|
-
const
|
|
54502
|
-
|
|
54517
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
54518
|
+
const { context:pageContext } = superData;
|
|
54519
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${tableName}/";
|
|
54503
54520
|
payload = {
|
|
54504
54521
|
status: response.status == 200 ? 0 : response.status,
|
|
54505
54522
|
msg: response.statusText,
|
|
@@ -54965,7 +54982,6 @@ async function getQuickEditSchema(field, options){
|
|
|
54965
54982
|
{
|
|
54966
54983
|
"actionType": "custom",
|
|
54967
54984
|
"script": `
|
|
54968
|
-
|
|
54969
54985
|
var _display = _.cloneDeep(event.data._display);
|
|
54970
54986
|
${displayField}
|
|
54971
54987
|
doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${quickEditId}"});
|
|
@@ -55103,8 +55119,9 @@ async function getQuickEditSchema(field, options){
|
|
|
55103
55119
|
case "avatar":
|
|
55104
55120
|
case "image":
|
|
55105
55121
|
quickEditSchema.body[0].receiver.adaptor = `
|
|
55106
|
-
const
|
|
55107
|
-
|
|
55122
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
55123
|
+
const { context:pageContext } = superData;
|
|
55124
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${field.type}s/";
|
|
55108
55125
|
payload = {
|
|
55109
55126
|
status: response.status == 200 ? 0 : response.status,
|
|
55110
55127
|
msg: response.statusText,
|
|
@@ -55135,9 +55152,26 @@ async function getQuickEditSchema(field, options){
|
|
|
55135
55152
|
"onEvent":{
|
|
55136
55153
|
"init":{
|
|
55137
55154
|
"actions":[
|
|
55155
|
+
//amis3.6无法从数据域中直接拿到正确的selectitems,需要通过crud组件的getSelected()函数获取
|
|
55156
|
+
{
|
|
55157
|
+
"actionType": "custom",
|
|
55158
|
+
"script": `
|
|
55159
|
+
crudScoped = event.context.scoped.getComponentById('${options.crudId}');
|
|
55160
|
+
const selectedItems = crudScoped && crudScoped.control.getSelected();
|
|
55161
|
+
doAction({
|
|
55162
|
+
"componentId": "${quickEditId}",
|
|
55163
|
+
"actionType": "setValue",
|
|
55164
|
+
"args": {
|
|
55165
|
+
"value": {
|
|
55166
|
+
selectedItems
|
|
55167
|
+
}
|
|
55168
|
+
}
|
|
55169
|
+
});
|
|
55170
|
+
`
|
|
55171
|
+
},
|
|
55138
55172
|
{
|
|
55139
55173
|
"actionType": "setValue",
|
|
55140
|
-
"componentId":
|
|
55174
|
+
"componentId": quickEditId,
|
|
55141
55175
|
"args": {
|
|
55142
55176
|
"value":{
|
|
55143
55177
|
"quickedit_record_permissions_loading": true
|
|
@@ -55162,7 +55196,7 @@ async function getQuickEditSchema(field, options){
|
|
|
55162
55196
|
},
|
|
55163
55197
|
{
|
|
55164
55198
|
"actionType": "setValue",
|
|
55165
|
-
"componentId":
|
|
55199
|
+
"componentId": quickEditId,
|
|
55166
55200
|
"args": {
|
|
55167
55201
|
"value":{
|
|
55168
55202
|
"quickedit_record_permissions_loading": false
|
|
@@ -55171,7 +55205,7 @@ async function getQuickEditSchema(field, options){
|
|
|
55171
55205
|
},
|
|
55172
55206
|
{
|
|
55173
55207
|
"actionType": "setValue",
|
|
55174
|
-
"componentId":
|
|
55208
|
+
"componentId": quickEditId,
|
|
55175
55209
|
"args": {
|
|
55176
55210
|
"value":{
|
|
55177
55211
|
"quickedit_record_permissions": "${event.data}"
|
|
@@ -55350,8 +55384,6 @@ function getFieldWidth(width){
|
|
|
55350
55384
|
async function getTableColumns(fields, options){
|
|
55351
55385
|
const columns = [];
|
|
55352
55386
|
if(!options.isLookup && !options.isInputTable){
|
|
55353
|
-
//将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
|
|
55354
|
-
columns.push({name: '_display',type: 'static', width: 32, placeholder: "",id: "_display_${_index}", className: "hidden"});
|
|
55355
55387
|
if(!options.enable_tree){
|
|
55356
55388
|
columns.push({name: '_index',type: 'text', width: 32, placeholder: ""});
|
|
55357
55389
|
}
|
|
@@ -55509,8 +55541,8 @@ async function getTableColumns(fields, options){
|
|
|
55509
55541
|
const href = Router.getObjectDetailPath({
|
|
55510
55542
|
...options, formFactor: options.formFactor, appId: "${appId}", objectName: options.objectName || "${objectName}", recordId: `\${${options.idFieldName}}`
|
|
55511
55543
|
});
|
|
55512
|
-
columns[
|
|
55513
|
-
columns[
|
|
55544
|
+
columns[0].type = "tpl";
|
|
55545
|
+
columns[0].tpl = `<a href="${href}">\${${columns[0].name}}</a>`;
|
|
55514
55546
|
}
|
|
55515
55547
|
return columns;
|
|
55516
55548
|
}
|
|
@@ -55769,7 +55801,7 @@ async function getTableOperation(ctx){
|
|
|
55769
55801
|
type: 'steedos-object-button',
|
|
55770
55802
|
name: button.name,
|
|
55771
55803
|
objectName: button.objectName,
|
|
55772
|
-
|
|
55804
|
+
visibleOnAlias: getButtonVisibleOn$1(button),
|
|
55773
55805
|
className: 'antd-Button--default'
|
|
55774
55806
|
});
|
|
55775
55807
|
});
|
|
@@ -55894,8 +55926,18 @@ async function getTableSchema$1(fields, options){
|
|
|
55894
55926
|
}
|
|
55895
55927
|
|
|
55896
55928
|
if(!isLookup && !hiddenColumnOperation){
|
|
55897
|
-
|
|
55929
|
+
const toolbarOperation = await getTableOperation(options);
|
|
55930
|
+
columns.push(toolbarOperation);
|
|
55898
55931
|
}
|
|
55932
|
+
|
|
55933
|
+
}
|
|
55934
|
+
|
|
55935
|
+
const treeConfig = {};
|
|
55936
|
+
|
|
55937
|
+
if(options.enable_tree){
|
|
55938
|
+
treeConfig.expandConfig = {
|
|
55939
|
+
expand: 'first'
|
|
55940
|
+
};
|
|
55899
55941
|
}
|
|
55900
55942
|
|
|
55901
55943
|
return {
|
|
@@ -55913,6 +55955,7 @@ async function getTableSchema$1(fields, options){
|
|
|
55913
55955
|
labelTpl: `\${${options.labelFieldName}}`,
|
|
55914
55956
|
autoFillHeight: false, // 自动高度效果不理想,先关闭
|
|
55915
55957
|
columnsTogglable: false,
|
|
55958
|
+
...treeConfig
|
|
55916
55959
|
}
|
|
55917
55960
|
}
|
|
55918
55961
|
|
|
@@ -56377,12 +56420,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56377
56420
|
// }
|
|
56378
56421
|
// listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
|
|
56379
56422
|
// 点击搜索的时候自动收起搜索栏
|
|
56380
|
-
|
|
56381
|
-
|
|
56382
|
-
|
|
56383
|
-
|
|
56384
|
-
|
|
56385
|
-
|
|
56423
|
+
//触发amis crud 高度重算
|
|
56424
|
+
doAction({
|
|
56425
|
+
"actionType": "broadcast",
|
|
56426
|
+
"args": {
|
|
56427
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56428
|
+
},
|
|
56429
|
+
"data": {
|
|
56430
|
+
"timeOut": 500
|
|
56431
|
+
}
|
|
56432
|
+
});
|
|
56386
56433
|
const filterService = filterForm.context.getComponents().find(function(n){
|
|
56387
56434
|
return n.props.type === "service";
|
|
56388
56435
|
});
|
|
@@ -56415,6 +56462,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56415
56462
|
`;
|
|
56416
56463
|
const onCancelScript = `
|
|
56417
56464
|
// console.log("===onCancelScript=form==");
|
|
56465
|
+
let isLookup = event.data.isLookup;
|
|
56466
|
+
let __lookupField = event.data.__lookupField;
|
|
56418
56467
|
const scope = event.context.scoped;
|
|
56419
56468
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
56420
56469
|
return n.props.type === "form";
|
|
@@ -56462,16 +56511,36 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56462
56511
|
// });
|
|
56463
56512
|
|
|
56464
56513
|
// 清除__changedFilterFormValues中的值
|
|
56465
|
-
crud && crud.setData({__changedFilterFormValues: {}});
|
|
56514
|
+
// crud && crud.setData({__changedFilterFormValues: {}});
|
|
56515
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
56516
|
+
if(isLookup && __lookupField){
|
|
56517
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
56518
|
+
if(__lookupField.reference_to_field){
|
|
56519
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
56520
|
+
}
|
|
56521
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
56522
|
+
}
|
|
56523
|
+
if(crud){
|
|
56524
|
+
let crudData = crud.getData();
|
|
56525
|
+
crudData[__changedFilterFormValuesKey] = {};
|
|
56526
|
+
crud.setData(crudData);
|
|
56527
|
+
}
|
|
56466
56528
|
filterForm.handleFormSubmit(event);
|
|
56467
56529
|
// crud.handleFilterSubmit(removedValues);
|
|
56468
56530
|
|
|
56469
56531
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
56470
56532
|
filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
|
|
56471
56533
|
//触发amis crud 高度重算
|
|
56472
|
-
|
|
56473
|
-
|
|
56474
|
-
|
|
56534
|
+
doAction({
|
|
56535
|
+
"actionType": "broadcast",
|
|
56536
|
+
"args": {
|
|
56537
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56538
|
+
},
|
|
56539
|
+
"data": {
|
|
56540
|
+
"timeOut": 100
|
|
56541
|
+
}
|
|
56542
|
+
});
|
|
56543
|
+
|
|
56475
56544
|
// 移除搜索按钮上的红点
|
|
56476
56545
|
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
56477
56546
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
@@ -56628,9 +56697,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
56628
56697
|
sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
|
|
56629
56698
|
}
|
|
56630
56699
|
//触发amis crud 高度重算
|
|
56631
|
-
|
|
56632
|
-
|
|
56633
|
-
|
|
56700
|
+
doAction({
|
|
56701
|
+
"actionType": "broadcast",
|
|
56702
|
+
"args": {
|
|
56703
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
56704
|
+
},
|
|
56705
|
+
"data": {
|
|
56706
|
+
"timeOut": 100
|
|
56707
|
+
}
|
|
56708
|
+
});
|
|
56634
56709
|
// ===END===
|
|
56635
56710
|
`;
|
|
56636
56711
|
return {
|
|
@@ -57872,13 +57947,16 @@ const filterService = filterForm.context.getComponents().find(function(n){
|
|
|
57872
57947
|
});
|
|
57873
57948
|
let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
|
|
57874
57949
|
filterService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
57875
|
-
|
|
57876
|
-
|
|
57877
|
-
|
|
57878
|
-
|
|
57879
|
-
|
|
57880
|
-
}
|
|
57881
|
-
|
|
57950
|
+
//触发amis crud 高度重算
|
|
57951
|
+
doAction({
|
|
57952
|
+
"actionType": "broadcast",
|
|
57953
|
+
"args": {
|
|
57954
|
+
"eventName": "@height.changed." + event.data.objectName
|
|
57955
|
+
},
|
|
57956
|
+
"data": {
|
|
57957
|
+
"timeOut": 1000
|
|
57958
|
+
}
|
|
57959
|
+
});
|
|
57882
57960
|
// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
57883
57961
|
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
57884
57962
|
crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
@@ -57929,7 +58007,12 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57929
58007
|
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
57930
58008
|
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
57931
58009
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
57932
|
-
crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
58010
|
+
// crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
58011
|
+
if(crud){
|
|
58012
|
+
let crudData = crud.getData();
|
|
58013
|
+
crudData.__changedSearchBoxValues = __changedSearchBoxValues;
|
|
58014
|
+
crud.setData(crudData);
|
|
58015
|
+
}
|
|
57933
58016
|
`;
|
|
57934
58017
|
|
|
57935
58018
|
// onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
|
|
@@ -57942,9 +58025,19 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57942
58025
|
// const scope = event.context.scoped;
|
|
57943
58026
|
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
57944
58027
|
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
58028
|
+
let isLookup = event.data.isLookup;
|
|
58029
|
+
let __lookupField = event.data.__lookupField;
|
|
58030
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
58031
|
+
if(isLookup && __lookupField){
|
|
58032
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
58033
|
+
if(__lookupField.reference_to_field){
|
|
58034
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
58035
|
+
}
|
|
58036
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
58037
|
+
}
|
|
57945
58038
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
57946
58039
|
setTimeout(function(){
|
|
57947
|
-
filterForm.setValues(event.data
|
|
58040
|
+
filterForm.setValues(event.data[__changedFilterFormValuesKey]);
|
|
57948
58041
|
}, 500);
|
|
57949
58042
|
`;
|
|
57950
58043
|
|
|
@@ -57965,8 +58058,8 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
57965
58058
|
"name": keywordsSearchBoxName,
|
|
57966
58059
|
"placeholder": "搜索此列表",
|
|
57967
58060
|
"value": crudKeywords,
|
|
57968
|
-
"clearable": true
|
|
57969
|
-
|
|
58061
|
+
// "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
58062
|
+
"clearAndSubmit": true,
|
|
57970
58063
|
"searchImediately": false,
|
|
57971
58064
|
"onEvent": {
|
|
57972
58065
|
"search": {
|
|
@@ -58227,12 +58320,16 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
58227
58320
|
return;
|
|
58228
58321
|
}
|
|
58229
58322
|
// 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏
|
|
58230
|
-
|
|
58231
|
-
|
|
58232
|
-
|
|
58233
|
-
|
|
58234
|
-
|
|
58235
|
-
|
|
58323
|
+
//触发amis crud 高度重算
|
|
58324
|
+
doAction({
|
|
58325
|
+
"actionType": "broadcast",
|
|
58326
|
+
"args": {
|
|
58327
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
58328
|
+
},
|
|
58329
|
+
"data": {
|
|
58330
|
+
"timeOut": 1000
|
|
58331
|
+
}
|
|
58332
|
+
});
|
|
58236
58333
|
resizeWindow();
|
|
58237
58334
|
const scope = event.context.scoped;
|
|
58238
58335
|
// let filterFormValues = event.data;
|
|
@@ -58246,18 +58343,34 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
58246
58343
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
58247
58344
|
`;
|
|
58248
58345
|
let onChangeScript = `
|
|
58346
|
+
let isLookup = event.data.isLookup;
|
|
58347
|
+
let __lookupField = event.data.__lookupField;
|
|
58249
58348
|
const scope = event.context.scoped;
|
|
58250
58349
|
// let filterFormValues = event.data;
|
|
58251
58350
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
58252
58351
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
58253
58352
|
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
58254
58353
|
let filterFormValues = filterFormService.getData();
|
|
58354
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
58255
58355
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
58256
58356
|
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
58257
58357
|
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
58258
58358
|
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58259
58359
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
58260
|
-
crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58360
|
+
// crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
58361
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
58362
|
+
if(isLookup && __lookupField){
|
|
58363
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
58364
|
+
if(__lookupField.reference_to_field){
|
|
58365
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
58366
|
+
}
|
|
58367
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
58368
|
+
}
|
|
58369
|
+
if(crud){
|
|
58370
|
+
let crudData = crud.getData();
|
|
58371
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
58372
|
+
crud.setData(crudData);
|
|
58373
|
+
}
|
|
58261
58374
|
`;
|
|
58262
58375
|
return {
|
|
58263
58376
|
"title": "",
|
|
@@ -58860,6 +58973,60 @@ function getReferenceToSync(field) {
|
|
|
58860
58973
|
}
|
|
58861
58974
|
|
|
58862
58975
|
function getLookupSapceUserTreeSchema(isMobile){
|
|
58976
|
+
let apiAdaptor = `
|
|
58977
|
+
// console.log("===getLookupSapceUserTreeSchema===", JSON.stringify(payload));
|
|
58978
|
+
const records = payload.data.options;
|
|
58979
|
+
let isTreeOptionsComputed = false;
|
|
58980
|
+
if(records.length === 1 && records[0].children){
|
|
58981
|
+
isTreeOptionsComputed = true;
|
|
58982
|
+
}
|
|
58983
|
+
if(isTreeOptionsComputed){
|
|
58984
|
+
return payload;
|
|
58985
|
+
}
|
|
58986
|
+
const treeRecords = [];
|
|
58987
|
+
const getChildren = (records, childrenIds) => {
|
|
58988
|
+
if (!childrenIds) {
|
|
58989
|
+
return;
|
|
58990
|
+
}
|
|
58991
|
+
const children = _.filter(records, (record) => {
|
|
58992
|
+
return _.includes(childrenIds, record.value)
|
|
58993
|
+
});
|
|
58994
|
+
_.each(children, (item) => {
|
|
58995
|
+
if (item.children) {
|
|
58996
|
+
item.children = getChildren(records, item.children)
|
|
58997
|
+
}else{
|
|
58998
|
+
item.children = [];
|
|
58999
|
+
}
|
|
59000
|
+
})
|
|
59001
|
+
return children;
|
|
59002
|
+
}
|
|
59003
|
+
|
|
59004
|
+
const getRoot = (records) => {
|
|
59005
|
+
for (var i = 0; i < records.length; i++) {
|
|
59006
|
+
records[i].noParent = 0;
|
|
59007
|
+
if (!!records[i].parent) {
|
|
59008
|
+
biaozhi = 1
|
|
59009
|
+
for (var j = 0; j < records.length; j++) {
|
|
59010
|
+
if (records[i].parent == records[j].value)
|
|
59011
|
+
biaozhi = 0;
|
|
59012
|
+
}
|
|
59013
|
+
if (biaozhi == 1) records[i].noParent = 1;
|
|
59014
|
+
} else records[i].noParent = 1;
|
|
59015
|
+
}
|
|
59016
|
+
}
|
|
59017
|
+
getRoot(records);
|
|
59018
|
+
console.log(records)
|
|
59019
|
+
|
|
59020
|
+
_.each(records, (record) => {
|
|
59021
|
+
if (record.noParent == 1) {
|
|
59022
|
+
treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));
|
|
59023
|
+
}
|
|
59024
|
+
});
|
|
59025
|
+
console.log(treeRecords)
|
|
59026
|
+
|
|
59027
|
+
payload.data.options = treeRecords;
|
|
59028
|
+
return payload;
|
|
59029
|
+
`;
|
|
58863
59030
|
const treeSchema = {
|
|
58864
59031
|
"type": "input-tree",
|
|
58865
59032
|
"className":"steedos-select-user-tree",
|
|
@@ -58870,8 +59037,7 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
58870
59037
|
"headers": {
|
|
58871
59038
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
58872
59039
|
},
|
|
58873
|
-
"adaptor":
|
|
58874
|
-
"requestAdaptor": "\n ",
|
|
59040
|
+
"adaptor": apiAdaptor,
|
|
58875
59041
|
"data": {
|
|
58876
59042
|
"query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
|
|
58877
59043
|
},
|
|
@@ -59072,13 +59238,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59072
59238
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
59073
59239
|
|
|
59074
59240
|
source.requestAdaptor = `
|
|
59075
|
-
let
|
|
59241
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
59242
|
+
let __lookupField = api.data.$self.__lookupField;
|
|
59243
|
+
if(__lookupField){
|
|
59244
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
59245
|
+
if(__lookupField.reference_to_field){
|
|
59246
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
59247
|
+
}
|
|
59248
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
59249
|
+
}
|
|
59250
|
+
let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};
|
|
59076
59251
|
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
59077
59252
|
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
59078
59253
|
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
59079
59254
|
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
59080
59255
|
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
59081
|
-
|
|
59256
|
+
if(api.data.$self.op !== 'loadOptions'){
|
|
59257
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
59258
|
+
}
|
|
59082
59259
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
59083
59260
|
var filters = [];
|
|
59084
59261
|
var pageSize = api.data.pageSize || 10;
|
|
@@ -59173,8 +59350,19 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59173
59350
|
})
|
|
59174
59351
|
payload.data.rows = rows;
|
|
59175
59352
|
*/
|
|
59353
|
+
if(enable_tree){
|
|
59354
|
+
const rows = _.map(payload.data.rows, (item)=>{
|
|
59355
|
+
delete item.children;
|
|
59356
|
+
delete item.parent;
|
|
59357
|
+
return item;
|
|
59358
|
+
})
|
|
59359
|
+
payload.data.rows = rows;
|
|
59360
|
+
}
|
|
59176
59361
|
return payload;
|
|
59177
59362
|
}
|
|
59363
|
+
if(!payload.data.rows){
|
|
59364
|
+
payload.data.rows = [];
|
|
59365
|
+
}
|
|
59178
59366
|
if(enable_tree){
|
|
59179
59367
|
const records = payload.data.rows;
|
|
59180
59368
|
const treeRecords = [];
|
|
@@ -59201,6 +59389,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59201
59389
|
_.each(children, (item)=>{
|
|
59202
59390
|
if(item.children){
|
|
59203
59391
|
item.children = getChildren(records, item.children)
|
|
59392
|
+
}else{
|
|
59393
|
+
item.children = [];
|
|
59204
59394
|
}
|
|
59205
59395
|
})
|
|
59206
59396
|
return children;
|
|
@@ -59213,14 +59403,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59213
59403
|
}
|
|
59214
59404
|
});
|
|
59215
59405
|
payload.data.rows = treeRecords;
|
|
59216
|
-
try{
|
|
59217
|
-
setTimeout(() => {
|
|
59218
|
-
$('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
|
|
59219
|
-
}, 600);
|
|
59220
|
-
}
|
|
59221
|
-
catch(ex){
|
|
59222
|
-
console.error("tree数据格式展开异常:", ex);
|
|
59223
|
-
}
|
|
59224
59406
|
}
|
|
59225
59407
|
return payload;
|
|
59226
59408
|
`;
|
|
@@ -59247,6 +59429,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59247
59429
|
labelFieldName,
|
|
59248
59430
|
top: top,
|
|
59249
59431
|
isLookup: true,
|
|
59432
|
+
enable_tree: refObjectConfig.enable_tree,
|
|
59250
59433
|
...ctx
|
|
59251
59434
|
});
|
|
59252
59435
|
|
|
@@ -59262,7 +59445,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59262
59445
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
59263
59446
|
const isCreate = lodash.exports.isBoolean(field.create) ? field.create : true;
|
|
59264
59447
|
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
59265
|
-
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
59448
|
+
let isHasFilters = (field.filters || field.filtersFunction || field._filtersFunction) ? true : false;
|
|
59266
59449
|
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
59267
59450
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
59268
59451
|
new_button.align = "right";
|
|
@@ -59282,7 +59465,12 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
59282
59465
|
"objectName": refObjectConfig.name,
|
|
59283
59466
|
"uiSchema": refObjectConfig,
|
|
59284
59467
|
"listName": listName,// 需要按视图取可搜索项
|
|
59285
|
-
"isLookup": true
|
|
59468
|
+
"isLookup": true,
|
|
59469
|
+
"__lookupField": {
|
|
59470
|
+
"name": field.name,
|
|
59471
|
+
"reference_to": refObjectConfig.name,
|
|
59472
|
+
"reference_to_field": field.reference_to_field
|
|
59473
|
+
}
|
|
59286
59474
|
});
|
|
59287
59475
|
|
|
59288
59476
|
if(!pickerSchema.onEvent){
|
|
@@ -59455,7 +59643,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
59455
59643
|
sendOn.push(`this.${fName}`);
|
|
59456
59644
|
});
|
|
59457
59645
|
if(depend_on.length > 0){
|
|
59458
|
-
apiInfo.url = `${apiInfo.url}
|
|
59646
|
+
apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
|
|
59459
59647
|
apiInfo.sendOn = `${sendOn.join(' && ')}`;
|
|
59460
59648
|
}
|
|
59461
59649
|
}
|
|
@@ -59563,6 +59751,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
59563
59751
|
autoComplete: apiInfo,
|
|
59564
59752
|
searchable: true,
|
|
59565
59753
|
};
|
|
59754
|
+
let amisVersion = getComparableAmisVersion();
|
|
59755
|
+
if(amisVersion >= 3.6){
|
|
59756
|
+
// amis 3.6中不加source会造成子表组件中弹出行编辑窗口的lookup字段有时不请求接口(概率现象,同一个地方反复操作有时请求有时不请求)
|
|
59757
|
+
// 但是同时配置autoComplete和source会多请求一次接口
|
|
59758
|
+
// TODO:应该想办法把是否字段在子表组件内,即ctx.isInputTable,如果不在子表组件内不需要加source
|
|
59759
|
+
data.source = apiInfo;
|
|
59760
|
+
}
|
|
59566
59761
|
//删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
|
|
59567
59762
|
const select_menuTpl = `<span class='flex items-center mt-0.5'>
|
|
59568
59763
|
<span role='img' aria-label='smile' class='anticon anticon-smile'>
|
|
@@ -59644,18 +59839,37 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
59644
59839
|
|
|
59645
59840
|
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
59646
59841
|
let enableEnhancedLookup = lodash.exports.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
59842
|
+
let amisVersion = getComparableAmisVersion();
|
|
59843
|
+
if(amisVersion >= 3.6){
|
|
59844
|
+
// amis 3.6.3单选和多选的树picker都有bug(https://github.com/baidu/amis/issues/9279,https://github.com/baidu/amis/issues/9295),我们改amis源码修正了
|
|
59845
|
+
// amis 3.6.3多选的下拉树组件有bug,多选树字段的选中值在编辑模式展开树时不会自动勾选树里面的节点,而是始终勾选显示在最外面的选中值选项(即defaultValueOptions),amis 3.2没有这个问题
|
|
59846
|
+
// 这里强制禁用多选下拉树,统一改为弹出树,如果以后需要下拉树功能,可以把下拉树组件改为一次性加载所有树节点数据模式来跳过这个问题
|
|
59847
|
+
if(!enableEnhancedLookup && refObject.enable_tree && field.multiple){
|
|
59848
|
+
enableEnhancedLookup = true;
|
|
59849
|
+
}
|
|
59850
|
+
}
|
|
59851
|
+
let amisSchema;
|
|
59647
59852
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
59648
59853
|
if(enableEnhancedLookup == true){
|
|
59649
|
-
|
|
59854
|
+
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
59650
59855
|
}else if(refObject.enable_tree) {
|
|
59651
|
-
|
|
59856
|
+
amisSchema = await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
59652
59857
|
labelField: referenceTo.labelField?.name || 'name',
|
|
59653
59858
|
valueField: referenceTo.valueField?.name || '_id',
|
|
59654
59859
|
objectName: referenceTo.objectName
|
|
59655
59860
|
}));
|
|
59656
59861
|
}else {
|
|
59657
|
-
|
|
59862
|
+
amisSchema = await lookupToAmisSelect(field, readonly, ctx);
|
|
59658
59863
|
}
|
|
59864
|
+
let refLookupPage = refObject.pages && refObject.pages.lookup;
|
|
59865
|
+
if(refLookupPage){
|
|
59866
|
+
if(typeof refLookupPage == 'string'){
|
|
59867
|
+
refLookupPage = JSON.parse(refLookupPage);
|
|
59868
|
+
}
|
|
59869
|
+
// Object.assign(amisSchema, refLookupPage);
|
|
59870
|
+
// amisSchema = _.defaultsDeep({}, refLookupPage, amisSchema);
|
|
59871
|
+
}
|
|
59872
|
+
return amisSchema;
|
|
59659
59873
|
}
|
|
59660
59874
|
|
|
59661
59875
|
async function lookupToAmisIdsPicker(field, readonly, ctx){
|
|
@@ -60293,7 +60507,8 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
60293
60507
|
},
|
|
60294
60508
|
pipeOut: (value, oldValue, data) => {
|
|
60295
60509
|
if(value){
|
|
60296
|
-
|
|
60510
|
+
const result = value/100;
|
|
60511
|
+
return Number(result.toFixed(field.scale+2));
|
|
60297
60512
|
}
|
|
60298
60513
|
return value;
|
|
60299
60514
|
},
|
|
@@ -60525,7 +60740,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
60525
60740
|
}
|
|
60526
60741
|
if(!lodash.exports.isEmpty(convertData)){
|
|
60527
60742
|
if(field.is_wide || convertData.type === 'group'){
|
|
60528
|
-
convertData.className = 'col-span-2 m-
|
|
60743
|
+
convertData.className = 'col-span-2 m-0';
|
|
60529
60744
|
}else {
|
|
60530
60745
|
convertData.className = 'm-1';
|
|
60531
60746
|
}
|