@steedos-widgets/amis-object 1.1.6 → 1.1.8

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.
@@ -840,6 +840,9 @@ body {
840
840
  .sm\:p-0 {
841
841
  padding: 0px
842
842
  }
843
+ .sm\:p-3 {
844
+ padding: 0.75rem
845
+ }
843
846
  .sm\:shadow {
844
847
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
845
848
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
@@ -1935,8 +1935,8 @@ const getSchema$3 = async (uiSchema, ctx) => {
1935
1935
  /*
1936
1936
  * @Author: 殷亮辉 yinlianghui@hotoa.com
1937
1937
  * @Date: 2023-03-22 09:31:21
1938
- * @LastEditors: Please set LastEditors
1939
- * @LastEditTime: 2023-03-28 14:06:47
1938
+ * @LastEditors: baozhoutao@steedos.com
1939
+ * @LastEditTime: 2023-04-06 16:04:20
1940
1940
  */
1941
1941
  const getSchema$2 = (uiSchema)=>{
1942
1942
  return {
@@ -1966,15 +1966,11 @@ const getSchema$2 = (uiSchema)=>{
1966
1966
  },
1967
1967
  "adaptor": `
1968
1968
  if(payload.errors){
1969
- payload.status = 2;
1970
- payload.msg = payload.errors[0].message;
1969
+ payload.status = 2;
1970
+ payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;
1971
1971
  }
1972
1972
  return payload;
1973
1973
  `,
1974
- },
1975
- "messages": {
1976
- "success": "删除成功",
1977
- "failed": "删除失败"
1978
1974
  }
1979
1975
  },
1980
1976
  "actionType": "ajax"
@@ -3681,17 +3677,22 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
3681
3677
  async function getObjectRelatedListHeader(objectSchema, recordId, relatedObjectName) {
3682
3678
  }
3683
3679
 
3684
- const getDisplayAsButton = function(showDisplayAs){
3680
+ const getDisplayAsButton = function(objectName, showDisplayAs){
3681
+ let displayAs = Router$1.getTabDisplayAs(objectName);
3685
3682
  let buttons = [
3686
3683
  {
3687
3684
  "type": "button",
3688
3685
  "label": "表格",
3689
- "onClick": "const url = document.location.pathname + '?display=grid'; props.env.jumpTo(url);"
3686
+ "onClick": "let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');",
3687
+ "rightIcon": displayAs != 'split' ? "fa fa-check" : null,
3688
+ "rightIconClassName": "m-l-sm"
3690
3689
  },
3691
3690
  {
3692
3691
  "type": "button",
3693
3692
  "label": "分栏视图",
3694
- "onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);"
3693
+ "onClick": "const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",
3694
+ "rightIcon": displayAs === 'split' ? "fa fa-check" : null,
3695
+ "rightIconClassName": "m-l-sm"
3695
3696
  }
3696
3697
  ];
3697
3698
  return {
@@ -3779,7 +3780,7 @@ function getExportApiRequestAdaptorScript(){
3779
3780
  `
3780
3781
  }
3781
3782
 
3782
- function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false, hiddenCount = false} = {}){
3783
+ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false, hiddenCount = false, headerToolbarItems} = {}){
3783
3784
  const isMobile = window.innerWidth < 768;
3784
3785
  if(isMobile){
3785
3786
  showDisplayAs = false;
@@ -3833,11 +3834,12 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3833
3834
  }
3834
3835
  }
3835
3836
  },
3836
- showDisplayAs? getDisplayAsButton() : {}
3837
+ showDisplayAs? getDisplayAsButton(mainObject?.name) : {}
3837
3838
  ]
3838
3839
  }else {
3839
3840
  return [
3840
3841
  // "filter-toggler",
3842
+ ...(headerToolbarItems || []),
3841
3843
  "bulkActions",
3842
3844
  {
3843
3845
  "type": "columns-toggler",
@@ -3913,7 +3915,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3913
3915
  }
3914
3916
  }
3915
3917
  },
3916
- showDisplayAs? getDisplayAsButton() : {}
3918
+ showDisplayAs? getDisplayAsButton(showDisplayAs) : {}
3917
3919
  // {
3918
3920
  // "type": "search-box",
3919
3921
  // "align": "right",
@@ -4505,20 +4507,20 @@ async function lookupToAmisSelect(field, readonly, ctx){
4505
4507
 
4506
4508
  if(referenceTo){
4507
4509
  // 字段值单独走一个请求合并到source的同一个GraphQL接口中
4508
- const defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null, {
4509
- [referenceTo.labelField.name]: Object.assign({}, referenceTo.labelField, {alias: 'label'}),
4510
- [referenceTo.valueField.name]: Object.assign({}, referenceTo.valueField, {alias: 'value'})
4511
- }, {
4510
+ const defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null, [
4511
+ Object.assign({}, referenceTo.labelField, {alias: 'label'}),
4512
+ Object.assign({}, referenceTo.valueField, {alias: 'value'})
4513
+ ], {
4512
4514
  alias: "defaultValueOptions",
4513
4515
  filters: "{__options_filters}",
4514
4516
  count: false
4515
4517
  });
4516
4518
  apiInfo = await getApi$1({
4517
4519
  name: referenceTo.objectName
4518
- }, null, {
4519
- [referenceTo.labelField.name]: Object.assign({}, referenceTo.labelField, {alias: 'label'}),
4520
- [referenceTo.valueField.name]: Object.assign({}, referenceTo.valueField, {alias: 'value'})
4521
- }, {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: "{__sort}"`, moreQueries: [defaultValueOptionsQueryData.query]});
4520
+ }, null, [
4521
+ Object.assign({}, referenceTo.labelField, {alias: 'label'}),
4522
+ Object.assign({}, referenceTo.valueField, {alias: 'value'})
4523
+ ], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: "{__sort}"`, moreQueries: [defaultValueOptionsQueryData.query]});
4522
4524
 
4523
4525
  apiInfo.adaptor = `
4524
4526
  const data = payload.data;
@@ -5334,13 +5336,19 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
5334
5336
  };
5335
5337
  break;
5336
5338
  case 'percent':
5337
- //TODO
5338
- convertData = {
5339
- type: getAmisStaticFieldType('number', readonly),
5340
- min: field.min,
5341
- max: field.max,
5342
- precision: field.scale
5343
- };
5339
+ if(readonly){
5340
+ convertData = {
5341
+ type: 'static-tpl',
5342
+ tpl: getUiFieldTpl(field)
5343
+ };
5344
+ }else {
5345
+ convertData = {
5346
+ type: getAmisStaticFieldType('number', readonly),
5347
+ min: field.min,
5348
+ max: field.max,
5349
+ precision: field.scale
5350
+ };
5351
+ }
5344
5352
  break;
5345
5353
  case 'password':
5346
5354
  convertData = {
@@ -5382,12 +5390,18 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
5382
5390
  break;
5383
5391
  case 'formula':
5384
5392
  if(readonly){
5385
- convertData.type = getAmisStaticFieldType(field.data_type, readonly);
5393
+ convertData = {
5394
+ type: 'static-tpl',
5395
+ tpl: getUiFieldTpl(field)
5396
+ };
5386
5397
  }
5387
5398
  break;
5388
5399
  case 'summary':
5389
5400
  if(readonly){
5390
- convertData.type = getAmisStaticFieldType(field.data_type, readonly);
5401
+ convertData = {
5402
+ type: 'static-tpl',
5403
+ tpl: getUiFieldTpl(field)
5404
+ };
5391
5405
  }
5392
5406
  break;
5393
5407
  case 'code':
@@ -6100,7 +6114,11 @@ async function getObjectCRUD(objectSchema, fields, options){
6100
6114
  }
6101
6115
  }
6102
6116
 
6103
- bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, options.formFactor, {showDisplayAs, hiddenCount: options.queryCount === false});
6117
+ bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, options.formFactor, {
6118
+ showDisplayAs,
6119
+ hiddenCount: options.queryCount === false,
6120
+ headerToolbarItems: options.headerToolbarItems
6121
+ });
6104
6122
 
6105
6123
 
6106
6124
  let body = null;
@@ -6139,7 +6157,7 @@ async function getObjectCRUD(objectSchema, fields, options){
6139
6157
  keepItemSelectionOnPageChange: true,
6140
6158
  api: await getTableApi(objectSchema, fields, options),
6141
6159
  hiddenOn: options.tableHiddenOn,
6142
- autoFillHeight: true,
6160
+ autoFillHeight: options.isRelated ? false : true,
6143
6161
  className: `flex-auto ${crudClassName || ""}`,
6144
6162
  crudClassName: crudClassName,
6145
6163
  },
@@ -6299,6 +6317,10 @@ async function getObjectForm(objectSchema, ctx){
6299
6317
  "objectName": "${_master.objectName}"
6300
6318
  },
6301
6319
  "expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
6320
+ },
6321
+ {
6322
+ "args": {},
6323
+ "actionType": "closeDialog"
6302
6324
  }
6303
6325
  ]
6304
6326
  }
@@ -8334,7 +8356,8 @@ async function getListSchema(
8334
8356
  "sort": sort,
8335
8357
  "ctx": ctx,
8336
8358
  "requestAdaptor": listView.requestAdaptor,
8337
- "adaptor": listView.adaptor
8359
+ "adaptor": listView.adaptor,
8360
+ "headerToolbarItems": ctx.headerToolbarItems
8338
8361
  };
8339
8362
  return {
8340
8363
  uiSchema,
@@ -8395,6 +8418,7 @@ async function getTableSchema(
8395
8418
  ...ctx,
8396
8419
  filter: ctx.filters,
8397
8420
  sort,
8421
+ headerToolbarItems: ctx.headerToolbarItems,
8398
8422
  buttons: await getListViewItemButtons(uiSchema, ctx)
8399
8423
  });
8400
8424
  return {
@@ -11982,11 +12006,11 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
11982
12006
  }); };
11983
12007
 
11984
12008
  var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, void 0, function () {
11985
- var $schema, top, perPage, _a, showHeader, headerSchema, data, defaultData, _b, className, crudClassName, _c, showDisplayAs, sideSchema, ctx, listName, defaults, objectApiName, displayAs, formFactor, isMobile, objectUiSchema, listView, schemaKeys, listSchema, setDataToComponentId, amisSchemaData, listViewId, schema, amisSchema, uiSchema, body, firstLineSchema, serviceData;
12009
+ var $schema, top, perPage, _a, showHeader, headerSchema, data, defaultData, _b, className, crudClassName, _c, showDisplayAs, sideSchema, headerToolbarItems, ctx, listName, defaults, objectApiName, displayAs, formFactor, isMobile, objectUiSchema, listView, schemaKeys, listSchema, setDataToComponentId, amisSchemaData, listViewId, schema, amisSchema, uiSchema, body, firstLineSchema, serviceData;
11986
12010
  return __generator(this, function (_e) {
11987
12011
  switch (_e.label) {
11988
12012
  case 0:
11989
- $schema = props.$schema, top = props.top, perPage = props.perPage, _a = props.showHeader, showHeader = _a === void 0 ? true : _a, headerSchema = props.headerSchema, data = props.data, defaultData = props.defaultData, _b = props.className, className = _b === void 0 ? "" : _b, crudClassName = props.crudClassName, _c = props.showDisplayAs, showDisplayAs = _c === void 0 ? false : _c, sideSchema = props.sideSchema, props.columnsTogglable;
12013
+ $schema = props.$schema, top = props.top, perPage = props.perPage, _a = props.showHeader, showHeader = _a === void 0 ? true : _a, headerSchema = props.headerSchema, data = props.data, defaultData = props.defaultData, _b = props.className, className = _b === void 0 ? "" : _b, crudClassName = props.crudClassName, _c = props.showDisplayAs, showDisplayAs = _c === void 0 ? false : _c, sideSchema = props.sideSchema, props.columnsTogglable, headerToolbarItems = props.headerToolbarItems;
11990
12014
  ctx = props.ctx;
11991
12015
  listName = (defaultData === null || defaultData === void 0 ? void 0 : defaultData.listName) || (data === null || data === void 0 ? void 0 : data.listName) || (props === null || props === void 0 ? void 0 : props.listName);
11992
12016
  defaults = {};
@@ -12067,7 +12091,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
12067
12091
  }
12068
12092
  amisSchemaData = Object.assign({}, data, defaultData);
12069
12093
  listViewId = (ctx === null || ctx === void 0 ? void 0 : ctx.listViewId) || amisSchemaData.listViewId;
12070
- return [4 /*yield*/, getListSchema(amisSchemaData.appId, objectApiName, listName, __assign$2(__assign$2({ top: top, perPage: perPage, showHeader: showHeader, defaults: defaults }, ctx), { listViewId: listViewId, setDataToComponentId: setDataToComponentId, filterVisible: true, showDisplayAs: showDisplayAs, displayAs: displayAs }))];
12094
+ return [4 /*yield*/, getListSchema(amisSchemaData.appId, objectApiName, listName, __assign$2(__assign$2({ top: top, perPage: perPage, showHeader: showHeader, defaults: defaults }, ctx), { listViewId: listViewId, setDataToComponentId: setDataToComponentId, filterVisible: true, showDisplayAs: showDisplayAs, displayAs: displayAs, headerToolbarItems: headerToolbarItems }))];
12071
12095
  case 2:
12072
12096
  schema = (_e.sent());
12073
12097
  amisSchema = schema.amisSchema;
@@ -12140,11 +12164,11 @@ function getTableColumns(columns, includedFields, fieldsExtend) {
12140
12164
  return tableColumns;
12141
12165
  }
12142
12166
  var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0, function () {
12143
- var $schema, filters, filtersFunction, amisCondition, top, headerSchema, includedFields, fieldsExtend, sort, sortField, sortOrder, extraColumns, data, defaultData, _a, formFactor, _b, className, requestAdaptor, adaptor, ctx, columns, defaults, objectApiName, schemaKeys, listSchema, setDataToComponentId, amisFilters, tableFilters, amisSchemaData, appId, amisSchema;
12167
+ var $schema, filters, filtersFunction, amisCondition, top, headerSchema, includedFields, fieldsExtend, sort, sortField, sortOrder, extraColumns, data, defaultData, _a, formFactor, _b, className, requestAdaptor, adaptor, headerToolbarItems, ctx, columns, defaults, objectApiName, schemaKeys, listSchema, setDataToComponentId, amisFilters, tableFilters, amisSchemaData, appId, amisSchema;
12144
12168
  return __generator(this, function (_c) {
12145
12169
  switch (_c.label) {
12146
12170
  case 0:
12147
- $schema = props.$schema, filters = props.filters, filtersFunction = props.filtersFunction, amisCondition = props.amisCondition, top = props.top, headerSchema = props.headerSchema, includedFields = props.fields, fieldsExtend = props.fieldsExtend, sort = props.sort, sortField = props.sortField, sortOrder = props.sortOrder, extraColumns = props.extraColumns, data = props.data, defaultData = props.defaultData, _a = props.formFactor, formFactor = _a === void 0 ? window.innerWidth < 768 ? 'SMALL' : 'LARGE' : _a, _b = props.className, className = _b === void 0 ? "" : _b, requestAdaptor = props.requestAdaptor, adaptor = props.adaptor;
12171
+ $schema = props.$schema, filters = props.filters, filtersFunction = props.filtersFunction, amisCondition = props.amisCondition, top = props.top, headerSchema = props.headerSchema, includedFields = props.fields, fieldsExtend = props.fieldsExtend, sort = props.sort, sortField = props.sortField, sortOrder = props.sortOrder, extraColumns = props.extraColumns, data = props.data, defaultData = props.defaultData, _a = props.formFactor, formFactor = _a === void 0 ? window.innerWidth < 768 ? 'SMALL' : 'LARGE' : _a, _b = props.className, className = _b === void 0 ? "" : _b, requestAdaptor = props.requestAdaptor, adaptor = props.adaptor, headerToolbarItems = props.headerToolbarItems;
12148
12172
  ctx = props.ctx;
12149
12173
  if (!ctx) {
12150
12174
  ctx = {};
@@ -12178,7 +12202,7 @@ var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0
12178
12202
  appId = (data === null || data === void 0 ? void 0 : data.appId) || (defaultData === null || defaultData === void 0 ? void 0 : defaultData.appId);
12179
12203
  // ctx中值为undefined的属性不能保留,否则会导致 filters等被覆盖。
12180
12204
  ctx = ___default.pickBy(ctx, function (value) { return value !== undefined; });
12181
- 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 }))];
12205
+ 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, headerToolbarItems: headerToolbarItems }))];
12182
12206
  case 1:
12183
12207
  amisSchema = (_c.sent()).amisSchema;
12184
12208
  amisSchema.data = Object.assign({}, amisSchema.data, amisSchemaData);
@@ -13295,14 +13319,14 @@ var PageListView = function (props) { return __awaiter(void 0, void 0, void 0, f
13295
13319
  "showHeader": true,
13296
13320
  "showDisplayAs": (defaultFormFactor !== 'SMALL'),
13297
13321
  "formFactor": formFactor,
13298
- "className": (displayAs === 'split') ? 'w-full' : 'p-0 flex-1 sm:m-3 sm:border sm:shadow sm:rounded border-slate-300 border-solid bg-gray-100'
13322
+ "className": (displayAs === 'split') ? 'w-full' : 'p-0 flex-1 m-0 sm:border sm:shadow sm:rounded border-slate-300 border-solid bg-gray-100'
13299
13323
  };
13300
13324
  defData = __assign$2(__assign$2({}, $schema.data), { objectName: objectApiName, listViewId: listViewId, listName: listName || listviewId, appId: appId, formFactor: formFactor, displayAs: displayAs });
13301
13325
  // console.log("defData====>", defData)
13302
13326
  return [2 /*return*/, {
13303
13327
  type: 'service',
13304
13328
  data: defData,
13305
- "className": (displayAs === 'grid') ? 'h-full' : 'p-0 flex flex-1 overflow-hidden h-full',
13329
+ "className": (displayAs === 'grid') ? 'h-full sm:p-3' : 'p-0 flex flex-1 overflow-hidden h-full',
13306
13330
  body: (displayAs === 'grid') ? ___default.defaultsDeep({ data: defData }, listSchema) : [
13307
13331
  {
13308
13332
  "type": "wrapper",