@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.
@@ -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: liaodaxue
53979
- * @LastEditTime: 2023-09-11 17:19:53
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-10-30 17:51:54
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 { _master, global,context } = api.body;
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 { context } = api.body;
54502
- var rootUrl = context.rootUrl + "/api/files/${tableName}/";
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 { context } = api.body;
55107
- var rootUrl = context.rootUrl + "/api/files/${field.type}s/";
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": `service_listview_${options.objectName}`,
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": `service_listview_${options.objectName}`,
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": `service_listview_${options.objectName}`,
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[1].type = "tpl";
55513
- columns[1].tpl = `<a href="${href}">\${${columns[1].name}}</a>`;
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
- visibleOn: getButtonVisibleOn$1(button),
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
- columns.push(await getTableOperation(options));
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
- let resizeWindow = function(){
56381
- //触发amis crud 高度重算
56382
- setTimeout(()=>{
56383
- window.dispatchEvent(new Event("resize"))
56384
- }, 500);
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
  });
@@ -56467,7 +56514,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56467
56514
  // crud && crud.setData({__changedFilterFormValues: {}});
56468
56515
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
56469
56516
  if(isLookup && __lookupField){
56470
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
56517
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
56471
56518
  if(__lookupField.reference_to_field){
56472
56519
  lookupTag += "__" + __lookupField.reference_to_field;
56473
56520
  }
@@ -56484,9 +56531,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56484
56531
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
56485
56532
  filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
56486
56533
  //触发amis crud 高度重算
56487
- setTimeout(()=>{
56488
- window.dispatchEvent(new Event("resize"))
56489
- }, 100);
56534
+ doAction({
56535
+ "actionType": "broadcast",
56536
+ "args": {
56537
+ "eventName": "@height.changed.${objectSchema.name}"
56538
+ },
56539
+ "data": {
56540
+ "timeOut": 100
56541
+ }
56542
+ });
56543
+
56490
56544
  // 移除搜索按钮上的红点
56491
56545
  // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
56492
56546
  let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
@@ -56643,9 +56697,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
56643
56697
  sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
56644
56698
  }
56645
56699
  //触发amis crud 高度重算
56646
- setTimeout(()=>{
56647
- window.dispatchEvent(new Event("resize"))
56648
- }, 100)
56700
+ doAction({
56701
+ "actionType": "broadcast",
56702
+ "args": {
56703
+ "eventName": "@height.changed.${objectSchema.name}"
56704
+ },
56705
+ "data": {
56706
+ "timeOut": 100
56707
+ }
56708
+ });
56649
56709
  // ===END===
56650
56710
  `;
56651
56711
  return {
@@ -57887,13 +57947,16 @@ const filterService = filterForm.context.getComponents().find(function(n){
57887
57947
  });
57888
57948
  let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
57889
57949
  filterService.setData({showFieldsFilter: toShowFieldsFilter});
57890
- let resizeWindow = function(){
57891
- //触发amis crud 高度重算
57892
- setTimeout(()=>{
57893
- window.dispatchEvent(new Event("resize"))
57894
- }, 1000);
57895
- }
57896
- resizeWindow();
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
+ });
57897
57960
  // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
57898
57961
  let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
57899
57962
  crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
@@ -57966,7 +58029,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
57966
58029
  let __lookupField = event.data.__lookupField;
57967
58030
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
57968
58031
  if(isLookup && __lookupField){
57969
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
58032
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
57970
58033
  if(__lookupField.reference_to_field){
57971
58034
  lookupTag += "__" + __lookupField.reference_to_field;
57972
58035
  }
@@ -58257,12 +58320,16 @@ async function getObjectFilter(objectSchema, fields, options) {
58257
58320
  return;
58258
58321
  }
58259
58322
  // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏
58260
- let resizeWindow = function(){
58261
- //触发amis crud 高度重算
58262
- setTimeout(()=>{
58263
- window.dispatchEvent(new Event("resize"))
58264
- }, 1000);
58265
- }
58323
+ //触发amis crud 高度重算
58324
+ doAction({
58325
+ "actionType": "broadcast",
58326
+ "args": {
58327
+ "eventName": "@height.changed.${objectSchema.name}"
58328
+ },
58329
+ "data": {
58330
+ "timeOut": 1000
58331
+ }
58332
+ });
58266
58333
  resizeWindow();
58267
58334
  const scope = event.context.scoped;
58268
58335
  // let filterFormValues = event.data;
@@ -58278,13 +58345,13 @@ async function getObjectFilter(objectSchema, fields, options) {
58278
58345
  let onChangeScript = `
58279
58346
  let isLookup = event.data.isLookup;
58280
58347
  let __lookupField = event.data.__lookupField;
58281
- console.log("==onChangeScript=isLookup===", isLookup);
58282
58348
  const scope = event.context.scoped;
58283
58349
  // let filterFormValues = event.data;
58284
58350
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
58285
58351
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
58286
58352
  // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
58287
58353
  let filterFormValues = filterFormService.getData();
58354
+ filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
58288
58355
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
58289
58356
  const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
58290
58357
  // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
@@ -58293,7 +58360,7 @@ async function getObjectFilter(objectSchema, fields, options) {
58293
58360
  // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
58294
58361
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
58295
58362
  if(isLookup && __lookupField){
58296
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
58363
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
58297
58364
  if(__lookupField.reference_to_field){
58298
58365
  lookupTag += "__" + __lookupField.reference_to_field;
58299
58366
  }
@@ -58906,6 +58973,60 @@ function getReferenceToSync(field) {
58906
58973
  }
58907
58974
 
58908
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
+ `;
58909
59030
  const treeSchema = {
58910
59031
  "type": "input-tree",
58911
59032
  "className":"steedos-select-user-tree",
@@ -58916,8 +59037,7 @@ function getLookupSapceUserTreeSchema(isMobile){
58916
59037
  "headers": {
58917
59038
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
58918
59039
  },
58919
- "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 ",
58920
- "requestAdaptor": "\n ",
59040
+ "adaptor": apiAdaptor,
58921
59041
  "data": {
58922
59042
  "query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
58923
59043
  },
@@ -59121,7 +59241,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59121
59241
  let __changedFilterFormValuesKey = "__changedFilterFormValues";
59122
59242
  let __lookupField = api.data.$self.__lookupField;
59123
59243
  if(__lookupField){
59124
- let lookupTag = "__" + __lookupField.name + "__" + __lookupField.reference_to;
59244
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
59125
59245
  if(__lookupField.reference_to_field){
59126
59246
  lookupTag += "__" + __lookupField.reference_to_field;
59127
59247
  }
@@ -59230,8 +59350,19 @@ async function lookupToAmisPicker(field, readonly, ctx){
59230
59350
  })
59231
59351
  payload.data.rows = rows;
59232
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
+ }
59233
59361
  return payload;
59234
59362
  }
59363
+ if(!payload.data.rows){
59364
+ payload.data.rows = [];
59365
+ }
59235
59366
  if(enable_tree){
59236
59367
  const records = payload.data.rows;
59237
59368
  const treeRecords = [];
@@ -59258,6 +59389,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
59258
59389
  _.each(children, (item)=>{
59259
59390
  if(item.children){
59260
59391
  item.children = getChildren(records, item.children)
59392
+ }else{
59393
+ item.children = [];
59261
59394
  }
59262
59395
  })
59263
59396
  return children;
@@ -59270,14 +59403,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
59270
59403
  }
59271
59404
  });
59272
59405
  payload.data.rows = treeRecords;
59273
- try{
59274
- setTimeout(() => {
59275
- $('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
59276
- }, 600);
59277
- }
59278
- catch(ex){
59279
- console.error("tree数据格式展开异常:", ex);
59280
- }
59281
59406
  }
59282
59407
  return payload;
59283
59408
  `;
@@ -59304,6 +59429,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59304
59429
  labelFieldName,
59305
59430
  top: top,
59306
59431
  isLookup: true,
59432
+ enable_tree: refObjectConfig.enable_tree,
59307
59433
  ...ctx
59308
59434
  });
59309
59435
 
@@ -59319,7 +59445,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
59319
59445
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
59320
59446
  const isCreate = lodash.exports.isBoolean(field.create) ? field.create : true;
59321
59447
  // lookup字段配置过滤条件就强制不显示新建按钮
59322
- let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
59448
+ let isHasFilters = (field.filters || field.filtersFunction || field._filtersFunction) ? true : false;
59323
59449
  if (isAllowCreate && isCreate && !isHasFilters) {
59324
59450
  const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
59325
59451
  new_button.align = "right";
@@ -59517,7 +59643,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
59517
59643
  sendOn.push(`this.${fName}`);
59518
59644
  });
59519
59645
  if(depend_on.length > 0){
59520
- apiInfo.url = `${apiInfo.url}?${depend_on.join('&')}`;
59646
+ apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
59521
59647
  apiInfo.sendOn = `${sendOn.join(' && ')}`;
59522
59648
  }
59523
59649
  }
@@ -59625,6 +59751,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
59625
59751
  autoComplete: apiInfo,
59626
59752
  searchable: true,
59627
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
+ }
59628
59761
  //删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
59629
59762
  const select_menuTpl = `<span class='flex items-center mt-0.5'>
59630
59763
  <span role='img' aria-label='smile' class='anticon anticon-smile'>
@@ -59706,18 +59839,37 @@ async function lookupToAmis(field, readonly, ctx){
59706
59839
 
59707
59840
  // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
59708
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;
59709
59852
  // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
59710
59853
  if(enableEnhancedLookup == true){
59711
- return await lookupToAmisPicker(field, readonly, ctx);
59854
+ amisSchema = await lookupToAmisPicker(field, readonly, ctx);
59712
59855
  }else if(refObject.enable_tree) {
59713
- return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
59856
+ amisSchema = await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
59714
59857
  labelField: referenceTo.labelField?.name || 'name',
59715
59858
  valueField: referenceTo.valueField?.name || '_id',
59716
59859
  objectName: referenceTo.objectName
59717
59860
  }));
59718
59861
  }else {
59719
- return await lookupToAmisSelect(field, readonly, ctx);
59862
+ amisSchema = await lookupToAmisSelect(field, readonly, ctx);
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);
59720
59871
  }
59872
+ return amisSchema;
59721
59873
  }
59722
59874
 
59723
59875
  async function lookupToAmisIdsPicker(field, readonly, ctx){
@@ -60355,7 +60507,8 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60355
60507
  },
60356
60508
  pipeOut: (value, oldValue, data) => {
60357
60509
  if(value){
60358
- return value/100;
60510
+ const result = value/100;
60511
+ return Number(result.toFixed(field.scale+2));
60359
60512
  }
60360
60513
  return value;
60361
60514
  },
@@ -60587,7 +60740,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
60587
60740
  }
60588
60741
  if(!lodash.exports.isEmpty(convertData)){
60589
60742
  if(field.is_wide || convertData.type === 'group'){
60590
- convertData.className = 'col-span-2 m-1';
60743
+ convertData.className = 'col-span-2 m-0';
60591
60744
  }else {
60592
60745
  convertData.className = 'm-1';
60593
60746
  }