@steedos-widgets/amis-lib 1.2.30 → 1.2.32

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/index.umd.js CHANGED
@@ -511,7 +511,7 @@
511
511
 
512
512
  function getRelatedFieldTpl(field, ctx){
513
513
  let tpl = '';
514
- if(!field.reference_to && (field.optionsFunction || field._optionsFunction)){
514
+ if(!field.reference_to && (field.optionsFunction || field._optionsFunction || field.options)){
515
515
  if(field.isTableField){
516
516
  return `\${${field.name}}`
517
517
  }else {
@@ -975,6 +975,7 @@
975
975
  var frontend_form_new$1 = "New";
976
976
  var frontend_form_edit$1 = "Edit";
977
977
  var frontend_form_select$1 = "Select";
978
+ var frontend_form_please_select$1 = "Please select";
978
979
  var frontend_form_confirm$1 = "Confirm";
979
980
  var frontend_form_delete$1 = "Delete";
980
981
  var frontend_form_view$1 = "view";
@@ -1056,6 +1057,7 @@
1056
1057
  frontend_form_new: frontend_form_new$1,
1057
1058
  frontend_form_edit: frontend_form_edit$1,
1058
1059
  frontend_form_select: frontend_form_select$1,
1060
+ frontend_form_please_select: frontend_form_please_select$1,
1059
1061
  frontend_form_confirm: frontend_form_confirm$1,
1060
1062
  frontend_form_delete: frontend_form_delete$1,
1061
1063
  frontend_form_view: frontend_form_view$1,
@@ -1138,6 +1140,7 @@
1138
1140
  var frontend_form_new = "新建";
1139
1141
  var frontend_form_edit = "编辑";
1140
1142
  var frontend_form_select = "选择";
1143
+ var frontend_form_please_select = "请选择";
1141
1144
  var frontend_form_confirm = "确认";
1142
1145
  var frontend_form_delete = "删除";
1143
1146
  var frontend_form_view = "查看";
@@ -1220,6 +1223,7 @@
1220
1223
  frontend_form_new: frontend_form_new,
1221
1224
  frontend_form_edit: frontend_form_edit,
1222
1225
  frontend_form_select: frontend_form_select,
1226
+ frontend_form_please_select: frontend_form_please_select,
1223
1227
  frontend_form_confirm: frontend_form_confirm,
1224
1228
  frontend_form_delete: frontend_form_delete,
1225
1229
  frontend_form_view: frontend_form_view,
@@ -2586,7 +2590,8 @@
2586
2590
  } = this;
2587
2591
  const scopeId = this.scopeId || `amis-${appId}-${objectName}-listview`;
2588
2592
  const scope = this.scope || SteedosUI?.getRef(scopeId);
2589
- const listViewRef = scope.getComponentById(`listview_${uiSchema.name}`);
2593
+ //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9
2594
+ const listViewRef = scope.parent?.getComponentById(`listview_${uiSchema.name}`);
2590
2595
  if(_.isEmpty(listViewRef.props.store.toJSON().selectedItems)){
2591
2596
  listViewRef.handleAction({}, {
2592
2597
  "actionType": "toast",
@@ -5132,7 +5137,7 @@
5132
5137
  "trigger": "click",
5133
5138
  "icon": "fa fa-cog",
5134
5139
  "tooltip": i18next__default["default"].t('frontend_button_listview_control_tooltip'),
5135
- "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
5140
+ "btnClassName": "antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",
5136
5141
  "align": "right",
5137
5142
  "visibleOn": "${!isLookup}",
5138
5143
  "buttons": [
@@ -5176,7 +5181,7 @@
5176
5181
  "type": "dropdown-button",
5177
5182
  "icon": "fa fa-table-columns",
5178
5183
  "tooltip": `${i18next__default["default"].t('frontend_display_as')} ${displayAsLabel}`,
5179
- "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
5184
+ "btnClassName": "antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",
5180
5185
  "align": "right",
5181
5186
  "visibleOn": "${window:innerWidth > 768 && !!!isLookup}",
5182
5187
  "buttons": [
@@ -5838,6 +5843,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5838
5843
  }
5839
5844
  }
5840
5845
 
5846
+ if(${referenceTo?.objectName === "space_users"} && ${field.reference_to_field === "user"}){
5847
+ if(filters.length > 0){
5848
+ filters = [ ["user_accepted", "=", true], "and", filters ]
5849
+ }else{
5850
+ filters = [["user_accepted", "=", true]];
5851
+ }
5852
+ }
5853
+
5841
5854
 
5842
5855
  if(allowSearchFields){
5843
5856
  allowSearchFields.forEach(function(key){
@@ -6054,6 +6067,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6054
6067
 
6055
6068
  const data = {
6056
6069
  type: getAmisStaticFieldType('picker', readonly),
6070
+ modalTitle: i18next__default["default"].t('frontend_form_please_select') + " " + refObjectConfig.label,
6057
6071
  labelField: referenceTo.labelField.name,
6058
6072
  valueField: referenceTo.valueField.name,
6059
6073
  modalMode: 'dialog', //TODO 设置 dialog 或者 drawer,用来配置弹出方式
@@ -6170,6 +6184,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6170
6184
  filters.push(fieldFilters);
6171
6185
  }
6172
6186
 
6187
+ if(${referenceTo?.objectName === "space_users"} && ${field.reference_to_field === "user"}){
6188
+ if(filters.length > 0){
6189
+ filters = [ ["user_accepted", "=", true], "and", filters ]
6190
+ }else{
6191
+ filters = [["user_accepted", "=", true]];
6192
+ }
6193
+ }
6194
+
6173
6195
  const inFilterForm = ${ctx.inFilterForm};
6174
6196
  const filtersFunction = ${field.filtersFunction || field._filtersFunction};
6175
6197
 
@@ -6209,6 +6231,18 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6209
6231
  payload.data.options = options;
6210
6232
  return payload;
6211
6233
  `;
6234
+ }else if(field.options){
6235
+ apiInfo.adaptor = `
6236
+ var options = ${JSON.stringify(field.options)}
6237
+ if(api.data.$term){
6238
+ options = _.filter(options, function(o) {
6239
+ var label = o.label;
6240
+ return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;
6241
+ });
6242
+ }
6243
+ payload.data.options = options;
6244
+ return payload;
6245
+ `;
6212
6246
  }
6213
6247
 
6214
6248
  const data = {
@@ -6288,11 +6322,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6288
6322
  // ids人员点选模式
6289
6323
  return await lookupToAmisIdsPicker(field, readonly, ctx);
6290
6324
  }
6291
- if(!field.filters || field.filters.length == 0){
6292
- field.filters = [["user_accepted", "=", true]];
6293
- }else {
6294
- field.filters = [ ["user_accepted", "=", true], "and", field.filters ];
6295
- }
6296
6325
  // 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口
6297
6326
  // return await lookupToAmisSelectUser(field, readonly, ctx);
6298
6327
  }
@@ -6512,8 +6541,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6512
6541
  /*
6513
6542
  * @Author: baozhoutao@steedos.com
6514
6543
  * @Date: 2022-10-28 14:52:55
6515
- * @LastEditors: Please set LastEditors
6516
- * @LastEditTime: 2023-05-31 13:25:53
6544
+ * @LastEditors: liaodaxue
6545
+ * @LastEditTime: 2023-07-14 17:18:42
6517
6546
  * @Description:
6518
6547
  */
6519
6548
 
@@ -6545,6 +6574,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6545
6574
  return `static-images`;
6546
6575
  }
6547
6576
  return `static-${type}`;
6577
+ }else if(type === 'url'){
6578
+ return "input-url"
6548
6579
  }else {
6549
6580
  return 'static';
6550
6581
  }
@@ -6780,13 +6811,13 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6780
6811
  ___namespace.each(field.options, (item)=>{
6781
6812
  switch (dataType) {
6782
6813
  case 'number':
6783
- options.push({label: item.label, value: Number(item.value)});
6814
+ options.push({label: item.label, value: Number(item.value), icon: item.icon});
6784
6815
  break;
6785
6816
  case 'text':
6786
- options.push({label: item.label, value: String(item.value)});
6817
+ options.push({label: item.label, value: String(item.value), icon: item.icon});
6787
6818
  break;
6788
6819
  case 'boolean':
6789
- options.push({label: item.label, value: item.value === 'false' ? false : true});
6820
+ options.push({label: item.label, value: item.value === 'false' ? false : true, icon: item.icon});
6790
6821
  break;
6791
6822
  }
6792
6823
  });
@@ -6848,6 +6879,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6848
6879
  labelField: 'label',
6849
6880
  valueField: 'value'
6850
6881
  };
6882
+ const select_menuTpl = `<span class='flex items-center mt-0.5'>
6883
+ <span role='img' aria-label='smile' class='anticon anticon-smile'>
6884
+ <span class='slds-icon_container slds-icon-standard-\${REPLACE(icon,'_','-')}'>
6885
+ <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>
6886
+ <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\${icon}'></use>
6887
+ </svg>
6888
+ </span>
6889
+ </span>
6890
+ <span class='pl-1.5'>\${label}</span>
6891
+ </span>`;
6892
+ convertData.menuTpl = "${icon ? `"+select_menuTpl+"` : label}";
6851
6893
  if(field.multiple){
6852
6894
  convertData.multiple = true;
6853
6895
  convertData.extractValue = true;
@@ -7061,7 +7103,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7061
7103
  break;
7062
7104
  case 'url':
7063
7105
  convertData = {
7064
- type: getAmisStaticFieldType('url', readonly, field)
7106
+ type: getAmisStaticFieldType('url', readonly, field),
7107
+ static: readonly ? true : false
7065
7108
  };
7066
7109
  if(readonly && field.show_as_qr){
7067
7110
  convertData = {
@@ -7395,17 +7438,19 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7395
7438
  return EventType;
7396
7439
  };
7397
7440
  switch (field.type) {
7398
- //TODO:amis的picker组件直接点击选项x时不会触发change事件,待处理
7441
+ //TODO: amis的picker组件直接点击选项x时不会触发change事件,待处理
7399
7442
  case "lookup":
7400
7443
  case "master_detail":
7444
+ let labelField = quickEditSchema.body[0].labelField || "label";
7445
+ let valueField = quickEditSchema.body[0].valueField || "value";
7401
7446
  if (field.multiple) {
7402
7447
  TempDisplayField = `
7403
7448
  _display["${field.name}"] = [];
7404
- event.data.value.forEach(function(item,index){
7449
+ event.data.selectedItems.forEach(function(item,index){
7405
7450
  _display["${field.name}"].push(
7406
7451
  {
7407
- "label": event.data.option[index].${quickEditSchema.body[0].labelField},
7408
- "value": event.data.option[index]._id,
7452
+ "label": item.${labelField},
7453
+ "value": item.${valueField},
7409
7454
  "objectName": "${field.reference_to}"
7410
7455
  }
7411
7456
  )
@@ -7414,8 +7459,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7414
7459
  } else {
7415
7460
  TempDisplayField = `
7416
7461
  _display["${field.name}"] = {
7417
- "label": event.data.option.${quickEditSchema.body[0].labelField},
7418
- "value": event.data._id,
7462
+ "label": event.data.selectedItems.${labelField},
7463
+ "value": event.data.selectedItems.${valueField},
7419
7464
  "objectName": "${field.reference_to}"
7420
7465
  }
7421
7466
  `;
@@ -7579,7 +7624,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7579
7624
  type: "switch",
7580
7625
  name: field.name,
7581
7626
  label: field.label,
7582
- width: field.width,
7627
+ width: field.width || defaultWidth,
7583
7628
  toggled: field.toggled,
7584
7629
  static: true,
7585
7630
  className:"whitespace-nowrap",
@@ -7600,6 +7645,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7600
7645
  }
7601
7646
  else if(field.type === 'select'){
7602
7647
  const map = getSelectMap(field.options);
7648
+ let className = "";
7649
+ if(field.wrap === false){
7650
+ className += " whitespace-nowrap";
7651
+ }
7603
7652
  columns.push(Object.assign({}, {
7604
7653
  type: "mapping",
7605
7654
  name: field.name,
@@ -7608,7 +7657,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7608
7657
  sortable: field.sortable,
7609
7658
  width: field.width || defaultWidth,
7610
7659
  toggled: field.toggled,
7611
- className:"whitespace-nowrap",
7660
+ className,
7612
7661
  static: true,
7613
7662
  quickEdit: quickEditSchema
7614
7663
  }, field.amis, {name: field.name}));
@@ -7620,8 +7669,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7620
7669
  type = 'tpl';
7621
7670
  }else if(field.type === 'html'){
7622
7671
  type = 'markdown';
7623
- }else if(field.type === 'url' && field.show_as_qr){
7624
- type = 'qr-code';
7672
+ }else if(field.type === 'url'){
7673
+ if(field.show_as_qr){
7674
+ type = 'qr-code';
7675
+ }else {
7676
+ type = 'input-url';
7677
+ }
7625
7678
  }
7626
7679
  let className = "";
7627
7680
  if(field.type === 'textarea'){
@@ -8247,7 +8300,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8247
8300
  if(item[key]){
8248
8301
  if(field._optionsFunction){
8249
8302
  const optionsFunction = eval("(" + field._optionsFunction+ ")")(item);
8250
- item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return _.includes(item[key], option.value)}), 'label').join(' ');
8303
+ item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');
8304
+ }else if(field.options){
8305
+ const options = field.options;
8306
+ item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');
8251
8307
  }
8252
8308
  }
8253
8309
  })
@@ -8302,7 +8358,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8302
8358
 
8303
8359
  const setDataToComponentId = "${setDataToComponentId}";
8304
8360
  if(setDataToComponentId){
8305
- SteedosUI.getRef(api.body.$self.$scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8361
+ //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9
8362
+ SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
8306
8363
  };
8307
8364
  ${options.adaptor || ''}
8308
8365
  return payload;
@@ -8994,17 +9051,18 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8994
9051
  "objectApiName": "\${objectName}",
8995
9052
  "mode": "edit",
8996
9053
  "defaultData": doc,
8997
- "onEvent": {
8998
- "submitSucc": {
8999
- "weight": 0,
9000
- "actions": [
9001
- {
9002
- "actionType": "custom",
9003
- "script": "event.data.view?.calendar.refetchEvents();"
9004
- }
9005
- ]
9006
- }
9007
- }
9054
+ //改回为通用的提交事件
9055
+ // "onEvent": {
9056
+ // "submitSucc": {
9057
+ // "weight": 0,
9058
+ // "actions": [
9059
+ // {
9060
+ // "actionType": "custom",
9061
+ // "script": "event.data.view?.calendar.refetchEvents();"
9062
+ // }
9063
+ // ]
9064
+ // }
9065
+ // }
9008
9066
  }
9009
9067
  ],
9010
9068
  "closeOnEsc": false,
@@ -9133,6 +9191,20 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9133
9191
  "script": "console.log('eventsSet'); console.log(event);"
9134
9192
  }
9135
9193
  ]
9194
+ },
9195
+ "getRef": {
9196
+ "weight": 0,
9197
+ "actions": [
9198
+ {
9199
+ "componentId": `service_${options.id}`,
9200
+ "args": {
9201
+ "value":{
9202
+ "calendarRef": "${event.data.calendarRef}"
9203
+ }
9204
+ },
9205
+ "actionType": "setValue",
9206
+ }
9207
+ ]
9136
9208
  }
9137
9209
  };
9138
9210
 
@@ -9168,6 +9240,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9168
9240
  const amisSchema = {
9169
9241
  "type": "steedos-fullcalendar",
9170
9242
  "label": "",
9243
+ "id": options.id,
9171
9244
  "name": "fullcalendar",
9172
9245
  "placeholder":"${additionalFilters}",//用于触发reload
9173
9246
  "editable": permissions.allowEdit,
@@ -9190,7 +9263,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9190
9263
  * @Author: baozhoutao@steedos.com
9191
9264
  * @Date: 2022-05-26 16:02:08
9192
9265
  * @LastEditors: liaodaxue
9193
- * @LastEditTime: 2023-06-29 17:27:19
9266
+ * @LastEditTime: 2023-07-12 15:45:55
9194
9267
  * @Description:
9195
9268
  */
9196
9269
 
@@ -9249,7 +9322,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9249
9322
 
9250
9323
  // fieldSet 已支持显隐控制
9251
9324
  const sectionFieldsVisibleOn = ___namespace.map(___namespace.compact(___namespace.map(fieldSetBody, 'visibleOn')), (visibleOn) => {
9252
- return visibleOn;
9325
+ let visible = visibleOn;
9326
+ if(visible.indexOf('${')>-1){
9327
+ visible = visible.substring(visible.indexOf('{')+1, visible.indexOf('}'));
9328
+ }
9329
+ return visible ? "("+visible+")" : visible;
9253
9330
  });
9254
9331
 
9255
9332
  let section = {
@@ -13692,6 +13769,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
13692
13769
  exports.getRecordPageInitSchema = getRecordPageInitSchema;
13693
13770
  exports.getRecordPermissions = getRecordPermissions;
13694
13771
  exports.getRecordServiceSchema = getRecordServiceSchema;
13772
+ exports.getReferenceTo = getReferenceTo;
13695
13773
  exports.getRelatedFieldValue = getRelatedFieldValue;
13696
13774
  exports.getRelatedListSchema = getRelatedListSchema;
13697
13775
  exports.getRelatedsCount = getRelatedsCount;