@steedos-widgets/amis-object 1.2.28 → 1.2.31

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.
@@ -3654,7 +3654,7 @@
3654
3654
 
3655
3655
  function getRelatedFieldTpl(field, ctx){
3656
3656
  let tpl = '';
3657
- if(!field.reference_to && (field.optionsFunction || field._optionsFunction)){
3657
+ if(!field.reference_to && (field.optionsFunction || field._optionsFunction || field.options)){
3658
3658
  if(field.isTableField){
3659
3659
  return `\${${field.name}}`
3660
3660
  }else {
@@ -4110,790 +4110,802 @@
4110
4110
  }
4111
4111
  }
4112
4112
 
4113
- /*
4114
- * @Author: baozhoutao@steedos.com
4115
- * @Date: 2022-07-23 09:12:14
4116
- * @LastEditors: baozhoutao@steedos.com
4117
- * @LastEditTime: 2022-11-25 13:28:35
4118
- * @Description:
4119
- */
4120
-
4121
- async function getListBody(fields, options){
4122
- const columns = [];
4123
- for (const field of fields) {
4124
-
4125
- const tpl = await getFieldTpl(field, options);
4126
-
4127
- let type = 'text';
4128
- if(tpl){
4129
- type = 'tpl';
4130
- }
4131
- if(!field.hidden && !field.extra){
4132
- columns.push({
4133
- name: field.name,
4134
- label: field.label,
4135
- sortable: field.sortable,
4136
- // searchable: field.searchable,
4137
- width: field.width,
4138
- type: type,
4139
- tpl: tpl,
4140
- toggled: field.toggled
4141
- // toggled: true
4142
- });
4143
- }
4144
- }
4145
- return {
4146
- "type": "hbox",
4147
- "columns": columns
4148
- };
4149
- }
4150
-
4151
- function getDefaultParams$1(options){
4152
- return {
4153
- perPage: options.top || options.perPage || 10
4154
- }
4155
- }
4156
-
4157
- async function getListSchema$1(fields, options){
4158
- const listBody = await getListBody(fields, options);
4159
- const columns = listBody.columns;
4160
- return {
4161
- mode: "list",
4162
- name: "thelist",
4163
- draggable: false,
4164
- headerToolbar: ['reload'],
4165
- defaultParams: getDefaultParams$1(options),
4166
- syncLocation: false,
4167
- keepItemSelectionOnPageChange: true,
4168
- checkOnItemClick: false,
4169
- labelTpl: `\${name}`, //TODO 获取name字段
4170
- listItem: {
4171
- body: [...columns],
4172
- actions: options.actions === false ? null : [
4173
- {
4174
- icon: "fa fa-eye",
4175
- label: "查看",
4176
- type: "button",
4177
- actionType: "link",
4178
- link: Router$1.getObjectDetailPath({
4179
- formFactor: options.formFactor,
4180
- appId: options.appId,
4181
- objectName: options.tabId,
4182
- listView: options.listView,
4183
- recordId: `\${_id}`
4184
- })
4185
- }
4186
- ]
4187
- }
4188
- }
4189
- }
4190
-
4191
-
4192
- async function getCardSchema(fields, options){
4193
- let title = null;
4194
- const titleField = _.find(fields, (f)=>{
4195
- return f.name === options.labelFieldName;
4196
- });
4197
- if(titleField){
4198
- title = await getFieldTpl(titleField, options);
4199
- }
4200
- const listBody = await getListBody(_.filter(fields, (f)=>{
4201
- return f.name != options.labelFieldName
4202
- }), options);
4203
- return {
4204
- mode: "cards",
4205
- name: "cards",
4206
- draggable: false,
4207
- headerToolbar: ['statistics', 'pagination'],
4208
- defaultParams: getDefaultParams$1(options),
4209
- syncLocation: false,
4210
- keepItemSelectionOnPageChange: false,
4211
- checkOnItemClick: false,
4212
- labelTpl: `\${${options.labelFieldName}}`,
4213
- card: {
4214
- "type": "card",
4215
- "header": {
4216
- "title": title
4217
- },
4218
- "body": [...listBody.columns]
4219
- }
4220
- }
4221
- }
4222
-
4223
- const refUsersObjectName = "space_users";
4224
- const refOrgsObjectName = "organizations";
4225
-
4226
- async function getSource$1(field, ctx) {
4227
- // data.query 最终格式 "{ \tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }"
4228
- const data = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "value" },{name: "parent"}, { name: "name", alias: "label" }, { name: "children" }], {
4229
- alias: "leftOptions",
4230
- filters: "{__filters}"
4231
- });
4232
- data.query = data.query.replace(/,count\:.+/, "}");
4233
- const childrenData = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "ref" }], {
4234
- alias: "children",
4235
- filters: "{__filters}"
4236
- });
4237
- childrenData.query = childrenData.query.replace(/,count\:.+/, "}");
4238
- data.query = data.query.replace(/}$/, "," + childrenData.query.replace(/{(.+)}/, "$1}"));
4239
- const defaultValueOptionsData = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
4240
- alias: "defaultValueOptions",
4241
- filters: "{__options_filters}"
4242
- });
4243
- defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\:.+/, "}");
4244
- data.query = data.query.replace(/}$/, "," + defaultValueOptionsData.query.replace(/{(.+)}/, "$1}"));
4245
- let valueField = `${field.name}`;
4246
- if(field._prefix){
4247
- // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.
4248
- valueField = `${field._prefix}${field.name}`;
4249
- }
4250
- if(ctx.fieldNamePrefix){
4251
- // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__
4252
- valueField = `${ctx.fieldNamePrefix}${valueField}`;
4253
- }
4254
- data.$value = `$${valueField}`;
4255
- // data["&"] = "$$";
4256
-
4257
- const requestAdaptor = `
4258
- var filters = [];
4259
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
4260
- var defaultValue = api.data.$value;
4261
- var optionsFiltersOp = "${field.multiple ? "in" : "="}";
4262
- var optionsFilters = [["user", optionsFiltersOp, []]];
4263
- if (defaultValue) {
4264
- optionsFilters = [["user", optionsFiltersOp, defaultValue]];
4265
- }
4266
- api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
4267
- return api;
4268
- `;
4269
- const adaptor = `
4270
- const data = payload.data;
4271
- const rows = data.leftOptions
4272
- data.children = data.children.map(function (child) {
4273
- // child.defer = !!(child.children && child.children.length);
4274
- child.defer = true;
4275
- delete child.children;
4276
- return child;
4277
- });
4278
-
4279
- var getTreeOptions = SteedosUI.getTreeOptions
4280
- data.leftOptions = getTreeOptions(rows);
4281
-
4282
-
4283
- var defaultValueOptions = data.defaultValueOptions;
4284
- data.children = _.union(data.children, defaultValueOptions);
4285
- delete data.defaultValueOptions;
4286
- payload.data = { options: [data] };
4287
- return payload;
4288
- `;
4289
- return {
4290
- "method": "post",
4291
- // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug
4292
- // 见issue: https://github.com/baidu/amis/issues/6065
4293
- // "url": graphql.getApi() + `?value=\${${field.multiple ? valueField + "|join" : valueField}}`,
4294
- // "url": graphql.getApi() + `?value=\${editFormInited}`,
4295
- "url": getApi$2(),
4296
- "requestAdaptor": requestAdaptor,
4297
- "adaptor": adaptor,
4298
- "data": data,
4299
- // "sendOn": `this.editFormInited`,
4300
- "headers": {
4301
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4302
- },
4303
- }
4304
- }
4113
+ var frontend_field_group_generalization$1 = "Generalization";
4114
+ var frontend_download$1 = "Download";
4115
+ var frontend_form_save$1 = "Save";
4116
+ var frontend_form_save_and_new$1 = "Save and New";
4117
+ var frontend_form_cancel$1 = "Cancel";
4118
+ var frontend_form_new$1 = "New";
4119
+ var frontend_form_edit$1 = "Edit";
4120
+ var frontend_form_select$1 = "Select";
4121
+ var frontend_form_confirm$1 = "Confirm";
4122
+ var frontend_form_delete$1 = "Delete";
4123
+ var frontend_form_view$1 = "view";
4124
+ var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
4125
+ var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
4126
+ var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
4127
+ var frontend_display_type_is_table$1 = "Table";
4128
+ var frontend_display_type_is_split$1 = "Split View";
4129
+ var frontend_display_as$1 = "Displayed as";
4130
+ var frontend_record_sum$1 = "items";
4131
+ var frontend_button_reload_tooltip$1 = "Refresh";
4132
+ var frontend_button_search_tooltip$1 = "Search";
4133
+ var frontend_fields_filter_button_search$1 = "Search";
4134
+ var frontend_fields_filter_button_settings$1 = "Set search options";
4135
+ var frontend_button_listview_control_tooltip$1 = "List View Controls";
4136
+ var frontend_button_listview_control_label$1 = "LIST VIEW CONTROLS";
4137
+ var frontend_listview_control_columns$1 = "Show List";
4138
+ var frontend_listview_control_columns_mobile_group$1 = "Mobile side";
4139
+ var frontend_listview_control_clone_label$1 = "Clone";
4140
+ var frontend_listview_control_clone_title$1 = "Clone List View";
4141
+ var frontend_listview_control_clone_defaultData_label_start$1 = "Copy of";
4142
+ var frontend_listview_control_clone_defaultData_label_end$1 = "";
4143
+ var frontend_listview_control_delete_label$1 = "Delete";
4144
+ var frontend_listview_control_delete_confirm_text$1 = "If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?";
4145
+ var frontend_listview_control_delete_message_success$1 = "Deletion successful";
4146
+ var frontend_listview_control_filters$1 = "Filter settings";
4147
+ var frontend_listview_control_filters_fields_extend$1 = "Conditional component 1";
4148
+ var frontend_listview_control_new_label$1 = "New";
4149
+ var frontend_listview_control_new_title$1 = "New List View";
4150
+ var frontend_listview_control_new_message_success$1 = "Success";
4151
+ var frontend_listview_control_new_message_failed$1 = "Failure";
4152
+ var frontend_listview_control_rename_label$1 = "Rename";
4153
+ var frontend_listview_control_rename_title$1 = "Rename List View";
4154
+ var frontend_listview_control_share$1 = "Sharing Settings";
4155
+ var frontend_listview_control_sort$1 = "Default sorting rule";
4156
+ var frontend_export_excel$1 = "Export Excel";
4157
+ var frontend_operation$1 = "Operation";
4158
+ var frontend_import_data$1 = "Import data";
4159
+ var frontend_import_data_object_name$1 = "Import object";
4160
+ var frontend_import_data_queue_import$1 = "Data import";
4161
+ var frontend_import_data_queue_import_description$1 = "Import description";
4162
+ var frontend_import_data_queue_import_encoding$1 = "Character code";
4163
+ var frontend_import_data_queue_import_template_url$1 = "Import template";
4164
+ var frontend_import_data_file$1 = "Excel file";
4165
+ var frontend_import_data_message_success$1 = "Importing has started...";
4166
+ var frontend_import_data_message_failed$1 = "Import failed";
4167
+ var frontend_record_detail_tab_detailed$1 = "Details";
4168
+ var frontend_record_detail_tab_related$1 = "Related";
4169
+ var frontend_all_apps$1 = "All apps";
4170
+ var frontend_all_projects$1 = "All projects";
4171
+ var frontend_application_launcher$1 = "Application launcher";
4172
+ var frontend_menu$1 = "Menu";
4173
+ var frontend_help$1 = "Help";
4174
+ var frontend_setup$1 = "Setup";
4175
+ var frontend_notifications$1 = "Notifications";
4176
+ var frontend_notifications_allread$1 = "Mark all as read";
4177
+ var frontend_notifications_allread_message$1 = "All marked as read";
4178
+ var frontend_profile$1 = "Profile";
4179
+ var frontend_about$1 = "About";
4180
+ var frontend_log_out$1 = "Log out";
4181
+ var frontend_listview_warning_start$1 = "The current ";
4182
+ var frontend_listview_warning_end$1 = " view does not exist!";
4183
+ var frontend_record_detail_related_list_warning$1 = "Missing parent object, parent record, or related list object property!";
4184
+ var frontend_record_detail_related_lists_warning$1 = "Missing parent object, or parent record property!";
4185
+ var frontend_record_detail_related_lists_info$1 = "No related child tables found";
4186
+ var frontend_calendar_listWeek$1 = "List";
4187
+ var frontend_message_no_permission_to_edit$1 = "You don't have permission to edit this record!";
4188
+ var frontend_message_modification_successful$1 = "Modification successful!";
4189
+ var frontend_message_modification_failed$1 = "Modification failed!";
4190
+ var frontend_objects_related_alert_start$1 = "No related table fields associated with the related list object";
4191
+ var frontend_objects_related_alert_end$1 = "were found.";
4192
+ var frontend_no_records_found$1 = "No records found.";
4193
+ var en_us = {
4194
+ frontend_field_group_generalization: frontend_field_group_generalization$1,
4195
+ frontend_download: frontend_download$1,
4196
+ frontend_form_save: frontend_form_save$1,
4197
+ frontend_form_save_and_new: frontend_form_save_and_new$1,
4198
+ frontend_form_cancel: frontend_form_cancel$1,
4199
+ frontend_form_new: frontend_form_new$1,
4200
+ frontend_form_edit: frontend_form_edit$1,
4201
+ frontend_form_select: frontend_form_select$1,
4202
+ frontend_form_confirm: frontend_form_confirm$1,
4203
+ frontend_form_delete: frontend_form_delete$1,
4204
+ frontend_form_view: frontend_form_view$1,
4205
+ frontend_delete_confirm_text: frontend_delete_confirm_text$1,
4206
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
4207
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
4208
+ frontend_display_type_is_table: frontend_display_type_is_table$1,
4209
+ frontend_display_type_is_split: frontend_display_type_is_split$1,
4210
+ frontend_display_as: frontend_display_as$1,
4211
+ frontend_record_sum: frontend_record_sum$1,
4212
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip$1,
4213
+ frontend_button_search_tooltip: frontend_button_search_tooltip$1,
4214
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search$1,
4215
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings$1,
4216
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip$1,
4217
+ frontend_button_listview_control_label: frontend_button_listview_control_label$1,
4218
+ frontend_listview_control_columns: frontend_listview_control_columns$1,
4219
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group$1,
4220
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label$1,
4221
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title$1,
4222
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start$1,
4223
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end$1,
4224
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label$1,
4225
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text$1,
4226
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success$1,
4227
+ frontend_listview_control_filters: frontend_listview_control_filters$1,
4228
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend$1,
4229
+ frontend_listview_control_new_label: frontend_listview_control_new_label$1,
4230
+ frontend_listview_control_new_title: frontend_listview_control_new_title$1,
4231
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success$1,
4232
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed$1,
4233
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label$1,
4234
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title$1,
4235
+ frontend_listview_control_share: frontend_listview_control_share$1,
4236
+ frontend_listview_control_sort: frontend_listview_control_sort$1,
4237
+ frontend_export_excel: frontend_export_excel$1,
4238
+ frontend_operation: frontend_operation$1,
4239
+ frontend_import_data: frontend_import_data$1,
4240
+ frontend_import_data_object_name: frontend_import_data_object_name$1,
4241
+ frontend_import_data_queue_import: frontend_import_data_queue_import$1,
4242
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description$1,
4243
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding$1,
4244
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url$1,
4245
+ frontend_import_data_file: frontend_import_data_file$1,
4246
+ frontend_import_data_message_success: frontend_import_data_message_success$1,
4247
+ frontend_import_data_message_failed: frontend_import_data_message_failed$1,
4248
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed$1,
4249
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related$1,
4250
+ frontend_all_apps: frontend_all_apps$1,
4251
+ frontend_all_projects: frontend_all_projects$1,
4252
+ frontend_application_launcher: frontend_application_launcher$1,
4253
+ frontend_menu: frontend_menu$1,
4254
+ frontend_help: frontend_help$1,
4255
+ frontend_setup: frontend_setup$1,
4256
+ frontend_notifications: frontend_notifications$1,
4257
+ frontend_notifications_allread: frontend_notifications_allread$1,
4258
+ frontend_notifications_allread_message: frontend_notifications_allread_message$1,
4259
+ frontend_profile: frontend_profile$1,
4260
+ frontend_about: frontend_about$1,
4261
+ frontend_log_out: frontend_log_out$1,
4262
+ frontend_listview_warning_start: frontend_listview_warning_start$1,
4263
+ frontend_listview_warning_end: frontend_listview_warning_end$1,
4264
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning$1,
4265
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning$1,
4266
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info$1,
4267
+ frontend_calendar_listWeek: frontend_calendar_listWeek$1,
4268
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit$1,
4269
+ frontend_message_modification_successful: frontend_message_modification_successful$1,
4270
+ frontend_message_modification_failed: frontend_message_modification_failed$1,
4271
+ frontend_objects_related_alert_start: frontend_objects_related_alert_start$1,
4272
+ frontend_objects_related_alert_end: frontend_objects_related_alert_end$1,
4273
+ frontend_no_records_found: frontend_no_records_found$1
4274
+ };
4305
4275
 
4306
- async function getDeferApi$1(field, ctx) {
4307
- // data.query 最终格式 "{ \toptions:{__object_name}(filters:{__filters}){{__fields}} }"
4308
- const data = await getFindQuery({ name: "{__object_name}" }, null, [], {
4309
- alias: "options",
4310
- // filters: "{__filters}",
4311
- queryOptions: `filters: {__filters}, sort: "{__sort}"`
4312
- });
4313
- // 传入的默认过滤条件,比如[["name", "contains", ""]],将会作为基本过滤条件
4314
- let filters = field.filters;
4315
- if(typeof filters === "string"){
4316
- filters = new Function(`return ${filters}`);
4317
- filters = filters();
4318
- }
4319
- if(typeof filters === "function"){
4320
- filters = filters(field);
4321
- }
4322
- data.query = data.query.replace(/,count\:.+/, "}");
4323
- // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换
4324
- data.query = data.query.replace("{_id}", "{{__fields}}");
4325
- const requestAdaptor = `
4326
- var dep = api.query.dep;
4327
- var ref = api.query.ref;
4328
- var term = api.query.term;
4329
- var filters;
4330
- var objectName;
4331
- var fields;
4332
- var sort = "";
4333
- if (dep) {
4334
- objectName = "${refOrgsObjectName}";
4335
- fields = "value:_id,label:name,children";
4336
- filters = [['parent', '=', dep]];
4337
- sort = "${ctx.orgsSort}";
4338
- }
4339
- else if (ref) {
4340
- objectName = "${refUsersObjectName}";
4341
- // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
4342
- fields = "_id,value:user,label:name";
4343
- // fields = "user,name,value:user,label:name";
4344
- filters = [['user_accepted', '=', true]];
4345
- var defaultFilters = ${filters && JSON.stringify(filters)};
4346
- if(defaultFilters){
4347
- filters.push(defaultFilters);
4348
- }
4349
- filters.push(['organizations_parents', '=', ref]);
4350
- sort = "${ctx.usersSort}";
4351
- }
4352
- api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
4353
- return api;
4354
- `;
4355
- const adaptor = `
4356
- if (api.query.dep) {
4357
- // 展开组织时才需要根据children值设置defer属性
4358
- const data = payload.data;
4359
- data.options = data.options.map(function (option) {
4360
- option.defer = !!(option.children && option.children.length);
4361
- delete option.children;
4362
- return option;
4363
- });
4364
- payload.data = data;
4365
- }
4366
- return payload;
4367
- `;
4368
- return {
4369
- "method": "post",
4370
- "url": getApi$2() + "&ref=${ref}&dep=${value}",
4371
- "requestAdaptor": requestAdaptor,
4372
- "adaptor": adaptor,
4373
- "data": data,
4374
- "headers": {
4375
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4376
- }
4377
- }
4378
- }
4276
+ var frontend_field_group_generalization = "通用";
4277
+ var frontend_download = "下载";
4278
+ var frontend_form_save = "保存";
4279
+ var frontend_form_save_and_new = "保存并新建";
4280
+ var frontend_form_cancel = "取消";
4281
+ var frontend_form_new = "新建";
4282
+ var frontend_form_edit = "编辑";
4283
+ var frontend_form_select = "选择";
4284
+ var frontend_form_confirm = "确认";
4285
+ var frontend_form_delete = "删除";
4286
+ var frontend_form_view = "查看";
4287
+ var frontend_delete_confirm_text = "确定要删除此项目?";
4288
+ var frontend_delete_many_selected_required = "请选择要删除的项";
4289
+ var frontend_delete_many_confirm_text = "确定要删除吗?";
4290
+ var frontend_display_type_is_table = "表格";
4291
+ var frontend_display_type_is_split = "分栏视图";
4292
+ var frontend_display_as = "显示为";
4293
+ var frontend_record_sum = "个项目";
4294
+ var frontend_button_reload_tooltip = "刷新";
4295
+ var frontend_button_search_tooltip = "搜索";
4296
+ var frontend_fields_filter_button_search = "搜索";
4297
+ var frontend_fields_filter_button_settings = "设置搜索项";
4298
+ var frontend_button_listview_control_tooltip = "列表视图控制";
4299
+ var frontend_button_listview_control_label = "列表视图控制";
4300
+ var frontend_listview_control_columns = "显示的列";
4301
+ var frontend_listview_control_columns_mobile_group = "手机端";
4302
+ var frontend_listview_control_clone = "复制";
4303
+ var frontend_listview_control_clone_label = "复制";
4304
+ var frontend_listview_control_clone_title = "复制 列表视图";
4305
+ var frontend_listview_control_clone_defaultData_label_start = "";
4306
+ var frontend_listview_control_clone_defaultData_label_end = "的副本";
4307
+ var frontend_listview_control_delete_label = "删除";
4308
+ var frontend_listview_control_delete_confirm_text = "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?";
4309
+ var frontend_listview_control_delete_message_success = "删除成功";
4310
+ var frontend_listview_control_filters = "过滤设置";
4311
+ var frontend_listview_control_filters_fields_extend = "条件组件1";
4312
+ var frontend_listview_control_new_label = "新建";
4313
+ var frontend_listview_control_new_title = "新建 列表视图";
4314
+ var frontend_listview_control_new_message_success = "成功";
4315
+ var frontend_listview_control_new_message_failed = "失败";
4316
+ var frontend_listview_control_rename_label = "重命名";
4317
+ var frontend_listview_control_rename_title = "重命名 列表视图";
4318
+ var frontend_listview_control_share = "共享设置";
4319
+ var frontend_listview_control_sort = "默认排序规则";
4320
+ var frontend_export_excel = "导出";
4321
+ var frontend_operation = "操作";
4322
+ var frontend_import_data = "导入数据";
4323
+ var frontend_import_data_object_name = "导入对象";
4324
+ var frontend_import_data_queue_import = "数据导入";
4325
+ var frontend_import_data_queue_import_description = "导入描述";
4326
+ var frontend_import_data_queue_import_encoding = "字符代码";
4327
+ var frontend_import_data_queue_import_template_url = "导入模板";
4328
+ var frontend_import_data_file = "Excel文件";
4329
+ var frontend_import_data_message_success = "已开始导入...";
4330
+ var frontend_import_data_message_failed = "导入失败";
4331
+ var frontend_record_detail_tab_detailed = "详细";
4332
+ var frontend_record_detail_tab_related = "相关";
4333
+ var frontend_all_apps = "所有应用";
4334
+ var frontend_all_projects = "所有项目";
4335
+ var frontend_application_launcher = "应用程序启动器";
4336
+ var frontend_menu = "菜单";
4337
+ var frontend_help = "帮助";
4338
+ var frontend_setup = "设置";
4339
+ var frontend_notifications = "通知";
4340
+ var frontend_notifications_allread = "全部标记为已读";
4341
+ var frontend_notifications_allread_message = "已全部标记为已读";
4342
+ var frontend_profile = "个人资料";
4343
+ var frontend_about = "关于";
4344
+ var frontend_log_out = "注销";
4345
+ var frontend_listview_warning_start = "当前";
4346
+ var frontend_listview_warning_end = "视图不存在!";
4347
+ var frontend_record_detail_related_list_warning = "缺少父级对象、父级记录或相关列表对象属性!";
4348
+ var frontend_record_detail_related_lists_warning = "缺少父级对象或父级记录属性!";
4349
+ var frontend_record_detail_related_lists_info = "没有相关子表";
4350
+ var frontend_calendar_listWeek = "列表";
4351
+ var frontend_message_no_permission_to_edit = "您没有编辑该记录的权限!";
4352
+ var frontend_message_modification_successful = "修改成功!";
4353
+ var frontend_message_modification_failed = "修改失败!";
4354
+ var frontend_objects_related_alert_start = "未找到与相关列表对象";
4355
+ var frontend_objects_related_alert_end = "关联的相关表字段";
4356
+ var frontend_no_records_found = "无法找到记录";
4357
+ var zh_cn = {
4358
+ frontend_field_group_generalization: frontend_field_group_generalization,
4359
+ frontend_download: frontend_download,
4360
+ frontend_form_save: frontend_form_save,
4361
+ frontend_form_save_and_new: frontend_form_save_and_new,
4362
+ frontend_form_cancel: frontend_form_cancel,
4363
+ frontend_form_new: frontend_form_new,
4364
+ frontend_form_edit: frontend_form_edit,
4365
+ frontend_form_select: frontend_form_select,
4366
+ frontend_form_confirm: frontend_form_confirm,
4367
+ frontend_form_delete: frontend_form_delete,
4368
+ frontend_form_view: frontend_form_view,
4369
+ frontend_delete_confirm_text: frontend_delete_confirm_text,
4370
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required,
4371
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
4372
+ frontend_display_type_is_table: frontend_display_type_is_table,
4373
+ frontend_display_type_is_split: frontend_display_type_is_split,
4374
+ frontend_display_as: frontend_display_as,
4375
+ frontend_record_sum: frontend_record_sum,
4376
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip,
4377
+ frontend_button_search_tooltip: frontend_button_search_tooltip,
4378
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search,
4379
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings,
4380
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip,
4381
+ frontend_button_listview_control_label: frontend_button_listview_control_label,
4382
+ frontend_listview_control_columns: frontend_listview_control_columns,
4383
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group,
4384
+ frontend_listview_control_clone: frontend_listview_control_clone,
4385
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label,
4386
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title,
4387
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start,
4388
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end,
4389
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label,
4390
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text,
4391
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success,
4392
+ frontend_listview_control_filters: frontend_listview_control_filters,
4393
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend,
4394
+ frontend_listview_control_new_label: frontend_listview_control_new_label,
4395
+ frontend_listview_control_new_title: frontend_listview_control_new_title,
4396
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success,
4397
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed,
4398
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label,
4399
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title,
4400
+ frontend_listview_control_share: frontend_listview_control_share,
4401
+ frontend_listview_control_sort: frontend_listview_control_sort,
4402
+ frontend_export_excel: frontend_export_excel,
4403
+ frontend_operation: frontend_operation,
4404
+ frontend_import_data: frontend_import_data,
4405
+ frontend_import_data_object_name: frontend_import_data_object_name,
4406
+ frontend_import_data_queue_import: frontend_import_data_queue_import,
4407
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description,
4408
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding,
4409
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url,
4410
+ frontend_import_data_file: frontend_import_data_file,
4411
+ frontend_import_data_message_success: frontend_import_data_message_success,
4412
+ frontend_import_data_message_failed: frontend_import_data_message_failed,
4413
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed,
4414
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related,
4415
+ frontend_all_apps: frontend_all_apps,
4416
+ frontend_all_projects: frontend_all_projects,
4417
+ frontend_application_launcher: frontend_application_launcher,
4418
+ frontend_menu: frontend_menu,
4419
+ frontend_help: frontend_help,
4420
+ frontend_setup: frontend_setup,
4421
+ frontend_notifications: frontend_notifications,
4422
+ frontend_notifications_allread: frontend_notifications_allread,
4423
+ frontend_notifications_allread_message: frontend_notifications_allread_message,
4424
+ frontend_profile: frontend_profile,
4425
+ frontend_about: frontend_about,
4426
+ frontend_log_out: frontend_log_out,
4427
+ frontend_listview_warning_start: frontend_listview_warning_start,
4428
+ frontend_listview_warning_end: frontend_listview_warning_end,
4429
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning,
4430
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning,
4431
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info,
4432
+ frontend_calendar_listWeek: frontend_calendar_listWeek,
4433
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit,
4434
+ frontend_message_modification_successful: frontend_message_modification_successful,
4435
+ frontend_message_modification_failed: frontend_message_modification_failed,
4436
+ frontend_objects_related_alert_start: frontend_objects_related_alert_start,
4437
+ frontend_objects_related_alert_end: frontend_objects_related_alert_end,
4438
+ frontend_no_records_found: frontend_no_records_found
4439
+ };
4379
4440
 
4380
- async function getSearchApi(field, ctx) {
4381
- // data.query 最终格式 "{ \toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}"
4382
- // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
4383
- const data = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
4384
- alias: "options",
4385
- // filters: "{__filters}",
4386
- queryOptions: `filters: {__filters}, sort: "{__sort}"`
4387
- });
4388
- data.query = data.query.replace(/,count\:.+/, "}");
4389
- // 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
4390
- const filters = field.filters;
4391
- const requestAdaptor = `
4392
- var term = api.query.term;
4393
- var filters;
4394
- var sort = "";
4395
- if (term) {
4396
- filters = [['user_accepted', '=', true]];
4397
- var defaultFilters = ${filters && JSON.stringify(filters)};
4398
- if(defaultFilters){
4399
- filters.push(defaultFilters);
4400
- }
4401
- var fieldsForSearch = ["name", "username", "email", "mobile"];
4402
- var termFilters = [];
4403
- fieldsForSearch.forEach(function (field) {
4404
- termFilters.push([field, 'contains', term]);
4405
- termFilters.push("or");
4406
- });
4407
- termFilters.pop();
4408
- filters.push(termFilters);
4409
- sort = "${ctx.usersSort}";
4410
- }
4411
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
4412
- return api;
4413
- `;
4414
- return {
4415
- "method": "post",
4416
- "url": getApi$2() + "?term=${term}",
4417
- "requestAdaptor": requestAdaptor,
4418
- "data": data,
4419
- "headers": {
4420
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4421
- }
4422
- }
4441
+ const resources = {
4442
+ "en-US": {
4443
+ translation: en_us
4444
+ },
4445
+ "zh-CN": {
4446
+ translation: zh_cn
4447
+ }
4448
+ };
4449
+ var locale = "zh-CN";
4450
+ if (typeof window != 'undefined') {
4451
+ if (window.Builder?.settings.locale == "en-us") {
4452
+ locale = "en-US";
4453
+ } else if (window.Builder?.settings.locale == "zh-cn") {
4454
+ locale = "zh-CN";
4455
+ }
4423
4456
  }
4424
4457
 
4425
- function getRefListViewSort$1(refObject){
4426
- const listView = ___default__namespace.find(
4427
- refObject.list_views,
4428
- (view, name) => name === "all"
4429
- );
4430
- let sort = "";
4431
- if(listView){
4432
- sort = getListViewSort(listView);
4433
- }
4434
- return sort;
4435
- }
4436
4458
 
4437
- async function getSelectUserSchema(field, readonly, ctx) {
4438
- if (!field) {
4439
- return {}
4459
+ instance
4460
+ .use(initReactI18next)
4461
+ .init({
4462
+ resources,
4463
+ lng: locale,
4464
+ interpolation: {
4465
+ escapeValue: false
4440
4466
  }
4467
+ });
4441
4468
 
4442
- if (!ctx) {
4443
- ctx = {};
4444
- }
4445
- const amisSchema = {
4446
- "type": getAmisStaticFieldType('select', readonly)
4447
- };
4469
+ /*
4470
+ * @Author: baozhoutao@steedos.com
4471
+ * @Date: 2022-07-23 09:12:14
4472
+ * @LastEditors: baozhoutao@steedos.com
4473
+ * @LastEditTime: 2022-11-25 13:28:35
4474
+ * @Description:
4475
+ */
4448
4476
 
4449
- if (readonly) {
4450
- amisSchema.tpl = await getLookupTpl(field, ctx);
4451
- }
4452
- else {
4453
- const refUsersObjectConfig = await getUISchema(refUsersObjectName);
4454
- ctx.usersSort = getRefListViewSort$1(refUsersObjectConfig);
4455
- const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);
4456
- ctx.orgsSort = getRefListViewSort$1(refOrgsObjectConfig);
4457
- Object.assign(amisSchema, {
4458
- // "labelField": "name",
4459
- // "valueField": "user",
4460
- "multiple": field.multiple,
4461
- "searchable": field.searchable,
4462
- "selectMode": "associated",
4463
- "leftMode": "tree",
4464
- "extractValue": true,
4465
- "clearable": true,
4466
- "source": await getSource$1(field, ctx),
4467
- "deferApi": await getDeferApi$1(field, ctx),
4468
- "searchApi": await getSearchApi(field, ctx)
4469
- });
4470
- if(field.multiple){
4471
- // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
4472
- Object.assign(amisSchema, {
4473
- "joinValues": false,
4474
- });
4475
- }
4476
- if (typeof amisSchema.searchable !== "boolean") {
4477
- amisSchema.searchable = true;
4478
- }
4477
+ async function getListBody(fields, options){
4478
+ const columns = [];
4479
+ for (const field of fields) {
4479
4480
 
4480
- if(ctx.value){
4481
- amisSchema.value = ctx.value;
4482
- }
4481
+ const tpl = await getFieldTpl(field, options);
4483
4482
 
4484
- const onEvent = field.onEvent;
4485
- if (onEvent) {
4486
- amisSchema.onEvent = onEvent;
4483
+ let type = 'text';
4484
+ if(tpl){
4485
+ type = 'tpl';
4486
+ }
4487
+ if(!field.hidden && !field.extra){
4488
+ columns.push({
4489
+ name: field.name,
4490
+ label: field.label,
4491
+ sortable: field.sortable,
4492
+ // searchable: field.searchable,
4493
+ width: field.width,
4494
+ type: type,
4495
+ tpl: tpl,
4496
+ toggled: field.toggled
4497
+ // toggled: true
4498
+ });
4487
4499
  }
4488
4500
  }
4489
- return amisSchema;
4501
+ return {
4502
+ "type": "hbox",
4503
+ "columns": columns
4504
+ };
4490
4505
  }
4491
4506
 
4492
- const globalTag = '__G_L_O_B_A_L__';
4493
-
4494
- const getParentPath = function (path) {
4495
- var pathArr;
4496
- if (typeof path === 'string') {
4497
- pathArr = path.split('.');
4498
- if (pathArr.length === 1) {
4499
- return '#';
4500
- }
4501
- pathArr.pop();
4502
- return pathArr.join('.');
4507
+ function getDefaultParams$1(options){
4508
+ return {
4509
+ perPage: options.top || options.perPage || 10
4503
4510
  }
4504
- return '#';
4505
- };
4511
+ }
4506
4512
 
4507
- const getValueByPath = function (formData, path) {
4508
- if (path === '#' || !path) {
4509
- return formData || {};
4510
- } else if (typeof path === 'string') {
4511
- return ___default.get(formData, path);
4512
- } else {
4513
- console.error('path has to be a string');
4513
+ async function getListSchema$1(fields, options){
4514
+ const listBody = await getListBody(fields, options);
4515
+ const columns = listBody.columns;
4516
+ return {
4517
+ mode: "list",
4518
+ name: "thelist",
4519
+ draggable: false,
4520
+ headerToolbar: ['reload'],
4521
+ defaultParams: getDefaultParams$1(options),
4522
+ syncLocation: false,
4523
+ keepItemSelectionOnPageChange: true,
4524
+ checkOnItemClick: false,
4525
+ labelTpl: `\${name}`, //TODO 获取name字段
4526
+ listItem: {
4527
+ body: [...columns],
4528
+ actions: options.actions === false ? null : [
4529
+ {
4530
+ icon: "fa fa-eye",
4531
+ label: instance.t('frontend_form_view'),
4532
+ type: "button",
4533
+ actionType: "link",
4534
+ link: Router$1.getObjectDetailPath({
4535
+ formFactor: options.formFactor,
4536
+ appId: options.appId,
4537
+ objectName: options.tabId,
4538
+ listView: options.listView,
4539
+ recordId: `\${_id}`
4540
+ })
4541
+ }
4542
+ ]
4543
+ }
4514
4544
  }
4515
- };
4545
+ }
4516
4546
 
4517
- const isExpression$1 = function (func) {
4518
- var pattern, reg1, reg2;
4519
- if (typeof func !== 'string') {
4520
- return false;
4547
+
4548
+ async function getCardSchema(fields, options){
4549
+ let title = null;
4550
+ const titleField = _.find(fields, (f)=>{
4551
+ return f.name === options.labelFieldName;
4552
+ });
4553
+ if(titleField){
4554
+ title = await getFieldTpl(titleField, options);
4521
4555
  }
4522
- pattern = /^{{(.+)}}$/;
4523
- reg1 = /^{{(function.+)}}$/;
4524
- reg2 = /^{{(.+=>.+)}}$/;
4525
- if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {
4526
- return true;
4556
+ const listBody = await getListBody(_.filter(fields, (f)=>{
4557
+ return f.name != options.labelFieldName
4558
+ }), options);
4559
+ return {
4560
+ mode: "cards",
4561
+ name: "cards",
4562
+ draggable: false,
4563
+ headerToolbar: ['statistics', 'pagination'],
4564
+ defaultParams: getDefaultParams$1(options),
4565
+ syncLocation: false,
4566
+ keepItemSelectionOnPageChange: false,
4567
+ checkOnItemClick: false,
4568
+ labelTpl: `\${${options.labelFieldName}}`,
4569
+ card: {
4570
+ "type": "card",
4571
+ "header": {
4572
+ "title": title
4573
+ },
4574
+ "body": [...listBody.columns]
4575
+ }
4527
4576
  }
4528
- return false;
4529
- };
4577
+ }
4530
4578
 
4531
- const parseSingleExpression$1 = function (func, formData, dataPath, global, userSession = {}) {
4532
- var error, funcBody, parent, parentPath, str;
4579
+ const refUsersObjectName = "space_users";
4580
+ const refOrgsObjectName = "organizations";
4533
4581
 
4534
- if (formData === void 0) {
4535
- formData = {};
4582
+ async function getSource$1(field, ctx) {
4583
+ // data.query 最终格式 "{ \tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }"
4584
+ const data = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "value" },{name: "parent"}, { name: "name", alias: "label" }, { name: "children" }], {
4585
+ alias: "leftOptions",
4586
+ filters: "{__filters}"
4587
+ });
4588
+ data.query = data.query.replace(/,count\:.+/, "}");
4589
+ const childrenData = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "ref" }], {
4590
+ alias: "children",
4591
+ filters: "{__filters}"
4592
+ });
4593
+ childrenData.query = childrenData.query.replace(/,count\:.+/, "}");
4594
+ data.query = data.query.replace(/}$/, "," + childrenData.query.replace(/{(.+)}/, "$1}"));
4595
+ const defaultValueOptionsData = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
4596
+ alias: "defaultValueOptions",
4597
+ filters: "{__options_filters}"
4598
+ });
4599
+ defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\:.+/, "}");
4600
+ data.query = data.query.replace(/}$/, "," + defaultValueOptionsData.query.replace(/{(.+)}/, "$1}"));
4601
+ let valueField = `${field.name}`;
4602
+ if(field._prefix){
4603
+ // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.
4604
+ valueField = `${field._prefix}${field.name}`;
4536
4605
  }
4537
- parentPath = getParentPath(dataPath);
4538
- parent = getValueByPath(formData, parentPath) || {};
4539
- if (typeof func === 'string') {
4540
- funcBody = func.substring(2, func.length - 2);
4541
- str = `\n var $user=${JSON.stringify(userSession)}; return ` + funcBody.replace(/\bformData\b/g, JSON.stringify(formData).replace(/\bglobal\b/g, globalTag)).replace(/\bglobal\b/g, JSON.stringify(global)).replace(new RegExp('\\b' + globalTag + '\\b', 'g'), 'global').replace(/rootValue/g, JSON.stringify(parent));
4542
- try {
4543
- return Function(str)();
4544
- } catch (_error) {
4545
- error = _error;
4546
- console.log(error, func, dataPath);
4547
- return func;
4548
- }
4549
- } else {
4550
- return func;
4606
+ if(ctx.fieldNamePrefix){
4607
+ // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__
4608
+ valueField = `${ctx.fieldNamePrefix}${valueField}`;
4551
4609
  }
4552
- };
4610
+ data.$value = `$${valueField}`;
4611
+ // data["&"] = "$$";
4553
4612
 
4554
- var frontend_field_group_generalization$1 = "Generalization";
4555
- var frontend_download$1 = "Download";
4556
- var frontend_form_save$1 = "Save";
4557
- var frontend_form_save_and_new$1 = "Save and New";
4558
- var frontend_form_cancel$1 = "Cancel";
4559
- var frontend_form_new$1 = "New";
4560
- var frontend_form_edit$1 = "Edit";
4561
- var frontend_form_select$1 = "Select";
4562
- var frontend_form_confirm$1 = "Confirm";
4563
- var frontend_form_delete$1 = "Delete";
4564
- var frontend_form_view$1 = "view";
4565
- var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
4566
- var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
4567
- var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
4568
- var frontend_display_type_is_table$1 = "Table";
4569
- var frontend_display_type_is_split$1 = "Split View";
4570
- var frontend_display_as$1 = "Displayed as";
4571
- var frontend_record_sum$1 = "items";
4572
- var frontend_button_reload_tooltip$1 = "Refresh";
4573
- var frontend_button_search_tooltip$1 = "Search";
4574
- var frontend_fields_filter_button_search$1 = "Search";
4575
- var frontend_fields_filter_button_settings$1 = "Set search options";
4576
- var frontend_button_listview_control_tooltip$1 = "List View Controls";
4577
- var frontend_button_listview_control_label$1 = "LIST VIEW CONTROLS";
4578
- var frontend_listview_control_columns$1 = "Show List";
4579
- var frontend_listview_control_columns_mobile_group$1 = "Mobile side";
4580
- var frontend_listview_control_clone_label$1 = "Clone";
4581
- var frontend_listview_control_clone_title$1 = "Clone List View";
4582
- var frontend_listview_control_clone_defaultData_label_start$1 = "Copy of";
4583
- var frontend_listview_control_clone_defaultData_label_end$1 = "";
4584
- var frontend_listview_control_delete_label$1 = "Delete";
4585
- var frontend_listview_control_delete_confirm_text$1 = "If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?";
4586
- var frontend_listview_control_delete_message_success$1 = "Deletion successful";
4587
- var frontend_listview_control_filters$1 = "Filter settings";
4588
- var frontend_listview_control_filters_fields_extend$1 = "Conditional component 1";
4589
- var frontend_listview_control_new_label$1 = "New";
4590
- var frontend_listview_control_new_title$1 = "New List View";
4591
- var frontend_listview_control_new_message_success$1 = "Success";
4592
- var frontend_listview_control_new_message_failed$1 = "Failure";
4593
- var frontend_listview_control_rename_label$1 = "Rename";
4594
- var frontend_listview_control_rename_title$1 = "Rename List View";
4595
- var frontend_listview_control_share$1 = "Sharing Settings";
4596
- var frontend_listview_control_sort$1 = "Default sorting rule";
4597
- var frontend_export_excel$1 = "Export Excel";
4598
- var frontend_ercord_operation$1 = "Operation";
4599
- var frontend_import_data$1 = "Import data";
4600
- var frontend_import_data_object_name$1 = "Import object";
4601
- var frontend_import_data_queue_import$1 = "Data import";
4602
- var frontend_import_data_queue_import_description$1 = "Import description";
4603
- var frontend_import_data_queue_import_encoding$1 = "Character code";
4604
- var frontend_import_data_queue_import_template_url$1 = "Import template";
4605
- var frontend_import_data_file$1 = "Excel file";
4606
- var frontend_import_data_message_success$1 = "Importing has started...";
4607
- var frontend_import_data_message_failed$1 = "Import failed";
4608
- var frontend_record_detail_tab_detailed$1 = "Details";
4609
- var frontend_record_detail_tab_related$1 = "Related";
4610
- var frontend_all_apps$1 = "All apps";
4611
- var frontend_all_projects$1 = "All projects";
4612
- var frontend_application_launcher$1 = "Application launcher";
4613
- var frontend_menu$1 = "Menu";
4614
- var frontend_help$1 = "Help";
4615
- var frontend_setup$1 = "Setup";
4616
- var frontend_notifications$1 = "Notifications";
4617
- var frontend_notifications_allread$1 = "Mark all as read";
4618
- var frontend_notifications_allread_message$1 = "All marked as read";
4619
- var frontend_profile$1 = "Profile";
4620
- var frontend_about$1 = "About";
4621
- var frontend_log_out$1 = "Log out";
4622
- var frontend_listview_warning_start$1 = "The current ";
4623
- var frontend_listview_warning_end$1 = " view does not exist!";
4624
- var frontend_record_detail_related_list_warning$1 = "Missing parent object, parent record, or related list object property!";
4625
- var frontend_record_detail_related_lists_warning$1 = "Missing parent object, or parent record property!";
4626
- var frontend_record_detail_related_lists_info$1 = "No related child tables found";
4627
- var frontend_calendar_listWeek$1 = "List";
4628
- var frontend_message_no_permission_to_edit$1 = "You don't have permission to edit this record!";
4629
- var frontend_message_modification_successful$1 = "Modification successful!";
4630
- var frontend_message_modification_failed$1 = "Modification failed!";
4631
- var en_us = {
4632
- frontend_field_group_generalization: frontend_field_group_generalization$1,
4633
- frontend_download: frontend_download$1,
4634
- frontend_form_save: frontend_form_save$1,
4635
- frontend_form_save_and_new: frontend_form_save_and_new$1,
4636
- frontend_form_cancel: frontend_form_cancel$1,
4637
- frontend_form_new: frontend_form_new$1,
4638
- frontend_form_edit: frontend_form_edit$1,
4639
- frontend_form_select: frontend_form_select$1,
4640
- frontend_form_confirm: frontend_form_confirm$1,
4641
- frontend_form_delete: frontend_form_delete$1,
4642
- frontend_form_view: frontend_form_view$1,
4643
- frontend_delete_confirm_text: frontend_delete_confirm_text$1,
4644
- frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
4645
- frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
4646
- frontend_display_type_is_table: frontend_display_type_is_table$1,
4647
- frontend_display_type_is_split: frontend_display_type_is_split$1,
4648
- frontend_display_as: frontend_display_as$1,
4649
- frontend_record_sum: frontend_record_sum$1,
4650
- frontend_button_reload_tooltip: frontend_button_reload_tooltip$1,
4651
- frontend_button_search_tooltip: frontend_button_search_tooltip$1,
4652
- frontend_fields_filter_button_search: frontend_fields_filter_button_search$1,
4653
- frontend_fields_filter_button_settings: frontend_fields_filter_button_settings$1,
4654
- frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip$1,
4655
- frontend_button_listview_control_label: frontend_button_listview_control_label$1,
4656
- frontend_listview_control_columns: frontend_listview_control_columns$1,
4657
- frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group$1,
4658
- frontend_listview_control_clone_label: frontend_listview_control_clone_label$1,
4659
- frontend_listview_control_clone_title: frontend_listview_control_clone_title$1,
4660
- frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start$1,
4661
- frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end$1,
4662
- frontend_listview_control_delete_label: frontend_listview_control_delete_label$1,
4663
- frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text$1,
4664
- frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success$1,
4665
- frontend_listview_control_filters: frontend_listview_control_filters$1,
4666
- frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend$1,
4667
- frontend_listview_control_new_label: frontend_listview_control_new_label$1,
4668
- frontend_listview_control_new_title: frontend_listview_control_new_title$1,
4669
- frontend_listview_control_new_message_success: frontend_listview_control_new_message_success$1,
4670
- frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed$1,
4671
- frontend_listview_control_rename_label: frontend_listview_control_rename_label$1,
4672
- frontend_listview_control_rename_title: frontend_listview_control_rename_title$1,
4673
- frontend_listview_control_share: frontend_listview_control_share$1,
4674
- frontend_listview_control_sort: frontend_listview_control_sort$1,
4675
- frontend_export_excel: frontend_export_excel$1,
4676
- frontend_ercord_operation: frontend_ercord_operation$1,
4677
- frontend_import_data: frontend_import_data$1,
4678
- frontend_import_data_object_name: frontend_import_data_object_name$1,
4679
- frontend_import_data_queue_import: frontend_import_data_queue_import$1,
4680
- frontend_import_data_queue_import_description: frontend_import_data_queue_import_description$1,
4681
- frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding$1,
4682
- frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url$1,
4683
- frontend_import_data_file: frontend_import_data_file$1,
4684
- frontend_import_data_message_success: frontend_import_data_message_success$1,
4685
- frontend_import_data_message_failed: frontend_import_data_message_failed$1,
4686
- frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed$1,
4687
- frontend_record_detail_tab_related: frontend_record_detail_tab_related$1,
4688
- frontend_all_apps: frontend_all_apps$1,
4689
- frontend_all_projects: frontend_all_projects$1,
4690
- frontend_application_launcher: frontend_application_launcher$1,
4691
- frontend_menu: frontend_menu$1,
4692
- frontend_help: frontend_help$1,
4693
- frontend_setup: frontend_setup$1,
4694
- frontend_notifications: frontend_notifications$1,
4695
- frontend_notifications_allread: frontend_notifications_allread$1,
4696
- frontend_notifications_allread_message: frontend_notifications_allread_message$1,
4697
- frontend_profile: frontend_profile$1,
4698
- frontend_about: frontend_about$1,
4699
- frontend_log_out: frontend_log_out$1,
4700
- frontend_listview_warning_start: frontend_listview_warning_start$1,
4701
- frontend_listview_warning_end: frontend_listview_warning_end$1,
4702
- frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning$1,
4703
- frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning$1,
4704
- frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info$1,
4705
- frontend_calendar_listWeek: frontend_calendar_listWeek$1,
4706
- frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit$1,
4707
- frontend_message_modification_successful: frontend_message_modification_successful$1,
4708
- frontend_message_modification_failed: frontend_message_modification_failed$1
4709
- };
4613
+ const requestAdaptor = `
4614
+ var filters = [];
4615
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
4616
+ var defaultValue = api.data.$value;
4617
+ var optionsFiltersOp = "${field.multiple ? "in" : "="}";
4618
+ var optionsFilters = [["user", optionsFiltersOp, []]];
4619
+ if (defaultValue) {
4620
+ optionsFilters = [["user", optionsFiltersOp, defaultValue]];
4621
+ }
4622
+ api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
4623
+ return api;
4624
+ `;
4625
+ const adaptor = `
4626
+ const data = payload.data;
4627
+ const rows = data.leftOptions
4628
+ data.children = data.children.map(function (child) {
4629
+ // child.defer = !!(child.children && child.children.length);
4630
+ child.defer = true;
4631
+ delete child.children;
4632
+ return child;
4633
+ });
4710
4634
 
4711
- var frontend_field_group_generalization = "通用";
4712
- var frontend_download = "下载";
4713
- var frontend_form_save = "保存";
4714
- var frontend_form_save_and_new = "保存并新建";
4715
- var frontend_form_cancel = "取消";
4716
- var frontend_form_new = "新建";
4717
- var frontend_form_edit = "编辑";
4718
- var frontend_form_select = "选择";
4719
- var frontend_form_confirm = "确认";
4720
- var frontend_form_delete = "删除";
4721
- var frontend_form_view = "查看";
4722
- var frontend_delete_confirm_text = "确定要删除此项目?";
4723
- var frontend_delete_many_selected_required = "请选择要删除的项";
4724
- var frontend_delete_many_confirm_text = "确定要删除吗?";
4725
- var frontend_display_type_is_table = "表格";
4726
- var frontend_display_type_is_split = "分栏视图";
4727
- var frontend_display_as = "显示为";
4728
- var frontend_record_sum = "个项目";
4729
- var frontend_button_reload_tooltip = "刷新";
4730
- var frontend_button_search_tooltip = "搜索";
4731
- var frontend_fields_filter_button_search = "搜索";
4732
- var frontend_fields_filter_button_settings = "设置搜索项";
4733
- var frontend_button_listview_control_tooltip = "列表视图控制";
4734
- var frontend_button_listview_control_label = "列表视图控制";
4735
- var frontend_listview_control_columns = "显示的列";
4736
- var frontend_listview_control_columns_mobile_group = "手机端";
4737
- var frontend_listview_control_clone = "复制";
4738
- var frontend_listview_control_clone_label = "复制";
4739
- var frontend_listview_control_clone_title = "复制 列表视图";
4740
- var frontend_listview_control_clone_defaultData_label_start = "";
4741
- var frontend_listview_control_clone_defaultData_label_end = "的副本";
4742
- var frontend_listview_control_delete_label = "删除";
4743
- var frontend_listview_control_delete_confirm_text = "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?";
4744
- var frontend_listview_control_delete_message_success = "删除成功";
4745
- var frontend_listview_control_filters = "过滤设置";
4746
- var frontend_listview_control_filters_fields_extend = "条件组件1";
4747
- var frontend_listview_control_new_label = "新建";
4748
- var frontend_listview_control_new_title = "新建 列表视图";
4749
- var frontend_listview_control_new_message_success = "成功";
4750
- var frontend_listview_control_new_message_failed = "失败";
4751
- var frontend_listview_control_rename_label = "重命名";
4752
- var frontend_listview_control_rename_title = "重命名 列表视图";
4753
- var frontend_listview_control_share = "共享设置";
4754
- var frontend_listview_control_sort = "默认排序规则";
4755
- var frontend_export_excel = "导出";
4756
- var frontend_ercord_operation = "操作";
4757
- var frontend_import_data = "导入数据";
4758
- var frontend_import_data_object_name = "导入对象";
4759
- var frontend_import_data_queue_import = "数据导入";
4760
- var frontend_import_data_queue_import_description = "导入描述";
4761
- var frontend_import_data_queue_import_encoding = "字符代码";
4762
- var frontend_import_data_queue_import_template_url = "导入模板";
4763
- var frontend_import_data_file = "Excel文件";
4764
- var frontend_import_data_message_success = "已开始导入...";
4765
- var frontend_import_data_message_failed = "导入失败";
4766
- var frontend_record_detail_tab_detailed = "详细";
4767
- var frontend_record_detail_tab_related = "相关";
4768
- var frontend_all_apps = "所有应用";
4769
- var frontend_all_projects = "所有项目";
4770
- var frontend_application_launcher = "应用程序启动器";
4771
- var frontend_menu = "菜单";
4772
- var frontend_help = "帮助";
4773
- var frontend_setup = "设置";
4774
- var frontend_notifications = "通知";
4775
- var frontend_notifications_allread = "全部标记为已读";
4776
- var frontend_notifications_allread_message = "已全部标记为已读";
4777
- var frontend_profile = "个人资料";
4778
- var frontend_about = "关于";
4779
- var frontend_log_out = "注销";
4780
- var frontend_listview_warning_start = "当前";
4781
- var frontend_listview_warning_end = "视图不存在!";
4782
- var frontend_record_detail_related_list_warning = "缺少父级对象、父级记录或相关列表对象属性!";
4783
- var frontend_record_detail_related_lists_warning = "缺少父级对象或父级记录属性!";
4784
- var frontend_record_detail_related_lists_info = "没有相关子表";
4785
- var frontend_calendar_listWeek = "列表";
4786
- var frontend_message_no_permission_to_edit = "您没有编辑该记录的权限!";
4787
- var frontend_message_modification_successful = "修改成功!";
4788
- var frontend_message_modification_failed = "修改失败!";
4789
- var zh_cn = {
4790
- frontend_field_group_generalization: frontend_field_group_generalization,
4791
- frontend_download: frontend_download,
4792
- frontend_form_save: frontend_form_save,
4793
- frontend_form_save_and_new: frontend_form_save_and_new,
4794
- frontend_form_cancel: frontend_form_cancel,
4795
- frontend_form_new: frontend_form_new,
4796
- frontend_form_edit: frontend_form_edit,
4797
- frontend_form_select: frontend_form_select,
4798
- frontend_form_confirm: frontend_form_confirm,
4799
- frontend_form_delete: frontend_form_delete,
4800
- frontend_form_view: frontend_form_view,
4801
- frontend_delete_confirm_text: frontend_delete_confirm_text,
4802
- frontend_delete_many_selected_required: frontend_delete_many_selected_required,
4803
- frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
4804
- frontend_display_type_is_table: frontend_display_type_is_table,
4805
- frontend_display_type_is_split: frontend_display_type_is_split,
4806
- frontend_display_as: frontend_display_as,
4807
- frontend_record_sum: frontend_record_sum,
4808
- frontend_button_reload_tooltip: frontend_button_reload_tooltip,
4809
- frontend_button_search_tooltip: frontend_button_search_tooltip,
4810
- frontend_fields_filter_button_search: frontend_fields_filter_button_search,
4811
- frontend_fields_filter_button_settings: frontend_fields_filter_button_settings,
4812
- frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip,
4813
- frontend_button_listview_control_label: frontend_button_listview_control_label,
4814
- frontend_listview_control_columns: frontend_listview_control_columns,
4815
- frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group,
4816
- frontend_listview_control_clone: frontend_listview_control_clone,
4817
- frontend_listview_control_clone_label: frontend_listview_control_clone_label,
4818
- frontend_listview_control_clone_title: frontend_listview_control_clone_title,
4819
- frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start,
4820
- frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end,
4821
- frontend_listview_control_delete_label: frontend_listview_control_delete_label,
4822
- frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text,
4823
- frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success,
4824
- frontend_listview_control_filters: frontend_listview_control_filters,
4825
- frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend,
4826
- frontend_listview_control_new_label: frontend_listview_control_new_label,
4827
- frontend_listview_control_new_title: frontend_listview_control_new_title,
4828
- frontend_listview_control_new_message_success: frontend_listview_control_new_message_success,
4829
- frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed,
4830
- frontend_listview_control_rename_label: frontend_listview_control_rename_label,
4831
- frontend_listview_control_rename_title: frontend_listview_control_rename_title,
4832
- frontend_listview_control_share: frontend_listview_control_share,
4833
- frontend_listview_control_sort: frontend_listview_control_sort,
4834
- frontend_export_excel: frontend_export_excel,
4835
- frontend_ercord_operation: frontend_ercord_operation,
4836
- frontend_import_data: frontend_import_data,
4837
- frontend_import_data_object_name: frontend_import_data_object_name,
4838
- frontend_import_data_queue_import: frontend_import_data_queue_import,
4839
- frontend_import_data_queue_import_description: frontend_import_data_queue_import_description,
4840
- frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding,
4841
- frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url,
4842
- frontend_import_data_file: frontend_import_data_file,
4843
- frontend_import_data_message_success: frontend_import_data_message_success,
4844
- frontend_import_data_message_failed: frontend_import_data_message_failed,
4845
- frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed,
4846
- frontend_record_detail_tab_related: frontend_record_detail_tab_related,
4847
- frontend_all_apps: frontend_all_apps,
4848
- frontend_all_projects: frontend_all_projects,
4849
- frontend_application_launcher: frontend_application_launcher,
4850
- frontend_menu: frontend_menu,
4851
- frontend_help: frontend_help,
4852
- frontend_setup: frontend_setup,
4853
- frontend_notifications: frontend_notifications,
4854
- frontend_notifications_allread: frontend_notifications_allread,
4855
- frontend_notifications_allread_message: frontend_notifications_allread_message,
4856
- frontend_profile: frontend_profile,
4857
- frontend_about: frontend_about,
4858
- frontend_log_out: frontend_log_out,
4859
- frontend_listview_warning_start: frontend_listview_warning_start,
4860
- frontend_listview_warning_end: frontend_listview_warning_end,
4861
- frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning,
4862
- frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning,
4863
- frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info,
4864
- frontend_calendar_listWeek: frontend_calendar_listWeek,
4865
- frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit,
4866
- frontend_message_modification_successful: frontend_message_modification_successful,
4867
- frontend_message_modification_failed: frontend_message_modification_failed
4635
+ var getTreeOptions = SteedosUI.getTreeOptions
4636
+ data.leftOptions = getTreeOptions(rows);
4637
+
4638
+
4639
+ var defaultValueOptions = data.defaultValueOptions;
4640
+ data.children = _.union(data.children, defaultValueOptions);
4641
+ delete data.defaultValueOptions;
4642
+ payload.data = { options: [data] };
4643
+ return payload;
4644
+ `;
4645
+ return {
4646
+ "method": "post",
4647
+ // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug
4648
+ // 见issue: https://github.com/baidu/amis/issues/6065
4649
+ // "url": graphql.getApi() + `?value=\${${field.multiple ? valueField + "|join" : valueField}}`,
4650
+ // "url": graphql.getApi() + `?value=\${editFormInited}`,
4651
+ "url": getApi$2(),
4652
+ "requestAdaptor": requestAdaptor,
4653
+ "adaptor": adaptor,
4654
+ "data": data,
4655
+ // "sendOn": `this.editFormInited`,
4656
+ "headers": {
4657
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4658
+ },
4659
+ }
4660
+ }
4661
+
4662
+ async function getDeferApi$1(field, ctx) {
4663
+ // data.query 最终格式 "{ \toptions:{__object_name}(filters:{__filters}){{__fields}} }"
4664
+ const data = await getFindQuery({ name: "{__object_name}" }, null, [], {
4665
+ alias: "options",
4666
+ // filters: "{__filters}",
4667
+ queryOptions: `filters: {__filters}, sort: "{__sort}"`
4668
+ });
4669
+ // 传入的默认过滤条件,比如[["name", "contains", ""]],将会作为基本过滤条件
4670
+ let filters = field.filters;
4671
+ if(typeof filters === "string"){
4672
+ filters = new Function(`return ${filters}`);
4673
+ filters = filters();
4674
+ }
4675
+ if(typeof filters === "function"){
4676
+ filters = filters(field);
4677
+ }
4678
+ data.query = data.query.replace(/,count\:.+/, "}");
4679
+ // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换
4680
+ data.query = data.query.replace("{_id}", "{{__fields}}");
4681
+ const requestAdaptor = `
4682
+ var dep = api.query.dep;
4683
+ var ref = api.query.ref;
4684
+ var term = api.query.term;
4685
+ var filters;
4686
+ var objectName;
4687
+ var fields;
4688
+ var sort = "";
4689
+ if (dep) {
4690
+ objectName = "${refOrgsObjectName}";
4691
+ fields = "value:_id,label:name,children";
4692
+ filters = [['parent', '=', dep]];
4693
+ sort = "${ctx.orgsSort}";
4694
+ }
4695
+ else if (ref) {
4696
+ objectName = "${refUsersObjectName}";
4697
+ // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
4698
+ fields = "_id,value:user,label:name";
4699
+ // fields = "user,name,value:user,label:name";
4700
+ filters = [['user_accepted', '=', true]];
4701
+ var defaultFilters = ${filters && JSON.stringify(filters)};
4702
+ if(defaultFilters){
4703
+ filters.push(defaultFilters);
4704
+ }
4705
+ filters.push(['organizations_parents', '=', ref]);
4706
+ sort = "${ctx.usersSort}";
4707
+ }
4708
+ api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
4709
+ return api;
4710
+ `;
4711
+ const adaptor = `
4712
+ if (api.query.dep) {
4713
+ // 展开组织时才需要根据children值设置defer属性
4714
+ const data = payload.data;
4715
+ data.options = data.options.map(function (option) {
4716
+ option.defer = !!(option.children && option.children.length);
4717
+ delete option.children;
4718
+ return option;
4719
+ });
4720
+ payload.data = data;
4721
+ }
4722
+ return payload;
4723
+ `;
4724
+ return {
4725
+ "method": "post",
4726
+ "url": getApi$2() + "&ref=${ref}&dep=${value}",
4727
+ "requestAdaptor": requestAdaptor,
4728
+ "adaptor": adaptor,
4729
+ "data": data,
4730
+ "headers": {
4731
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4732
+ }
4733
+ }
4734
+ }
4735
+
4736
+ async function getSearchApi(field, ctx) {
4737
+ // data.query 最终格式 "{ \toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}"
4738
+ // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
4739
+ const data = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
4740
+ alias: "options",
4741
+ // filters: "{__filters}",
4742
+ queryOptions: `filters: {__filters}, sort: "{__sort}"`
4743
+ });
4744
+ data.query = data.query.replace(/,count\:.+/, "}");
4745
+ // 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
4746
+ const filters = field.filters;
4747
+ const requestAdaptor = `
4748
+ var term = api.query.term;
4749
+ var filters;
4750
+ var sort = "";
4751
+ if (term) {
4752
+ filters = [['user_accepted', '=', true]];
4753
+ var defaultFilters = ${filters && JSON.stringify(filters)};
4754
+ if(defaultFilters){
4755
+ filters.push(defaultFilters);
4756
+ }
4757
+ var fieldsForSearch = ["name", "username", "email", "mobile"];
4758
+ var termFilters = [];
4759
+ fieldsForSearch.forEach(function (field) {
4760
+ termFilters.push([field, 'contains', term]);
4761
+ termFilters.push("or");
4762
+ });
4763
+ termFilters.pop();
4764
+ filters.push(termFilters);
4765
+ sort = "${ctx.usersSort}";
4766
+ }
4767
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
4768
+ return api;
4769
+ `;
4770
+ return {
4771
+ "method": "post",
4772
+ "url": getApi$2() + "?term=${term}",
4773
+ "requestAdaptor": requestAdaptor,
4774
+ "data": data,
4775
+ "headers": {
4776
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
4777
+ }
4778
+ }
4779
+ }
4780
+
4781
+ function getRefListViewSort$1(refObject){
4782
+ const listView = ___default__namespace.find(
4783
+ refObject.list_views,
4784
+ (view, name) => name === "all"
4785
+ );
4786
+ let sort = "";
4787
+ if(listView){
4788
+ sort = getListViewSort(listView);
4789
+ }
4790
+ return sort;
4791
+ }
4792
+
4793
+ async function getSelectUserSchema(field, readonly, ctx) {
4794
+ if (!field) {
4795
+ return {}
4796
+ }
4797
+
4798
+ if (!ctx) {
4799
+ ctx = {};
4800
+ }
4801
+ const amisSchema = {
4802
+ "type": getAmisStaticFieldType('select', readonly)
4803
+ };
4804
+
4805
+ if (readonly) {
4806
+ amisSchema.tpl = await getLookupTpl(field, ctx);
4807
+ }
4808
+ else {
4809
+ const refUsersObjectConfig = await getUISchema(refUsersObjectName);
4810
+ ctx.usersSort = getRefListViewSort$1(refUsersObjectConfig);
4811
+ const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);
4812
+ ctx.orgsSort = getRefListViewSort$1(refOrgsObjectConfig);
4813
+ Object.assign(amisSchema, {
4814
+ // "labelField": "name",
4815
+ // "valueField": "user",
4816
+ "multiple": field.multiple,
4817
+ "searchable": field.searchable,
4818
+ "selectMode": "associated",
4819
+ "leftMode": "tree",
4820
+ "extractValue": true,
4821
+ "clearable": true,
4822
+ "source": await getSource$1(field, ctx),
4823
+ "deferApi": await getDeferApi$1(field, ctx),
4824
+ "searchApi": await getSearchApi(field, ctx)
4825
+ });
4826
+ if(field.multiple){
4827
+ // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
4828
+ Object.assign(amisSchema, {
4829
+ "joinValues": false,
4830
+ });
4831
+ }
4832
+ if (typeof amisSchema.searchable !== "boolean") {
4833
+ amisSchema.searchable = true;
4834
+ }
4835
+
4836
+ if(ctx.value){
4837
+ amisSchema.value = ctx.value;
4838
+ }
4839
+
4840
+ const onEvent = field.onEvent;
4841
+ if (onEvent) {
4842
+ amisSchema.onEvent = onEvent;
4843
+ }
4844
+ }
4845
+ return amisSchema;
4846
+ }
4847
+
4848
+ const globalTag = '__G_L_O_B_A_L__';
4849
+
4850
+ const getParentPath = function (path) {
4851
+ var pathArr;
4852
+ if (typeof path === 'string') {
4853
+ pathArr = path.split('.');
4854
+ if (pathArr.length === 1) {
4855
+ return '#';
4856
+ }
4857
+ pathArr.pop();
4858
+ return pathArr.join('.');
4859
+ }
4860
+ return '#';
4868
4861
  };
4869
4862
 
4870
- const resources = {
4871
- "en-US": {
4872
- translation: en_us
4873
- },
4874
- "zh-CN": {
4875
- translation: zh_cn
4876
- }
4863
+ const getValueByPath = function (formData, path) {
4864
+ if (path === '#' || !path) {
4865
+ return formData || {};
4866
+ } else if (typeof path === 'string') {
4867
+ return ___default.get(formData, path);
4868
+ } else {
4869
+ console.error('path has to be a string');
4870
+ }
4871
+ };
4872
+
4873
+ const isExpression$1 = function (func) {
4874
+ var pattern, reg1, reg2;
4875
+ if (typeof func !== 'string') {
4876
+ return false;
4877
+ }
4878
+ pattern = /^{{(.+)}}$/;
4879
+ reg1 = /^{{(function.+)}}$/;
4880
+ reg2 = /^{{(.+=>.+)}}$/;
4881
+ if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {
4882
+ return true;
4883
+ }
4884
+ return false;
4877
4885
  };
4878
- var locale = "zh-CN";
4879
- if (typeof window != 'undefined') {
4880
- if (window.Builder?.settings.locale == "en-us") {
4881
- locale = "en-US";
4882
- } else if (window.Builder?.settings.locale == "zh-cn") {
4883
- locale = "zh-CN";
4884
- }
4885
- }
4886
4886
 
4887
+ const parseSingleExpression$1 = function (func, formData, dataPath, global, userSession = {}) {
4888
+ var error, funcBody, parent, parentPath, str;
4887
4889
 
4888
- instance
4889
- .use(initReactI18next)
4890
- .init({
4891
- resources,
4892
- lng: locale,
4893
- interpolation: {
4894
- escapeValue: false
4890
+ if (formData === void 0) {
4891
+ formData = {};
4895
4892
  }
4896
- });
4893
+ parentPath = getParentPath(dataPath);
4894
+ parent = getValueByPath(formData, parentPath) || {};
4895
+ if (typeof func === 'string') {
4896
+ funcBody = func.substring(2, func.length - 2);
4897
+ str = `\n var $user=${JSON.stringify(userSession)}; return ` + funcBody.replace(/\bformData\b/g, JSON.stringify(formData).replace(/\bglobal\b/g, globalTag)).replace(/\bglobal\b/g, JSON.stringify(global)).replace(new RegExp('\\b' + globalTag + '\\b', 'g'), 'global').replace(/rootValue/g, JSON.stringify(parent));
4898
+ try {
4899
+ return Function(str)();
4900
+ } catch (_error) {
4901
+ error = _error;
4902
+ console.log(error, func, dataPath);
4903
+ return func;
4904
+ }
4905
+ } else {
4906
+ return func;
4907
+ }
4908
+ };
4897
4909
 
4898
4910
  /*
4899
4911
  * @Author: baozhoutao@steedos.com
@@ -6128,7 +6140,7 @@
6128
6140
  "actionType": "drawer",
6129
6141
  "drawer": {
6130
6142
  "type": "drawer",
6131
- "title": "操作",
6143
+ "title": instance.t('frontend_operation'),
6132
6144
  "id": "object_actions_drawer_" + objectSchema.name,
6133
6145
  "body": [
6134
6146
  {
@@ -6193,7 +6205,7 @@
6193
6205
  "actionType": "drawer",
6194
6206
  "drawer": {
6195
6207
  "type": "drawer",
6196
- "title": "操作",
6208
+ "title": instance.t('frontend_operation'),
6197
6209
  "id": "object_actions_drawer_" + objectSchema.name,
6198
6210
  "body": [
6199
6211
  {
@@ -6256,7 +6268,7 @@
6256
6268
  "actionType": "drawer",
6257
6269
  "drawer": {
6258
6270
  "type": "drawer",
6259
- "title": "操作",
6271
+ "title": instance.t('frontend_operation'),
6260
6272
  "id": "object_actions_drawer_" + objectSchema.name,
6261
6273
  "body": [
6262
6274
  {
@@ -6905,6 +6917,28 @@
6905
6917
  let amisButtonsSchema = getObjectListViewButtonsSchemas(objectSchema, {formFactor: ctx.formFactor});
6906
6918
  const reg = new RegExp('_', 'g');
6907
6919
  const standardIcon = icon && icon.replace(reg, '-');
6920
+ const standardNewButton = _.find(amisButtonsSchema, { name: "standard_new" });
6921
+ const buttonSchema = [{
6922
+ "type": "flex",
6923
+ "items": amisButtonsSchema,
6924
+ "visibleOn": "${display == 'split'?false:true}"
6925
+ }];
6926
+ if(ctx.formFactor !== 'SMALL'){
6927
+ buttonSchema.push({
6928
+ "type": "flex",
6929
+ "items":[
6930
+ standardNewButton,
6931
+ {
6932
+ "type": "dropdown-button",
6933
+ "buttons": Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== "standard_new"):{},
6934
+ "menuClassName": "p-none split-dropdown-buttons",
6935
+ "align": "right",
6936
+ "size": "sm"
6937
+ }
6938
+ ],
6939
+ "visibleOn": "${display == 'split'?true:false}"
6940
+ });
6941
+ }
6908
6942
  return {
6909
6943
  "type": "grid",
6910
6944
  "columns": [
@@ -6955,10 +6989,7 @@
6955
6989
  "md": "auto"
6956
6990
  },
6957
6991
  {
6958
- "body": {
6959
- "type": "flex",
6960
- "items": amisButtonsSchema,
6961
- },
6992
+ "body": buttonSchema,
6962
6993
  "md": "auto",
6963
6994
  "valign": "middle",
6964
6995
  }
@@ -8244,7 +8275,7 @@
8244
8275
  "trigger": "click",
8245
8276
  "icon": "fa fa-cog",
8246
8277
  "tooltip": instance.t('frontend_button_listview_control_tooltip'),
8247
- "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
8278
+ "btnClassName": "antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",
8248
8279
  "align": "right",
8249
8280
  "visibleOn": "${!isLookup}",
8250
8281
  "buttons": [
@@ -8288,7 +8319,7 @@
8288
8319
  "type": "dropdown-button",
8289
8320
  "icon": "fa fa-table-columns",
8290
8321
  "tooltip": `${instance.t('frontend_display_as')} ${displayAsLabel}`,
8291
- "btnClassName": "antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",
8322
+ "btnClassName": "antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500",
8292
8323
  "align": "right",
8293
8324
  "visibleOn": "${window:innerWidth > 768 && !!!isLookup}",
8294
8325
  "buttons": [
@@ -8370,6 +8401,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8370
8401
  "type": "button",
8371
8402
  "align": "right",
8372
8403
  "tooltip": instance.t('frontend_button_reload_tooltip'),
8404
+ "tooltipPlacement": "top",
8373
8405
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
8374
8406
  "label": "",
8375
8407
  "icon": "fa fa-sync",
@@ -8389,6 +8421,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8389
8421
  "label": instance.t('frontend_button_search_tooltip'),
8390
8422
  "icon": "fa fa-search",
8391
8423
  "type": "button",
8424
+ "tooltipPlacement": "top",
8392
8425
  "tooltip": instance.t('frontend_button_search_tooltip'),
8393
8426
  "badge": {
8394
8427
  "offset": [
@@ -8435,7 +8468,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8435
8468
  "type": "reload",
8436
8469
  "align": "right",
8437
8470
  "tooltip": instance.t('frontend_button_reload_tooltip'),
8438
- "tooltipPlacement": "bottom",
8471
+ "tooltipPlacement": "top",
8439
8472
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500"
8440
8473
  },
8441
8474
  // getExportExcelToolbarButtonSchema(),
@@ -8445,7 +8478,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8445
8478
  "label": instance.t('frontend_button_search_tooltip'),
8446
8479
  "icon": "fa fa-search",
8447
8480
  "tooltip": instance.t('frontend_button_search_tooltip'),
8448
- "tooltipPlacement": "bottom",
8481
+ "tooltipPlacement": "top",
8449
8482
  "type": "button",
8450
8483
  "badge": {
8451
8484
  "offset": [
@@ -8948,6 +8981,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8948
8981
  }
8949
8982
  }
8950
8983
 
8984
+ if(${referenceTo?.objectName === "space_users"} && ${field.reference_to_field === "user"}){
8985
+ if(filters.length > 0){
8986
+ filters = [ ["user_accepted", "=", true], "and", filters ]
8987
+ }else{
8988
+ filters = [["user_accepted", "=", true]];
8989
+ }
8990
+ }
8991
+
8951
8992
 
8952
8993
  if(allowSearchFields){
8953
8994
  allowSearchFields.forEach(function(key){
@@ -9280,6 +9321,14 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9280
9321
  filters.push(fieldFilters);
9281
9322
  }
9282
9323
 
9324
+ if(${referenceTo?.objectName === "space_users"} && ${field.reference_to_field === "user"}){
9325
+ if(filters.length > 0){
9326
+ filters = [ ["user_accepted", "=", true], "and", filters ]
9327
+ }else{
9328
+ filters = [["user_accepted", "=", true]];
9329
+ }
9330
+ }
9331
+
9283
9332
  const inFilterForm = ${ctx.inFilterForm};
9284
9333
  const filtersFunction = ${field.filtersFunction || field._filtersFunction};
9285
9334
 
@@ -9319,6 +9368,18 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9319
9368
  payload.data.options = options;
9320
9369
  return payload;
9321
9370
  `;
9371
+ }else if(field.options){
9372
+ apiInfo.adaptor = `
9373
+ var options = ${JSON.stringify(field.options)}
9374
+ if(api.data.$term){
9375
+ options = _.filter(options, function(o) {
9376
+ var label = o.label;
9377
+ return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;
9378
+ });
9379
+ }
9380
+ payload.data.options = options;
9381
+ return payload;
9382
+ `;
9322
9383
  }
9323
9384
 
9324
9385
  const data = {
@@ -9398,11 +9459,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9398
9459
  // ids人员点选模式
9399
9460
  return await lookupToAmisIdsPicker(field, readonly, ctx);
9400
9461
  }
9401
- if(!field.filters || field.filters.length == 0){
9402
- field.filters = [["user_accepted", "=", true]];
9403
- }else {
9404
- field.filters = [ ["user_accepted", "=", true], "and", field.filters ];
9405
- }
9406
9462
  // 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口
9407
9463
  // return await lookupToAmisSelectUser(field, readonly, ctx);
9408
9464
  }
@@ -9890,13 +9946,13 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9890
9946
  ___default__namespace.each(field.options, (item)=>{
9891
9947
  switch (dataType) {
9892
9948
  case 'number':
9893
- options.push({label: item.label, value: Number(item.value)});
9949
+ options.push({label: item.label, value: Number(item.value), icon: item.icon});
9894
9950
  break;
9895
9951
  case 'text':
9896
- options.push({label: item.label, value: String(item.value)});
9952
+ options.push({label: item.label, value: String(item.value), icon: item.icon});
9897
9953
  break;
9898
9954
  case 'boolean':
9899
- options.push({label: item.label, value: item.value === 'false' ? false : true});
9955
+ options.push({label: item.label, value: item.value === 'false' ? false : true, icon: item.icon});
9900
9956
  break;
9901
9957
  }
9902
9958
  });
@@ -9958,6 +10014,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9958
10014
  labelField: 'label',
9959
10015
  valueField: 'value'
9960
10016
  };
10017
+ const select_menuTpl = `<span class='flex items-center mt-0.5'>
10018
+ <span role='img' aria-label='smile' class='anticon anticon-smile'>
10019
+ <span class='slds-icon_container slds-icon-standard-\${REPLACE(icon,'_','-')}'>
10020
+ <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>
10021
+ <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\${icon}'></use>
10022
+ </svg>
10023
+ </span>
10024
+ </span>
10025
+ <span class='pl-1.5'>\${label}</span>
10026
+ </span>`;
10027
+ convertData.menuTpl = "${icon ? `"+select_menuTpl+"` : label}";
9961
10028
  if(field.multiple){
9962
10029
  convertData.multiple = true;
9963
10030
  convertData.extractValue = true;
@@ -10689,9 +10756,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10689
10756
  type: "switch",
10690
10757
  name: field.name,
10691
10758
  label: field.label,
10692
- width: field.width,
10759
+ width: field.width || defaultWidth,
10693
10760
  toggled: field.toggled,
10694
- className:"whitespace-nowrap"
10761
+ static: true,
10762
+ className:"whitespace-nowrap",
10763
+ quickEdit: quickEditSchema
10695
10764
  }, field.amis, {name: field.name}));
10696
10765
  }else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){
10697
10766
  columns.push(Object.assign({}, {
@@ -10701,12 +10770,17 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10701
10770
  width: field.width || defaultWidth,
10702
10771
  toggled: field.toggled,
10703
10772
  quickEdit: quickEditSchema,
10773
+ static: true,
10704
10774
  className:"whitespace-nowrap",
10705
10775
  ...getAmisFileReadonlySchema(field)
10706
10776
  }, field.amis, {name: field.name}));
10707
10777
  }
10708
10778
  else if(field.type === 'select'){
10709
10779
  const map = getSelectMap(field.options);
10780
+ let className = "";
10781
+ if(field.wrap === false){
10782
+ className += " whitespace-nowrap";
10783
+ }
10710
10784
  columns.push(Object.assign({}, {
10711
10785
  type: "mapping",
10712
10786
  name: field.name,
@@ -10715,7 +10789,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10715
10789
  sortable: field.sortable,
10716
10790
  width: field.width || defaultWidth,
10717
10791
  toggled: field.toggled,
10718
- className:"whitespace-nowrap",
10792
+ className,
10793
+ static: true,
10719
10794
  quickEdit: quickEditSchema
10720
10795
  }, field.amis, {name: field.name}));
10721
10796
  }
@@ -10747,6 +10822,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
10747
10822
  tpl: tpl,
10748
10823
  toggled: field.toggled,
10749
10824
  className,
10825
+ static: true,
10750
10826
  quickEdit: quickEditSchema,
10751
10827
  options: field.type === 'html' ? {html: true} : null
10752
10828
  // toggled: true
@@ -11023,7 +11099,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
11023
11099
  }
11024
11100
  return {
11025
11101
  type: 'operation',
11026
- label: instance.t('frontend_ercord_operation'),
11102
+ label: instance.t('frontend_operation'),
11027
11103
  fixed: 'right',
11028
11104
  labelClassName: 'text-center',
11029
11105
  className: 'text-center steedos-listview-operation w-20',
@@ -11352,7 +11428,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
11352
11428
  if(item[key]){
11353
11429
  if(field._optionsFunction){
11354
11430
  const optionsFunction = eval("(" + field._optionsFunction+ ")")(item);
11355
- item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return _.includes(item[key], option.value)}), 'label').join(' ');
11431
+ item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');
11432
+ }else if(field.options){
11433
+ const options = field.options;
11434
+ item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');
11356
11435
  }
11357
11436
  }
11358
11437
  })
@@ -11495,7 +11574,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
11495
11574
  else{
11496
11575
  return {
11497
11576
  status: 2,
11498
- msg: "无法找到记录"
11577
+ msg: "${instance.t('frontend_no_records_found')}"
11499
11578
  }
11500
11579
  }
11501
11580
  }
@@ -13090,7 +13169,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
13090
13169
  uiSchema: relatedObjectUiSchema,
13091
13170
  amisSchema: {
13092
13171
  "type": "alert",
13093
- "body": `未找到与相关列表对象${relatedObjectName}关联的相关表字段`,
13172
+ "body": `${instance.t('frontend_objects_related_alert_start')} ${relatedObjectName} ${instance.t('frontend_objects_related_alert_end')}`,
13094
13173
  "level": "warning",
13095
13174
  "showIcon": true,
13096
13175
  "className": "mb-3"
@@ -16795,6 +16874,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
16795
16874
  getRecordPageInitSchema: getRecordPageInitSchema,
16796
16875
  getRecordPermissions: getRecordPermissions,
16797
16876
  getRecordServiceSchema: getRecordServiceSchema,
16877
+ getReferenceTo: getReferenceTo,
16798
16878
  getRelatedFieldValue: getRelatedFieldValue,
16799
16879
  getRelatedListSchema: getRelatedListSchema,
16800
16880
  getRelatedsCount: getRelatedsCount,
@@ -18868,12 +18948,13 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
18868
18948
  }); };
18869
18949
 
18870
18950
  var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void 0, function () {
18871
- var steedosField, field, _a, readonly, _b, ctx, config, $schema, schema, error_1;
18872
- return __generator(this, function (_c) {
18873
- switch (_c.label) {
18951
+ var steedosField, field, _a, readonly, _b, ctx, config, $schema, fStatic, objectName, filters, valueFieldKey, labelFieldKey, referenceTo, referenceToField, value, _steedosField, referenceTo, referenceToField, schema, schema, error_1;
18952
+ var _c, _d, _e, _f, _g;
18953
+ return __generator(this, function (_h) {
18954
+ switch (_h.label) {
18874
18955
  case 0:
18875
18956
  steedosField = null;
18876
- field = props.field, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.ctx, ctx = _b === void 0 ? {} : _b, config = props.config, $schema = props.$schema;
18957
+ field = props.field, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.ctx, ctx = _b === void 0 ? {} : _b, config = props.config, $schema = props.$schema, fStatic = props.static;
18877
18958
  // console.log(`AmisSteedosField`, props)
18878
18959
  if ($schema.config && ___default.isString($schema.config)) {
18879
18960
  $schema.config = JSON.parse($schema.config);
@@ -18894,19 +18975,66 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
18894
18975
  steedosField = JSON.parse(field);
18895
18976
  }
18896
18977
  }
18897
- _c.label = 1;
18978
+ _h.label = 1;
18898
18979
  case 1:
18899
- _c.trys.push([1, 3, , 4]);
18900
- return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
18980
+ _h.trys.push([1, 9, , 10]);
18981
+ if (!(fStatic && (steedosField.type === 'lookup' || steedosField.type === 'master_detail'))) return [3 /*break*/, 6];
18982
+ objectName = void 0, filters = void 0, valueFieldKey = void 0, labelFieldKey = void 0;
18983
+ if (!props.data[steedosField.name]) {
18984
+ return [2 /*return*/, {}];
18985
+ }
18986
+ if (!___default.isString(steedosField.reference_to)) return [3 /*break*/, 3];
18987
+ return [4 /*yield*/, getReferenceTo(steedosField)];
18901
18988
  case 2:
18902
- schema = _c.sent();
18903
- // console.log(`schema`, schema)
18904
- return [2 /*return*/, schema];
18989
+ referenceTo = _h.sent();
18990
+ referenceToField = steedosField.reference_to_field || '_id';
18991
+ objectName = referenceTo.objectName;
18992
+ valueFieldKey = referenceTo && ((_c = referenceTo.valueField) === null || _c === void 0 ? void 0 : _c.name) || '_id';
18993
+ labelFieldKey = referenceTo && ((_d = referenceTo.labelField) === null || _d === void 0 ? void 0 : _d.name) || 'name';
18994
+ value = props.data[steedosField.name];
18995
+ if (___default.isString(value)) {
18996
+ value = [value];
18997
+ }
18998
+ filters = [referenceToField, "in", value];
18999
+ return [3 /*break*/, 5];
18905
19000
  case 3:
18906
- error_1 = _c.sent();
19001
+ _steedosField = __assign$2(__assign$2({}, steedosField), { reference_to: props.data[steedosField.name].o });
19002
+ return [4 /*yield*/, getReferenceTo(_steedosField)];
19003
+ case 4:
19004
+ referenceTo = _h.sent();
19005
+ referenceToField = _steedosField.reference_to_field || '_id';
19006
+ objectName = referenceTo.objectName;
19007
+ valueFieldKey = referenceTo && ((_e = referenceTo.valueField) === null || _e === void 0 ? void 0 : _e.name) || '_id';
19008
+ labelFieldKey = referenceTo && ((_f = referenceTo.labelField) === null || _f === void 0 ? void 0 : _f.name) || 'name';
19009
+ filters = [referenceToField, "in", props.data[_steedosField.name].ids];
19010
+ _h.label = 5;
19011
+ case 5:
19012
+ schema = Object.assign({}, {
19013
+ type: 'select',
19014
+ multiple: steedosField.multiple,
19015
+ name: steedosField.name,
19016
+ label: steedosField.label,
19017
+ static: true,
19018
+ className: (_g = steedosField.amis) === null || _g === void 0 ? void 0 : _g.className,
19019
+ source: {
19020
+ "method": "post",
19021
+ "url": "${context.rootUrl}/graphql",
19022
+ "requestAdaptor": "\n api.data = {\n query: '{options:".concat(objectName, "(filters: ").concat(JSON.stringify(filters), "){label: ").concat(labelFieldKey, ",value: ").concat(valueFieldKey, "}}'\n }\n return api;\n ")
19023
+ }
19024
+ }, ___default.pick(steedosField.amis || {}, ['className', 'inline', 'label', 'labelAlign', 'name', 'labelRemark', 'description', 'placeholder', 'staticClassName', 'staticLabelClassName', 'staticInputClassName', 'staticSchema']));
19025
+ // console.log(`AmisSteedosField return schema`, schema)
19026
+ return [2 /*return*/, schema];
19027
+ case 6: return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, ctx)];
19028
+ case 7:
19029
+ schema = _h.sent();
19030
+ // console.log(`AmisSteedosField return schema`, schema)
19031
+ return [2 /*return*/, schema];
19032
+ case 8: return [3 /*break*/, 10];
19033
+ case 9:
19034
+ error_1 = _h.sent();
18907
19035
  console.log("error", error_1);
18908
- return [3 /*break*/, 4];
18909
- case 4: return [2 /*return*/, null];
19036
+ return [3 /*break*/, 10];
19037
+ case 10: return [2 /*return*/, null];
18910
19038
  }
18911
19039
  });
18912
19040
  }); };
@@ -18958,7 +19086,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
18958
19086
  "headers": {
18959
19087
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
18960
19088
  }
18961
- }, "showIcon": showIcon, "showRadio": showRadio, "onlyLeaf": true, "onEvent": onEvent }, amis);
19089
+ }, "showIcon": showIcon, "showRadio": showRadio, "onlyLeaf": true, "onEvent": onEvent, "static": !!props.static }, amis);
18962
19090
  };
18963
19091
  /**
18964
19092
  *