@steedos-widgets/sortable 1.3.22-beta.4 → 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 CHANGED
@@ -3,8 +3,8 @@
3
3
  {
4
4
  "package": "@steedos-widgets/sortable",
5
5
  "urls": [
6
- "https://unpkg.com/@steedos-widgets/sortable@1.3.22-beta.4/dist/sortable.umd.js",
7
- "https://unpkg.com/@steedos-widgets/sortable@1.3.22-beta.4/dist/sortable.umd.css"
6
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.10/dist/sortable.umd.js",
7
+ "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.10/dist/sortable.umd.css"
8
8
  ],
9
9
  "library": "BuilderSortable"
10
10
  }
@@ -15,10 +15,10 @@
15
15
  "npm": {
16
16
  "package": "@steedos-widgets/sortable"
17
17
  },
18
- "url": "https://unpkg.com/@steedos-widgets/sortable@1.3.22-beta.4/dist/meta.js",
18
+ "url": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.10/dist/meta.js",
19
19
  "urls": {
20
- "default": "https://unpkg.com/@steedos-widgets/sortable@1.3.22-beta.4/dist/meta.js",
21
- "design": "https://unpkg.com/@steedos-widgets/sortable@1.3.22-beta.4/dist/meta.js"
20
+ "default": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.10/dist/meta.js",
21
+ "design": "https://unpkg.com/@steedos-widgets/sortable@3.6.0-beta.10/dist/meta.js"
22
22
  }
23
23
  }
24
24
  ]
@@ -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: liaodaxue
53983
- * @LastEditTime: 2023-09-11 17:19:53
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-10-30 17:51:54
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 { _master, global,context } = api.body;
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 { context } = api.body;
54506
- var rootUrl = context.rootUrl + "/api/files/${tableName}/";
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 { context } = api.body;
55111
- var rootUrl = context.rootUrl + "/api/files/${field.type}s/";
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": `service_listview_${options.objectName}`,
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": `service_listview_${options.objectName}`,
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": `service_listview_${options.objectName}`,
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[1].type = "tpl";
55517
- columns[1].tpl = `<a href="${href}">\${${columns[1].name}}</a>`;
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
- visibleOn: getButtonVisibleOn$1(button),
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
- columns.push(await getTableOperation(options));
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
- let resizeWindow = function(){
56385
- //触发amis crud 高度重算
56386
- setTimeout(()=>{
56387
- window.dispatchEvent(new Event("resize"))
56388
- }, 500);
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
  });
@@ -56471,7 +56518,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56471
56518
  // crud && crud.setData({__changedFilterFormValues: {}});
56472
56519
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
56473
56520
  if(isLookup && __lookupField){
56474
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
56521
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
56475
56522
  if(__lookupField.reference_to_field){
56476
56523
  lookupTag += "__" + __lookupField.reference_to_field;
56477
56524
  }
@@ -56488,9 +56535,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56488
56535
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
56489
56536
  filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
56490
56537
  //触发amis crud 高度重算
56491
- setTimeout(()=>{
56492
- window.dispatchEvent(new Event("resize"))
56493
- }, 100);
56538
+ doAction({
56539
+ "actionType": "broadcast",
56540
+ "args": {
56541
+ "eventName": "@height.changed.${objectSchema.name}"
56542
+ },
56543
+ "data": {
56544
+ "timeOut": 100
56545
+ }
56546
+ });
56547
+
56494
56548
  // 移除搜索按钮上的红点
56495
56549
  // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
56496
56550
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
@@ -56647,9 +56701,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56647
56701
  sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
56648
56702
  }
56649
56703
  //触发amis crud 高度重算
56650
- setTimeout(()=>{
56651
- window.dispatchEvent(new Event("resize"))
56652
- }, 100)
56704
+ doAction({
56705
+ "actionType": "broadcast",
56706
+ "args": {
56707
+ "eventName": "@height.changed.${objectSchema.name}"
56708
+ },
56709
+ "data": {
56710
+ "timeOut": 100
56711
+ }
56712
+ });
56653
56713
  // ===END===
56654
56714
  `;
56655
56715
  return {
@@ -57891,13 +57951,16 @@ const filterService = filterForm.context.getComponents().find(function(n){
57891
57951
  });
57892
57952
  let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
57893
57953
  filterService.setData({showFieldsFilter: toShowFieldsFilter});
57894
- let resizeWindow = function(){
57895
- //触发amis crud 高度重算
57896
- setTimeout(()=>{
57897
- window.dispatchEvent(new Event("resize"))
57898
- }, 1000);
57899
- }
57900
- resizeWindow();
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
+ });
57901
57964
  // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
57902
57965
  let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
57903
57966
  crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
@@ -57970,7 +58033,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57970
58033
  let __lookupField = event.data.__lookupField;
57971
58034
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
57972
58035
  if(isLookup && __lookupField){
57973
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
58036
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
57974
58037
  if(__lookupField.reference_to_field){
57975
58038
  lookupTag += "__" + __lookupField.reference_to_field;
57976
58039
  }
@@ -58261,12 +58324,16 @@ async function getObjectFilter(objectSchema, fields, options) {
58261
58324
  return;
58262
58325
  }
58263
58326
  // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏
58264
- let resizeWindow = function(){
58265
- //触发amis crud 高度重算
58266
- setTimeout(()=>{
58267
- window.dispatchEvent(new Event("resize"))
58268
- }, 1000);
58269
- }
58327
+ //触发amis crud 高度重算
58328
+ doAction({
58329
+ "actionType": "broadcast",
58330
+ "args": {
58331
+ "eventName": "@height.changed.${objectSchema.name}"
58332
+ },
58333
+ "data": {
58334
+ "timeOut": 1000
58335
+ }
58336
+ });
58270
58337
  resizeWindow();
58271
58338
  const scope = event.context.scoped;
58272
58339
  // let filterFormValues = event.data;
@@ -58282,13 +58349,13 @@ async function getObjectFilter(objectSchema, fields, options) {
58282
58349
  let onChangeScript = `
58283
58350
  let isLookup = event.data.isLookup;
58284
58351
  let __lookupField = event.data.__lookupField;
58285
- console.log("==onChangeScript=isLookup===", isLookup);
58286
58352
  const scope = event.context.scoped;
58287
58353
  // let filterFormValues = event.data;
58288
58354
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
58289
58355
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
58290
58356
  // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
58291
58357
  let filterFormValues = filterFormService.getData();
58358
+ filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
58292
58359
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
58293
58360
  const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
58294
58361
  // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
@@ -58297,7 +58364,7 @@ async function getObjectFilter(objectSchema, fields, options) {
58297
58364
  // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
58298
58365
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
58299
58366
  if(isLookup && __lookupField){
58300
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
58367
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
58301
58368
  if(__lookupField.reference_to_field){
58302
58369
  lookupTag += "__" + __lookupField.reference_to_field;
58303
58370
  }
@@ -58910,6 +58977,60 @@ function getReferenceToSync(field) {
58910
58977
  }
58911
58978
 
58912
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
+ `;
58913
59034
  const treeSchema = {
58914
59035
  "type": "input-tree",
58915
59036
  "className":"steedos-select-user-tree",
@@ -58920,8 +59041,7 @@ function getLookupSapceUserTreeSchema(isMobile){
58920
59041
  "headers": {
58921
59042
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
58922
59043
  },
58923
- "adaptor": "if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",
58924
- "requestAdaptor": "\n ",
59044
+ "adaptor": apiAdaptor,
58925
59045
  "data": {
58926
59046
  "query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
58927
59047
  },
@@ -59125,7 +59245,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59125
59245
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
59126
59246
  let __lookupField = api.data.$self.__lookupField;
59127
59247
  if(__lookupField){
59128
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
59248
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
59129
59249
  if(__lookupField.reference_to_field){
59130
59250
  lookupTag += "__" + __lookupField.reference_to_field;
59131
59251
  }
@@ -59234,8 +59354,19 @@ async function lookupToAmisPicker(field, readonly, ctx){
59234
59354
  })
59235
59355
  payload.data.rows = rows;
59236
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
+ }
59237
59365
  return payload;
59238
59366
  }
59367
+ if(!payload.data.rows){
59368
+ payload.data.rows = [];
59369
+ }
59239
59370
  if(enable_tree){
59240
59371
  const records = payload.data.rows;
59241
59372
  const treeRecords = [];
@@ -59262,6 +59393,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
59262
59393
  _.each(children, (item)=>{
59263
59394
  if(item.children){
59264
59395
  item.children = getChildren(records, item.children)
59396
+ }else{
59397
+ item.children = [];
59265
59398
  }
59266
59399
  })
59267
59400
  return children;
@@ -59274,14 +59407,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
59274
59407
  }
59275
59408
  });
59276
59409
  payload.data.rows = treeRecords;
59277
- try{
59278
- setTimeout(() => {
59279
- $('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
59280
- }, 600);
59281
- }
59282
- catch(ex){
59283
- console.error("tree数据格式展开异常:", ex);
59284
- }
59285
59410
  }
59286
59411
  return payload;
59287
59412
  `;
@@ -59308,6 +59433,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59308
59433
  labelFieldName,
59309
59434
  top: top,
59310
59435
  isLookup: true,
59436
+ enable_tree: refObjectConfig.enable_tree,
59311
59437
  ...ctx
59312
59438
  });
59313
59439
 
@@ -59323,7 +59449,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59323
59449
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
59324
59450
  const isCreate = lodash.exports.isBoolean(field.create) ? field.create : true;
59325
59451
  // lookup字段配置过滤条件就强制不显示新建按钮
59326
- let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
59452
+ let isHasFilters = (field.filters || field.filtersFunction || field._filtersFunction) ? true : false;
59327
59453
  if (isAllowCreate && isCreate && !isHasFilters) {
59328
59454
  const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
59329
59455
  new_button.align = "right";
@@ -59521,7 +59647,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
59521
59647
  sendOn.push(`this.${fName}`);
59522
59648
  });
59523
59649
  if(depend_on.length > 0){
59524
- apiInfo.url = `${apiInfo.url}?${depend_on.join('&')}`;
59650
+ apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
59525
59651
  apiInfo.sendOn = `${sendOn.join(' && ')}`;
59526
59652
  }
59527
59653
  }
@@ -59629,6 +59755,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
59629
59755
  autoComplete: apiInfo,
59630
59756
  searchable: true,
59631
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
+ }
59632
59765
  //删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
59633
59766
  const select_menuTpl = `<span class='flex items-center mt-0.5'>
59634
59767
  <span role='img' aria-label='smile' class='anticon anticon-smile'>
@@ -59710,18 +59843,37 @@ async function lookupToAmis(field, readonly, ctx){
59710
59843
 
59711
59844
  // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
59712
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;
59713
59856
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
59714
59857
  if(enableEnhancedLookup == true){
59715
- return await lookupToAmisPicker(field, readonly, ctx);
59858
+ amisSchema = await lookupToAmisPicker(field, readonly, ctx);
59716
59859
  }else if(refObject.enable_tree) {
59717
- return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
59860
+ amisSchema = await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
59718
59861
  labelField: referenceTo.labelField?.name || 'name',
59719
59862
  valueField: referenceTo.valueField?.name || '_id',
59720
59863
  objectName: referenceTo.objectName
59721
59864
  }));
59722
59865
  }else {
59723
- return await lookupToAmisSelect(field, readonly, ctx);
59866
+ amisSchema = await lookupToAmisSelect(field, readonly, ctx);
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);
59724
59875
  }
59876
+ return amisSchema;
59725
59877
  }
59726
59878
 
59727
59879
  async function lookupToAmisIdsPicker(field, readonly, ctx){
@@ -60359,7 +60511,8 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60359
60511
  },
60360
60512
  pipeOut: (value, oldValue, data) => {
60361
60513
  if(value){
60362
- return value/100;
60514
+ const result = value/100;
60515
+ return Number(result.toFixed(field.scale+2));
60363
60516
  }
60364
60517
  return value;
60365
60518
  },
@@ -60591,7 +60744,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60591
60744
  }
60592
60745
  if(!lodash.exports.isEmpty(convertData)){
60593
60746
  if(field.is_wide || convertData.type === 'group'){
60594
- convertData.className = 'col-span-2 m-1';
60747
+ convertData.className = 'col-span-2 m-0';
60595
60748
  }else {
60596
60749
  convertData.className = 'm-1';
60597
60750
  }