@steedos-widgets/amis-lib 1.2.27 → 1.2.30

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.
package/dist/index.umd.js CHANGED
@@ -967,796 +967,808 @@
967
967
  }
968
968
  }
969
969
 
970
- /*
971
- * @Author: baozhoutao@steedos.com
972
- * @Date: 2022-07-23 09:12:14
973
- * @LastEditors: baozhoutao@steedos.com
974
- * @LastEditTime: 2022-11-25 13:28:35
975
- * @Description:
976
- */
977
-
978
- async function getListBody(fields, options){
979
- const columns = [];
980
- for (const field of fields) {
981
-
982
- const tpl = await getFieldTpl(field, options);
983
-
984
- let type = 'text';
985
- if(tpl){
986
- type = 'tpl';
987
- }
988
- if(!field.hidden && !field.extra){
989
- columns.push({
990
- name: field.name,
991
- label: field.label,
992
- sortable: field.sortable,
993
- // searchable: field.searchable,
994
- width: field.width,
995
- type: type,
996
- tpl: tpl,
997
- toggled: field.toggled
998
- // toggled: true
999
- });
1000
- }
1001
- }
1002
- return {
1003
- "type": "hbox",
1004
- "columns": columns
1005
- };
1006
- }
1007
-
1008
- function getDefaultParams$1(options){
1009
- return {
1010
- perPage: options.top || options.perPage || 10
1011
- }
1012
- }
1013
-
1014
- async function getListSchema$1(fields, options){
1015
- const listBody = await getListBody(fields, options);
1016
- const columns = listBody.columns;
1017
- return {
1018
- mode: "list",
1019
- name: "thelist",
1020
- draggable: false,
1021
- headerToolbar: ['reload'],
1022
- defaultParams: getDefaultParams$1(options),
1023
- syncLocation: false,
1024
- keepItemSelectionOnPageChange: true,
1025
- checkOnItemClick: false,
1026
- labelTpl: `\${name}`, //TODO 获取name字段
1027
- listItem: {
1028
- body: [...columns],
1029
- actions: options.actions === false ? null : [
1030
- {
1031
- icon: "fa fa-eye",
1032
- label: "查看",
1033
- type: "button",
1034
- actionType: "link",
1035
- link: Router.getObjectDetailPath({
1036
- formFactor: options.formFactor,
1037
- appId: options.appId,
1038
- objectName: options.tabId,
1039
- listView: options.listView,
1040
- recordId: `\${_id}`
1041
- })
1042
- }
1043
- ]
1044
- }
1045
- }
1046
- }
1047
-
1048
-
1049
- async function getCardSchema(fields, options){
1050
- let title = null;
1051
- const titleField = _.find(fields, (f)=>{
1052
- return f.name === options.labelFieldName;
1053
- });
1054
- if(titleField){
1055
- title = await getFieldTpl(titleField, options);
1056
- }
1057
- const listBody = await getListBody(_.filter(fields, (f)=>{
1058
- return f.name != options.labelFieldName
1059
- }), options);
1060
- return {
1061
- mode: "cards",
1062
- name: "cards",
1063
- draggable: false,
1064
- headerToolbar: ['statistics', 'pagination'],
1065
- defaultParams: getDefaultParams$1(options),
1066
- syncLocation: false,
1067
- keepItemSelectionOnPageChange: false,
1068
- checkOnItemClick: false,
1069
- labelTpl: `\${${options.labelFieldName}}`,
1070
- card: {
1071
- "type": "card",
1072
- "header": {
1073
- "title": title
1074
- },
1075
- "body": [...listBody.columns]
1076
- }
1077
- }
1078
- }
1079
-
1080
- const refUsersObjectName = "space_users";
1081
- const refOrgsObjectName = "organizations";
1082
-
1083
- async function getSource$1(field, ctx) {
1084
- // 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} }"
1085
- const data = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "value" },{name: "parent"}, { name: "name", alias: "label" }, { name: "children" }], {
1086
- alias: "leftOptions",
1087
- filters: "{__filters}"
1088
- });
1089
- data.query = data.query.replace(/,count\:.+/, "}");
1090
- const childrenData = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "ref" }], {
1091
- alias: "children",
1092
- filters: "{__filters}"
1093
- });
1094
- childrenData.query = childrenData.query.replace(/,count\:.+/, "}");
1095
- data.query = data.query.replace(/}$/, "," + childrenData.query.replace(/{(.+)}/, "$1}"));
1096
- const defaultValueOptionsData = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
1097
- alias: "defaultValueOptions",
1098
- filters: "{__options_filters}"
1099
- });
1100
- defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\:.+/, "}");
1101
- data.query = data.query.replace(/}$/, "," + defaultValueOptionsData.query.replace(/{(.+)}/, "$1}"));
1102
- let valueField = `${field.name}`;
1103
- if(field._prefix){
1104
- // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.
1105
- valueField = `${field._prefix}${field.name}`;
1106
- }
1107
- if(ctx.fieldNamePrefix){
1108
- // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__
1109
- valueField = `${ctx.fieldNamePrefix}${valueField}`;
1110
- }
1111
- data.$value = `$${valueField}`;
1112
- // data["&"] = "$$";
1113
-
1114
- const requestAdaptor = `
1115
- var filters = [];
1116
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
1117
- var defaultValue = api.data.$value;
1118
- var optionsFiltersOp = "${field.multiple ? "in" : "="}";
1119
- var optionsFilters = [["user", optionsFiltersOp, []]];
1120
- if (defaultValue) {
1121
- optionsFilters = [["user", optionsFiltersOp, defaultValue]];
1122
- }
1123
- api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
1124
- return api;
1125
- `;
1126
- const adaptor = `
1127
- const data = payload.data;
1128
- const rows = data.leftOptions
1129
- data.children = data.children.map(function (child) {
1130
- // child.defer = !!(child.children && child.children.length);
1131
- child.defer = true;
1132
- delete child.children;
1133
- return child;
1134
- });
1135
-
1136
- var getTreeOptions = SteedosUI.getTreeOptions
1137
- data.leftOptions = getTreeOptions(rows);
1138
-
1139
-
1140
- var defaultValueOptions = data.defaultValueOptions;
1141
- data.children = _.union(data.children, defaultValueOptions);
1142
- delete data.defaultValueOptions;
1143
- payload.data = { options: [data] };
1144
- return payload;
1145
- `;
1146
- return {
1147
- "method": "post",
1148
- // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug
1149
- // 见issue: https://github.com/baidu/amis/issues/6065
1150
- // "url": graphql.getApi() + `?value=\${${field.multiple ? valueField + "|join" : valueField}}`,
1151
- // "url": graphql.getApi() + `?value=\${editFormInited}`,
1152
- "url": getApi$2(),
1153
- "requestAdaptor": requestAdaptor,
1154
- "adaptor": adaptor,
1155
- "data": data,
1156
- // "sendOn": `this.editFormInited`,
1157
- "headers": {
1158
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1159
- },
1160
- }
1161
- }
970
+ var frontend_field_group_generalization$1 = "Generalization";
971
+ var frontend_download$1 = "Download";
972
+ var frontend_form_save$1 = "Save";
973
+ var frontend_form_save_and_new$1 = "Save and New";
974
+ var frontend_form_cancel$1 = "Cancel";
975
+ var frontend_form_new$1 = "New";
976
+ var frontend_form_edit$1 = "Edit";
977
+ var frontend_form_select$1 = "Select";
978
+ var frontend_form_confirm$1 = "Confirm";
979
+ var frontend_form_delete$1 = "Delete";
980
+ var frontend_form_view$1 = "view";
981
+ var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
982
+ var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
983
+ var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
984
+ var frontend_display_type_is_table$1 = "Table";
985
+ var frontend_display_type_is_split$1 = "Split View";
986
+ var frontend_display_as$1 = "Displayed as";
987
+ var frontend_record_sum$1 = "items";
988
+ var frontend_button_reload_tooltip$1 = "Refresh";
989
+ var frontend_button_search_tooltip$1 = "Search";
990
+ var frontend_fields_filter_button_search$1 = "Search";
991
+ var frontend_fields_filter_button_settings$1 = "Set search options";
992
+ var frontend_button_listview_control_tooltip$1 = "List View Controls";
993
+ var frontend_button_listview_control_label$1 = "LIST VIEW CONTROLS";
994
+ var frontend_listview_control_columns$1 = "Show List";
995
+ var frontend_listview_control_columns_mobile_group$1 = "Mobile side";
996
+ var frontend_listview_control_clone_label$1 = "Clone";
997
+ var frontend_listview_control_clone_title$1 = "Clone List View";
998
+ var frontend_listview_control_clone_defaultData_label_start$1 = "Copy of";
999
+ var frontend_listview_control_clone_defaultData_label_end$1 = "";
1000
+ var frontend_listview_control_delete_label$1 = "Delete";
1001
+ 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?";
1002
+ var frontend_listview_control_delete_message_success$1 = "Deletion successful";
1003
+ var frontend_listview_control_filters$1 = "Filter settings";
1004
+ var frontend_listview_control_filters_fields_extend$1 = "Conditional component 1";
1005
+ var frontend_listview_control_new_label$1 = "New";
1006
+ var frontend_listview_control_new_title$1 = "New List View";
1007
+ var frontend_listview_control_new_message_success$1 = "Success";
1008
+ var frontend_listview_control_new_message_failed$1 = "Failure";
1009
+ var frontend_listview_control_rename_label$1 = "Rename";
1010
+ var frontend_listview_control_rename_title$1 = "Rename List View";
1011
+ var frontend_listview_control_share$1 = "Sharing Settings";
1012
+ var frontend_listview_control_sort$1 = "Default sorting rule";
1013
+ var frontend_export_excel$1 = "Export Excel";
1014
+ var frontend_operation$1 = "Operation";
1015
+ var frontend_import_data$1 = "Import data";
1016
+ var frontend_import_data_object_name$1 = "Import object";
1017
+ var frontend_import_data_queue_import$1 = "Data import";
1018
+ var frontend_import_data_queue_import_description$1 = "Import description";
1019
+ var frontend_import_data_queue_import_encoding$1 = "Character code";
1020
+ var frontend_import_data_queue_import_template_url$1 = "Import template";
1021
+ var frontend_import_data_file$1 = "Excel file";
1022
+ var frontend_import_data_message_success$1 = "Importing has started...";
1023
+ var frontend_import_data_message_failed$1 = "Import failed";
1024
+ var frontend_record_detail_tab_detailed$1 = "Details";
1025
+ var frontend_record_detail_tab_related$1 = "Related";
1026
+ var frontend_all_apps$1 = "All apps";
1027
+ var frontend_all_projects$1 = "All projects";
1028
+ var frontend_application_launcher$1 = "Application launcher";
1029
+ var frontend_menu$1 = "Menu";
1030
+ var frontend_help$1 = "Help";
1031
+ var frontend_setup$1 = "Setup";
1032
+ var frontend_notifications$1 = "Notifications";
1033
+ var frontend_notifications_allread$1 = "Mark all as read";
1034
+ var frontend_notifications_allread_message$1 = "All marked as read";
1035
+ var frontend_profile$1 = "Profile";
1036
+ var frontend_about$1 = "About";
1037
+ var frontend_log_out$1 = "Log out";
1038
+ var frontend_listview_warning_start$1 = "The current ";
1039
+ var frontend_listview_warning_end$1 = " view does not exist!";
1040
+ var frontend_record_detail_related_list_warning$1 = "Missing parent object, parent record, or related list object property!";
1041
+ var frontend_record_detail_related_lists_warning$1 = "Missing parent object, or parent record property!";
1042
+ var frontend_record_detail_related_lists_info$1 = "No related child tables found";
1043
+ var frontend_calendar_listWeek$1 = "List";
1044
+ var frontend_message_no_permission_to_edit$1 = "You don't have permission to edit this record!";
1045
+ var frontend_message_modification_successful$1 = "Modification successful!";
1046
+ var frontend_message_modification_failed$1 = "Modification failed!";
1047
+ var frontend_objects_related_alert_start$1 = "No related table fields associated with the related list object";
1048
+ var frontend_objects_related_alert_end$1 = "were found.";
1049
+ var frontend_no_records_found$1 = "No records found.";
1050
+ var en_us = {
1051
+ frontend_field_group_generalization: frontend_field_group_generalization$1,
1052
+ frontend_download: frontend_download$1,
1053
+ frontend_form_save: frontend_form_save$1,
1054
+ frontend_form_save_and_new: frontend_form_save_and_new$1,
1055
+ frontend_form_cancel: frontend_form_cancel$1,
1056
+ frontend_form_new: frontend_form_new$1,
1057
+ frontend_form_edit: frontend_form_edit$1,
1058
+ frontend_form_select: frontend_form_select$1,
1059
+ frontend_form_confirm: frontend_form_confirm$1,
1060
+ frontend_form_delete: frontend_form_delete$1,
1061
+ frontend_form_view: frontend_form_view$1,
1062
+ frontend_delete_confirm_text: frontend_delete_confirm_text$1,
1063
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
1064
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
1065
+ frontend_display_type_is_table: frontend_display_type_is_table$1,
1066
+ frontend_display_type_is_split: frontend_display_type_is_split$1,
1067
+ frontend_display_as: frontend_display_as$1,
1068
+ frontend_record_sum: frontend_record_sum$1,
1069
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip$1,
1070
+ frontend_button_search_tooltip: frontend_button_search_tooltip$1,
1071
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search$1,
1072
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings$1,
1073
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip$1,
1074
+ frontend_button_listview_control_label: frontend_button_listview_control_label$1,
1075
+ frontend_listview_control_columns: frontend_listview_control_columns$1,
1076
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group$1,
1077
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label$1,
1078
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title$1,
1079
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start$1,
1080
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end$1,
1081
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label$1,
1082
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text$1,
1083
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success$1,
1084
+ frontend_listview_control_filters: frontend_listview_control_filters$1,
1085
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend$1,
1086
+ frontend_listview_control_new_label: frontend_listview_control_new_label$1,
1087
+ frontend_listview_control_new_title: frontend_listview_control_new_title$1,
1088
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success$1,
1089
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed$1,
1090
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label$1,
1091
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title$1,
1092
+ frontend_listview_control_share: frontend_listview_control_share$1,
1093
+ frontend_listview_control_sort: frontend_listview_control_sort$1,
1094
+ frontend_export_excel: frontend_export_excel$1,
1095
+ frontend_operation: frontend_operation$1,
1096
+ frontend_import_data: frontend_import_data$1,
1097
+ frontend_import_data_object_name: frontend_import_data_object_name$1,
1098
+ frontend_import_data_queue_import: frontend_import_data_queue_import$1,
1099
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description$1,
1100
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding$1,
1101
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url$1,
1102
+ frontend_import_data_file: frontend_import_data_file$1,
1103
+ frontend_import_data_message_success: frontend_import_data_message_success$1,
1104
+ frontend_import_data_message_failed: frontend_import_data_message_failed$1,
1105
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed$1,
1106
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related$1,
1107
+ frontend_all_apps: frontend_all_apps$1,
1108
+ frontend_all_projects: frontend_all_projects$1,
1109
+ frontend_application_launcher: frontend_application_launcher$1,
1110
+ frontend_menu: frontend_menu$1,
1111
+ frontend_help: frontend_help$1,
1112
+ frontend_setup: frontend_setup$1,
1113
+ frontend_notifications: frontend_notifications$1,
1114
+ frontend_notifications_allread: frontend_notifications_allread$1,
1115
+ frontend_notifications_allread_message: frontend_notifications_allread_message$1,
1116
+ frontend_profile: frontend_profile$1,
1117
+ frontend_about: frontend_about$1,
1118
+ frontend_log_out: frontend_log_out$1,
1119
+ frontend_listview_warning_start: frontend_listview_warning_start$1,
1120
+ frontend_listview_warning_end: frontend_listview_warning_end$1,
1121
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning$1,
1122
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning$1,
1123
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info$1,
1124
+ frontend_calendar_listWeek: frontend_calendar_listWeek$1,
1125
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit$1,
1126
+ frontend_message_modification_successful: frontend_message_modification_successful$1,
1127
+ frontend_message_modification_failed: frontend_message_modification_failed$1,
1128
+ frontend_objects_related_alert_start: frontend_objects_related_alert_start$1,
1129
+ frontend_objects_related_alert_end: frontend_objects_related_alert_end$1,
1130
+ frontend_no_records_found: frontend_no_records_found$1
1131
+ };
1162
1132
 
1163
- async function getDeferApi$1(field, ctx) {
1164
- // data.query 最终格式 "{ \toptions:{__object_name}(filters:{__filters}){{__fields}} }"
1165
- const data = await getFindQuery({ name: "{__object_name}" }, null, [], {
1166
- alias: "options",
1167
- // filters: "{__filters}",
1168
- queryOptions: `filters: {__filters}, sort: "{__sort}"`
1169
- });
1170
- // 传入的默认过滤条件,比如[["name", "contains", ""]],将会作为基本过滤条件
1171
- let filters = field.filters;
1172
- if(typeof filters === "string"){
1173
- filters = new Function(`return ${filters}`);
1174
- filters = filters();
1175
- }
1176
- if(typeof filters === "function"){
1177
- filters = filters(field);
1178
- }
1179
- data.query = data.query.replace(/,count\:.+/, "}");
1180
- // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换
1181
- data.query = data.query.replace("{_id}", "{{__fields}}");
1182
- const requestAdaptor = `
1183
- var dep = api.query.dep;
1184
- var ref = api.query.ref;
1185
- var term = api.query.term;
1186
- var filters;
1187
- var objectName;
1188
- var fields;
1189
- var sort = "";
1190
- if (dep) {
1191
- objectName = "${refOrgsObjectName}";
1192
- fields = "value:_id,label:name,children";
1193
- filters = [['parent', '=', dep]];
1194
- sort = "${ctx.orgsSort}";
1195
- }
1196
- else if (ref) {
1197
- objectName = "${refUsersObjectName}";
1198
- // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
1199
- fields = "_id,value:user,label:name";
1200
- // fields = "user,name,value:user,label:name";
1201
- filters = [['user_accepted', '=', true]];
1202
- var defaultFilters = ${filters && JSON.stringify(filters)};
1203
- if(defaultFilters){
1204
- filters.push(defaultFilters);
1205
- }
1206
- filters.push(['organizations_parents', '=', ref]);
1207
- sort = "${ctx.usersSort}";
1208
- }
1209
- 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());
1210
- return api;
1211
- `;
1212
- const adaptor = `
1213
- if (api.query.dep) {
1214
- // 展开组织时才需要根据children值设置defer属性
1215
- const data = payload.data;
1216
- data.options = data.options.map(function (option) {
1217
- option.defer = !!(option.children && option.children.length);
1218
- delete option.children;
1219
- return option;
1220
- });
1221
- payload.data = data;
1222
- }
1223
- return payload;
1224
- `;
1225
- return {
1226
- "method": "post",
1227
- "url": getApi$2() + "&ref=${ref}&dep=${value}",
1228
- "requestAdaptor": requestAdaptor,
1229
- "adaptor": adaptor,
1230
- "data": data,
1231
- "headers": {
1232
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1233
- }
1234
- }
1235
- }
1133
+ var frontend_field_group_generalization = "通用";
1134
+ var frontend_download = "下载";
1135
+ var frontend_form_save = "保存";
1136
+ var frontend_form_save_and_new = "保存并新建";
1137
+ var frontend_form_cancel = "取消";
1138
+ var frontend_form_new = "新建";
1139
+ var frontend_form_edit = "编辑";
1140
+ var frontend_form_select = "选择";
1141
+ var frontend_form_confirm = "确认";
1142
+ var frontend_form_delete = "删除";
1143
+ var frontend_form_view = "查看";
1144
+ var frontend_delete_confirm_text = "确定要删除此项目?";
1145
+ var frontend_delete_many_selected_required = "请选择要删除的项";
1146
+ var frontend_delete_many_confirm_text = "确定要删除吗?";
1147
+ var frontend_display_type_is_table = "表格";
1148
+ var frontend_display_type_is_split = "分栏视图";
1149
+ var frontend_display_as = "显示为";
1150
+ var frontend_record_sum = "个项目";
1151
+ var frontend_button_reload_tooltip = "刷新";
1152
+ var frontend_button_search_tooltip = "搜索";
1153
+ var frontend_fields_filter_button_search = "搜索";
1154
+ var frontend_fields_filter_button_settings = "设置搜索项";
1155
+ var frontend_button_listview_control_tooltip = "列表视图控制";
1156
+ var frontend_button_listview_control_label = "列表视图控制";
1157
+ var frontend_listview_control_columns = "显示的列";
1158
+ var frontend_listview_control_columns_mobile_group = "手机端";
1159
+ var frontend_listview_control_clone = "复制";
1160
+ var frontend_listview_control_clone_label = "复制";
1161
+ var frontend_listview_control_clone_title = "复制 列表视图";
1162
+ var frontend_listview_control_clone_defaultData_label_start = "";
1163
+ var frontend_listview_control_clone_defaultData_label_end = "的副本";
1164
+ var frontend_listview_control_delete_label = "删除";
1165
+ var frontend_listview_control_delete_confirm_text = "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?";
1166
+ var frontend_listview_control_delete_message_success = "删除成功";
1167
+ var frontend_listview_control_filters = "过滤设置";
1168
+ var frontend_listview_control_filters_fields_extend = "条件组件1";
1169
+ var frontend_listview_control_new_label = "新建";
1170
+ var frontend_listview_control_new_title = "新建 列表视图";
1171
+ var frontend_listview_control_new_message_success = "成功";
1172
+ var frontend_listview_control_new_message_failed = "失败";
1173
+ var frontend_listview_control_rename_label = "重命名";
1174
+ var frontend_listview_control_rename_title = "重命名 列表视图";
1175
+ var frontend_listview_control_share = "共享设置";
1176
+ var frontend_listview_control_sort = "默认排序规则";
1177
+ var frontend_export_excel = "导出";
1178
+ var frontend_operation = "操作";
1179
+ var frontend_import_data = "导入数据";
1180
+ var frontend_import_data_object_name = "导入对象";
1181
+ var frontend_import_data_queue_import = "数据导入";
1182
+ var frontend_import_data_queue_import_description = "导入描述";
1183
+ var frontend_import_data_queue_import_encoding = "字符代码";
1184
+ var frontend_import_data_queue_import_template_url = "导入模板";
1185
+ var frontend_import_data_file = "Excel文件";
1186
+ var frontend_import_data_message_success = "已开始导入...";
1187
+ var frontend_import_data_message_failed = "导入失败";
1188
+ var frontend_record_detail_tab_detailed = "详细";
1189
+ var frontend_record_detail_tab_related = "相关";
1190
+ var frontend_all_apps = "所有应用";
1191
+ var frontend_all_projects = "所有项目";
1192
+ var frontend_application_launcher = "应用程序启动器";
1193
+ var frontend_menu = "菜单";
1194
+ var frontend_help = "帮助";
1195
+ var frontend_setup = "设置";
1196
+ var frontend_notifications = "通知";
1197
+ var frontend_notifications_allread = "全部标记为已读";
1198
+ var frontend_notifications_allread_message = "已全部标记为已读";
1199
+ var frontend_profile = "个人资料";
1200
+ var frontend_about = "关于";
1201
+ var frontend_log_out = "注销";
1202
+ var frontend_listview_warning_start = "当前";
1203
+ var frontend_listview_warning_end = "视图不存在!";
1204
+ var frontend_record_detail_related_list_warning = "缺少父级对象、父级记录或相关列表对象属性!";
1205
+ var frontend_record_detail_related_lists_warning = "缺少父级对象或父级记录属性!";
1206
+ var frontend_record_detail_related_lists_info = "没有相关子表";
1207
+ var frontend_calendar_listWeek = "列表";
1208
+ var frontend_message_no_permission_to_edit = "您没有编辑该记录的权限!";
1209
+ var frontend_message_modification_successful = "修改成功!";
1210
+ var frontend_message_modification_failed = "修改失败!";
1211
+ var frontend_objects_related_alert_start = "未找到与相关列表对象";
1212
+ var frontend_objects_related_alert_end = "关联的相关表字段";
1213
+ var frontend_no_records_found = "无法找到记录";
1214
+ var zh_cn = {
1215
+ frontend_field_group_generalization: frontend_field_group_generalization,
1216
+ frontend_download: frontend_download,
1217
+ frontend_form_save: frontend_form_save,
1218
+ frontend_form_save_and_new: frontend_form_save_and_new,
1219
+ frontend_form_cancel: frontend_form_cancel,
1220
+ frontend_form_new: frontend_form_new,
1221
+ frontend_form_edit: frontend_form_edit,
1222
+ frontend_form_select: frontend_form_select,
1223
+ frontend_form_confirm: frontend_form_confirm,
1224
+ frontend_form_delete: frontend_form_delete,
1225
+ frontend_form_view: frontend_form_view,
1226
+ frontend_delete_confirm_text: frontend_delete_confirm_text,
1227
+ frontend_delete_many_selected_required: frontend_delete_many_selected_required,
1228
+ frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
1229
+ frontend_display_type_is_table: frontend_display_type_is_table,
1230
+ frontend_display_type_is_split: frontend_display_type_is_split,
1231
+ frontend_display_as: frontend_display_as,
1232
+ frontend_record_sum: frontend_record_sum,
1233
+ frontend_button_reload_tooltip: frontend_button_reload_tooltip,
1234
+ frontend_button_search_tooltip: frontend_button_search_tooltip,
1235
+ frontend_fields_filter_button_search: frontend_fields_filter_button_search,
1236
+ frontend_fields_filter_button_settings: frontend_fields_filter_button_settings,
1237
+ frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip,
1238
+ frontend_button_listview_control_label: frontend_button_listview_control_label,
1239
+ frontend_listview_control_columns: frontend_listview_control_columns,
1240
+ frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group,
1241
+ frontend_listview_control_clone: frontend_listview_control_clone,
1242
+ frontend_listview_control_clone_label: frontend_listview_control_clone_label,
1243
+ frontend_listview_control_clone_title: frontend_listview_control_clone_title,
1244
+ frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start,
1245
+ frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end,
1246
+ frontend_listview_control_delete_label: frontend_listview_control_delete_label,
1247
+ frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text,
1248
+ frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success,
1249
+ frontend_listview_control_filters: frontend_listview_control_filters,
1250
+ frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend,
1251
+ frontend_listview_control_new_label: frontend_listview_control_new_label,
1252
+ frontend_listview_control_new_title: frontend_listview_control_new_title,
1253
+ frontend_listview_control_new_message_success: frontend_listview_control_new_message_success,
1254
+ frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed,
1255
+ frontend_listview_control_rename_label: frontend_listview_control_rename_label,
1256
+ frontend_listview_control_rename_title: frontend_listview_control_rename_title,
1257
+ frontend_listview_control_share: frontend_listview_control_share,
1258
+ frontend_listview_control_sort: frontend_listview_control_sort,
1259
+ frontend_export_excel: frontend_export_excel,
1260
+ frontend_operation: frontend_operation,
1261
+ frontend_import_data: frontend_import_data,
1262
+ frontend_import_data_object_name: frontend_import_data_object_name,
1263
+ frontend_import_data_queue_import: frontend_import_data_queue_import,
1264
+ frontend_import_data_queue_import_description: frontend_import_data_queue_import_description,
1265
+ frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding,
1266
+ frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url,
1267
+ frontend_import_data_file: frontend_import_data_file,
1268
+ frontend_import_data_message_success: frontend_import_data_message_success,
1269
+ frontend_import_data_message_failed: frontend_import_data_message_failed,
1270
+ frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed,
1271
+ frontend_record_detail_tab_related: frontend_record_detail_tab_related,
1272
+ frontend_all_apps: frontend_all_apps,
1273
+ frontend_all_projects: frontend_all_projects,
1274
+ frontend_application_launcher: frontend_application_launcher,
1275
+ frontend_menu: frontend_menu,
1276
+ frontend_help: frontend_help,
1277
+ frontend_setup: frontend_setup,
1278
+ frontend_notifications: frontend_notifications,
1279
+ frontend_notifications_allread: frontend_notifications_allread,
1280
+ frontend_notifications_allread_message: frontend_notifications_allread_message,
1281
+ frontend_profile: frontend_profile,
1282
+ frontend_about: frontend_about,
1283
+ frontend_log_out: frontend_log_out,
1284
+ frontend_listview_warning_start: frontend_listview_warning_start,
1285
+ frontend_listview_warning_end: frontend_listview_warning_end,
1286
+ frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning,
1287
+ frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning,
1288
+ frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info,
1289
+ frontend_calendar_listWeek: frontend_calendar_listWeek,
1290
+ frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit,
1291
+ frontend_message_modification_successful: frontend_message_modification_successful,
1292
+ frontend_message_modification_failed: frontend_message_modification_failed,
1293
+ frontend_objects_related_alert_start: frontend_objects_related_alert_start,
1294
+ frontend_objects_related_alert_end: frontend_objects_related_alert_end,
1295
+ frontend_no_records_found: frontend_no_records_found
1296
+ };
1236
1297
 
1237
- async function getSearchApi(field, ctx) {
1238
- // data.query 最终格式 "{ \toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}"
1239
- // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
1240
- const data = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
1241
- alias: "options",
1242
- // filters: "{__filters}",
1243
- queryOptions: `filters: {__filters}, sort: "{__sort}"`
1244
- });
1245
- data.query = data.query.replace(/,count\:.+/, "}");
1246
- // 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
1247
- const filters = field.filters;
1248
- const requestAdaptor = `
1249
- var term = api.query.term;
1250
- var filters;
1251
- var sort = "";
1252
- if (term) {
1253
- filters = [['user_accepted', '=', true]];
1254
- var defaultFilters = ${filters && JSON.stringify(filters)};
1255
- if(defaultFilters){
1256
- filters.push(defaultFilters);
1257
- }
1258
- var fieldsForSearch = ["name", "username", "email", "mobile"];
1259
- var termFilters = [];
1260
- fieldsForSearch.forEach(function (field) {
1261
- termFilters.push([field, 'contains', term]);
1262
- termFilters.push("or");
1263
- });
1264
- termFilters.pop();
1265
- filters.push(termFilters);
1266
- sort = "${ctx.usersSort}";
1267
- }
1268
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
1269
- return api;
1270
- `;
1271
- return {
1272
- "method": "post",
1273
- "url": getApi$2() + "?term=${term}",
1274
- "requestAdaptor": requestAdaptor,
1275
- "data": data,
1276
- "headers": {
1277
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1278
- }
1279
- }
1298
+ const resources = {
1299
+ "en-US": {
1300
+ translation: en_us
1301
+ },
1302
+ "zh-CN": {
1303
+ translation: zh_cn
1304
+ }
1305
+ };
1306
+ var locale = "zh-CN";
1307
+ if (typeof window != 'undefined') {
1308
+ if (window.Builder?.settings.locale == "en-us") {
1309
+ locale = "en-US";
1310
+ } else if (window.Builder?.settings.locale == "zh-cn") {
1311
+ locale = "zh-CN";
1312
+ }
1280
1313
  }
1281
1314
 
1282
- function getRefListViewSort$1(refObject){
1283
- const listView = ___namespace.find(
1284
- refObject.list_views,
1285
- (view, name) => name === "all"
1286
- );
1287
- let sort = "";
1288
- if(listView){
1289
- sort = getListViewSort(listView);
1290
- }
1291
- return sort;
1292
- }
1293
1315
 
1294
- async function getSelectUserSchema(field, readonly, ctx) {
1295
- if (!field) {
1296
- return {}
1316
+ i18next__default["default"]
1317
+ .use(reactI18next.initReactI18next)
1318
+ .init({
1319
+ resources,
1320
+ lng: locale,
1321
+ interpolation: {
1322
+ escapeValue: false
1297
1323
  }
1324
+ });
1298
1325
 
1299
- if (!ctx) {
1300
- ctx = {};
1301
- }
1302
- const amisSchema = {
1303
- "type": getAmisStaticFieldType('select', readonly)
1304
- };
1326
+ /*
1327
+ * @Author: baozhoutao@steedos.com
1328
+ * @Date: 2022-07-23 09:12:14
1329
+ * @LastEditors: baozhoutao@steedos.com
1330
+ * @LastEditTime: 2022-11-25 13:28:35
1331
+ * @Description:
1332
+ */
1305
1333
 
1306
- if (readonly) {
1307
- amisSchema.tpl = await getLookupTpl(field, ctx);
1308
- }
1309
- else {
1310
- const refUsersObjectConfig = await getUISchema(refUsersObjectName);
1311
- ctx.usersSort = getRefListViewSort$1(refUsersObjectConfig);
1312
- const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);
1313
- ctx.orgsSort = getRefListViewSort$1(refOrgsObjectConfig);
1314
- Object.assign(amisSchema, {
1315
- // "labelField": "name",
1316
- // "valueField": "user",
1317
- "multiple": field.multiple,
1318
- "searchable": field.searchable,
1319
- "selectMode": "associated",
1320
- "leftMode": "tree",
1321
- "extractValue": true,
1322
- "clearable": true,
1323
- "source": await getSource$1(field, ctx),
1324
- "deferApi": await getDeferApi$1(field, ctx),
1325
- "searchApi": await getSearchApi(field, ctx)
1326
- });
1327
- if(field.multiple){
1328
- // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
1329
- Object.assign(amisSchema, {
1330
- "joinValues": false,
1331
- });
1332
- }
1333
- if (typeof amisSchema.searchable !== "boolean") {
1334
- amisSchema.searchable = true;
1335
- }
1334
+ async function getListBody(fields, options){
1335
+ const columns = [];
1336
+ for (const field of fields) {
1336
1337
 
1337
- if(ctx.value){
1338
- amisSchema.value = ctx.value;
1339
- }
1338
+ const tpl = await getFieldTpl(field, options);
1340
1339
 
1341
- const onEvent = field.onEvent;
1342
- if (onEvent) {
1343
- amisSchema.onEvent = onEvent;
1340
+ let type = 'text';
1341
+ if(tpl){
1342
+ type = 'tpl';
1343
+ }
1344
+ if(!field.hidden && !field.extra){
1345
+ columns.push({
1346
+ name: field.name,
1347
+ label: field.label,
1348
+ sortable: field.sortable,
1349
+ // searchable: field.searchable,
1350
+ width: field.width,
1351
+ type: type,
1352
+ tpl: tpl,
1353
+ toggled: field.toggled
1354
+ // toggled: true
1355
+ });
1344
1356
  }
1345
1357
  }
1346
- return amisSchema;
1358
+ return {
1359
+ "type": "hbox",
1360
+ "columns": columns
1361
+ };
1347
1362
  }
1348
1363
 
1349
- const globalTag = '__G_L_O_B_A_L__';
1364
+ function getDefaultParams$1(options){
1365
+ return {
1366
+ perPage: options.top || options.perPage || 10
1367
+ }
1368
+ }
1350
1369
 
1351
- const getParentPath = function (path) {
1352
- var pathArr;
1353
- if (typeof path === 'string') {
1354
- pathArr = path.split('.');
1355
- if (pathArr.length === 1) {
1356
- return '#';
1370
+ async function getListSchema$1(fields, options){
1371
+ const listBody = await getListBody(fields, options);
1372
+ const columns = listBody.columns;
1373
+ return {
1374
+ mode: "list",
1375
+ name: "thelist",
1376
+ draggable: false,
1377
+ headerToolbar: ['reload'],
1378
+ defaultParams: getDefaultParams$1(options),
1379
+ syncLocation: false,
1380
+ keepItemSelectionOnPageChange: true,
1381
+ checkOnItemClick: false,
1382
+ labelTpl: `\${name}`, //TODO 获取name字段
1383
+ listItem: {
1384
+ body: [...columns],
1385
+ actions: options.actions === false ? null : [
1386
+ {
1387
+ icon: "fa fa-eye",
1388
+ label: i18next__default["default"].t('frontend_form_view'),
1389
+ type: "button",
1390
+ actionType: "link",
1391
+ link: Router.getObjectDetailPath({
1392
+ formFactor: options.formFactor,
1393
+ appId: options.appId,
1394
+ objectName: options.tabId,
1395
+ listView: options.listView,
1396
+ recordId: `\${_id}`
1397
+ })
1398
+ }
1399
+ ]
1357
1400
  }
1358
- pathArr.pop();
1359
- return pathArr.join('.');
1360
1401
  }
1361
- return '#';
1362
- };
1402
+ }
1363
1403
 
1364
- const getValueByPath = function (formData, path) {
1365
- if (path === '#' || !path) {
1366
- return formData || {};
1367
- } else if (typeof path === 'string') {
1368
- return _$1.get(formData, path);
1369
- } else {
1370
- console.error('path has to be a string');
1371
- }
1372
- };
1373
1404
 
1374
- const isExpression = function (func) {
1375
- var pattern, reg1, reg2;
1376
- if (typeof func !== 'string') {
1377
- return false;
1405
+ async function getCardSchema(fields, options){
1406
+ let title = null;
1407
+ const titleField = _.find(fields, (f)=>{
1408
+ return f.name === options.labelFieldName;
1409
+ });
1410
+ if(titleField){
1411
+ title = await getFieldTpl(titleField, options);
1378
1412
  }
1379
- pattern = /^{{(.+)}}$/;
1380
- reg1 = /^{{(function.+)}}$/;
1381
- reg2 = /^{{(.+=>.+)}}$/;
1382
- if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {
1383
- return true;
1413
+ const listBody = await getListBody(_.filter(fields, (f)=>{
1414
+ return f.name != options.labelFieldName
1415
+ }), options);
1416
+ return {
1417
+ mode: "cards",
1418
+ name: "cards",
1419
+ draggable: false,
1420
+ headerToolbar: ['statistics', 'pagination'],
1421
+ defaultParams: getDefaultParams$1(options),
1422
+ syncLocation: false,
1423
+ keepItemSelectionOnPageChange: false,
1424
+ checkOnItemClick: false,
1425
+ labelTpl: `\${${options.labelFieldName}}`,
1426
+ card: {
1427
+ "type": "card",
1428
+ "header": {
1429
+ "title": title
1430
+ },
1431
+ "body": [...listBody.columns]
1432
+ }
1384
1433
  }
1385
- return false;
1386
- };
1434
+ }
1387
1435
 
1388
- const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {
1389
- var error, funcBody, parent, parentPath, str;
1436
+ const refUsersObjectName = "space_users";
1437
+ const refOrgsObjectName = "organizations";
1390
1438
 
1391
- if (formData === void 0) {
1392
- formData = {};
1439
+ async function getSource$1(field, ctx) {
1440
+ // 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} }"
1441
+ const data = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "value" },{name: "parent"}, { name: "name", alias: "label" }, { name: "children" }], {
1442
+ alias: "leftOptions",
1443
+ filters: "{__filters}"
1444
+ });
1445
+ data.query = data.query.replace(/,count\:.+/, "}");
1446
+ const childrenData = await getFindQuery({ name: refOrgsObjectName }, null, [{ name: "_id", alias: "ref" }], {
1447
+ alias: "children",
1448
+ filters: "{__filters}"
1449
+ });
1450
+ childrenData.query = childrenData.query.replace(/,count\:.+/, "}");
1451
+ data.query = data.query.replace(/}$/, "," + childrenData.query.replace(/{(.+)}/, "$1}"));
1452
+ const defaultValueOptionsData = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
1453
+ alias: "defaultValueOptions",
1454
+ filters: "{__options_filters}"
1455
+ });
1456
+ defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\:.+/, "}");
1457
+ data.query = data.query.replace(/}$/, "," + defaultValueOptionsData.query.replace(/{(.+)}/, "$1}"));
1458
+ let valueField = `${field.name}`;
1459
+ if(field._prefix){
1460
+ // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.
1461
+ valueField = `${field._prefix}${field.name}`;
1393
1462
  }
1394
- parentPath = getParentPath(dataPath);
1395
- parent = getValueByPath(formData, parentPath) || {};
1396
- if (typeof func === 'string') {
1397
- funcBody = func.substring(2, func.length - 2);
1398
- 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));
1399
- try {
1400
- return Function(str)();
1401
- } catch (_error) {
1402
- error = _error;
1403
- console.log(error, func, dataPath);
1404
- return func;
1405
- }
1406
- } else {
1407
- return func;
1463
+ if(ctx.fieldNamePrefix){
1464
+ // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__
1465
+ valueField = `${ctx.fieldNamePrefix}${valueField}`;
1408
1466
  }
1409
- };
1467
+ data.$value = `$${valueField}`;
1468
+ // data["&"] = "$$";
1410
1469
 
1411
- var frontend_field_group_generalization$1 = "Generalization";
1412
- var frontend_download$1 = "Download";
1413
- var frontend_form_save$1 = "Save";
1414
- var frontend_form_save_and_new$1 = "Save and New";
1415
- var frontend_form_cancel$1 = "Cancel";
1416
- var frontend_form_new$1 = "New";
1417
- var frontend_form_edit$1 = "Edit";
1418
- var frontend_form_select$1 = "Select";
1419
- var frontend_form_confirm$1 = "Confirm";
1420
- var frontend_form_delete$1 = "Delete";
1421
- var frontend_form_view$1 = "view";
1422
- var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
1423
- var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
1424
- var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
1425
- var frontend_display_type_is_table$1 = "Table";
1426
- var frontend_display_type_is_split$1 = "Split View";
1427
- var frontend_display_as$1 = "Displayed as";
1428
- var frontend_record_sum$1 = "items";
1429
- var frontend_button_reload_tooltip$1 = "Refresh";
1430
- var frontend_button_search_tooltip$1 = "Search";
1431
- var frontend_fields_filter_button_search$1 = "Search";
1432
- var frontend_fields_filter_button_settings$1 = "Set search options";
1433
- var frontend_button_listview_control_tooltip$1 = "List View Controls";
1434
- var frontend_button_listview_control_label$1 = "LIST VIEW CONTROLS";
1435
- var frontend_listview_control_columns$1 = "Show List";
1436
- var frontend_listview_control_columns_mobile_group$1 = "Mobile side";
1437
- var frontend_listview_control_clone_label$1 = "Clone";
1438
- var frontend_listview_control_clone_title$1 = "Clone List View";
1439
- var frontend_listview_control_clone_defaultData_label_start$1 = "Copy of";
1440
- var frontend_listview_control_clone_defaultData_label_end$1 = "";
1441
- var frontend_listview_control_delete_label$1 = "Delete";
1442
- 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?";
1443
- var frontend_listview_control_delete_message_success$1 = "Deletion successful";
1444
- var frontend_listview_control_filters$1 = "Filter settings";
1445
- var frontend_listview_control_filters_fields_extend$1 = "Conditional component 1";
1446
- var frontend_listview_control_new_label$1 = "New";
1447
- var frontend_listview_control_new_title$1 = "New List View";
1448
- var frontend_listview_control_new_message_success$1 = "Success";
1449
- var frontend_listview_control_new_message_failed$1 = "Failure";
1450
- var frontend_listview_control_rename_label$1 = "Rename";
1451
- var frontend_listview_control_rename_title$1 = "Rename List View";
1452
- var frontend_listview_control_share$1 = "Sharing Settings";
1453
- var frontend_listview_control_sort$1 = "Default sorting rule";
1454
- var frontend_export_excel$1 = "Export Excel";
1455
- var frontend_ercord_operation$1 = "Operation";
1456
- var frontend_import_data$1 = "Import data";
1457
- var frontend_import_data_object_name$1 = "Import object";
1458
- var frontend_import_data_queue_import$1 = "Data import";
1459
- var frontend_import_data_queue_import_description$1 = "Import description";
1460
- var frontend_import_data_queue_import_encoding$1 = "Character code";
1461
- var frontend_import_data_queue_import_template_url$1 = "Import template";
1462
- var frontend_import_data_file$1 = "Excel file";
1463
- var frontend_import_data_message_success$1 = "Importing has started...";
1464
- var frontend_import_data_message_failed$1 = "Import failed";
1465
- var frontend_record_detail_tab_detailed$1 = "Details";
1466
- var frontend_record_detail_tab_related$1 = "Related";
1467
- var frontend_all_apps$1 = "All apps";
1468
- var frontend_all_projects$1 = "All projects";
1469
- var frontend_application_launcher$1 = "Application launcher";
1470
- var frontend_menu$1 = "Menu";
1471
- var frontend_help$1 = "Help";
1472
- var frontend_setup$1 = "Setup";
1473
- var frontend_notifications$1 = "Notifications";
1474
- var frontend_notifications_allread$1 = "Mark all as read";
1475
- var frontend_notifications_allread_message$1 = "All marked as read";
1476
- var frontend_profile$1 = "Profile";
1477
- var frontend_about$1 = "About";
1478
- var frontend_log_out$1 = "Log out";
1479
- var frontend_listview_warning_start$1 = "The current ";
1480
- var frontend_listview_warning_end$1 = " view does not exist!";
1481
- var frontend_record_detail_related_list_warning$1 = "Missing parent object, parent record, or related list object property!";
1482
- var frontend_record_detail_related_lists_warning$1 = "Missing parent object, or parent record property!";
1483
- var frontend_record_detail_related_lists_info$1 = "No related child tables found";
1484
- var frontend_calendar_listWeek$1 = "List";
1485
- var frontend_message_no_permission_to_edit$1 = "You don't have permission to edit this record!";
1486
- var frontend_message_modification_successful$1 = "Modification successful!";
1487
- var frontend_message_modification_failed$1 = "Modification failed!";
1488
- var en_us = {
1489
- frontend_field_group_generalization: frontend_field_group_generalization$1,
1490
- frontend_download: frontend_download$1,
1491
- frontend_form_save: frontend_form_save$1,
1492
- frontend_form_save_and_new: frontend_form_save_and_new$1,
1493
- frontend_form_cancel: frontend_form_cancel$1,
1494
- frontend_form_new: frontend_form_new$1,
1495
- frontend_form_edit: frontend_form_edit$1,
1496
- frontend_form_select: frontend_form_select$1,
1497
- frontend_form_confirm: frontend_form_confirm$1,
1498
- frontend_form_delete: frontend_form_delete$1,
1499
- frontend_form_view: frontend_form_view$1,
1500
- frontend_delete_confirm_text: frontend_delete_confirm_text$1,
1501
- frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
1502
- frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
1503
- frontend_display_type_is_table: frontend_display_type_is_table$1,
1504
- frontend_display_type_is_split: frontend_display_type_is_split$1,
1505
- frontend_display_as: frontend_display_as$1,
1506
- frontend_record_sum: frontend_record_sum$1,
1507
- frontend_button_reload_tooltip: frontend_button_reload_tooltip$1,
1508
- frontend_button_search_tooltip: frontend_button_search_tooltip$1,
1509
- frontend_fields_filter_button_search: frontend_fields_filter_button_search$1,
1510
- frontend_fields_filter_button_settings: frontend_fields_filter_button_settings$1,
1511
- frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip$1,
1512
- frontend_button_listview_control_label: frontend_button_listview_control_label$1,
1513
- frontend_listview_control_columns: frontend_listview_control_columns$1,
1514
- frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group$1,
1515
- frontend_listview_control_clone_label: frontend_listview_control_clone_label$1,
1516
- frontend_listview_control_clone_title: frontend_listview_control_clone_title$1,
1517
- frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start$1,
1518
- frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end$1,
1519
- frontend_listview_control_delete_label: frontend_listview_control_delete_label$1,
1520
- frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text$1,
1521
- frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success$1,
1522
- frontend_listview_control_filters: frontend_listview_control_filters$1,
1523
- frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend$1,
1524
- frontend_listview_control_new_label: frontend_listview_control_new_label$1,
1525
- frontend_listview_control_new_title: frontend_listview_control_new_title$1,
1526
- frontend_listview_control_new_message_success: frontend_listview_control_new_message_success$1,
1527
- frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed$1,
1528
- frontend_listview_control_rename_label: frontend_listview_control_rename_label$1,
1529
- frontend_listview_control_rename_title: frontend_listview_control_rename_title$1,
1530
- frontend_listview_control_share: frontend_listview_control_share$1,
1531
- frontend_listview_control_sort: frontend_listview_control_sort$1,
1532
- frontend_export_excel: frontend_export_excel$1,
1533
- frontend_ercord_operation: frontend_ercord_operation$1,
1534
- frontend_import_data: frontend_import_data$1,
1535
- frontend_import_data_object_name: frontend_import_data_object_name$1,
1536
- frontend_import_data_queue_import: frontend_import_data_queue_import$1,
1537
- frontend_import_data_queue_import_description: frontend_import_data_queue_import_description$1,
1538
- frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding$1,
1539
- frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url$1,
1540
- frontend_import_data_file: frontend_import_data_file$1,
1541
- frontend_import_data_message_success: frontend_import_data_message_success$1,
1542
- frontend_import_data_message_failed: frontend_import_data_message_failed$1,
1543
- frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed$1,
1544
- frontend_record_detail_tab_related: frontend_record_detail_tab_related$1,
1545
- frontend_all_apps: frontend_all_apps$1,
1546
- frontend_all_projects: frontend_all_projects$1,
1547
- frontend_application_launcher: frontend_application_launcher$1,
1548
- frontend_menu: frontend_menu$1,
1549
- frontend_help: frontend_help$1,
1550
- frontend_setup: frontend_setup$1,
1551
- frontend_notifications: frontend_notifications$1,
1552
- frontend_notifications_allread: frontend_notifications_allread$1,
1553
- frontend_notifications_allread_message: frontend_notifications_allread_message$1,
1554
- frontend_profile: frontend_profile$1,
1555
- frontend_about: frontend_about$1,
1556
- frontend_log_out: frontend_log_out$1,
1557
- frontend_listview_warning_start: frontend_listview_warning_start$1,
1558
- frontend_listview_warning_end: frontend_listview_warning_end$1,
1559
- frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning$1,
1560
- frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning$1,
1561
- frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info$1,
1562
- frontend_calendar_listWeek: frontend_calendar_listWeek$1,
1563
- frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit$1,
1564
- frontend_message_modification_successful: frontend_message_modification_successful$1,
1565
- frontend_message_modification_failed: frontend_message_modification_failed$1
1566
- };
1470
+ const requestAdaptor = `
1471
+ var filters = [];
1472
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
1473
+ var defaultValue = api.data.$value;
1474
+ var optionsFiltersOp = "${field.multiple ? "in" : "="}";
1475
+ var optionsFilters = [["user", optionsFiltersOp, []]];
1476
+ if (defaultValue) {
1477
+ optionsFilters = [["user", optionsFiltersOp, defaultValue]];
1478
+ }
1479
+ api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
1480
+ return api;
1481
+ `;
1482
+ const adaptor = `
1483
+ const data = payload.data;
1484
+ const rows = data.leftOptions
1485
+ data.children = data.children.map(function (child) {
1486
+ // child.defer = !!(child.children && child.children.length);
1487
+ child.defer = true;
1488
+ delete child.children;
1489
+ return child;
1490
+ });
1567
1491
 
1568
- var frontend_field_group_generalization = "通用";
1569
- var frontend_download = "下载";
1570
- var frontend_form_save = "保存";
1571
- var frontend_form_save_and_new = "保存并新建";
1572
- var frontend_form_cancel = "取消";
1573
- var frontend_form_new = "新建";
1574
- var frontend_form_edit = "编辑";
1575
- var frontend_form_select = "选择";
1576
- var frontend_form_confirm = "确认";
1577
- var frontend_form_delete = "删除";
1578
- var frontend_form_view = "查看";
1579
- var frontend_delete_confirm_text = "确定要删除此项目?";
1580
- var frontend_delete_many_selected_required = "请选择要删除的项";
1581
- var frontend_delete_many_confirm_text = "确定要删除吗?";
1582
- var frontend_display_type_is_table = "表格";
1583
- var frontend_display_type_is_split = "分栏视图";
1584
- var frontend_display_as = "显示为";
1585
- var frontend_record_sum = "个项目";
1586
- var frontend_button_reload_tooltip = "刷新";
1587
- var frontend_button_search_tooltip = "搜索";
1588
- var frontend_fields_filter_button_search = "搜索";
1589
- var frontend_fields_filter_button_settings = "设置搜索项";
1590
- var frontend_button_listview_control_tooltip = "列表视图控制";
1591
- var frontend_button_listview_control_label = "列表视图控制";
1592
- var frontend_listview_control_columns = "显示的列";
1593
- var frontend_listview_control_columns_mobile_group = "手机端";
1594
- var frontend_listview_control_clone = "复制";
1595
- var frontend_listview_control_clone_label = "复制";
1596
- var frontend_listview_control_clone_title = "复制 列表视图";
1597
- var frontend_listview_control_clone_defaultData_label_start = "";
1598
- var frontend_listview_control_clone_defaultData_label_end = "的副本";
1599
- var frontend_listview_control_delete_label = "删除";
1600
- var frontend_listview_control_delete_confirm_text = "如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?";
1601
- var frontend_listview_control_delete_message_success = "删除成功";
1602
- var frontend_listview_control_filters = "过滤设置";
1603
- var frontend_listview_control_filters_fields_extend = "条件组件1";
1604
- var frontend_listview_control_new_label = "新建";
1605
- var frontend_listview_control_new_title = "新建 列表视图";
1606
- var frontend_listview_control_new_message_success = "成功";
1607
- var frontend_listview_control_new_message_failed = "失败";
1608
- var frontend_listview_control_rename_label = "重命名";
1609
- var frontend_listview_control_rename_title = "重命名 列表视图";
1610
- var frontend_listview_control_share = "共享设置";
1611
- var frontend_listview_control_sort = "默认排序规则";
1612
- var frontend_export_excel = "导出";
1613
- var frontend_ercord_operation = "操作";
1614
- var frontend_import_data = "导入数据";
1615
- var frontend_import_data_object_name = "导入对象";
1616
- var frontend_import_data_queue_import = "数据导入";
1617
- var frontend_import_data_queue_import_description = "导入描述";
1618
- var frontend_import_data_queue_import_encoding = "字符代码";
1619
- var frontend_import_data_queue_import_template_url = "导入模板";
1620
- var frontend_import_data_file = "Excel文件";
1621
- var frontend_import_data_message_success = "已开始导入...";
1622
- var frontend_import_data_message_failed = "导入失败";
1623
- var frontend_record_detail_tab_detailed = "详细";
1624
- var frontend_record_detail_tab_related = "相关";
1625
- var frontend_all_apps = "所有应用";
1626
- var frontend_all_projects = "所有项目";
1627
- var frontend_application_launcher = "应用程序启动器";
1628
- var frontend_menu = "菜单";
1629
- var frontend_help = "帮助";
1630
- var frontend_setup = "设置";
1631
- var frontend_notifications = "通知";
1632
- var frontend_notifications_allread = "全部标记为已读";
1633
- var frontend_notifications_allread_message = "已全部标记为已读";
1634
- var frontend_profile = "个人资料";
1635
- var frontend_about = "关于";
1636
- var frontend_log_out = "注销";
1637
- var frontend_listview_warning_start = "当前";
1638
- var frontend_listview_warning_end = "视图不存在!";
1639
- var frontend_record_detail_related_list_warning = "缺少父级对象、父级记录或相关列表对象属性!";
1640
- var frontend_record_detail_related_lists_warning = "缺少父级对象或父级记录属性!";
1641
- var frontend_record_detail_related_lists_info = "没有相关子表";
1642
- var frontend_calendar_listWeek = "列表";
1643
- var frontend_message_no_permission_to_edit = "您没有编辑该记录的权限!";
1644
- var frontend_message_modification_successful = "修改成功!";
1645
- var frontend_message_modification_failed = "修改失败!";
1646
- var zh_cn = {
1647
- frontend_field_group_generalization: frontend_field_group_generalization,
1648
- frontend_download: frontend_download,
1649
- frontend_form_save: frontend_form_save,
1650
- frontend_form_save_and_new: frontend_form_save_and_new,
1651
- frontend_form_cancel: frontend_form_cancel,
1652
- frontend_form_new: frontend_form_new,
1653
- frontend_form_edit: frontend_form_edit,
1654
- frontend_form_select: frontend_form_select,
1655
- frontend_form_confirm: frontend_form_confirm,
1656
- frontend_form_delete: frontend_form_delete,
1657
- frontend_form_view: frontend_form_view,
1658
- frontend_delete_confirm_text: frontend_delete_confirm_text,
1659
- frontend_delete_many_selected_required: frontend_delete_many_selected_required,
1660
- frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
1661
- frontend_display_type_is_table: frontend_display_type_is_table,
1662
- frontend_display_type_is_split: frontend_display_type_is_split,
1663
- frontend_display_as: frontend_display_as,
1664
- frontend_record_sum: frontend_record_sum,
1665
- frontend_button_reload_tooltip: frontend_button_reload_tooltip,
1666
- frontend_button_search_tooltip: frontend_button_search_tooltip,
1667
- frontend_fields_filter_button_search: frontend_fields_filter_button_search,
1668
- frontend_fields_filter_button_settings: frontend_fields_filter_button_settings,
1669
- frontend_button_listview_control_tooltip: frontend_button_listview_control_tooltip,
1670
- frontend_button_listview_control_label: frontend_button_listview_control_label,
1671
- frontend_listview_control_columns: frontend_listview_control_columns,
1672
- frontend_listview_control_columns_mobile_group: frontend_listview_control_columns_mobile_group,
1673
- frontend_listview_control_clone: frontend_listview_control_clone,
1674
- frontend_listview_control_clone_label: frontend_listview_control_clone_label,
1675
- frontend_listview_control_clone_title: frontend_listview_control_clone_title,
1676
- frontend_listview_control_clone_defaultData_label_start: frontend_listview_control_clone_defaultData_label_start,
1677
- frontend_listview_control_clone_defaultData_label_end: frontend_listview_control_clone_defaultData_label_end,
1678
- frontend_listview_control_delete_label: frontend_listview_control_delete_label,
1679
- frontend_listview_control_delete_confirm_text: frontend_listview_control_delete_confirm_text,
1680
- frontend_listview_control_delete_message_success: frontend_listview_control_delete_message_success,
1681
- frontend_listview_control_filters: frontend_listview_control_filters,
1682
- frontend_listview_control_filters_fields_extend: frontend_listview_control_filters_fields_extend,
1683
- frontend_listview_control_new_label: frontend_listview_control_new_label,
1684
- frontend_listview_control_new_title: frontend_listview_control_new_title,
1685
- frontend_listview_control_new_message_success: frontend_listview_control_new_message_success,
1686
- frontend_listview_control_new_message_failed: frontend_listview_control_new_message_failed,
1687
- frontend_listview_control_rename_label: frontend_listview_control_rename_label,
1688
- frontend_listview_control_rename_title: frontend_listview_control_rename_title,
1689
- frontend_listview_control_share: frontend_listview_control_share,
1690
- frontend_listview_control_sort: frontend_listview_control_sort,
1691
- frontend_export_excel: frontend_export_excel,
1692
- frontend_ercord_operation: frontend_ercord_operation,
1693
- frontend_import_data: frontend_import_data,
1694
- frontend_import_data_object_name: frontend_import_data_object_name,
1695
- frontend_import_data_queue_import: frontend_import_data_queue_import,
1696
- frontend_import_data_queue_import_description: frontend_import_data_queue_import_description,
1697
- frontend_import_data_queue_import_encoding: frontend_import_data_queue_import_encoding,
1698
- frontend_import_data_queue_import_template_url: frontend_import_data_queue_import_template_url,
1699
- frontend_import_data_file: frontend_import_data_file,
1700
- frontend_import_data_message_success: frontend_import_data_message_success,
1701
- frontend_import_data_message_failed: frontend_import_data_message_failed,
1702
- frontend_record_detail_tab_detailed: frontend_record_detail_tab_detailed,
1703
- frontend_record_detail_tab_related: frontend_record_detail_tab_related,
1704
- frontend_all_apps: frontend_all_apps,
1705
- frontend_all_projects: frontend_all_projects,
1706
- frontend_application_launcher: frontend_application_launcher,
1707
- frontend_menu: frontend_menu,
1708
- frontend_help: frontend_help,
1709
- frontend_setup: frontend_setup,
1710
- frontend_notifications: frontend_notifications,
1711
- frontend_notifications_allread: frontend_notifications_allread,
1712
- frontend_notifications_allread_message: frontend_notifications_allread_message,
1713
- frontend_profile: frontend_profile,
1714
- frontend_about: frontend_about,
1715
- frontend_log_out: frontend_log_out,
1716
- frontend_listview_warning_start: frontend_listview_warning_start,
1717
- frontend_listview_warning_end: frontend_listview_warning_end,
1718
- frontend_record_detail_related_list_warning: frontend_record_detail_related_list_warning,
1719
- frontend_record_detail_related_lists_warning: frontend_record_detail_related_lists_warning,
1720
- frontend_record_detail_related_lists_info: frontend_record_detail_related_lists_info,
1721
- frontend_calendar_listWeek: frontend_calendar_listWeek,
1722
- frontend_message_no_permission_to_edit: frontend_message_no_permission_to_edit,
1723
- frontend_message_modification_successful: frontend_message_modification_successful,
1724
- frontend_message_modification_failed: frontend_message_modification_failed
1492
+ var getTreeOptions = SteedosUI.getTreeOptions
1493
+ data.leftOptions = getTreeOptions(rows);
1494
+
1495
+
1496
+ var defaultValueOptions = data.defaultValueOptions;
1497
+ data.children = _.union(data.children, defaultValueOptions);
1498
+ delete data.defaultValueOptions;
1499
+ payload.data = { options: [data] };
1500
+ return payload;
1501
+ `;
1502
+ return {
1503
+ "method": "post",
1504
+ // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug
1505
+ // 见issue: https://github.com/baidu/amis/issues/6065
1506
+ // "url": graphql.getApi() + `?value=\${${field.multiple ? valueField + "|join" : valueField}}`,
1507
+ // "url": graphql.getApi() + `?value=\${editFormInited}`,
1508
+ "url": getApi$2(),
1509
+ "requestAdaptor": requestAdaptor,
1510
+ "adaptor": adaptor,
1511
+ "data": data,
1512
+ // "sendOn": `this.editFormInited`,
1513
+ "headers": {
1514
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1515
+ },
1516
+ }
1517
+ }
1518
+
1519
+ async function getDeferApi$1(field, ctx) {
1520
+ // data.query 最终格式 "{ \toptions:{__object_name}(filters:{__filters}){{__fields}} }"
1521
+ const data = await getFindQuery({ name: "{__object_name}" }, null, [], {
1522
+ alias: "options",
1523
+ // filters: "{__filters}",
1524
+ queryOptions: `filters: {__filters}, sort: "{__sort}"`
1525
+ });
1526
+ // 传入的默认过滤条件,比如[["name", "contains", ""]],将会作为基本过滤条件
1527
+ let filters = field.filters;
1528
+ if(typeof filters === "string"){
1529
+ filters = new Function(`return ${filters}`);
1530
+ filters = filters();
1531
+ }
1532
+ if(typeof filters === "function"){
1533
+ filters = filters(field);
1534
+ }
1535
+ data.query = data.query.replace(/,count\:.+/, "}");
1536
+ // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换
1537
+ data.query = data.query.replace("{_id}", "{{__fields}}");
1538
+ const requestAdaptor = `
1539
+ var dep = api.query.dep;
1540
+ var ref = api.query.ref;
1541
+ var term = api.query.term;
1542
+ var filters;
1543
+ var objectName;
1544
+ var fields;
1545
+ var sort = "";
1546
+ if (dep) {
1547
+ objectName = "${refOrgsObjectName}";
1548
+ fields = "value:_id,label:name,children";
1549
+ filters = [['parent', '=', dep]];
1550
+ sort = "${ctx.orgsSort}";
1551
+ }
1552
+ else if (ref) {
1553
+ objectName = "${refUsersObjectName}";
1554
+ // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
1555
+ fields = "_id,value:user,label:name";
1556
+ // fields = "user,name,value:user,label:name";
1557
+ filters = [['user_accepted', '=', true]];
1558
+ var defaultFilters = ${filters && JSON.stringify(filters)};
1559
+ if(defaultFilters){
1560
+ filters.push(defaultFilters);
1561
+ }
1562
+ filters.push(['organizations_parents', '=', ref]);
1563
+ sort = "${ctx.usersSort}";
1564
+ }
1565
+ 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());
1566
+ return api;
1567
+ `;
1568
+ const adaptor = `
1569
+ if (api.query.dep) {
1570
+ // 展开组织时才需要根据children值设置defer属性
1571
+ const data = payload.data;
1572
+ data.options = data.options.map(function (option) {
1573
+ option.defer = !!(option.children && option.children.length);
1574
+ delete option.children;
1575
+ return option;
1576
+ });
1577
+ payload.data = data;
1578
+ }
1579
+ return payload;
1580
+ `;
1581
+ return {
1582
+ "method": "post",
1583
+ "url": getApi$2() + "&ref=${ref}&dep=${value}",
1584
+ "requestAdaptor": requestAdaptor,
1585
+ "adaptor": adaptor,
1586
+ "data": data,
1587
+ "headers": {
1588
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1589
+ }
1590
+ }
1591
+ }
1592
+
1593
+ async function getSearchApi(field, ctx) {
1594
+ // data.query 最终格式 "{ \toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}"
1595
+ // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
1596
+ const data = await getFindQuery({ name: refUsersObjectName }, null, [{ name: "user", alias: "value" }, { name: "name", alias: "label" }], {
1597
+ alias: "options",
1598
+ // filters: "{__filters}",
1599
+ queryOptions: `filters: {__filters}, sort: "{__sort}"`
1600
+ });
1601
+ data.query = data.query.replace(/,count\:.+/, "}");
1602
+ // 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
1603
+ const filters = field.filters;
1604
+ const requestAdaptor = `
1605
+ var term = api.query.term;
1606
+ var filters;
1607
+ var sort = "";
1608
+ if (term) {
1609
+ filters = [['user_accepted', '=', true]];
1610
+ var defaultFilters = ${filters && JSON.stringify(filters)};
1611
+ if(defaultFilters){
1612
+ filters.push(defaultFilters);
1613
+ }
1614
+ var fieldsForSearch = ["name", "username", "email", "mobile"];
1615
+ var termFilters = [];
1616
+ fieldsForSearch.forEach(function (field) {
1617
+ termFilters.push([field, 'contains', term]);
1618
+ termFilters.push("or");
1619
+ });
1620
+ termFilters.pop();
1621
+ filters.push(termFilters);
1622
+ sort = "${ctx.usersSort}";
1623
+ }
1624
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());
1625
+ return api;
1626
+ `;
1627
+ return {
1628
+ "method": "post",
1629
+ "url": getApi$2() + "?term=${term}",
1630
+ "requestAdaptor": requestAdaptor,
1631
+ "data": data,
1632
+ "headers": {
1633
+ "Authorization": "Bearer ${context.tenantId},${context.authToken}"
1634
+ }
1635
+ }
1636
+ }
1637
+
1638
+ function getRefListViewSort$1(refObject){
1639
+ const listView = ___namespace.find(
1640
+ refObject.list_views,
1641
+ (view, name) => name === "all"
1642
+ );
1643
+ let sort = "";
1644
+ if(listView){
1645
+ sort = getListViewSort(listView);
1646
+ }
1647
+ return sort;
1648
+ }
1649
+
1650
+ async function getSelectUserSchema(field, readonly, ctx) {
1651
+ if (!field) {
1652
+ return {}
1653
+ }
1654
+
1655
+ if (!ctx) {
1656
+ ctx = {};
1657
+ }
1658
+ const amisSchema = {
1659
+ "type": getAmisStaticFieldType('select', readonly)
1660
+ };
1661
+
1662
+ if (readonly) {
1663
+ amisSchema.tpl = await getLookupTpl(field, ctx);
1664
+ }
1665
+ else {
1666
+ const refUsersObjectConfig = await getUISchema(refUsersObjectName);
1667
+ ctx.usersSort = getRefListViewSort$1(refUsersObjectConfig);
1668
+ const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);
1669
+ ctx.orgsSort = getRefListViewSort$1(refOrgsObjectConfig);
1670
+ Object.assign(amisSchema, {
1671
+ // "labelField": "name",
1672
+ // "valueField": "user",
1673
+ "multiple": field.multiple,
1674
+ "searchable": field.searchable,
1675
+ "selectMode": "associated",
1676
+ "leftMode": "tree",
1677
+ "extractValue": true,
1678
+ "clearable": true,
1679
+ "source": await getSource$1(field, ctx),
1680
+ "deferApi": await getDeferApi$1(field, ctx),
1681
+ "searchApi": await getSearchApi(field, ctx)
1682
+ });
1683
+ if(field.multiple){
1684
+ // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
1685
+ Object.assign(amisSchema, {
1686
+ "joinValues": false,
1687
+ });
1688
+ }
1689
+ if (typeof amisSchema.searchable !== "boolean") {
1690
+ amisSchema.searchable = true;
1691
+ }
1692
+
1693
+ if(ctx.value){
1694
+ amisSchema.value = ctx.value;
1695
+ }
1696
+
1697
+ const onEvent = field.onEvent;
1698
+ if (onEvent) {
1699
+ amisSchema.onEvent = onEvent;
1700
+ }
1701
+ }
1702
+ return amisSchema;
1703
+ }
1704
+
1705
+ const globalTag = '__G_L_O_B_A_L__';
1706
+
1707
+ const getParentPath = function (path) {
1708
+ var pathArr;
1709
+ if (typeof path === 'string') {
1710
+ pathArr = path.split('.');
1711
+ if (pathArr.length === 1) {
1712
+ return '#';
1713
+ }
1714
+ pathArr.pop();
1715
+ return pathArr.join('.');
1716
+ }
1717
+ return '#';
1725
1718
  };
1726
1719
 
1727
- const resources = {
1728
- "en-US": {
1729
- translation: en_us
1730
- },
1731
- "zh-CN": {
1732
- translation: zh_cn
1733
- }
1720
+ const getValueByPath = function (formData, path) {
1721
+ if (path === '#' || !path) {
1722
+ return formData || {};
1723
+ } else if (typeof path === 'string') {
1724
+ return _$1.get(formData, path);
1725
+ } else {
1726
+ console.error('path has to be a string');
1727
+ }
1728
+ };
1729
+
1730
+ const isExpression = function (func) {
1731
+ var pattern, reg1, reg2;
1732
+ if (typeof func !== 'string') {
1733
+ return false;
1734
+ }
1735
+ pattern = /^{{(.+)}}$/;
1736
+ reg1 = /^{{(function.+)}}$/;
1737
+ reg2 = /^{{(.+=>.+)}}$/;
1738
+ if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {
1739
+ return true;
1740
+ }
1741
+ return false;
1734
1742
  };
1735
- var locale = "zh-CN";
1736
- if (typeof window != 'undefined') {
1737
- if (window.Builder?.settings.locale == "en-us") {
1738
- locale = "en-US";
1739
- } else if (window.Builder?.settings.locale == "zh-cn") {
1740
- locale = "zh-CN";
1741
- }
1742
- }
1743
1743
 
1744
+ const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {
1745
+ var error, funcBody, parent, parentPath, str;
1744
1746
 
1745
- i18next__default["default"]
1746
- .use(reactI18next.initReactI18next)
1747
- .init({
1748
- resources,
1749
- lng: locale,
1750
- interpolation: {
1751
- escapeValue: false
1747
+ if (formData === void 0) {
1748
+ formData = {};
1752
1749
  }
1753
- });
1750
+ parentPath = getParentPath(dataPath);
1751
+ parent = getValueByPath(formData, parentPath) || {};
1752
+ if (typeof func === 'string') {
1753
+ funcBody = func.substring(2, func.length - 2);
1754
+ 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));
1755
+ try {
1756
+ return Function(str)();
1757
+ } catch (_error) {
1758
+ error = _error;
1759
+ console.log(error, func, dataPath);
1760
+ return func;
1761
+ }
1762
+ } else {
1763
+ return func;
1764
+ }
1765
+ };
1754
1766
 
1755
1767
  /*
1756
1768
  * @Author: baozhoutao@steedos.com
1757
1769
  * @Date: 2022-11-01 15:51:00
1758
- * @LastEditors: liaodaxue
1759
- * @LastEditTime: 2023-06-06 11:12:33
1770
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
1771
+ * @LastEditTime: 2023-06-28 23:19:41
1760
1772
  * @Description:
1761
1773
  */
1762
1774
 
@@ -1807,6 +1819,16 @@
1807
1819
  return {
1808
1820
  data: formSchema
1809
1821
  };
1822
+ `;
1823
+ const onDialogCancelScript = `
1824
+ // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口
1825
+ // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常
1826
+ setTimeout(function(){
1827
+ doAction({
1828
+ "actionType": "cancel",
1829
+ "componentId": "object_actions_drawer_${uiSchema.name}"
1830
+ });
1831
+ }, 200);
1810
1832
  `;
1811
1833
  return {
1812
1834
  "type": "service",
@@ -1868,6 +1890,17 @@
1868
1890
  "closeOnEsc": false,
1869
1891
  "closeOnOutside": false,
1870
1892
  "size": "lg",
1893
+ "onEvent": {
1894
+ "cancel": {
1895
+ "actions": [
1896
+ {
1897
+ "actionType": "custom",
1898
+ "script": onDialogCancelScript,
1899
+ "expression": "${window:innerWidth < 768}",
1900
+ }
1901
+ ]
1902
+ }
1903
+ },
1871
1904
  "actions": [
1872
1905
  {
1873
1906
  type: 'button',
@@ -1930,7 +1963,7 @@
1930
1963
  * @Author: baozhoutao@steedos.com
1931
1964
  * @Date: 2022-11-01 15:49:58
1932
1965
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
1933
- * @LastEditTime: 2023-03-27 11:36:49
1966
+ * @LastEditTime: 2023-06-28 23:22:31
1934
1967
  * @Description:
1935
1968
  */
1936
1969
 
@@ -1959,6 +1992,17 @@
1959
1992
  ? JSON.parse(page.schema)
1960
1993
  : page.schema;
1961
1994
  }
1995
+
1996
+ const onDialogCancelScript = `
1997
+ // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口
1998
+ // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击编辑按钮的时候异常
1999
+ setTimeout(function(){
2000
+ doAction({
2001
+ "actionType": "cancel",
2002
+ "componentId": "object_actions_drawer_${uiSchema.name}"
2003
+ });
2004
+ }, 200);
2005
+ `;
1962
2006
 
1963
2007
  return {
1964
2008
  type: "service",
@@ -1982,6 +2026,17 @@
1982
2026
  closeOnOutside: false,
1983
2027
  showCloseButton: true,
1984
2028
  size: "lg",
2029
+ "onEvent": {
2030
+ "cancel": {
2031
+ "actions": [
2032
+ {
2033
+ "actionType": "custom",
2034
+ "script": onDialogCancelScript,
2035
+ "expression": "${window:innerWidth < 768}",
2036
+ }
2037
+ ]
2038
+ }
2039
+ },
1985
2040
  },
1986
2041
  },
1987
2042
  ],
@@ -2278,6 +2333,7 @@
2278
2333
  label: i18next__default["default"].t('frontend_import_data_file'),
2279
2334
  required: true,
2280
2335
  type: "input-file",
2336
+ accept: ".xlsx,.xls",
2281
2337
  className: "m-1",
2282
2338
  labelClassName: "text-left",
2283
2339
  clearValueOnHidden: true,
@@ -2941,7 +2997,8 @@
2941
2997
  "actionType": "drawer",
2942
2998
  "drawer": {
2943
2999
  "type": "drawer",
2944
- "title": "操作",
3000
+ "title": i18next__default["default"].t('frontend_operation'),
3001
+ "id": "object_actions_drawer_" + objectSchema.name,
2945
3002
  "body": [
2946
3003
  {
2947
3004
  "type": "button-group",
@@ -2964,7 +3021,6 @@
2964
3021
  "size": "lg"
2965
3022
  }
2966
3023
  ],
2967
- "id": "u:9815f7366b9f",
2968
3024
  "position": "bottom",
2969
3025
  "closeOnOutside": true,
2970
3026
  "resizable": false,
@@ -2975,8 +3031,7 @@
2975
3031
  }
2976
3032
  ]
2977
3033
  }
2978
- },
2979
- "id": "u:ee7c7929e6ae"
3034
+ }
2980
3035
  }
2981
3036
  }else {
2982
3037
  if(moreButtons.length > 0){
@@ -3007,7 +3062,8 @@
3007
3062
  "actionType": "drawer",
3008
3063
  "drawer": {
3009
3064
  "type": "drawer",
3010
- "title": "操作",
3065
+ "title": i18next__default["default"].t('frontend_operation'),
3066
+ "id": "object_actions_drawer_" + objectSchema.name,
3011
3067
  "body": [
3012
3068
  {
3013
3069
  "type": "button-group",
@@ -3031,7 +3087,6 @@
3031
3087
  "size": "lg"
3032
3088
  }
3033
3089
  ],
3034
- "id": "u:9815f7366b9f",
3035
3090
  "position": "bottom",
3036
3091
  "closeOnOutside": true,
3037
3092
  "resizable": false,
@@ -3042,8 +3097,7 @@
3042
3097
  }
3043
3098
  ]
3044
3099
  }
3045
- },
3046
- "id": "u:ee7c7929e6ae"
3100
+ }
3047
3101
  }
3048
3102
  }else {
3049
3103
  return ___default["default"].map(buttons, (button) => {
@@ -3071,7 +3125,8 @@
3071
3125
  "actionType": "drawer",
3072
3126
  "drawer": {
3073
3127
  "type": "drawer",
3074
- "title": "操作",
3128
+ "title": i18next__default["default"].t('frontend_operation'),
3129
+ "id": "object_actions_drawer_" + objectSchema.name,
3075
3130
  "body": [
3076
3131
  {
3077
3132
  "type": "button-group",
@@ -3719,6 +3774,28 @@
3719
3774
  let amisButtonsSchema = getObjectListViewButtonsSchemas(objectSchema, {formFactor: ctx.formFactor});
3720
3775
  const reg = new RegExp('_', 'g');
3721
3776
  const standardIcon = icon && icon.replace(reg, '-');
3777
+ const standardNewButton = _.find(amisButtonsSchema, { name: "standard_new" });
3778
+ const buttonSchema = [{
3779
+ "type": "flex",
3780
+ "items": amisButtonsSchema,
3781
+ "visibleOn": "${display == 'split'?false:true}"
3782
+ }];
3783
+ if(ctx.formFactor !== 'SMALL'){
3784
+ buttonSchema.push({
3785
+ "type": "flex",
3786
+ "items":[
3787
+ standardNewButton,
3788
+ {
3789
+ "type": "dropdown-button",
3790
+ "buttons": Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== "standard_new"):{},
3791
+ "menuClassName": "p-none split-dropdown-buttons",
3792
+ "align": "right",
3793
+ "size": "sm"
3794
+ }
3795
+ ],
3796
+ "visibleOn": "${display == 'split'?true:false}"
3797
+ });
3798
+ }
3722
3799
  return {
3723
3800
  "type": "grid",
3724
3801
  "columns": [
@@ -3769,10 +3846,7 @@
3769
3846
  "md": "auto"
3770
3847
  },
3771
3848
  {
3772
- "body": {
3773
- "type": "flex",
3774
- "items": amisButtonsSchema,
3775
- },
3849
+ "body": buttonSchema,
3776
3850
  "md": "auto",
3777
3851
  "valign": "middle",
3778
3852
  }
@@ -5184,6 +5258,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5184
5258
  "type": "button",
5185
5259
  "align": "right",
5186
5260
  "tooltip": i18next__default["default"].t('frontend_button_reload_tooltip'),
5261
+ "tooltipPlacement": "top",
5187
5262
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
5188
5263
  "label": "",
5189
5264
  "icon": "fa fa-sync",
@@ -5203,6 +5278,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5203
5278
  "label": i18next__default["default"].t('frontend_button_search_tooltip'),
5204
5279
  "icon": "fa fa-search",
5205
5280
  "type": "button",
5281
+ "tooltipPlacement": "top",
5206
5282
  "tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
5207
5283
  "badge": {
5208
5284
  "offset": [
@@ -5249,7 +5325,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5249
5325
  "type": "reload",
5250
5326
  "align": "right",
5251
5327
  "tooltip": i18next__default["default"].t('frontend_button_reload_tooltip'),
5252
- "tooltipPlacement": "bottom",
5328
+ "tooltipPlacement": "top",
5253
5329
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500"
5254
5330
  },
5255
5331
  // getExportExcelToolbarButtonSchema(),
@@ -5259,7 +5335,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5259
5335
  "label": i18next__default["default"].t('frontend_button_search_tooltip'),
5260
5336
  "icon": "fa fa-search",
5261
5337
  "tooltip": i18next__default["default"].t('frontend_button_search_tooltip'),
5262
- "tooltipPlacement": "bottom",
5338
+ "tooltipPlacement": "top",
5263
5339
  "type": "button",
5264
5340
  "badge": {
5265
5341
  "offset": [
@@ -5648,6 +5724,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5648
5724
  const fieldsArr = [];
5649
5725
 
5650
5726
  const listName = "all";
5727
+
5728
+ const isMobile = window.innerWidth < 768;
5651
5729
 
5652
5730
  const listView = ___namespace.find(
5653
5731
  refObjectConfig.list_views,
@@ -5724,6 +5802,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5724
5802
 
5725
5803
  source.data.$term = "$term";
5726
5804
  source.data.$self = "$$";
5805
+
5727
5806
 
5728
5807
  source.requestAdaptor = `
5729
5808
  const selfData = JSON.parse(JSON.stringify(api.data.$self));
@@ -5759,6 +5838,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5759
5838
  }
5760
5839
  }
5761
5840
 
5841
+
5762
5842
  if(allowSearchFields){
5763
5843
  allowSearchFields.forEach(function(key){
5764
5844
  const keyValue = selfData[key];
@@ -5874,7 +5954,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5874
5954
  pickerSchema.affixHeader = false;
5875
5955
 
5876
5956
  var headerToolbarItems = [];
5877
- const isMobile = window.innerWidth < 768;
5878
5957
  if(referenceTo.objectName === "space_users" && field.reference_to_field === "user" && !isMobile){
5879
5958
  headerToolbarItems = getLookupSapceUserTreeSchema();
5880
5959
  pickerSchema["style"] = {
@@ -5955,7 +6034,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
5955
6034
  }
5956
6035
 
5957
6036
  const ctx = ${JSON.stringify(ctx)};
5958
- const componentId = ctx.defaults.formSchema.id ? 'service-'+ctx.defaults.formSchema.id : 'new-'+ctx.defaults.formSchema.objectApiName;
6037
+ const componentId = ctx.defaults.formSchema.id;
5959
6038
  doAction({
5960
6039
  actionType: 'setValue',
5961
6040
  componentId: componentId,
@@ -6209,6 +6288,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6209
6288
  // ids人员点选模式
6210
6289
  return await lookupToAmisIdsPicker(field, readonly, ctx);
6211
6290
  }
6291
+ if(!field.filters || field.filters.length == 0){
6292
+ field.filters = [["user_accepted", "=", true]];
6293
+ }else {
6294
+ field.filters = [ ["user_accepted", "=", true], "and", field.filters ];
6295
+ }
6212
6296
  // 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口
6213
6297
  // return await lookupToAmisSelectUser(field, readonly, ctx);
6214
6298
  }
@@ -6349,7 +6433,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6349
6433
  * @Author: baozhoutao@steedos.com
6350
6434
  * @Date: 2023-01-13 17:27:54
6351
6435
  * @LastEditors: liaodaxue
6352
- * @LastEditTime: 2023-06-16 15:58:21
6436
+ * @LastEditTime: 2023-06-30 10:29:52
6353
6437
  * @Description:
6354
6438
  */
6355
6439
 
@@ -6357,12 +6441,16 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
6357
6441
  const getMarkdownFieldSchema = (field, readonly, ctx)=>{
6358
6442
  if(readonly){
6359
6443
  return {
6360
- "type": "markdown",
6361
- "name": field.name,
6362
- "options": {
6363
- "linkify": true,
6364
- "html": true,
6365
- "breaks": true
6444
+ "type": "control",
6445
+ "label": field.label,
6446
+ "body": {
6447
+ "type": "markdown",
6448
+ "name": field.name,
6449
+ "options": {
6450
+ "linkify": true,
6451
+ "html": true,
6452
+ "breaks": true
6453
+ }
6366
6454
  }
6367
6455
  }
6368
6456
  }else {
@@ -7443,6 +7531,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7443
7531
  async function getTableColumns(fields, options){
7444
7532
  const columns = [{name: '_index',type: 'text', width: 32, placeholder: ""}];
7445
7533
  const allowEdit = options.permissions?.allowEdit && options.permissions?.modifyAllRecords && !options.isLookup && options.enable_inline_edit != false;
7534
+ const defaultWidth = "unset";//用于使table内的td标签下生成div,实现将快速编辑按钮固定在右侧的效果,并不是为了unset效果
7446
7535
  for (const field of fields) {
7447
7536
  //增加quickEdit属性,实现快速编辑
7448
7537
  const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
@@ -7492,16 +7581,19 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7492
7581
  label: field.label,
7493
7582
  width: field.width,
7494
7583
  toggled: field.toggled,
7495
- className:"whitespace-nowrap"
7584
+ static: true,
7585
+ className:"whitespace-nowrap",
7586
+ quickEdit: quickEditSchema
7496
7587
  }, field.amis, {name: field.name}));
7497
7588
  }else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){
7498
7589
  columns.push(Object.assign({}, {
7499
7590
  type: "switch",
7500
7591
  name: field.name,
7501
7592
  label: field.label,
7502
- width: field.width,
7593
+ width: field.width || defaultWidth,
7503
7594
  toggled: field.toggled,
7504
7595
  quickEdit: quickEditSchema,
7596
+ static: true,
7505
7597
  className:"whitespace-nowrap",
7506
7598
  ...getAmisFileReadonlySchema(field)
7507
7599
  }, field.amis, {name: field.name}));
@@ -7514,9 +7606,10 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7514
7606
  label: field.label,
7515
7607
  map: map,
7516
7608
  sortable: field.sortable,
7517
- width: field.width,
7609
+ width: field.width || defaultWidth,
7518
7610
  toggled: field.toggled,
7519
7611
  className:"whitespace-nowrap",
7612
+ static: true,
7520
7613
  quickEdit: quickEditSchema
7521
7614
  }, field.amis, {name: field.name}));
7522
7615
  }
@@ -7543,11 +7636,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7543
7636
  label: field.label,
7544
7637
  sortable: field.sortable,
7545
7638
  // searchable: field.searchable,
7546
- width: field.width,
7639
+ width: field.width || defaultWidth,
7547
7640
  type: type,
7548
7641
  tpl: tpl,
7549
7642
  toggled: field.toggled,
7550
7643
  className,
7644
+ static: true,
7551
7645
  quickEdit: quickEditSchema,
7552
7646
  options: field.type === 'html' ? {html: true} : null
7553
7647
  // toggled: true
@@ -7824,7 +7918,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
7824
7918
  }
7825
7919
  return {
7826
7920
  type: 'operation',
7827
- label: i18next__default["default"].t('frontend_ercord_operation'),
7921
+ label: i18next__default["default"].t('frontend_operation'),
7828
7922
  fixed: 'right',
7829
7923
  labelClassName: 'text-center',
7830
7924
  className: 'text-center steedos-listview-operation w-20',
@@ -8296,7 +8390,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
8296
8390
  else{
8297
8391
  return {
8298
8392
  status: 2,
8299
- msg: "无法找到记录"
8393
+ msg: "${i18next__default["default"].t('frontend_no_records_found')}"
8300
8394
  }
8301
8395
  }
8302
8396
  }
@@ -9095,8 +9189,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9095
9189
  /*
9096
9190
  * @Author: baozhoutao@steedos.com
9097
9191
  * @Date: 2022-05-26 16:02:08
9098
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
9099
- * @LastEditTime: 2023-06-04 15:49:23
9192
+ * @LastEditors: liaodaxue
9193
+ * @LastEditTime: 2023-06-29 17:27:19
9100
9194
  * @Description:
9101
9195
  */
9102
9196
 
@@ -9190,7 +9284,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9190
9284
  const section = await getSection(formFields, permissionFields, fieldSchemaArray, key, ctx);
9191
9285
  if (section.body.length > 0) {
9192
9286
  if (section.visibleOn) {
9193
- sectionVisibleOns.push(section.visibleOn);
9287
+ sectionVisibleOns.push("("+section.visibleOn+")");
9194
9288
  }
9195
9289
  else {
9196
9290
  sectionVisibleOns.push("true");
@@ -9528,8 +9622,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9528
9622
  if(___default["default"].has(formSchema, 'className')){
9529
9623
  formSchema.className = 'steedos-amis-form';
9530
9624
  }
9625
+ if(!formSchema.id){
9626
+ formSchema.id = 'form_' + objectSchema.name;
9627
+ }
9531
9628
  const amisSchema = {
9532
9629
  type: 'service',
9630
+ id: `service_${formSchema.id}`,
9533
9631
  className: 'p-0',
9534
9632
  name: `page_edit_${recordId}`,
9535
9633
  api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),
@@ -9600,11 +9698,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9600
9698
  }
9601
9699
  })]
9602
9700
  };
9603
- if(formSchema.id){
9604
- amisSchema.id = `service-${formSchema.id}`;
9605
- }else {
9606
- amisSchema.id = `new-${objectSchema.name}`;
9607
- }
9608
9701
  return amisSchema;
9609
9702
  }
9610
9703
 
@@ -9892,7 +9985,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
9892
9985
  uiSchema: relatedObjectUiSchema,
9893
9986
  amisSchema: {
9894
9987
  "type": "alert",
9895
- "body": `未找到与相关列表对象${relatedObjectName}关联的相关表字段`,
9988
+ "body": `${i18next__default["default"].t('frontend_objects_related_alert_start')} ${relatedObjectName} ${i18next__default["default"].t('frontend_objects_related_alert_end')}`,
9896
9989
  "level": "warning",
9897
9990
  "showIcon": true,
9898
9991
  "className": "mb-3"