@steedos-widgets/amis-object 1.1.6 → 1.2.0-beta.0

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.
@@ -198,6 +198,13 @@ body {
198
198
  width: -webkit-fill-available;
199
199
  }
200
200
 
201
+
202
+ /* 实现弹框中的crud中的inputTree高度满屏,目前选人控件的左侧树样式 */
203
+ .amis-scope .antd-Modal-body .antd-Crud .antd-Table .antd-Tree{
204
+ max-height: unset;
205
+ overflow: unset;
206
+ }
207
+
201
208
  .ant-dropdown-menu {
202
209
  border: 1px solid #e5e5e5;
203
210
  border-radius: 0.25rem;
@@ -3779,7 +3779,7 @@ function getExportApiRequestAdaptorScript(){
3779
3779
  `
3780
3780
  }
3781
3781
 
3782
- function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false, hiddenCount = false} = {}){
3782
+ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false, hiddenCount = false, headerToolbarItems} = {}){
3783
3783
  const isMobile = window.innerWidth < 768;
3784
3784
  if(isMobile){
3785
3785
  showDisplayAs = false;
@@ -3838,6 +3838,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3838
3838
  }else {
3839
3839
  return [
3840
3840
  // "filter-toggler",
3841
+ ...(headerToolbarItems || []),
3841
3842
  "bulkActions",
3842
3843
  {
3843
3844
  "type": "columns-toggler",
@@ -4192,6 +4193,89 @@ const getReferenceTo = async (field)=>{
4192
4193
  }
4193
4194
  };
4194
4195
 
4196
+ function getLookupSapceUserTreeSchema(){
4197
+ const tree = [{
4198
+ "type": "input-tree",
4199
+ "className": "",
4200
+ "id": "u:7fd77b7915b0",
4201
+ "source": {
4202
+ "method": "post",
4203
+ "url": "${context.rootUrl}/graphql",
4204
+ "headers": {
4205
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4206
+ },
4207
+ "adaptor": " 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 return payload;\n ",
4208
+ "requestAdaptor": "\n ",
4209
+ "data": {
4210
+ "query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
4211
+ },
4212
+ "messages": {
4213
+ }
4214
+ },
4215
+ "onEvent": {
4216
+ "change": {
4217
+ "actions": [
4218
+ {
4219
+ "actionType": "custom",
4220
+ "script": `
4221
+ debugger;
4222
+ const scope = event.context.scoped;
4223
+ //TODO: 将form中的value一同加入筛选内
4224
+ // var filterForm = scope.parent.parent.getComponents().find(function(n){
4225
+ // return n.props.type === "form";
4226
+ // });
4227
+ // var filterFormValues = filterForm.getValues();
4228
+ filterFormValues={
4229
+ "__searchable__organizations_parents":event.data.value.value
4230
+ }
4231
+ var listView = scope.parent.getComponents().find(function(n){
4232
+ return n.props.type === "crud";
4233
+ });
4234
+ const removedValues = {};
4235
+ // for(var k in filterFormValues){
4236
+ // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){
4237
+ // removedValues[k] = "";
4238
+ // }
4239
+ // }
4240
+ listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
4241
+ `
4242
+ }
4243
+ ]
4244
+ }
4245
+ },
4246
+ "label": "",
4247
+ "name": "organizations",
4248
+ "multiple": false,
4249
+ "joinValues": false,
4250
+ "clearValueOnHidden": false,
4251
+ "fieldName": "organizations",
4252
+ "hideRoot": true,
4253
+ "initiallyOpen": false,
4254
+ "extractValue": true,
4255
+ "onlyChildren": true,
4256
+ "treeContainerClassName": "no-border",
4257
+ "showIcon": false,
4258
+ "enableNodePath": false,
4259
+ "autoCheckChildren": false,
4260
+ "searchable": true,
4261
+ "searchConfig": {
4262
+ "sticky": true
4263
+ },
4264
+ "unfoldedLevel": 2,
4265
+ "style": {
4266
+ "max-height": "100%",
4267
+ "position": "absolute",
4268
+ "left": "-190px",
4269
+ "width": "190px",
4270
+ "bottom": 0,
4271
+ "top": "0",
4272
+ "overflow": "auto",
4273
+ "min-height":"300px"
4274
+ },
4275
+ "originPosition": "left-top"
4276
+ }];
4277
+ return tree;
4278
+ }
4195
4279
 
4196
4280
  async function lookupToAmisPicker(field, readonly, ctx){
4197
4281
  let referenceTo = await getReferenceTo(field);
@@ -4434,7 +4518,16 @@ async function lookupToAmisPicker(field, readonly, ctx){
4434
4518
  ...ctx
4435
4519
  });
4436
4520
 
4437
- pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, ctx.formFactor);
4521
+ var headerToolbarItems = [];
4522
+ const isMobile = window.innerWidth < 768;
4523
+ if(referenceTo.objectName === "space_users" && field.reference_to_field === "user" && !isMobile){
4524
+ headerToolbarItems = getLookupSapceUserTreeSchema();
4525
+ pickerSchema["style"] = {
4526
+ "margin-left":"200px",
4527
+ "min-height": "300px"
4528
+ };
4529
+ }
4530
+ pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, ctx.formFactor, { headerToolbarItems });
4438
4531
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
4439
4532
  if (isAllowCreate) {
4440
4533
  const new_button = await getSchema$4(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
@@ -4442,15 +4535,18 @@ async function lookupToAmisPicker(field, readonly, ctx){
4442
4535
  pickerSchema.headerToolbar.push(new_button);
4443
4536
  }
4444
4537
  pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar();
4445
- if(ctx.filterVisible !== false){
4446
- let filterLoopCount = ctx.filterLoopCount || 0;
4447
- filterLoopCount++;
4448
- // 可以传入filterVisible为false防止死循环
4449
- pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
4450
- isLookup: true,
4451
- ...ctx,
4452
- filterLoopCount,
4453
- });
4538
+ //TODO: 等待放大镜bug修复,if会去掉,始终显示放大镜
4539
+ if(referenceTo.objectName != "space_users" || field.reference_to_field != "user"){
4540
+ if (ctx.filterVisible !== false) {
4541
+ let filterLoopCount = ctx.filterLoopCount || 0;
4542
+ filterLoopCount++;
4543
+ // 可以传入filterVisible为false防止死循环
4544
+ pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
4545
+ isLookup: true,
4546
+ ...ctx,
4547
+ filterLoopCount,
4548
+ });
4549
+ }
4454
4550
  }
4455
4551
  pickerSchema.data = Object.assign({}, pickerSchema.data, {
4456
4552
  "&": "$$",
@@ -4698,7 +4794,7 @@ async function lookupToAmis(field, readonly, ctx){
4698
4794
  if(ctx.idsDependOn || field.amis){
4699
4795
  return await lookupToAmisIdsPicker(field, readonly, ctx);
4700
4796
  }
4701
- return await lookupToAmisSelectUser(field, readonly, ctx);
4797
+ // return await lookupToAmisSelectUser(field, readonly, ctx);
4702
4798
  }
4703
4799
 
4704
4800
  const refObject = await getUISchema(referenceTo.objectName);
@@ -5334,13 +5430,19 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
5334
5430
  };
5335
5431
  break;
5336
5432
  case 'percent':
5337
- //TODO
5338
- convertData = {
5339
- type: getAmisStaticFieldType('number', readonly),
5340
- min: field.min,
5341
- max: field.max,
5342
- precision: field.scale
5343
- };
5433
+ if(readonly){
5434
+ convertData = {
5435
+ type: 'static-tpl',
5436
+ tpl: getUiFieldTpl(field)
5437
+ };
5438
+ }else {
5439
+ convertData = {
5440
+ type: getAmisStaticFieldType('number', readonly),
5441
+ min: field.min,
5442
+ max: field.max,
5443
+ precision: field.scale
5444
+ };
5445
+ }
5344
5446
  break;
5345
5447
  case 'password':
5346
5448
  convertData = {
@@ -5382,12 +5484,18 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
5382
5484
  break;
5383
5485
  case 'formula':
5384
5486
  if(readonly){
5385
- convertData.type = getAmisStaticFieldType(field.data_type, readonly);
5487
+ convertData = {
5488
+ type: 'static-tpl',
5489
+ tpl: getUiFieldTpl(field)
5490
+ };
5386
5491
  }
5387
5492
  break;
5388
5493
  case 'summary':
5389
5494
  if(readonly){
5390
- convertData.type = getAmisStaticFieldType(field.data_type, readonly);
5495
+ convertData = {
5496
+ type: 'static-tpl',
5497
+ tpl: getUiFieldTpl(field)
5498
+ };
5391
5499
  }
5392
5500
  break;
5393
5501
  case 'code':
@@ -6100,7 +6208,11 @@ async function getObjectCRUD(objectSchema, fields, options){
6100
6208
  }
6101
6209
  }
6102
6210
 
6103
- bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, options.formFactor, {showDisplayAs, hiddenCount: options.queryCount === false});
6211
+ bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, options.formFactor, {
6212
+ showDisplayAs,
6213
+ hiddenCount: options.queryCount === false,
6214
+ headerToolbarItems: options.headerToolbarItems
6215
+ });
6104
6216
 
6105
6217
 
6106
6218
  let body = null;
@@ -8334,7 +8446,8 @@ async function getListSchema(
8334
8446
  "sort": sort,
8335
8447
  "ctx": ctx,
8336
8448
  "requestAdaptor": listView.requestAdaptor,
8337
- "adaptor": listView.adaptor
8449
+ "adaptor": listView.adaptor,
8450
+ "headerToolbarItems": ctx.headerToolbarItems
8338
8451
  };
8339
8452
  return {
8340
8453
  uiSchema,
@@ -8395,6 +8508,7 @@ async function getTableSchema(
8395
8508
  ...ctx,
8396
8509
  filter: ctx.filters,
8397
8510
  sort,
8511
+ headerToolbarItems: ctx.headerToolbarItems,
8398
8512
  buttons: await getListViewItemButtons(uiSchema, ctx)
8399
8513
  });
8400
8514
  return {
@@ -11478,6 +11592,7 @@ var index_esm$1 = /*#__PURE__*/Object.freeze({
11478
11592
  getListViewItemButtons: getListViewItemButtons,
11479
11593
  getListViewSort: getListViewSort,
11480
11594
  getListviewInitSchema: getListviewInitSchema,
11595
+ getLookupSapceUserTreeSchema: getLookupSapceUserTreeSchema,
11481
11596
  getNotifications: getNotifications,
11482
11597
  getObjectDetailButtons: getObjectDetailButtons,
11483
11598
  getObjectDetailMoreButtons: getObjectDetailMoreButtons,
@@ -11982,11 +12097,11 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
11982
12097
  }); };
11983
12098
 
11984
12099
  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;
12100
+ 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
12101
  return __generator(this, function (_e) {
11987
12102
  switch (_e.label) {
11988
12103
  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;
12104
+ $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
12105
  ctx = props.ctx;
11991
12106
  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
12107
  defaults = {};
@@ -12067,7 +12182,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
12067
12182
  }
12068
12183
  amisSchemaData = Object.assign({}, data, defaultData);
12069
12184
  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 }))];
12185
+ 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
12186
  case 2:
12072
12187
  schema = (_e.sent());
12073
12188
  amisSchema = schema.amisSchema;
@@ -12140,11 +12255,11 @@ function getTableColumns(columns, includedFields, fieldsExtend) {
12140
12255
  return tableColumns;
12141
12256
  }
12142
12257
  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;
12258
+ 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
12259
  return __generator(this, function (_c) {
12145
12260
  switch (_c.label) {
12146
12261
  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;
12262
+ $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
12263
  ctx = props.ctx;
12149
12264
  if (!ctx) {
12150
12265
  ctx = {};
@@ -12178,7 +12293,7 @@ var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0
12178
12293
  appId = (data === null || data === void 0 ? void 0 : data.appId) || (defaultData === null || defaultData === void 0 ? void 0 : defaultData.appId);
12179
12294
  // ctx中值为undefined的属性不能保留,否则会导致 filters等被覆盖。
12180
12295
  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 }))];
12296
+ 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
12297
  case 1:
12183
12298
  amisSchema = (_c.sent()).amisSchema;
12184
12299
  amisSchema.data = Object.assign({}, amisSchema.data, amisSchemaData);