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