@steedos-widgets/amis-object 1.2.43 → 1.3.0-beta.11

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.
@@ -3569,7 +3569,7 @@ function getContrastColor(bgColor) {
3569
3569
  * @Author: baozhoutao@steedos.com
3570
3570
  * @Date: 2022-05-23 09:53:08
3571
3571
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
3572
- * @LastEditTime: 2023-08-03 18:07:54
3572
+ * @LastEditTime: 2023-08-29 15:04:39
3573
3573
  * @Description:
3574
3574
  */
3575
3575
 
@@ -3673,7 +3673,7 @@ function getRelatedFieldTpl(field, ctx){
3673
3673
  linkTarget = "target='_blank'";
3674
3674
  }
3675
3675
 
3676
- const onlyDisplayLabel = ctx.onlyDisplayLabel;
3676
+ const onlyDisplayLookLabel = ctx.onlyDisplayLookLabel;
3677
3677
 
3678
3678
  let fieldDataStrTpl = `data._display.${field.name}`;
3679
3679
 
@@ -3684,7 +3684,7 @@ function getRelatedFieldTpl(field, ctx){
3684
3684
  if(_.isString(field.reference_to) || !field.reference_to){
3685
3685
  if(field.multiple){
3686
3686
  let labelTpl = `<%=item.label%>`;
3687
- if(!onlyDisplayLabel){
3687
+ if(!onlyDisplayLookLabel){
3688
3688
  const href = Router$1.getObjectDetailPath({
3689
3689
  formFactor: ctx.formFactor, appId: "<%=data.appId%>", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: "JavaScript"
3690
3690
  });
@@ -3702,7 +3702,7 @@ function getRelatedFieldTpl(field, ctx){
3702
3702
  objectNameTpl = `\${${field.name}.objectName}`;
3703
3703
  recordIdTpl = `\${${field.name}.value}`;
3704
3704
  }
3705
- if(!onlyDisplayLabel){
3705
+ if(!onlyDisplayLookLabel){
3706
3706
  const href = Router$1.getObjectDetailPath({
3707
3707
  formFactor: ctx.formFactor, appId: "${appId}", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`
3708
3708
  });
@@ -3714,7 +3714,7 @@ function getRelatedFieldTpl(field, ctx){
3714
3714
 
3715
3715
  }else {
3716
3716
  let labelTpl = `<%=item.label%>`;
3717
- if(!onlyDisplayLabel){
3717
+ if(!onlyDisplayLookLabel){
3718
3718
  const href = Router$1.getObjectDetailPath({
3719
3719
  formFactor: ctx.formFactor, appId: "<%=data.appId%>", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: "JavaScript"
3720
3720
  });
@@ -3767,7 +3767,7 @@ function getLocationTpl(field){
3767
3767
  }
3768
3768
 
3769
3769
  async function getFieldTpl (field, options){
3770
- if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLabel){
3770
+ if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLookLabel){
3771
3771
  return getNameTpl(field, options)
3772
3772
  }
3773
3773
  switch (field.type) {
@@ -3956,7 +3956,7 @@ function getScriptForRemoveUrlPrefixForImgFields(fields){
3956
3956
  if(imgFields[item].multiple){
3957
3957
  if(imgFieldValue instanceof Array){
3958
3958
  formData[item] = imgFieldValue.map((value)=>{
3959
- let itemValue = value?.split('/');
3959
+ let itemValue = value && value.split('/');
3960
3960
  return itemValue[itemValue.length - 1];
3961
3961
  });
3962
3962
  }
@@ -4183,6 +4183,7 @@ var frontend_listview_control_rename_title$1 = "Rename List View";
4183
4183
  var frontend_listview_control_share$1 = "Sharing Settings";
4184
4184
  var frontend_listview_control_sort$1 = "Default sorting rule";
4185
4185
  var frontend_export_excel$1 = "Export Excel";
4186
+ var frontend_export_excel_toast$1 = "Exporting, please wait";
4186
4187
  var frontend_operation$1 = "Operation";
4187
4188
  var frontend_import_data$1 = "Import data";
4188
4189
  var frontend_import_data_object_name$1 = "Import object";
@@ -4267,6 +4268,7 @@ var en_us = {
4267
4268
  frontend_listview_control_share: frontend_listview_control_share$1,
4268
4269
  frontend_listview_control_sort: frontend_listview_control_sort$1,
4269
4270
  frontend_export_excel: frontend_export_excel$1,
4271
+ frontend_export_excel_toast: frontend_export_excel_toast$1,
4270
4272
  frontend_operation: frontend_operation$1,
4271
4273
  frontend_import_data: frontend_import_data$1,
4272
4274
  frontend_import_data_object_name: frontend_import_data_object_name$1,
@@ -4353,6 +4355,7 @@ var frontend_listview_control_rename_title = "重命名 列表视图";
4353
4355
  var frontend_listview_control_share = "共享设置";
4354
4356
  var frontend_listview_control_sort = "默认排序规则";
4355
4357
  var frontend_export_excel = "导出";
4358
+ var frontend_export_excel_toast = "正在导出,请稍后...";
4356
4359
  var frontend_operation = "操作";
4357
4360
  var frontend_import_data = "导入数据";
4358
4361
  var frontend_import_data_object_name = "导入对象";
@@ -4438,6 +4441,7 @@ var zh_cn = {
4438
4441
  frontend_listview_control_share: frontend_listview_control_share,
4439
4442
  frontend_listview_control_sort: frontend_listview_control_sort,
4440
4443
  frontend_export_excel: frontend_export_excel,
4444
+ frontend_export_excel_toast: frontend_export_excel_toast,
4441
4445
  frontend_operation: frontend_operation,
4442
4446
  frontend_import_data: frontend_import_data,
4443
4447
  frontend_import_data_object_name: frontend_import_data_object_name,
@@ -5427,7 +5431,7 @@ const getSchema$2 = (uiSchema) => {
5427
5431
  "Bearer ${context.tenantId},${context.authToken}",
5428
5432
  },
5429
5433
  requestAdaptor:
5430
- "\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",
5434
+ "\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",
5431
5435
  adaptor:
5432
5436
  "\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\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._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n ",
5433
5437
  },
@@ -5606,7 +5610,7 @@ const getSchema$2 = (uiSchema) => {
5606
5610
  * @Author: baozhoutao@steedos.com
5607
5611
  * @Date: 2022-11-07 17:00:38
5608
5612
  * @LastEditors: baozhoutao@steedos.com
5609
- * @LastEditTime: 2022-11-07 17:12:20
5613
+ * @LastEditTime: 2023-08-24 16:44:42
5610
5614
  * @Description:
5611
5615
  */
5612
5616
 
@@ -5626,7 +5630,7 @@ const getSchema$1 = (uiSchema)=>{
5626
5630
  "componentId": "",
5627
5631
  "args": {
5628
5632
  "blank": false,
5629
- "url": "/app/${app_id}/${objectName}/view/${_id}"
5633
+ "url": "/app/${app_id}/${objectName}/view/${_id}?side_object=${objectName}&side_listview_id=${listName}"
5630
5634
  },
5631
5635
  "actionType": "link"
5632
5636
  }
@@ -5643,90 +5647,69 @@ const getSchema$1 = (uiSchema)=>{
5643
5647
  };
5644
5648
 
5645
5649
  const getSchema$6 = async (uiSchema, ctx) => {
5646
- const requestAdaptor = `
5647
- // 获取列表视图的属性
5648
- let uiSchema = api.body.uiSchema;
5649
- let list_views = uiSchema.list_views;
5650
- let list_views_name = api.body.listName;
5651
- let col = list_views[list_views_name].columns;
5652
- let sort_test = list_views[list_views_name].sort;
5653
-
5654
- // 获取下载字段
5655
- let select = [];
5656
- _.each(col, (col) => {
5657
- if (col.field == undefined)
5658
- select.push(col);
5659
- else select.push(col.field);
5660
- });
5661
-
5662
- // 获取排序字段
5663
-
5664
- let sort = [];
5665
- _.forEach(sort_test, (sortField) => {
5666
- if (sortField.field_name == undefined)
5667
- sort.push(sortField);
5668
- else sort.push([sortField.field_name, sortField.order]);
5669
- })
5670
-
5671
- let orders = [];
5672
- _.map(sort, (value) => {
5673
- let order_tmp = [];
5674
- if (value[1] == "desc")
5675
- order_tmp = value[0] + ' desc';
5676
- else
5677
- order_tmp = value[0];
5678
- orders.push(order_tmp);
5679
- });
5680
- let order = orders.join(',');
5681
-
5682
- let filename = uiSchema.label + "-" + list_views[list_views_name].label;
5683
-
5684
- url_tmp = api.url.split('?')[0];
5685
- api.url = url_tmp + "?$select=" + encodeURIComponent(select.toString()) + "&filename=" + encodeURIComponent(filename);
5686
-
5687
- // 判断sort 和 filters
5688
- if (sort.length > 0) {
5689
- api.url += "&$orderby=" + encodeURIComponent(order);
5690
- }
5691
- let filters = list_views[list_views_name].filters;
5692
- if (filters && filters.length > 0) {
5693
- api.url = api.url + "&filters=" + encodeURIComponent(JSON.stringify(filters));
5694
- }
5695
- return api;
5696
- `;
5650
+ const requestAdaptor = function () {
5651
+ let uiSchema = api.body.uiSchema;
5652
+ let list_views_name = api.body.listName;
5653
+ let list_views = uiSchema.list_views;
5654
+ const listViewPropsStoreKey = location.pathname + "/crud/query";
5655
+ const query = JSON.parse(sessionStorage.getItem(listViewPropsStoreKey));
5656
+ const { filters, sort, fields: select } = query;
5657
+ let filename = uiSchema.label + "-" + list_views[list_views_name].label;
5658
+
5659
+ var url_tmp = api.url.split('?')[0];
5660
+ api.url = url_tmp + "?$select=" + encodeURIComponent(select.toString()) + "&filename=" + encodeURIComponent(filename);
5661
+ // 判断sort filters
5662
+ if (sort.length > 0) {
5663
+ api.url += "&$orderby=" + encodeURIComponent(sort);
5664
+ }
5665
+ if (filters && filters.length > 0) {
5666
+ api.url = api.url + "&filters=" + encodeURIComponent(JSON.stringify(filters));
5667
+ }
5668
+ return api;
5669
+ };
5697
5670
  return {
5698
5671
  "type": "service",
5699
- "body": [{
5700
- "type": "button",
5701
- "label": instance.t('frontend_export_excel'),
5702
- "id": "u:standard_export_excel",
5703
- "level": "default",
5704
- "onEvent": {
5705
- "click": {
5706
- "weight": 0,
5707
- "actions": [
5708
- {
5709
- "args": {
5710
- "api": {
5711
- "url": "${context.rootUrl}/api/record/export/${objectName}",
5712
- "method": "get",
5713
- "messages": {},
5714
- "requestAdaptor": requestAdaptor,
5715
- "data": {
5716
- "uiSchema": "${uiSchema}",
5717
- "listName": "${listName}"
5718
- },
5719
- "headers": {
5720
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
5672
+ "body": [
5673
+ {
5674
+ "type": "button",
5675
+ "label": instance.t('frontend_export_excel'),
5676
+ "id": "u:standard_export_excel",
5677
+ "level": "default",
5678
+ "disabledTip": instance.t('frontend_export_excel_toast'),
5679
+ "onEvent": {
5680
+ "click": {
5681
+ "weight": 0,
5682
+ "actions": [{
5683
+ "componentId": "u:standard_export_excel",
5684
+ "actionType": "disabled"
5685
+ },
5686
+ {
5687
+ "args": {
5688
+ "api": {
5689
+ "url": "${context.rootUrl}/api/record/export/${objectName}",
5690
+ "method": "get",
5691
+ "messages": {},
5692
+ "requestAdaptor": requestAdaptor.toString().match(/function[^{]+\{([\s\S]*)\}$/)[1],
5693
+ "data": {
5694
+ "uiSchema": "${uiSchema}",
5695
+ "listName": "${listName}"
5696
+ },
5697
+ "headers": {
5698
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
5699
+ }
5721
5700
  }
5722
- }
5701
+ },
5702
+ "actionType": "download"
5723
5703
  },
5724
- "actionType": "download"
5725
- }
5726
- ]
5704
+ {
5705
+ "componentId": "u:standard_export_excel",
5706
+ "actionType": "enabled"
5707
+ }
5708
+ ]
5709
+ }
5727
5710
  }
5728
5711
  }
5729
- }]
5712
+ ]
5730
5713
  }
5731
5714
  };
5732
5715
 
@@ -6238,6 +6221,7 @@ const getObjectListViewButtonsSchemas = (objectSchema, ctx)=>{
6238
6221
  return {
6239
6222
  "type": "button",
6240
6223
  "icon": "fa fa-angle-down",
6224
+ "className": "mr-0",
6241
6225
  "onEvent": {
6242
6226
  "click": {
6243
6227
  "actions": [
@@ -6289,7 +6273,7 @@ const getObjectListViewButtonsSchemas = (objectSchema, ctx)=>{
6289
6273
  name: button.name,
6290
6274
  objectName: button.objectName,
6291
6275
  visibleOn: getButtonVisibleOn$1(button),
6292
- className: `button_${button.name}`
6276
+ className: `button_${button.name} mr-0`
6293
6277
  }
6294
6278
  });
6295
6279
  }
@@ -6809,7 +6793,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6809
6793
  const selfData = api.body.$self;
6810
6794
  const uiSchema = selfData.uiSchema;
6811
6795
  const fields = uiSchema.fields;
6812
- const options = (payload.data?.options || []).filter(function(item){
6796
+ const options = ((payload.data && payload.data.options) || []).filter(function(item){
6813
6797
  let field = fields[item.value];
6814
6798
  // TODO: 暂时禁用location类型字段的列表搜索
6815
6799
  return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'
@@ -7212,7 +7196,7 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
7212
7196
  "actions": [
7213
7197
  {
7214
7198
  "actionType": "custom",
7215
- "script": "Steedos.goBack()"
7199
+ "script": "window.goBack()"
7216
7200
  }
7217
7201
  ]
7218
7202
  }
@@ -8088,10 +8072,10 @@ function apiRequestAdaptor$1(){
8088
8072
  const recordId_tmp = api.body.recordId;
8089
8073
 
8090
8074
  if (typeof formData_tmp.columns == 'string') {
8091
- formData_tmp.columns = formData_tmp.columns?.split(',');
8075
+ formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');
8092
8076
  }
8093
8077
  if (typeof formData_tmp.mobile_columns == 'string') {
8094
- formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');
8078
+ formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');
8095
8079
  }
8096
8080
 
8097
8081
  // 数据格式转换
@@ -8224,7 +8208,7 @@ function apiRequestAdaptor(){
8224
8208
  const recordId = api.body.recordId;
8225
8209
  //数据格式转换
8226
8210
  if (typeof formData.sort == 'string') {
8227
- formData.sort = formData.sort?.split(',');
8211
+ formData.sort = formData.sort && formData.sort.split(',');
8228
8212
  }
8229
8213
  formData.sort = lodash.map(formData.sort, (item) => {
8230
8214
  const arr = item.split(':');
@@ -8414,7 +8398,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8414
8398
 
8415
8399
  function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = "__keywords" } = {}){
8416
8400
  const searchableFieldsLabel = [];
8417
- _.each(fields, function (field) {
8401
+ _.each(mainObject.fields, function (field) {
8418
8402
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
8419
8403
  searchableFieldsLabel.push(field.label);
8420
8404
  }
@@ -8606,8 +8590,14 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
8606
8590
 
8607
8591
  function getObjectFooterToolbar(mainObject, formFactor, options) {
8608
8592
  if (formFactor === 'SMALL') {
8593
+ // return [
8594
+ // "load-more",
8595
+ // ]
8609
8596
  return [
8610
- "load-more",
8597
+ {
8598
+ "type": "pagination",
8599
+ "maxButtons": 5
8600
+ }
8611
8601
  ]
8612
8602
  }
8613
8603
  else {
@@ -9006,13 +8996,16 @@ async function lookupToAmisPicker(field, readonly, ctx){
9006
8996
  })){
9007
8997
  i++;
9008
8998
  tableFields.push(field);
9009
- if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
9010
- searchableFields.push(field.name);
9011
- }
9012
8999
  }
9013
9000
  }
9014
9001
  });
9015
9002
 
9003
+ ___default__namespace.each(refObjectConfig.fields, function (field) {
9004
+ if(isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){
9005
+ searchableFields.push(field.name);
9006
+ }
9007
+ });
9008
+
9016
9009
  const fields = {
9017
9010
  [referenceTo.labelField.name]: referenceTo.labelField,
9018
9011
  [referenceTo.valueField.name]: referenceTo.valueField
@@ -9064,7 +9057,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
9064
9057
  if(api.data.$term){
9065
9058
  filters = [["name", "contains", "'+ api.data.$term +'"]];
9066
9059
  }else if(selfData.op === 'loadOptions' && selfData.value){
9067
- if(selfData.value?.indexOf(',') > 0){
9060
+ if(selfData.value && selfData.value.indexOf(',') > 0){
9068
9061
  fieldValue = selfData.value.split(',');
9069
9062
  filters = [["${referenceTo.valueField.name}", "=", fieldValue]];
9070
9063
  }else{
@@ -9197,13 +9190,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
9197
9190
  }
9198
9191
 
9199
9192
  let pickerSchema = null;
9200
- if(ctx.formFactor === 'SMALL'){
9201
- pickerSchema = await getListSchema$1(tableFields, {
9202
- top: top,
9203
- ...ctx,
9204
- actions: false
9205
- });
9206
- }else {
9193
+ {
9207
9194
  pickerSchema = await getTableSchema$1(tableFields, {
9208
9195
  labelFieldName: refObjectConfig.NAME_FIELD_KEY,
9209
9196
  top: top,
@@ -9259,7 +9246,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
9259
9246
  {
9260
9247
  "actionType": "custom",
9261
9248
  "script": `
9262
- const masterRecord = event.data._master?.record;
9249
+ const masterRecord = event.data._master && event.data._master.record;
9263
9250
  const fieldConfig = ${JSON.stringify(field)};
9264
9251
  let reference_to = fieldConfig.reference_to;
9265
9252
  let saveValue;
@@ -9572,6 +9559,7 @@ async function lookupToAmis(field, readonly, ctx){
9572
9559
  }
9573
9560
 
9574
9561
  if(referenceTo.objectName === "space_users" && field.reference_to_field === "user"){
9562
+ ctx.onlyDisplayLookLabel = true;
9575
9563
  if(ctx.idsDependOn){
9576
9564
  // ids人员点选模式
9577
9565
  return await lookupToAmisIdsPicker(field, readonly, ctx);
@@ -9642,7 +9630,7 @@ async function getIdsPickerSchema(field, readonly, ctx){
9642
9630
  var pageNo = api.data.pageNo || 1;
9643
9631
  var skip = (pageNo - 1) * pageSize;
9644
9632
  if(selfData.op === 'loadOptions' && selfData.value){
9645
- if(selfData.value?.indexOf(',') > 0){
9633
+ if(selfData.value && selfData.value.indexOf(',') > 0){
9646
9634
  filters = [["${referenceTo.valueField.name}", "=", selfData.value.split(',')]];
9647
9635
  }else{
9648
9636
  filters = [["${referenceTo.valueField.name}", "=", selfData.value]];
@@ -9675,6 +9663,7 @@ async function getIdsPickerSchema(field, readonly, ctx){
9675
9663
  pickerSchema = await getTableSchema$1(tableFields, {
9676
9664
  labelFieldName: refObjectConfig.NAME_FIELD_KEY,
9677
9665
  top: top,
9666
+ isLookup: true,
9678
9667
  ...ctx
9679
9668
  });
9680
9669
 
@@ -9717,8 +9706,8 @@ async function getIdsPickerSchema(field, readonly, ctx){
9717
9706
  /*
9718
9707
  * @Author: baozhoutao@steedos.com
9719
9708
  * @Date: 2023-01-13 17:27:54
9720
- * @LastEditors: liaodaxue
9721
- * @LastEditTime: 2023-07-27 17:33:54
9709
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
9710
+ * @LastEditTime: 2023-08-28 17:45:38
9722
9711
  * @Description:
9723
9712
  */
9724
9713
 
@@ -9780,14 +9769,29 @@ const getMarkdownFieldSchema = (field, readonly, ctx)=>{
9780
9769
 
9781
9770
  const getHtmlFieldSchema = (field, readonly, ctx)=>{
9782
9771
  if(readonly){
9772
+ // return {
9773
+ // "type": "control",
9774
+ // "label": field.label,
9775
+ // "body": {
9776
+ // "type": "html",
9777
+ // "name": field.name
9778
+ // }
9779
+ // }
9783
9780
  return {
9784
- "type": "control",
9785
- "label": field.label,
9786
- "body": {
9787
- "type": "html",
9788
- "name": field.name
9789
- }
9781
+ "type": "input-rich-text",
9782
+ "receiver": "${context.rootUrl}/s3/images",
9783
+ "name": field.name,
9784
+ "options": {
9785
+ "plugins": [
9786
+ "autoresize"
9787
+ ],
9788
+ // "max_height": 2000,
9789
+ "statusbar": false,
9790
+ "readonly": true,
9791
+ "toolbar": false,
9792
+ "menubar": false
9790
9793
  }
9794
+ }
9791
9795
  }else {
9792
9796
  return {
9793
9797
  "type": "input-rich-text",
@@ -9845,6 +9849,9 @@ function getAmisStaticFieldType(type, readonly, options){
9845
9849
  return type;
9846
9850
  }
9847
9851
  if(___default__namespace.includes(['text','image'], type)){
9852
+ if('text' === type && options && options.amis && options.amis.tpl){
9853
+ return 'static';
9854
+ }
9848
9855
  if('image' === type && options && options.multiple){
9849
9856
  return `static-images`;
9850
9857
  }
@@ -10115,7 +10122,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
10115
10122
  // }
10116
10123
  switch (field.type) {
10117
10124
  case 'text':
10118
- convertData.type = getAmisStaticFieldType('text', readonly);
10125
+ convertData.type = getAmisStaticFieldType('text', readonly, field);
10119
10126
  break;
10120
10127
  case 'textarea':
10121
10128
  convertData.type = getAmisStaticFieldType('textarea', readonly);
@@ -10881,7 +10888,7 @@ async function getQuickEditSchema(field, options){
10881
10888
  case "number":
10882
10889
  case "currency":
10883
10890
  TempDisplayField = `
10884
- _display["${field.name}"] = event.data.value?.toFixed(${field.scale});
10891
+ _display["${field.name}"] = event.data.value && event.data.value.toFixed(${field.scale});
10885
10892
  `;
10886
10893
  quickEditSchema.body[0].onEvent["change"] = quickEditOnEvent(TempDisplayField);
10887
10894
 
@@ -11069,13 +11076,15 @@ async function getTableColumns$1(fields, options){
11069
11076
  }
11070
11077
  },
11071
11078
  "actionType": "download",
11072
- "expression": "!!!window?.nw?.require"//浏览器上直接下载
11079
+ // "expression": "!!!window?.nw?.require"//浏览器上直接下载
11080
+ "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
11073
11081
  },
11074
11082
  {
11075
11083
  "args": {},
11076
11084
  "actionType": "custom",
11077
11085
  "script": previewFileScript,
11078
- "expression": "!!window?.nw?.require" //PC客户端预览附件
11086
+ // "expression": "!!window?.nw?.require" //PC客户端预览附件
11087
+ "expression": "!!!(window && window.nw && window.nw.require)"//PC客户端预览附件
11079
11088
  }
11080
11089
  ]
11081
11090
  }
@@ -11196,7 +11205,7 @@ async function getTableColumns$1(fields, options){
11196
11205
  */
11197
11206
  function getMobileLines(tpls){
11198
11207
  let lines = [];
11199
- let maxLineCount = 2;
11208
+ let maxLineCount = 3;
11200
11209
  let lineChildren = [];
11201
11210
  let isNewLine = false;
11202
11211
  let isLeft = true;
@@ -11214,10 +11223,10 @@ function getMobileLines(tpls){
11214
11223
  }
11215
11224
  if(isLeft){
11216
11225
  // 左侧半行
11217
- lineChildrenClassName = "steedos-listview-item-left two-lines-truncate";
11226
+ lineChildrenClassName = "steedos-listview-item-left truncate";
11218
11227
  if(item.field.is_wide){
11219
- // 左侧全行样式可以单独写
11220
- lineChildrenClassName = "steedos-listview-item-wide truncate";
11228
+ // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate
11229
+ lineChildrenClassName = "steedos-listview-item-wide";
11221
11230
  }
11222
11231
  if(lines.length === 0){
11223
11232
  // 第一个字段加粗黑色显示
@@ -11225,7 +11234,7 @@ function getMobileLines(tpls){
11225
11234
  }
11226
11235
  }
11227
11236
  else {
11228
- // 右侧半行
11237
+ // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了
11229
11238
  lineChildrenClassName = "steedos-listview-item-right truncate ml-2 flex flex-shrink-0";
11230
11239
  }
11231
11240
  lineChildren.push({
@@ -11265,7 +11274,7 @@ async function getMobileTableColumns(fields, options){
11265
11274
  let tpl = "";
11266
11275
  if(field.is_name || field.name === options.labelFieldName){
11267
11276
  nameField = field;
11268
- options.onlyDisplayLabel = true;
11277
+ options.onlyDisplayLookLabel = true;
11269
11278
  tpl = await getFieldTpl(field, options);
11270
11279
  }
11271
11280
  else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){
@@ -11274,12 +11283,13 @@ async function getMobileTableColumns(fields, options){
11274
11283
  }
11275
11284
  else {
11276
11285
  if(field.type === 'lookup' || field.type === 'master_detail'){
11277
- options.onlyDisplayLabel = true;
11286
+ options.onlyDisplayLookLabel = true;
11278
11287
  }
11279
11288
  tpl = await getFieldTpl(field, options);
11280
11289
  }
11281
11290
  if(!tpl){
11282
- tpl = `\${${field.name}}`;
11291
+ //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉
11292
+ tpl = `\${${field.name} | raw}`;
11283
11293
  }
11284
11294
  if(!field.hidden && !field.extra){
11285
11295
  tpls.push({ field, tpl });
@@ -11470,19 +11480,26 @@ async function getTableOperation(ctx){
11470
11480
 
11471
11481
  async function getTableSchema$1(fields, options){
11472
11482
  let isLookup = options && options.isLookup;
11483
+ let hiddenColumnOperation = options && options.hiddenColumnOperation;
11473
11484
  if(!options){
11474
11485
  options = {};
11475
11486
  }
11476
11487
  let columns = [];
11477
- if(options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1){
11488
+ let useMobileColumns = options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1;
11489
+ if(isLookup){
11490
+ // 在lookup手机端列表模式调式好之前不使用getMobileTableColumns
11491
+ useMobileColumns = false;
11492
+ }
11493
+ if(useMobileColumns){
11478
11494
  columns = await getMobileTableColumns(fields, options);
11479
11495
  }
11480
11496
  else {
11481
11497
  columns = await getTableColumns$1(fields, options);
11482
- if(!isLookup){
11498
+ if(!isLookup && !hiddenColumnOperation){
11483
11499
  columns.push(await getTableOperation(options));
11484
11500
  }
11485
11501
  }
11502
+
11486
11503
  return {
11487
11504
  mode: "table",
11488
11505
  name: "thelist",
@@ -11493,7 +11510,7 @@ async function getTableSchema$1(fields, options){
11493
11510
  columns: columns,
11494
11511
  syncLocation: false,
11495
11512
  keepItemSelectionOnPageChange: true,
11496
- checkOnItemClick: false,
11513
+ checkOnItemClick: isLookup ? true : false,
11497
11514
  labelTpl: `\${${options.labelFieldName}}`,
11498
11515
  autoFillHeight: false, // 自动高度效果不理想,先关闭
11499
11516
  columnsTogglable: false,
@@ -11530,7 +11547,7 @@ async function getTableApi(mainObject, fields, options){
11530
11547
  baseFilters = filter;
11531
11548
  }
11532
11549
 
11533
- ___default__namespace.each(fields, function (field) {
11550
+ ___default__namespace.each(mainObject.fields, function (field) {
11534
11551
  if (isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {
11535
11552
  searchableFields.push(field.name);
11536
11553
  }
@@ -11592,7 +11609,9 @@ async function getTableApi(mainObject, fields, options){
11592
11609
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
11593
11610
  let formFactor = "${options.formFactor}";
11594
11611
  // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
11595
- api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
11612
+ // api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
11613
+ // 移动端暂时去除加载更多,放开翻页
11614
+ api.data.pageNo = localListViewProps.page || 1;
11596
11615
  }
11597
11616
  }
11598
11617
  }
@@ -11713,7 +11732,17 @@ async function getTableApi(mainObject, fields, options){
11713
11732
  api.data = {
11714
11733
  query: api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim())
11715
11734
  }
11716
- ${options.requestAdaptor || ''}
11735
+ ${options.requestAdaptor || ''};
11736
+
11737
+ //写入本次存储filters、sort
11738
+ const listViewPropsStoreKey = location.pathname + "/crud/query";
11739
+ sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify({
11740
+ filters: filters,
11741
+ sort: sort.trim(),
11742
+ pageSize: pageSize,
11743
+ skip: skip,
11744
+ fields: ${JSON.stringify(___default__namespace.map(fields, 'name'))}
11745
+ }));
11717
11746
  return api;
11718
11747
  `;
11719
11748
  api.adaptor = `
@@ -11792,7 +11821,8 @@ async function getTableApi(mainObject, fields, options){
11792
11821
  // 如果是第一次加载组件始终让翻页页码从本地存储中取值
11793
11822
  let formFactor = "${options.formFactor}";
11794
11823
  // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页
11795
- selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
11824
+ // selfData.page = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);
11825
+ selfData.page = localListViewProps.page || 1;
11796
11826
  }
11797
11827
  }
11798
11828
  delete selfData.context;
@@ -11810,7 +11840,13 @@ async function getTableApi(mainObject, fields, options){
11810
11840
  const setDataToComponentId = "${setDataToComponentId}";
11811
11841
  if(setDataToComponentId){
11812
11842
  //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9
11813
- SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
11843
+ var scope = SteedosUI.getRef(api.body.$self.$scopeId);
11844
+ var scopeParent = scope && scope.parent;
11845
+ var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);
11846
+ if(setDataToComponent){
11847
+ setDataToComponent.setData({$count: payload.data.count});
11848
+ }
11849
+ // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
11814
11850
  };
11815
11851
  ${options.adaptor || ''}
11816
11852
  return payload;
@@ -12096,7 +12132,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
12096
12132
  var uiSchema = api.body.uiSchema;
12097
12133
  var defaultData = api.body.defaultData;
12098
12134
  var defaultValues = {};
12099
- _.each(uiSchema?.fields, function(field){
12135
+ _.each(uiSchema && uiSchema.fields, function(field){
12100
12136
  var value = SteedosUI.getFieldDefaultValue(field, api.body.global);
12101
12137
  if(value){
12102
12138
  defaultValues[field.name] = value;
@@ -12315,7 +12351,12 @@ async function getCalendarApi(mainObject, fields, options) {
12315
12351
  window.postMessage(Object.assign({type: "listview.loaded"}), "*");
12316
12352
  const setDataToComponentId = "${setDataToComponentId}";
12317
12353
  if(setDataToComponentId){
12318
- SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
12354
+ var scope = SteedosUI.getRef(api.body.$self.scopeId);
12355
+ var setDataToComponent = scope && scope.getComponentById(setDataToComponentId);
12356
+ if(setDataToComponent){
12357
+ setDataToComponent.setData({$count: payload.data.count});
12358
+ }
12359
+ // SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
12319
12360
  }
12320
12361
  const rows = payload.data.rows || [];
12321
12362
  const selfData = api.data.$self;
@@ -13062,6 +13103,10 @@ async function getObjectCRUD(objectSchema, fields, options){
13062
13103
  }
13063
13104
  }
13064
13105
  `;
13106
+ let autoFillHeight = true;
13107
+ if(options.isRelated || Steedos.isMobile()){
13108
+ autoFillHeight = false;
13109
+ }
13065
13110
 
13066
13111
  body = Object.assign({}, table, {
13067
13112
  type: 'crud',
@@ -13072,7 +13117,7 @@ async function getObjectCRUD(objectSchema, fields, options){
13072
13117
  keepItemSelectionOnPageChange: true,
13073
13118
  api: await getTableApi(objectSchema, fields, options),
13074
13119
  hiddenOn: options.tableHiddenOn,
13075
- autoFillHeight: options.isRelated ? false : true,
13120
+ autoFillHeight,
13076
13121
  className: `flex-auto ${crudClassName || ""}`,
13077
13122
  bodyClassName: "bg-white",
13078
13123
  crudClassName: crudClassName,
@@ -13315,7 +13360,7 @@ async function getObjectDetail(objectSchema, recordId, ctx){
13315
13360
  // "blank": false
13316
13361
  // },
13317
13362
  "actionType": "custom",
13318
- "script": "Steedos.goBack()",
13363
+ "script": "window.goBack()",
13319
13364
  "expression": "this.__deletedRecord === true"
13320
13365
  }
13321
13366
  ]
@@ -13432,7 +13477,7 @@ const getRecordPermissions = async (objectName, recordId)=>{
13432
13477
  * @Author: baozhoutao@steedos.com
13433
13478
  * @Date: 2022-07-05 15:55:39
13434
13479
  * @LastEditors: liaodaxue
13435
- * @LastEditTime: 2023-08-21 14:50:21
13480
+ * @LastEditTime: 2023-08-28 14:55:23
13436
13481
  * @Description:
13437
13482
  */
13438
13483
 
@@ -13578,11 +13623,16 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
13578
13623
  // }
13579
13624
  const recordRelatedListHeader = await getObjectRecordDetailRelatedListHeader(relatedObjectUiSchema, relatedLabel, ctx);
13580
13625
  const componentId = `steedos-record-related-list-${relatedObjectName}`;
13626
+ const isMobile = window.innerWidth < 768;
13627
+ let headerToolbar = [];
13628
+ if(!isMobile){
13629
+ headerToolbar.push("bulkActions");
13630
+ }
13581
13631
  const options = {
13582
13632
  globalFilter,
13583
13633
  defaults: {
13584
13634
  listSchema: {
13585
- headerToolbar:["bulkActions"],
13635
+ headerToolbar,
13586
13636
  columnsTogglable: false,
13587
13637
  onEvent: {
13588
13638
  [`@data.changed.${relatedObjectName}`]: {
@@ -13778,8 +13828,8 @@ async function getRelatedListSchema(
13778
13828
  /*
13779
13829
  * @Author: baozhoutao@steedos.com
13780
13830
  * @Date: 2022-07-05 15:55:39
13781
- * @LastEditors: baozhoutao@steedos.com
13782
- * @LastEditTime: 2023-08-17 18:03:51
13831
+ * @LastEditors: liaodaxue
13832
+ * @LastEditTime: 2023-08-25 11:55:15
13783
13833
  * @Description:
13784
13834
  */
13785
13835
 
@@ -14044,7 +14094,7 @@ async function getListSchema(
14044
14094
  * 本次存储代码段
14045
14095
  */
14046
14096
  try {
14047
- const listViewPropsStoreKey = location.pathname + "/crud/" + (listViewName || "");
14097
+ const listViewPropsStoreKey = location.pathname + "/crud";
14048
14098
  let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);
14049
14099
  /**
14050
14100
  * localListViewProps规范来自crud请求api中api.data.$self参数值的。
@@ -14066,11 +14116,12 @@ async function getListSchema(
14066
14116
  if(localListViewProps.orderDir){
14067
14117
  listSchema.orderDir = localListViewProps.orderDir;
14068
14118
  }
14069
- // if(localListViewProps.perPage){
14070
- // listSchema.defaultParams = {
14071
- // perPage: localListViewProps.perPage
14072
- // }
14073
- // }
14119
+
14120
+ if(localListViewProps.perPage){
14121
+ listSchema.defaultParams = {
14122
+ perPage: localListViewProps.perPage
14123
+ };
14124
+ }
14074
14125
  defaults.listSchema = ___default.defaultsDeep({}, listSchema, defaults.listSchema || {});
14075
14126
  }
14076
14127
  }
@@ -15423,7 +15474,7 @@ const getNextStepUsersInput = async (instance) => {
15423
15474
  id: "u:ffff15b76c89",
15424
15475
  className: "b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm",
15425
15476
  subFormMode: "",
15426
- hiddenOn: "!!!this.new_next_step || this.new_next_step?.step_type === 'end'"
15477
+ hiddenOn: "!!!this.new_next_step || (this.new_next_step && this.new_next_step.step_type === 'end')"
15427
15478
  };
15428
15479
  };
15429
15480
 
@@ -16343,7 +16394,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
16343
16394
  map[item.value] = item.label;
16344
16395
  });
16345
16396
  tpl.type = 'static';
16346
- tpl.tpl = `<% var options = ${JSON.stringify(map)}; return options?.[data.${field.code}] || ''%>`;
16397
+ tpl.tpl = `<% var options = ${JSON.stringify(map)}; return (options && options[data.${field.code}]) || ''%>`;
16347
16398
  }else if(field.type === 'odata'){
16348
16399
  tpl.type = 'static';
16349
16400
  tpl.tpl = `<div>\${${field.code}['@label']}</div>`;
@@ -16373,7 +16424,7 @@ const getFieldReadonlyTpl = async (field, label)=>{
16373
16424
  if(field.is_multiselect){
16374
16425
  tpl.tpl = `\${_.map(${field.code}, 'name')}`;
16375
16426
  }else {
16376
- tpl.tpl = `\${${field.code}?.name}`;
16427
+ tpl.tpl = `\${${field.code} && ${field.code}.name}`;
16377
16428
  }
16378
16429
  }else if(field.type === 'group'){
16379
16430
  tpl.type = 'static';
@@ -17809,12 +17860,12 @@ var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0,
17809
17860
  }); };
17810
17861
 
17811
17862
  var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, void 0, function () {
17812
- var $schema, top, perPage, _a, showHeader, data, defaultData, _b, crud, _c, className, crudClassName, _d, showDisplayAs, sideSchema, _f, filterVisible, headerToolbarItems, rowClassNameExpr, headerSchema, ctx, listName, defaults, objectApiName, displayAs, formFactor, isMobile, uiSchema, listView, schemaKeys, listSchema, setDataToComponentId, amisSchemaData, listViewId, listViewSchemaProps, serviceData;
17813
- var _g;
17814
- return __generator(this, function (_h) {
17815
- switch (_h.label) {
17863
+ var $schema, top, perPage, _a, showHeader, data, defaultData, _b, crud, _c, className, crudClassName, _d, showDisplayAs, sideSchema, _f, filterVisible, headerToolbarItems, rowClassNameExpr, _g, hiddenColumnOperation, headerSchema, ctx, listName, defaults, objectApiName, displayAs, formFactor, isMobile, uiSchema, listView, schemaKeys, listSchema, setDataToComponentId, amisSchemaData, listViewId, listViewSchemaProps, serviceData;
17864
+ var _h;
17865
+ return __generator(this, function (_j) {
17866
+ switch (_j.label) {
17816
17867
  case 0:
17817
- $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;
17868
+ $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;
17818
17869
  headerSchema = props.headerSchema;
17819
17870
  ctx = props.ctx;
17820
17871
  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);
@@ -17843,7 +17894,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17843
17894
  }
17844
17895
  return [4 /*yield*/, getUISchema(objectApiName, false)];
17845
17896
  case 1:
17846
- uiSchema = _h.sent();
17897
+ uiSchema = _j.sent();
17847
17898
  listView = ___default.find(uiSchema.list_views, function (listView, name) {
17848
17899
  // 传入listViewName空值则取第一个
17849
17900
  if (!listName) {
@@ -17894,7 +17945,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17894
17945
  }
17895
17946
  amisSchemaData = Object.assign({}, data, defaultData);
17896
17947
  listViewId = (ctx === null || ctx === void 0 ? void 0 : ctx.listViewId) || amisSchemaData.listViewId;
17897
- listViewSchemaProps = __assign$2(__assign$2({ top: top, perPage: perPage, showHeader: showHeader, defaults: defaults }, ctx), { listViewId: listViewId, setDataToComponentId: setDataToComponentId, filterVisible: filterVisible, showDisplayAs: showDisplayAs, displayAs: displayAs, headerToolbarItems: headerToolbarItems, rowClassNameExpr: rowClassNameExpr });
17948
+ listViewSchemaProps = __assign$2(__assign$2({ top: top, perPage: perPage, showHeader: showHeader, defaults: defaults }, ctx), { listViewId: listViewId, setDataToComponentId: setDataToComponentId, filterVisible: filterVisible, showDisplayAs: showDisplayAs, displayAs: displayAs, headerToolbarItems: headerToolbarItems, rowClassNameExpr: rowClassNameExpr, hiddenColumnOperation: hiddenColumnOperation });
17898
17949
  if (!headerSchema) {
17899
17950
  headerSchema = getObjectListHeader$1(uiSchema, listName, ctx);
17900
17951
  }
@@ -17908,7 +17959,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17908
17959
  if (!___default.has(data, 'uiSchema')) {
17909
17960
  serviceData.uiSchema = uiSchema;
17910
17961
  }
17911
- serviceData.defaultListName = listName ? listName : (_g = ___default.first(___default.values(uiSchema.list_views))) === null || _g === void 0 ? void 0 : _g.name;
17962
+ serviceData.defaultListName = listName ? listName : (_h = ___default.first(___default.values(uiSchema.list_views))) === null || _h === void 0 ? void 0 : _h.name;
17912
17963
  // console.timeEnd('AmisObjectListView')
17913
17964
  // console.log('serviceData===>', serviceData)
17914
17965
  // console.log('headerSchema===>', headerSchema)
@@ -17919,7 +17970,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
17919
17970
  body: [{
17920
17971
  "type": "wrapper",
17921
17972
  "size": "none",
17922
- "className": "flex flex-1 overflow-hidden h-full",
17973
+ "className": "flex flex-1 h-full",
17923
17974
  body: [
17924
17975
  sideSchema ? {
17925
17976
  "type": "wrapper",
@@ -18354,6 +18405,7 @@ var AmisAppLauncher = function (props) { return __awaiter(void 0, void 0, void 0
18354
18405
  if (isMobile) {
18355
18406
  dialogSchema = {
18356
18407
  "type": "service",
18408
+ "className": "steedos-apps-service",
18357
18409
  "affixFooter": false,
18358
18410
  "body": [
18359
18411
  {
@@ -18590,7 +18642,7 @@ var AmisAppLauncher = function (props) { return __awaiter(void 0, void 0, void 0
18590
18642
  ],
18591
18643
  }
18592
18644
  ],
18593
- "className": "",
18645
+ "className": "steedos-apps-service",
18594
18646
  "visibleOn": "",
18595
18647
  "clearValueOnHidden": false,
18596
18648
  "visible": true,
@@ -18724,7 +18776,7 @@ var AmisAppMenu = function (props) { return __awaiter(void 0, void 0, void 0, fu
18724
18776
  schemaApi: {
18725
18777
  "method": "get",
18726
18778
  "url": "${context.rootUrl}/service/api/apps/".concat(appId, "/menus"),
18727
- "adaptor": "\n try {\n console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"\";\n if(stacked){\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n })\n })\n } else {\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": _.find(tab_groups, {\"group_name\": groupName})?.default_open != false,\n \"children\": _.map(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n }\n })\n }) \n }\n });\n }else{\n _.each(payload.children, (tab)=>{\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n });\n })\n }\n\n payload.data = {\n \"type\":\"service\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": data.nav\n },\n \"id\": \"appMenuService\",\n \"body\":{\n \"type\": \"nav\",\n className: \"").concat(className, " text-black\",\n \"stacked\": ").concat(stacked, ",\n \"overflow\": ").concat(JSON.stringify(overflow), ",\n \"indentSize\": ").concat(indentSize, ",\n \"source\": \"${items}\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n };\n } catch (error) {\n console.log(`error`, error)\n }\n console.log('payload===2==>', payload)\n return payload;\n "),
18779
+ "adaptor": "\n try {\n console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"\";\n if(stacked){\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n })\n })\n } else {\n var tabGroup = _.find(tab_groups, {\"group_name\": groupName});\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": tabGroup && tabGroup.default_open != false,\n \"children\": _.map(tabs, (tab) => {\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n }\n })\n }) \n }\n });\n }else{\n _.each(payload.children, (tab)=>{\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 word-break leading-6 block -ml-px no-underline group flex items-center text-[15px] rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\"\n // active: selectedId === tab.id,\n });\n })\n }\n\n payload.data = {\n \"type\":\"service\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": data.nav\n },\n \"id\": \"appMenuService\",\n \"body\":{\n \"type\": \"nav\",\n className: \"").concat(className, " text-black\",\n \"stacked\": ").concat(stacked, ",\n \"overflow\": ").concat(JSON.stringify(overflow), ",\n \"indentSize\": ").concat(indentSize, ",\n \"source\": \"${items}\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n };\n } catch (error) {\n console.log(`error`, error)\n }\n console.log('payload===2==>', payload)\n return payload;\n "),
18728
18780
  "headers": {
18729
18781
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
18730
18782
  }
@@ -18790,7 +18842,7 @@ var AmisGlobalFooter = function (props) { return __awaiter(void 0, void 0, void
18790
18842
  * @Author: baozhoutao@steedos.com
18791
18843
  * @Date: 2022-09-01 14:44:57
18792
18844
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
18793
- * @LastEditTime: 2023-08-21 14:00:27
18845
+ * @LastEditTime: 2023-08-28 15:04:28
18794
18846
  * @Description:
18795
18847
  */
18796
18848
  var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0, void 0, function () {
@@ -18935,7 +18987,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
18935
18987
  "name": "notifications",
18936
18988
  "items": {
18937
18989
  "type": "tpl",
18938
- "tpl": "<div class='flex items-center p-4 hover:bg-sky-50'>\n <img src='<%=data.context.rootUrl + \"/avatar/\" + data.from%>' alt='' class='h-10 w-10 flex-none rounded-full'>\n <div class='ml-4 flex-auto'>\n <div class='font-medium'>\n <span class='text-primary'><%=data.name%></span>\n </div>\n <div class='mt-1 text-slate-700'>\n <%=data.body%>\n </div>\n <div class='mt-1 text-slate-700'>\n <%=moment(data.created).fromNow()%>\n <abbr class='slds-text-link slds-m-horizontal_xxx-small <%=data.is_read ? 'hidden' : ''%>' title='unread'>\u25CF</abbr>\n </div>\n </div>\n </div>",
18990
+ "tpl": "<div class='flex items-center p-4 hover:bg-sky-50'>\n <img src='<%=data.context.rootUrl + \"/avatar/\" + data.from%>' alt='' class='h-10 w-10 flex-none rounded-full'>\n <div class='ml-4 flex-auto'>\n <div class='font-medium'>\n <span class='text-primary'><%=data.name%></span>\n </div>\n <div class='mt-1 text-slate-700'>\n <%=data.body%>\n </div>\n <div class='mt-1 text-slate-700'>\n <%=moment(data.created).locale(data.global.user.language).fromNow()%>\n <abbr class='slds-text-link slds-m-horizontal_xxx-small <%=data.is_read ? 'hidden' : ''%>' title='unread'>\u25CF</abbr>\n </div>\n </div>\n </div>",
18939
18991
  "id": "u:07ece657c7b7",
18940
18992
  "onEvent": {
18941
18993
  "click": {
@@ -19239,7 +19291,7 @@ var AmisGlobalHeader = function (props) { return __awaiter(void 0, void 0, void
19239
19291
  "actions": [
19240
19292
  {
19241
19293
  "actionType": "custom",
19242
- "script": "Steedos.goBack()"
19294
+ "script": "window.goBack()"
19243
19295
  }
19244
19296
  ]
19245
19297
  }
@@ -19634,7 +19686,7 @@ var getSelectFlowSchema = function (id, props) {
19634
19686
  method: "post",
19635
19687
  url: "${context.rootUrl}/graphql?keywords=${keywords}",
19636
19688
  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 "),
19637
- adaptor: "\n payload.data.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 return payload;\n ",
19689
+ 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 return payload;\n ",
19638
19690
  "headers": {
19639
19691
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
19640
19692
  }