@steedos-widgets/amis-lib 1.2.33 → 1.2.35-beta.1

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.esm.js CHANGED
@@ -399,8 +399,8 @@ function getContrastColor(bgColor) {
399
399
  /*
400
400
  * @Author: baozhoutao@steedos.com
401
401
  * @Date: 2022-05-23 09:53:08
402
- * @LastEditors: Please set LastEditors
403
- * @LastEditTime: 2023-05-22 15:13:18
402
+ * @LastEditors: liaodaxue
403
+ * @LastEditTime: 2023-07-28 16:26:31
404
404
  * @Description:
405
405
  */
406
406
 
@@ -584,6 +584,9 @@ function getPasswordTpl(field){
584
584
  <% } %>`
585
585
  }
586
586
 
587
+ function getLocationTpl(field){
588
+ return `\${${field.name} ? ${field.name}.address : ''}`
589
+ }
587
590
 
588
591
  async function getFieldTpl (field, options){
589
592
  if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLabel){
@@ -608,6 +611,8 @@ async function getFieldTpl (field, options){
608
611
  return await getRelatedFieldTpl(field, options);
609
612
  case 'master_detail':
610
613
  return await getRelatedFieldTpl(field, options);
614
+ case 'location':
615
+ return await getLocationTpl(field);
611
616
  case 'number':
612
617
  case 'currency':
613
618
  return await getNumberTpl(field);
@@ -950,6 +955,7 @@ var frontend_form_save_and_new$1 = "Save and New";
950
955
  var frontend_form_cancel$1 = "Cancel";
951
956
  var frontend_form_new$1 = "New";
952
957
  var frontend_form_edit$1 = "Edit";
958
+ var frontend_form_preview$1 = "Preview";
953
959
  var frontend_form_select$1 = "Select";
954
960
  var frontend_form_please_select$1 = "Please select";
955
961
  var frontend_form_confirm$1 = "Confirm";
@@ -1032,6 +1038,7 @@ var en_us = {
1032
1038
  frontend_form_cancel: frontend_form_cancel$1,
1033
1039
  frontend_form_new: frontend_form_new$1,
1034
1040
  frontend_form_edit: frontend_form_edit$1,
1041
+ frontend_form_preview: frontend_form_preview$1,
1035
1042
  frontend_form_select: frontend_form_select$1,
1036
1043
  frontend_form_please_select: frontend_form_please_select$1,
1037
1044
  frontend_form_confirm: frontend_form_confirm$1,
@@ -1115,6 +1122,7 @@ var frontend_form_save_and_new = "保存并新建";
1115
1122
  var frontend_form_cancel = "取消";
1116
1123
  var frontend_form_new = "新建";
1117
1124
  var frontend_form_edit = "编辑";
1125
+ var frontend_form_preview = "预览";
1118
1126
  var frontend_form_select = "选择";
1119
1127
  var frontend_form_please_select = "请选择";
1120
1128
  var frontend_form_confirm = "确认";
@@ -1198,6 +1206,7 @@ var zh_cn = {
1198
1206
  frontend_form_cancel: frontend_form_cancel,
1199
1207
  frontend_form_new: frontend_form_new,
1200
1208
  frontend_form_edit: frontend_form_edit,
1209
+ frontend_form_preview: frontend_form_preview,
1201
1210
  frontend_form_select: frontend_form_select,
1202
1211
  frontend_form_please_select: frontend_form_please_select,
1203
1212
  frontend_form_confirm: frontend_form_confirm,
@@ -5636,7 +5645,7 @@ function getLookupSapceUserTreeSchema(){
5636
5645
  const tree = [{
5637
5646
  "type": "input-tree",
5638
5647
  "className": "",
5639
- "inputClassName": "pl-0",
5648
+ "inputClassName": "p-0",
5640
5649
  "id": "u:7fd77b7915b0",
5641
5650
  "source": {
5642
5651
  "method": "post",
@@ -5697,7 +5706,7 @@ function getLookupSapceUserTreeSchema(){
5697
5706
  "left": "-200px",
5698
5707
  "width": "190px",
5699
5708
  "bottom": 0,
5700
- "top": "-14px",
5709
+ "top": "2px",
5701
5710
  "overflow": "auto",
5702
5711
  "min-height":"300px"
5703
5712
  },
@@ -5963,7 +5972,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
5963
5972
  "margin-left":"200px",
5964
5973
  "min-height": "300px"
5965
5974
  };
5975
+ pickerSchema.className = pickerSchema.className || "" + " steedos-select-user";
5966
5976
  }
5977
+
5967
5978
  pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, ctx.formFactor, { headerToolbarItems });
5968
5979
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
5969
5980
  if (isAllowCreate) {
@@ -6458,11 +6469,10 @@ async function getIdsPickerSchema(field, readonly, ctx){
6458
6469
  * @Author: baozhoutao@steedos.com
6459
6470
  * @Date: 2023-01-13 17:27:54
6460
6471
  * @LastEditors: liaodaxue
6461
- * @LastEditTime: 2023-07-24 15:23:12
6472
+ * @LastEditTime: 2023-07-27 17:33:54
6462
6473
  * @Description:
6463
6474
  */
6464
6475
 
6465
-
6466
6476
  const getMarkdownFieldSchema = (field, readonly, ctx)=>{
6467
6477
  if(readonly){
6468
6478
  return {
@@ -6489,7 +6499,7 @@ const getMarkdownFieldSchema = (field, readonly, ctx)=>{
6489
6499
  "className": "steedos-markdown",
6490
6500
  "tabs": [
6491
6501
  {
6492
- "title": "Write",
6502
+ "title": i18next.t('frontend_form_edit'),
6493
6503
  "tab": [
6494
6504
  {
6495
6505
  "type": "editor",
@@ -6499,7 +6509,7 @@ const getMarkdownFieldSchema = (field, readonly, ctx)=>{
6499
6509
  ]
6500
6510
  },
6501
6511
  {
6502
- "title": "Preview",
6512
+ "title": i18next.t('frontend_form_preview'),
6503
6513
  "tab": [
6504
6514
  {
6505
6515
  "type": "markdown",
@@ -6556,7 +6566,7 @@ const getHtmlFieldSchema = (field, readonly, ctx)=>{
6556
6566
  * @Author: baozhoutao@steedos.com
6557
6567
  * @Date: 2022-10-28 14:52:55
6558
6568
  * @LastEditors: liaodaxue
6559
- * @LastEditTime: 2023-07-14 17:18:42
6569
+ * @LastEditTime: 2023-07-28 16:16:29
6560
6570
  * @Description:
6561
6571
  */
6562
6572
 
@@ -6580,6 +6590,8 @@ function getAmisStaticFieldType(type, readonly, options){
6580
6590
  if(!readonly){
6581
6591
  if(_$1.includes(AmisFormInputs, type)){
6582
6592
  return `input-${type}`;
6593
+ }else if(type === 'location'){
6594
+ return "location-picker"
6583
6595
  }
6584
6596
  return type;
6585
6597
  }
@@ -7137,6 +7149,30 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
7137
7149
  type: getAmisStaticFieldType('email', readonly)
7138
7150
  };
7139
7151
  break;
7152
+ case 'location':
7153
+ // 申请ak后需要设置白名单; https://lbsyun.baidu.com/apiconsole/key/create#/home
7154
+ // console.log('fie==>', field.name, field);
7155
+ let ak = "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7";
7156
+ let vendor = "baidu"; /* 'baidu' | 'gaode' */
7157
+ if(window.Meteor){
7158
+ const map_ak = Meteor.settings?.public?.amis?.map_ak;
7159
+ if(map_ak){
7160
+ ak = map_ak;
7161
+ }
7162
+ const map_vendor = Meteor.settings?.public?.amis?.map_vendor;
7163
+ if(map_vendor){
7164
+ vendor = map_vendor;
7165
+ }
7166
+ }
7167
+
7168
+ convertData = {
7169
+ type: getAmisStaticFieldType('location', readonly),
7170
+ tpl: readonly ? getLocationTpl(field) : null,
7171
+ ak,
7172
+ vendor,
7173
+ label: field.label
7174
+ };
7175
+ break;
7140
7176
  case 'avatar':
7141
7177
  convertData = getAmisFileSchema(field, readonly);
7142
7178
  break;
@@ -7458,26 +7494,45 @@ async function getQuickEditSchema(field, options){
7458
7494
  let labelField = quickEditSchema.body[0].labelField || "label";
7459
7495
  let valueField = quickEditSchema.body[0].valueField || "value";
7460
7496
  if (field.multiple) {
7497
+ /*
7498
+ 多选分两种情况。
7499
+ 第一种是减少选项时(判断新的数据是否比老的数据短),按照index删除_display中对应选项,保证回显没问题;
7500
+ 第二种是增加选项时,按照value的值,找到对应选项,并按照_display的规则为其赋值
7501
+ */
7461
7502
  TempDisplayField = `
7503
+ const preData = event.data.__super.${field.name};
7504
+ if(preData && event.data.${field.name}.length < preData.length){
7505
+ let deletedIndex;
7506
+ preData.forEach(function(item,index){
7507
+ if(_.indexOf(event.data.${field.name}, item) == -1) _display["${field.name}"].splice(index, 1);
7508
+ })
7509
+ }else{
7462
7510
  _display["${field.name}"] = [];
7463
- event.data.selectedItems.forEach(function(item,index){
7511
+ event.data.value.forEach(function(val,index){
7512
+ const item = _.find(event.data.selectedItems, { ${valueField}: val });
7464
7513
  _display["${field.name}"].push(
7465
7514
  {
7466
7515
  "label": item.${labelField},
7467
- "value": item.${valueField},
7516
+ "value": item[event.data.uiSchema.idFieldName],
7468
7517
  "objectName": "${field.reference_to}"
7469
7518
  }
7470
7519
  )
7471
7520
  })
7472
- `;
7521
+ }
7522
+
7523
+ `;
7473
7524
  } else {
7474
7525
  TempDisplayField = `
7526
+ if(event.data.value){
7475
7527
  _display["${field.name}"] = {
7476
7528
  "label": event.data.selectedItems.${labelField},
7477
- "value": event.data.selectedItems.${valueField},
7529
+ "value": event.data.selectedItems[event.data.uiSchema.idFieldName],
7478
7530
  "objectName": "${field.reference_to}"
7479
7531
  }
7480
- `;
7532
+ }else{
7533
+ _display["${field.name}"] = {}
7534
+ }
7535
+ `;
7481
7536
  }
7482
7537
  quickEditSchema.body[0].onEvent["change"] = quickEditOnEvent(TempDisplayField);
7483
7538
  break;
@@ -7609,6 +7664,10 @@ async function getTableColumns(fields, options){
7609
7664
  for (const field of fields) {
7610
7665
  //增加quickEdit属性,实现快速编辑
7611
7666
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
7667
+ let className = "";
7668
+ if(field.wrap != true){
7669
+ className += " whitespace-nowrap";
7670
+ }
7612
7671
  if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
7613
7672
  const previewFileScript = `
7614
7673
  var data = event.data;
@@ -7619,7 +7678,7 @@ async function getTableColumns(fields, options){
7619
7678
  columns.push({
7620
7679
  "type": "button",
7621
7680
  "label": `<%=data.versions ? data.name : "${field.label}"%>`,
7622
- "className": "whitespace-nowrap",
7681
+ className,
7623
7682
  "level": "link",
7624
7683
  "quickEdit": quickEditSchema,
7625
7684
  "onEvent": {
@@ -7656,7 +7715,7 @@ async function getTableColumns(fields, options){
7656
7715
  width: getFieldWidth(field.width),
7657
7716
  toggled: field.toggled,
7658
7717
  static: true,
7659
- className:"whitespace-nowrap",
7718
+ className,
7660
7719
  quickEdit: quickEditSchema
7661
7720
  }, field.amis, {name: field.name}));
7662
7721
  }else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){
@@ -7668,16 +7727,12 @@ async function getTableColumns(fields, options){
7668
7727
  toggled: field.toggled,
7669
7728
  quickEdit: quickEditSchema,
7670
7729
  static: true,
7671
- className:"whitespace-nowrap",
7730
+ className,
7672
7731
  ...getAmisFileReadonlySchema(field)
7673
7732
  }, field.amis, {name: field.name}));
7674
7733
  }
7675
7734
  else if(field.type === 'select'){
7676
7735
  const map = getSelectMap(field.options);
7677
- let className = "";
7678
- if(field.wrap === false){
7679
- className += " whitespace-nowrap";
7680
- }
7681
7736
  columns.push(Object.assign({}, {
7682
7737
  type: "mapping",
7683
7738
  name: field.name,
@@ -7705,12 +7760,8 @@ async function getTableColumns(fields, options){
7705
7760
  type = 'input-url';
7706
7761
  }
7707
7762
  }
7708
- let className = "";
7709
7763
  if(field.type === 'textarea'){
7710
- className = 'min-w-56';
7711
- }
7712
- if(field.wrap === false){
7713
- className += " whitespace-nowrap";
7764
+ className += 'min-w-56';
7714
7765
  }
7715
7766
  if(!field.hidden && !field.extra){
7716
7767
  columns.push(Object.assign({}, {
@@ -7730,6 +7781,7 @@ async function getTableColumns(fields, options){
7730
7781
  }, field.amis, {name: field.name}));
7731
7782
  }
7732
7783
  }
7784
+
7733
7785
  }
7734
7786
  // columns.push(getOperation(fields));
7735
7787
  if(!_$1.some(columns, { name: options.labelFieldName })){
@@ -9270,13 +9322,13 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
9270
9322
  "selectMirror": permissions.allowCreate,
9271
9323
  "initialView": initialView,
9272
9324
  "businessHours": businessHours,
9273
- ...config,
9274
- "onEvent": onEvent,
9275
9325
  "views":{
9276
9326
  listWeek: {
9277
9327
  buttonText: i18next.t('frontend_calendar_listWeek')
9278
9328
  }
9279
- }
9329
+ },
9330
+ ...config,
9331
+ "onEvent": onEvent
9280
9332
  };
9281
9333
  return amisSchema;
9282
9334
  }