@steedos-widgets/amis-object 1.3.1 → 1.3.2-beta.3

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.
@@ -3551,11 +3551,26 @@ const Router$1 = {
3551
3551
  /*
3552
3552
  * @Author: baozhoutao@steedos.com
3553
3553
  * @Date: 2022-07-20 16:29:22
3554
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
3555
- * @LastEditTime: 2023-09-08 14:09:48
3554
+ * @LastEditors: liaodaxue
3555
+ * @LastEditTime: 2023-09-11 17:19:53
3556
3556
  * @Description:
3557
3557
  */
3558
3558
 
3559
+ function getImageFieldUrl(url) {
3560
+ if (window.Meteor && window.Meteor.isCordova != true) {
3561
+ // '//'的位置
3562
+ const doubleSlashIndex = url.indexOf('//');
3563
+ const urlIndex = url.indexOf('/', doubleSlashIndex + 2);
3564
+ const rootUrl = url.substring(urlIndex);
3565
+ return rootUrl;
3566
+ }
3567
+ return url;
3568
+ }
3569
+
3570
+ if(typeof window != 'undefined'){
3571
+ window.getImageFieldUrl = getImageFieldUrl;
3572
+ }
3573
+
3559
3574
  function getContrastColor(bgColor) {
3560
3575
  var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;
3561
3576
  var r = parseInt(backgroundColor.substr(0, 2), 16);
@@ -9121,7 +9136,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
9121
9136
 
9122
9137
  pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
9123
9138
  const isAllowCreate = refObjectConfig.permissions.allowCreate;
9124
- if (isAllowCreate) {
9139
+ const isCreate = _$1__namespace.isBoolean(field.create) ? field.create : true;
9140
+ if (isAllowCreate && isCreate) {
9125
9141
  const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
9126
9142
  new_button.align = "right";
9127
9143
  // 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
@@ -11717,7 +11733,13 @@ async function getTableApi(mainObject, fields, options){
11717
11733
  if(field.type === 'file'){
11718
11734
  item[key] = value
11719
11735
  }else{
11720
- item[key] = _.map(value, 'url')
11736
+ item[key] = _.map(value, (item)=>{
11737
+ if(field.type === 'image'){
11738
+ const url = window.getImageFieldUrl(item.url);
11739
+ return url;
11740
+ }
11741
+ return item.url;
11742
+ })
11721
11743
  }
11722
11744
  }
11723
11745
  })
@@ -11959,10 +11981,14 @@ function getScriptForAddUrlPrefixForImgFields(fields){
11959
11981
  let fieldProps = imgFields[item];
11960
11982
  if(fieldProps.multiple){
11961
11983
  if(imgFieldDisplayValue instanceof Array){
11962
- data[item] = imgFieldDisplayValue.map((i)=>{ return i.url });
11984
+ data[item] = imgFieldDisplayValue.map((i)=>{
11985
+ const url = window.getImageFieldUrl(i.url);
11986
+ return url;
11987
+ });
11963
11988
  }
11964
11989
  }else{
11965
- data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;
11990
+ const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);
11991
+ data[item] = url;
11966
11992
  }
11967
11993
  }
11968
11994
  })
@@ -14123,53 +14149,34 @@ async function getListSchema(
14123
14149
  };
14124
14150
  }
14125
14151
 
14126
- // 获取对象表格
14127
- async function getTableSchema(
14128
- appName,
14129
- objectName,
14130
- columns,
14131
- ctx = {}
14132
- ) {
14133
- // console.time('getTableSchema', columns);
14134
- const uiSchema = await getUISchema(objectName);
14135
-
14136
- let sort = ctx.sort;
14137
- if(!sort){
14138
- const sortField = ctx.sortField;
14139
- const sortOrder = ctx.sortOrder;
14140
- if(sortField){
14141
- let sortStr = sortField + ' ' + sortOrder || 'asc';
14142
- sort = sortStr;
14143
- }
14144
- }
14145
-
14152
+ async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
14146
14153
  let fields = [];
14147
- for(const column of columns){
14154
+ for (const column of columns) {
14148
14155
  if (_$1.isString(column)) {
14149
- if(column.indexOf('.') > 0){
14156
+ if (column.indexOf('.') > 0) {
14150
14157
  const fieldName = column.split('.')[0];
14151
14158
  const displayName = column.split('.')[1];
14152
14159
  const filedInfo = uiSchema.fields[fieldName];
14153
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && _$1.isString(filedInfo.reference_to) ){
14160
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && _$1.isString(filedInfo.reference_to)) {
14154
14161
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
14155
14162
  const rfFieldInfo = rfUiSchema.fields[displayName];
14156
- fields.push(Object.assign({}, rfFieldInfo, {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}}));
14163
+ fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));
14157
14164
  }
14158
- }else {
14159
- if(uiSchema.fields[column]){
14160
- fields.push(uiSchema.fields[column]);
14165
+ } else {
14166
+ if (uiSchema.fields[column]) {
14167
+ fields.push(Object.assign({}, uiSchema.fields[column], ctx));
14161
14168
  }
14162
14169
  }
14163
14170
  } else if (_$1.isObject(column)) {
14164
- if(column.field.indexOf('.') > 0){
14171
+ if (column.field.indexOf('.') > 0) {
14165
14172
  const fieldName = column.field.split('.')[0];
14166
14173
  const displayName = column.field.split('.')[1];
14167
14174
  const filedInfo = uiSchema.fields[fieldName];
14168
- if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && _$1.isString(filedInfo.reference_to) ){
14175
+ if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && _$1.isString(filedInfo.reference_to)) {
14169
14176
  const rfUiSchema = await getUISchema(filedInfo.reference_to);
14170
14177
  const rfFieldInfo = rfUiSchema.fields[displayName];
14171
- fields.push(Object.assign({}, rfFieldInfo,
14172
- {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}},
14178
+ fields.push(Object.assign({}, rfFieldInfo, ctx,
14179
+ { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },
14173
14180
  {
14174
14181
  width: column.width,
14175
14182
  wrap: column.wrap, // wrap = true 是没效果的
@@ -14177,10 +14184,10 @@ async function getTableSchema(
14177
14184
  }
14178
14185
  ));
14179
14186
  }
14180
- }else {
14181
- if(uiSchema.fields[column.field]){
14187
+ } else {
14188
+ if (uiSchema.fields[column.field]) {
14182
14189
  fields.push(
14183
- Object.assign({}, uiSchema.fields[column.field], {
14190
+ Object.assign({}, uiSchema.fields[column.field], ctx, {
14184
14191
  width: column.width,
14185
14192
  wrap: column.wrap, // wrap = true 是没效果的
14186
14193
  amis: column.amis
@@ -14190,17 +14197,36 @@ async function getTableSchema(
14190
14197
  }
14191
14198
  }
14192
14199
  }
14200
+ return fields;
14201
+ }
14202
+
14203
+ // 获取对象表格
14204
+ async function getTableSchema(
14205
+ appName,
14206
+ objectName,
14207
+ columns,
14208
+ ctx = {}
14209
+ ) {
14210
+ // console.time('getTableSchema', columns);
14211
+ const uiSchema = await getUISchema(objectName);
14212
+
14213
+ let sort = ctx.sort;
14214
+ if(!sort){
14215
+ const sortField = ctx.sortField;
14216
+ const sortOrder = ctx.sortOrder;
14217
+ if(sortField){
14218
+ let sortStr = sortField + ' ' + sortOrder || 'asc';
14219
+ sort = sortStr;
14220
+ }
14221
+ }
14222
+
14223
+ let fields = await convertColumnsToTableFields(columns, uiSchema);
14193
14224
 
14194
14225
  const extraColumns = ctx.extraColumns;
14195
14226
 
14196
14227
  if (extraColumns) {
14197
- _$1.each(extraColumns, function (column) {
14198
- if (_$1.isString(column)) {
14199
- fields.push({ extra: true, name: column });
14200
- } else if (_$1.isObject(column)) {
14201
- fields.push({ extra: true, name: column.field });
14202
- }
14203
- });
14228
+ let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});
14229
+ fields = fields.concat(extraFields);
14204
14230
  }
14205
14231
 
14206
14232
  const amisSchema = await getObjectCRUD(uiSchema, fields, {
@@ -17817,6 +17843,8 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17817
17843
  return __generator(this, function (_j) {
17818
17844
  switch (_j.label) {
17819
17845
  case 0:
17846
+ // console.time('AmisObjectListView')
17847
+ console.log("AmisObjectListView props", props);
17820
17848
  $schema = props.$schema, top = props.top, perPage = props.perPage, _a = props.showHeader, showHeader = _a === void 0 ? true : _a, data = props.data, defaultData = props.defaultData, _b = props.crud, crud = _b === void 0 ? {} : _b, _c = props.className, className = _c === void 0 ? "" : _c, crudClassName = props.crudClassName, _d = props.showDisplayAs, showDisplayAs = _d === void 0 ? false : _d, sideSchema = props.sideSchema, props.columnsTogglable, _f = props.filterVisible, filterVisible = _f === void 0 ? true : _f, headerToolbarItems = props.headerToolbarItems, rowClassNameExpr = props.rowClassNameExpr, _g = props.hiddenColumnOperation, hiddenColumnOperation = _g === void 0 ? false : _g;
17821
17849
  headerSchema = props.headerSchema;
17822
17850
  ctx = props.ctx;
@@ -17949,7 +17977,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17949
17977
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
17950
17978
  },
17951
17979
  "requestAdaptor": "api.data={query: '{spaces__findOne(id: \"none\"){_id,name}}'};return api;",
17952
- "adaptor": "\n // console.log('service listview schemaApi adaptor....', api.body); \n let { appId, objectName, defaultListName: listName, display, formFactor: defaultFormFactor} = api.body;\n if(api.body.listName){\n listName = api.body.listName;\n }\n return new Promise((resolve)=>{\n const listViewSchemaProps = ".concat(JSON.stringify(listViewSchemaProps), ";\n const formFactor = ([\"split\"].indexOf(display) > -1) ? 'SMALL': defaultFormFactor;\n listViewSchemaProps.formFactor = formFactor;\n listViewSchemaProps.displayAs = display;\n // console.log(\"====listViewSchemaProps===>\", listName, display, listViewSchemaProps)\n window.getListSchema(appId, objectName, listName, listViewSchemaProps).then((schema)=>{\n payload.data = schema.amisSchema;\n // console.log(\"payload================>\", payload)\n resolve(payload)\n });\n });\n ")
17980
+ "adaptor": "\n // console.log('service listview schemaApi adaptor....', api.body); \n let { appId, objectName, defaultListName: listName, display, formFactor: defaultFormFactor} = api.body;\n if(api.body.listName){\n listName = api.body.listName;\n }\n return new Promise((resolve)=>{\n const listViewSchemaProps = ".concat(JSON.stringify(listViewSchemaProps), ";\n const formFactor = ([\"split\"].indexOf(display) > -1) ? 'SMALL': defaultFormFactor;\n listViewSchemaProps.formFactor = formFactor;\n listViewSchemaProps.displayAs = display;\n \n window.getListSchema(appId, objectName, listName, listViewSchemaProps).then((schema)=>{\n try{\n const uiSchema = schema.uiSchema;\n const listView = _.find(\n uiSchema.list_views,\n (listView, name) => {\n // \u4F20\u5165listViewName\u7A7A\u503C\u5219\u53D6\u7B2C\u4E00\u4E2A\n if(!listName){\n listName = name;\n }\n return name === listName || listView._id === listName;\n }\n );\n if(listView){\n window.Steedos && window.Steedos.setDocumentTitle && window.Steedos.setDocumentTitle({pageName: listView.label || listView.name})\n }\n }catch(e){\n console.error(e)\n }\n payload.data = schema.amisSchema;\n // console.log(\"schema================>\", schema)\n resolve(payload)\n });\n });\n ")
17953
17981
  },
17954
17982
  // "body": body,
17955
17983
  // "data": serviceData
@@ -18793,8 +18821,8 @@ var AmisGlobalFooter = function (props) { return __awaiter(void 0, void 0, void
18793
18821
  /*
18794
18822
  * @Author: baozhoutao@steedos.com
18795
18823
  * @Date: 2022-09-01 14:44:57
18796
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
18797
- * @LastEditTime: 2023-08-28 15:04:28
18824
+ * @LastEditors: baozhoutao@steedos.com
18825
+ * @LastEditTime: 2023-09-08 17:54:54
18798
18826
  * @Description:
18799
18827
  */
18800
18828
  var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0, void 0, function () {
@@ -18814,7 +18842,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
18814
18842
  "body": __spreadArray(__spreadArray([], __read(customButtons), false), [
18815
18843
  {
18816
18844
  "type": "button",
18817
- "hiddenOn": "window.innerWidth < 768",
18845
+ "hiddenOn": "${window:innerWidth < 768 || (window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem)}",
18818
18846
  "id": "u:267a7e84a89d",
18819
18847
  "onEvent": {
18820
18848
  "click": {
@@ -19129,6 +19157,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
19129
19157
  "type": "button",
19130
19158
  "label": instance.t('frontend_about'),
19131
19159
  "className": "flex",
19160
+ "hiddenOn": "${window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem}",
19132
19161
  "onEvent": {
19133
19162
  "click": {
19134
19163
  "actions": [
@@ -19490,7 +19519,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
19490
19519
  * @Author: baozhoutao@steedos.com
19491
19520
  * @Date: 2023-01-14 16:41:24
19492
19521
  * @LastEditors: baozhoutao@steedos.com
19493
- * @LastEditTime: 2023-09-05 17:06:44
19522
+ * @LastEditTime: 2023-09-11 16:48:35
19494
19523
  * @Description:
19495
19524
  */
19496
19525
  var getSelectFlowSchema = function (id, props) {
@@ -19638,7 +19667,7 @@ var getSelectFlowSchema = function (id, props) {
19638
19667
  method: "post",
19639
19668
  url: "${context.rootUrl}/graphql?keywords=${keywords}",
19640
19669
  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, "\"){\n value:_id\n label:name\n children: flows{\n value: _id,\n label: name\n }\n }\n }\n `\n }\n "),
19641
- 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 ",
19670
+ 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 ",
19642
19671
  "headers": {
19643
19672
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
19644
19673
  }
@@ -19804,7 +19833,17 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
19804
19833
  case 2: return [2 /*return*/, {
19805
19834
  type: 'service',
19806
19835
  "className": 'h-full',
19807
- body: recordSchema
19836
+ body: recordSchema,
19837
+ "onEvent": {
19838
+ "recordLoaded": {
19839
+ "actions": [
19840
+ {
19841
+ "actionType": "custom",
19842
+ "script": "window.Steedos && window.Steedos.setDocumentTitle && Steedos.setDocumentTitle({pageName: event.data.record.name})"
19843
+ }
19844
+ ]
19845
+ }
19846
+ }
19808
19847
  }];
19809
19848
  }
19810
19849
  });
@@ -19820,6 +19859,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
19820
19859
  case 1:
19821
19860
  uiSchema = _b.sent();
19822
19861
  delete $schema.data.recordId;
19862
+ window.Steedos && window.Steedos.setDocumentTitle && window.Steedos.setDocumentTitle({ tabName: uiSchema.label || uiSchema.name });
19823
19863
  // 最外层的data是render data, 会被updateProps data覆盖, 所以组件data需要单开一个数据域. 所以此处有2层service
19824
19864
  return [2 /*return*/, {
19825
19865
  type: "service",