@steedos-widgets/amis-object 1.3.7 → 1.3.9

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.
@@ -1622,6 +1622,9 @@ body.steedos {
1622
1622
  .antd-Select-popover .antd-Select-menu .antd-Select-option .antd-Checkbox--checkbox {
1623
1623
  white-space: nowrap;
1624
1624
  }
1625
+ .antd-Select-popover .antd-Select-menu .antd-Select-option .antd-Checkbox--checkbox > span {
1626
+ vertical-align: middle;
1627
+ }
1625
1628
  }
1626
1629
  .steedos-object-form .steedos-input-rich-text-readonly .antd-RichTextControl {
1627
1630
  border: 0;
@@ -1803,7 +1806,7 @@ body.steedos {
1803
1806
 
1804
1807
  @media (min-width: 767px) {
1805
1808
  /* 列表快速编辑功能样式 */
1806
- .steedos-object-table thead tr th:nth-child(3) {
1809
+ .steedos-object-table thead tr th:nth-child(2) {
1807
1810
  display: none;
1808
1811
  }
1809
1812
  .steedos-object-table tbody td.antd-Field--quickEditable > div {
@@ -3323,6 +3323,217 @@ const amisRender = (root, schema, data = {}, env = {}, options) => {
3323
3323
  return amis.embed(root, schema, data, Object.assign(getEvn(router), env));
3324
3324
  };
3325
3325
 
3326
+ /*
3327
+ * @Author: 殷亮辉 yinlianghui@hotoa.com
3328
+ * @Date: 2023-11-15 09:50:22
3329
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
3330
+ * @LastEditTime: 2023-11-16 18:38:21
3331
+ */
3332
+
3333
+ /**
3334
+ * @param {*} props
3335
+ * @param {*} mode edit/new/readonly
3336
+ */
3337
+ function getFormFields$1(props, mode = "edit") {
3338
+ return props.fields || [];
3339
+ }
3340
+
3341
+ /**
3342
+ * @param {*} props
3343
+ * @param {*} mode edit/new/readonly
3344
+ */
3345
+ function getInputTableColumns(props) {
3346
+ return props.fields.map(function(item){
3347
+ return Object.assign({}, item, {
3348
+ "type": "static"
3349
+ });
3350
+ }) || [];
3351
+ }
3352
+
3353
+ /**
3354
+ * @param {*} props
3355
+ * @param {*} mode edit/new/readonly
3356
+ */
3357
+ function getForm(props, mode = "edit") {
3358
+ let schema = {
3359
+ "type": "form",
3360
+ "title": "表单",
3361
+ "body": getFormFields$1(props, mode)
3362
+ };
3363
+ if (mode === "edit") {
3364
+ Object.assign(schema, {
3365
+ "onEvent": {
3366
+ "submit": {
3367
+ "weight": 0,
3368
+ "actions": [
3369
+ {
3370
+ "actionType": "setValue",
3371
+ "args": {
3372
+ "index": "${index}",
3373
+ "value": {
3374
+ "&": "$$"
3375
+ }
3376
+ },
3377
+ "componentId": props.id
3378
+ }
3379
+ ]
3380
+ }
3381
+ }
3382
+ });
3383
+ }
3384
+ else if (mode === "new") {
3385
+ Object.assign(schema, {
3386
+ "onEvent": {
3387
+ "submit": {
3388
+ "weight": 0,
3389
+ "actions": [
3390
+ {
3391
+ "componentId": props.id,
3392
+ "actionType": "addItem",
3393
+ "args": {
3394
+ "index": `\${${props.name}.length || 9000}`,//这里加9000是因为字段如果没放在form组件内,props.name.length拿不到值
3395
+ "item": {
3396
+ "&": "$$"
3397
+ }
3398
+ }
3399
+ }
3400
+ ]
3401
+ }
3402
+ }
3403
+ });
3404
+ }
3405
+ return schema;
3406
+ }
3407
+
3408
+ function getButtonNew(props) {
3409
+ return {
3410
+ "label": "新增",
3411
+ "type": "button",
3412
+ "icon": "fa fa-plus",
3413
+ "onEvent": {
3414
+ "click": {
3415
+ "actions": [
3416
+ {
3417
+ "actionType": "dialog",
3418
+ "dialog": {
3419
+ "type": "dialog",
3420
+ "title": "弹框标题",
3421
+ "body": [
3422
+ getForm(props, "new")
3423
+ ],
3424
+ "showCloseButton": true,
3425
+ "showErrorMsg": true,
3426
+ "showLoading": true,
3427
+ "className": "app-popover",
3428
+ "closeOnEsc": false
3429
+ }
3430
+ }
3431
+ ]
3432
+ }
3433
+ },
3434
+ "level": "primary"
3435
+ };
3436
+ }
3437
+
3438
+ function getButtonEdit(props) {
3439
+ return {
3440
+ "type": "button",
3441
+ "label": "编辑",
3442
+ "onEvent": {
3443
+ "click": {
3444
+ "actions": [
3445
+ {
3446
+ "actionType": "dialog",
3447
+ "dialog": {
3448
+ "type": "dialog",
3449
+ "title": "弹框标题",
3450
+ "body": [
3451
+ getForm(props, "edit")
3452
+ ],
3453
+ "showCloseButton": true,
3454
+ "showErrorMsg": true,
3455
+ "showLoading": true,
3456
+ "className": "app-popover",
3457
+ "closeOnEsc": false
3458
+ }
3459
+ }
3460
+ ]
3461
+ }
3462
+ }
3463
+ };
3464
+ }
3465
+
3466
+ function getButtonDelete(props) {
3467
+ return {
3468
+ "type": "button",
3469
+ "label": "删除",
3470
+ "onEvent": {
3471
+ "click": {
3472
+ "actions": [
3473
+ {
3474
+ "actionType": "deleteItem",
3475
+ "args": {
3476
+ "index": "${index+','}" //这里不加逗号后续会报错,语法是逗号分隔可以删除多行
3477
+ },
3478
+ "componentId": props.id
3479
+ }
3480
+ ]
3481
+ }
3482
+ }
3483
+ };
3484
+ }
3485
+
3486
+ const getAmisInputTableSchema = async (props, readonly) => {
3487
+ if (!props.id) {
3488
+ props.id = "steedos_input_table_" + props.name + "_" + Math.random().toString(36).substr(2, 9);
3489
+ }
3490
+ let buttonNewSchema = getButtonNew(props);
3491
+ let buttonEditSchema = getButtonEdit(props);
3492
+ let buttonDeleteSchema = getButtonDelete(props);
3493
+ let buttonsForColumnOperations = [];
3494
+ if(props.editable){
3495
+ buttonsForColumnOperations.push(buttonEditSchema);
3496
+ }
3497
+ if(props.removable){
3498
+ buttonsForColumnOperations.push(buttonDeleteSchema);
3499
+ }
3500
+ let inputTableSchema = {
3501
+ "type": "input-table",
3502
+ "label": props.label,
3503
+ "name": props.name,
3504
+ "addable": props.addable,
3505
+ "editable": props.editable,
3506
+ // "removable": props.removable, //不可以removable设置为true,因为会在原生的操作列显示减号操作按钮,此开关实测只控制这个按钮显示不会影响删除功能
3507
+ "draggable": props.draggable,
3508
+ "showIndex": props.showIndex,
3509
+ "perPage": props.perPage,
3510
+ "id": props.id,
3511
+ "columns": getInputTableColumns(props),
3512
+ "needConfirm": false,
3513
+ "strictMode": true,
3514
+ "showTableAddBtn": false,
3515
+ "showFooterAddBtn": false
3516
+ };
3517
+ if(buttonsForColumnOperations.length){
3518
+ inputTableSchema.columns.push({
3519
+ "name": "__op__",
3520
+ "type": "static",
3521
+ "body": buttonsForColumnOperations
3522
+ });
3523
+ }
3524
+ let schema = {
3525
+ "type": "wrapper",
3526
+ "size": "none",
3527
+ "body": [
3528
+ inputTableSchema
3529
+ ]
3530
+ };
3531
+ if(props.addable){
3532
+ schema.body.push(buttonNewSchema);
3533
+ }
3534
+ return schema;
3535
+ };
3536
+
3326
3537
  /*
3327
3538
  * @Author: baozhoutao@steedos.com
3328
3539
  * @Date: 2022-07-04 11:24:28
@@ -4052,6 +4263,7 @@ function getSaveDataTpl(fields){
4052
4263
  delete formData.initialValues;
4053
4264
  delete formData.editFormInited;
4054
4265
  delete formData.isLookup;
4266
+ delete formData.selectedRowResponseResult;
4055
4267
  ${getScriptForReadonlyFields(fields)}
4056
4268
  ${getScriptForRemoveUrlPrefixForImgFields(fields)}
4057
4269
  ${getScriptForSimplifiedValueForFileFields(fields)}
@@ -10954,7 +11166,7 @@ var config = {
10954
11166
  };
10955
11167
 
10956
11168
  async function getQuickEditSchema(field, options){
10957
- //判断在amis3.2以上环境下,放开批量编辑
11169
+ //判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑
10958
11170
  let isAmisVersionforBatchEdit = false;
10959
11171
  if(window.amisRequire && window.amisRequire('amis')){
10960
11172
  isAmisVersionforBatchEdit = window.amisRequire('amis').version[0] >= 3 && window.amisRequire('amis').version[2] >= 2;
@@ -11355,6 +11567,10 @@ async function getQuickEditSchema(field, options){
11355
11567
  } else {
11356
11568
  quickEditSchema = false;
11357
11569
  }
11570
+ //amis3.2以下禁用lookup的单元格编辑
11571
+ if(field.type == "lookup" && !isAmisVersionforBatchEdit){
11572
+ quickEditSchema = false;
11573
+ }
11358
11574
  //TODO:附件多选时会覆盖老数据,暂时禁用
11359
11575
  if(field.type == "file" && field.multiple){
11360
11576
  quickEditSchema = false;
@@ -11385,9 +11601,9 @@ function getFieldWidth(width){
11385
11601
  async function getTableColumns$1(fields, options){
11386
11602
  const columns = [];
11387
11603
  if(!options.isLookup){
11388
- columns.push({name: '_index',type: 'text', width: 32, placeholder: ""});
11389
11604
  //将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
11390
11605
  columns.push({name: '_display',type: 'static', width: 32, placeholder: "",id: "_display_${_index}", className: "hidden"});
11606
+ columns.push({name: '_index',type: 'text', width: 32, placeholder: ""});
11391
11607
  }
11392
11608
  const allowEdit = options.permissions?.allowEdit && !options.isLookup && options.enable_inline_edit != false;
11393
11609
 
@@ -11479,14 +11695,14 @@ async function getTableColumns$1(fields, options){
11479
11695
  }
11480
11696
  else {
11481
11697
  const tpl = await getFieldTpl(field, options);
11482
- let type = 'text';
11698
+ let type = 'static-text';
11483
11699
  if(tpl){
11484
11700
  type = 'static';
11485
11701
  }else if(field.type === 'html'){
11486
- type = 'markdown';
11702
+ type = 'static-markdown';
11487
11703
  }else if(field.type === 'url'){
11488
11704
  if(field.show_as_qr){
11489
- type = 'qr-code';
11705
+ type = 'static-qr-code';
11490
11706
  }else {
11491
11707
  type = 'input-url';
11492
11708
  }
@@ -12638,6 +12854,7 @@ function getSaveApi(object, recordId, fields, options){
12638
12854
  },
12639
12855
  adaptor: `
12640
12856
  if(payload.errors){
12857
+ delete payload.data;
12641
12858
  payload.status = 2;
12642
12859
  payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;
12643
12860
  }
@@ -17914,6 +18131,7 @@ var index_esm$1 = /*#__PURE__*/Object.freeze({
17914
18131
  extendObject: extendObject,
17915
18132
  fetchAPI: fetchAPI,
17916
18133
  filtersToConditions: filtersToConditions,
18134
+ getAmisInputTableSchema: getAmisInputTableSchema,
17917
18135
  getApp: getApp,
17918
18136
  getApps: getApps,
17919
18137
  getAuthToken: getAuthToken,
@@ -18275,8 +18493,8 @@ var SteedosDropdownButton = function (props) {
18275
18493
  /*
18276
18494
  * @Author: baozhoutao@steedos.com
18277
18495
  * @Date: 2022-09-01 14:44:57
18278
- * @LastEditors: baozhoutao@steedos.com
18279
- * @LastEditTime: 2023-10-13 15:57:39
18496
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
18497
+ * @LastEditTime: 2023-11-15 11:32:11
18280
18498
  * @Description:
18281
18499
  */
18282
18500
  var SteedosIcon = function (props) {
@@ -18303,9 +18521,9 @@ var SteedosIcon = function (props) {
18303
18521
  category = foo[0];
18304
18522
  name = foo[1];
18305
18523
  }
18306
- return React.createElement("span", { className: "slds-icon_container slds-icon-".concat(category, "-").concat(name, " ").concat(containerClassName) },
18524
+ return React.createElement("span", { className: "slds-icon_container slds-icon-".concat(category, "-").concat(name.replace("_", "-"), " ").concat(containerClassName) },
18307
18525
  React.createElement("svg", { className: "slds-icon slds-icon_".concat(size, " slds-icon-text-").concat(colorVariant, " ").concat(className) },
18308
- React.createElement("use", { xlinkHref: "/assets/icons/".concat(category, "-sprite/svg/symbols.svg#").concat(name) })));
18526
+ React.createElement("use", { xlinkHref: "/assets/icons/".concat(category, "-sprite/svg/symbols.svg#").concat(name.replace("-", "_")) })));
18309
18527
  };
18310
18528
 
18311
18529
  Tabs.TabPane;
@@ -18729,6 +18947,9 @@ var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0
18729
18947
  if (!ctx) {
18730
18948
  ctx = {};
18731
18949
  }
18950
+ if (!ctx.hiddenColumnOperation) {
18951
+ ctx.hiddenColumnOperation = hiddenColumnOperation;
18952
+ }
18732
18953
  if (!ctx.formFactor) {
18733
18954
  ctx.formFactor = formFactor;
18734
18955
  }
@@ -18768,7 +18989,7 @@ var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0
18768
18989
  appId = (data === null || data === void 0 ? void 0 : data.appId) || (defaultData === null || defaultData === void 0 ? void 0 : defaultData.appId);
18769
18990
  // ctx中值为undefined的属性不能保留,否则会导致 filters等被覆盖。
18770
18991
  ctx = pickBy(ctx, function (value) { return value !== undefined; });
18771
- return [4 /*yield*/, getTableSchema(appId, objectApiName, columns, __assign$2(__assign$2({ filters: tableFilters, filtersFunction: filtersFunction, top: top, sort: sort, sortField: sortField, sortOrder: sortOrder, extraColumns: extraColumns, defaults: defaults }, ctx), { setDataToComponentId: setDataToComponentId, requestAdaptor: requestAdaptor, adaptor: adaptor, filterVisible: filterVisible, headerToolbarItems: headerToolbarItems, crudDataFilter: crudDataFilter, onCrudDataFilter: onCrudDataFilter, amisData: allData, env: env, hiddenColumnOperation: hiddenColumnOperation }))];
18992
+ return [4 /*yield*/, getTableSchema(appId, objectApiName, columns, __assign$2(__assign$2({ filters: tableFilters, filtersFunction: filtersFunction, top: top, sort: sort, sortField: sortField, sortOrder: sortOrder, extraColumns: extraColumns, defaults: defaults }, ctx), { setDataToComponentId: setDataToComponentId, requestAdaptor: requestAdaptor, adaptor: adaptor, filterVisible: filterVisible, headerToolbarItems: headerToolbarItems, crudDataFilter: crudDataFilter, onCrudDataFilter: onCrudDataFilter, amisData: allData, env: env }))];
18772
18993
  case 1:
18773
18994
  amisSchema = (_e.sent()).amisSchema;
18774
18995
  amisSchema.data = Object.assign({}, amisSchema.data, amisSchemaData);
@@ -20241,8 +20462,8 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
20241
20462
  /*
20242
20463
  * @Author: baozhoutao@steedos.com
20243
20464
  * @Date: 2023-01-14 16:41:24
20244
- * @LastEditors: baozhoutao@steedos.com
20245
- * @LastEditTime: 2023-09-14 13:08:43
20465
+ * @LastEditors: liaodaxue
20466
+ * @LastEditTime: 2023-11-17 10:53:59
20246
20467
  * @Description:
20247
20468
  */
20248
20469
  var getSelectFlowSchema = function (id, props) {
@@ -20394,7 +20615,7 @@ var getSelectFlowSchema = function (id, props) {
20394
20615
  method: "post",
20395
20616
  url: "${context.rootUrl}/graphql?keywords=${keywords}",
20396
20617
  requestAdaptor: "\n const keywords = api.body.keywords || '';\n const appId = '".concat(data.app_id || "", "';\n api.data = {\n query: `\n {\n options: flows__getList(action: \"").concat(action, "\", keywords: \"${keywords}\", appId: \"${appId}\", distributeInstanceId: \"").concat(distributeInstanceId, "\", distributeStepId: \"").concat(distributeStepId, "\", allData: ").concat(allData, "){\n value:_id\n label:name\n children: flows{\n value: _id,\n label: name\n }\n }\n }\n `\n }\n "),
20397
- adaptor: "\n var options = payload.data.options;\n if(options){\n options.forEach(function(item,index) {\n if(item.value != 'startFlows' && (!item.children || item.children.length == 0)){\n payload.data.options.splice(index,1)\n }\n })\n }\n // if(payload.data.options.length === 1 && payload.data.options[0].children.length === 1){\n // payload.data.value = payload.data.options[0].children[0].value\n // }\n return payload;\n ",
20618
+ adaptor: "\n var options = payload.data.options;\n if (options) {\n var filteredOptions = options.filter(function(item) {\n return item.value == 'startFlows' || (item.children && item.children.length > 0);\n });\n payload.data.options = filteredOptions;\n }\n // if(payload.data.options.length === 1 && payload.data.options[0].children.length === 1){\n // payload.data.value = payload.data.options[0].children[0].value\n // }\n return payload;\n ",
20398
20619
  "headers": {
20399
20620
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
20400
20621
  }
@@ -20471,6 +20692,20 @@ var AmisInstanceDetail = function (props) { return __awaiter(void 0, void 0, voi
20471
20692
  });
20472
20693
  }); };
20473
20694
 
20695
+ var AmisInputTable = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20696
+ var amisSchema;
20697
+ return __generator(this, function (_a) {
20698
+ switch (_a.label) {
20699
+ case 0:
20700
+ props.$schema, props.fields, props.name, props.id, props.data;
20701
+ return [4 /*yield*/, getAmisInputTableSchema(props)];
20702
+ case 1:
20703
+ amisSchema = _a.sent();
20704
+ return [2 /*return*/, amisSchema];
20705
+ }
20706
+ });
20707
+ }); };
20708
+
20474
20709
  var PageListView = function (props) { return __awaiter(void 0, void 0, void 0, function () {
20475
20710
  var formFactor, appId, objectApiName, display, data, _display, page, listSchema;
20476
20711
  return __generator(this, function (_b) {
@@ -20659,5 +20894,5 @@ var index_esm = /*#__PURE__*/Object.freeze({
20659
20894
  SteedosUI: SteedosUI$1
20660
20895
  });
20661
20896
 
20662
- export { AmisAppLauncher, AmisAppMenu, AmisGlobalFooter, AmisGlobalHeader, AmisGlobalHeaderToolbar, AmisInstanceDetail, index_esm$1 as AmisLib, AmisLogo, AmisObjectButton, AmisObjectCalendar, AmisObjectFieldLookup, AmisObjectForm, AmisObjectListView, AmisObjectTable, AmisProvider, AmisRecordDetail, AmisRecordDetailHeader, AmisRecordDetailRelatedList, AmisRecordDetailRelatedLists, AmisRecordService, AmisSelectFlow, AmisSelectUser, AmisSteedosField, FromNow, PageListView, PageObject, PageRecordDetail, SteedosBadge, SteedosBadgeRibbon, SteedosDropdown, SteedosDropdownButton, SteedosIcon, index_esm as SteedosLib, SteedosLoading, SteedosSkeleton };
20897
+ export { AmisAppLauncher, AmisAppMenu, AmisGlobalFooter, AmisGlobalHeader, AmisGlobalHeaderToolbar, AmisInputTable, AmisInstanceDetail, index_esm$1 as AmisLib, AmisLogo, AmisObjectButton, AmisObjectCalendar, AmisObjectFieldLookup, AmisObjectForm, AmisObjectListView, AmisObjectTable, AmisProvider, AmisRecordDetail, AmisRecordDetailHeader, AmisRecordDetailRelatedList, AmisRecordDetailRelatedLists, AmisRecordService, AmisSelectFlow, AmisSelectUser, AmisSteedosField, FromNow, PageListView, PageObject, PageRecordDetail, SteedosBadge, SteedosBadgeRibbon, SteedosDropdown, SteedosDropdownButton, SteedosIcon, index_esm as SteedosLib, SteedosLoading, SteedosSkeleton };
20663
20898
  //# sourceMappingURL=amis-object.esm.js.map