@steedos-widgets/amis-lib 6.3.12-beta.10 → 6.3.12-beta.12

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.esm.js CHANGED
@@ -6144,11 +6144,30 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6144
6144
  const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
6145
6145
  const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
6146
6146
  const onSearchScript = `
6147
- // console.log("===onSearchScript=form==");
6147
+ let isLookup = event.data.isLookup;
6148
+ let __lookupField = event.data.__lookupField;
6148
6149
  const scope = event.context.scoped;
6150
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
6149
6151
  var filterForm = scope.parent.parent.getComponents().find(function(n){
6150
6152
  return n.props.type === "form";
6151
6153
  });
6154
+ // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取,因为本地存储中的过滤条件自动填充到表单上时filterForm.getValues()拿不到。
6155
+ let filterFormValues = event.data;
6156
+ // 同步__changedFilterFormValues中的值
6157
+ // crud && crud.setData({__changedFilterFormValues: {}});
6158
+ let __changedFilterFormValuesKey = "__changedFilterFormValues";
6159
+ if(isLookup && __lookupField){
6160
+ let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
6161
+ if(__lookupField.reference_to_field){
6162
+ lookupTag += "__" + __lookupField.reference_to_field;
6163
+ }
6164
+ __changedFilterFormValuesKey += lookupTag;
6165
+ }
6166
+ if(crud){
6167
+ let crudData = crud.getData();
6168
+ crudData[__changedFilterFormValuesKey] = filterFormValues;
6169
+ crud.setData(crudData);
6170
+ }
6152
6171
  filterForm.handleFormSubmit(event);
6153
6172
  // var filterFormValues = filterForm.getValues();
6154
6173
  // var listView = scope.parent.parent.parent.getComponents().find(function(n){
@@ -6197,11 +6216,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6197
6216
  }
6198
6217
  filterService.setData({showFieldsFilter});
6199
6218
  // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了
6200
- // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
6201
- let filterFormValues = event.data;
6202
6219
  let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
6203
- let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
6204
- let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
6220
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
6205
6221
  crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
6206
6222
  `;
6207
6223
  const onCancelScript = `
@@ -6287,7 +6303,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
6287
6303
 
6288
6304
  // 移除搜索按钮上的红点
6289
6305
  // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
6290
- let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
6306
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
6291
6307
  crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
6292
6308
  `;
6293
6309
  const dataProviderInited = `
@@ -7586,7 +7602,7 @@ async function getObjectListHeaderFieldsFilterBar(objectSchema, listViewName, ct
7586
7602
  * @param {*} objectSchema 对象UISchema
7587
7603
  * @returns amisSchema
7588
7604
  */
7589
- function getObjectListHeader$1(objectSchema, listViewName, ctx) {
7605
+ function getObjectListHeader(objectSchema, listViewName, ctx) {
7590
7606
  if (!ctx) {
7591
7607
  ctx = {};
7592
7608
  }
@@ -8915,7 +8931,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
8915
8931
  // console.log("==search=onChangeScript===");
8916
8932
  const scope = event.context.scoped;
8917
8933
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
8918
- // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
8934
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
8919
8935
  let __changedSearchBoxValues = {};
8920
8936
  __changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
8921
8937
  // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
@@ -9282,10 +9298,10 @@ async function getObjectFilter(objectSchema, fields, options) {
9282
9298
  let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
9283
9299
  let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
9284
9300
  // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
9285
- let filterFormValues = filterFormService.getData()
9301
+ let filterFormValues = filterFormService.getData();
9286
9302
  let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
9287
9303
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
9288
- let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
9304
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
9289
9305
  crudService && crudService.setData({isFieldsFilterEmpty});
9290
9306
  `;
9291
9307
  let onChangeScript = `
@@ -9300,7 +9316,7 @@ async function getObjectFilter(objectSchema, fields, options) {
9300
9316
  filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
9301
9317
  let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
9302
9318
  const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
9303
- // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
9319
+ // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
9304
9320
  // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
9305
9321
  // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
9306
9322
  // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
@@ -9656,7 +9672,7 @@ async function getObjectCRUD(objectSchema, fields, options){
9656
9672
  className: crudModeClassName,
9657
9673
  //目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}
9658
9674
  id: `service_${id}`,
9659
- name: `page`,
9675
+ name: "service_object_table_crud",
9660
9676
  data: options.amisData,
9661
9677
  body: body,
9662
9678
  //监听广播事件,重算crud高度
@@ -10003,8 +10019,8 @@ const getRecordPermissions = async (objectName, recordId)=>{
10003
10019
  /*
10004
10020
  * @Author: baozhoutao@steedos.com
10005
10021
  * @Date: 2022-07-05 15:55:39
10006
- * @LastEditors: baozhoutao@steedos.com
10007
- * @LastEditTime: 2024-02-18 14:46:50
10022
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
10023
+ * @LastEditTime: 2025-01-08 13:32:51
10008
10024
  * @Description:
10009
10025
  */
10010
10026
 
@@ -10078,7 +10094,7 @@ async function getObjectRelatedList(
10078
10094
 
10079
10095
  // 获取单个相关表
10080
10096
  async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObjectName, relatedKey, ctx){
10081
- let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on } = ctx;
10097
+ let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on, enableHeaderToolbar } = ctx;
10082
10098
  // console.log('getRecordDetailRelatedListSchema==>',objectName,recordId,relatedObjectName)
10083
10099
  const relatedObjectUiSchema = await getUISchema(relatedObjectName);
10084
10100
  if(!relatedObjectUiSchema){
@@ -10143,6 +10159,10 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
10143
10159
  let headerToolbar = [];
10144
10160
  if(!isMobile){
10145
10161
  headerToolbar.push("bulkActions");
10162
+ if (enableHeaderToolbar) {
10163
+ // 通过 enableHeaderToolbar = true 可以控制是否显示内置的带过滤器的headerToolbar
10164
+ headerToolbar = undefined;
10165
+ }
10146
10166
  }
10147
10167
  const options = {
10148
10168
  globalFilter,
@@ -10181,7 +10201,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
10181
10201
  amisSchema: {
10182
10202
  type: "service",
10183
10203
  id: componentId,
10184
- className: `steedos-record-related-list mb-4 last:mb-0 ${componentId} ${className}`,
10204
+ className: `steedos-record-related-list mb-4 last:mb-0 ${componentId} ${className} ${enableHeaderToolbar ? 'enable-header-toolbar' : ''}`,
10185
10205
  data: {
10186
10206
  relatedKey: relatedKey,
10187
10207
  listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
@@ -10283,6 +10303,7 @@ async function getRelatedListSchema(
10283
10303
  listViewName,
10284
10304
  ctx
10285
10305
  ) {
10306
+ const { enableHeaderToolbar } = ctx;
10286
10307
  const uiSchema = await getUISchema(objectName);
10287
10308
  if(!uiSchema){
10288
10309
  return {}
@@ -10335,10 +10356,14 @@ async function getRelatedListSchema(
10335
10356
  delete ctx.filters;
10336
10357
 
10337
10358
  delete ctx.globalFilter;
10359
+ delete ctx.enableHeaderToolbar;
10338
10360
 
10339
10361
  const adaptor = `
10340
10362
  try{
10341
10363
  if(setDataToComponentId){
10364
+ // 子表列表在headerToolbar过滤器中设置过过滤条件的话,始终显示子表列表,无论是否查询到数据
10365
+ // 改为使用css样式控制子表列表放开headerToolbar时,始终显示crud,只隐藏crud内部的表格,从而始终显示headerToolbar不受这里逻辑影响
10366
+ // var headerToolbarFilterChanged = context.isFieldsFilterEmpty === false;
10342
10367
  if(payload.data.count){
10343
10368
  setTimeout(function(){
10344
10369
  // 设计器中获取不到window.$从而导致报错, 所以用纯js替换下。
@@ -10361,7 +10386,7 @@ async function getRelatedListSchema(
10361
10386
  "filters": listviewFilter,
10362
10387
  "filtersFunction": filtersFunction,
10363
10388
  "sort": listViewSort,
10364
- "filterVisible": false,
10389
+ "filterVisible": !!enableHeaderToolbar,
10365
10390
  "requestAdaptor": ctx.requestAdaptor,
10366
10391
  "adaptor": adaptor + ctx.adaptor || '',
10367
10392
  "ctx": ctx,
@@ -16012,7 +16037,7 @@ async function getListviewInitSchema(objectApiName, listViewName, ctx) {
16012
16037
  const defaults = ctx.defaults || {};
16013
16038
  if(!defaults.headerSchema){
16014
16039
  //传入isListviewInit是区别于对象列表类型的微页面,即getListPageInitSchema函数中该属性为false
16015
- const headerSchema = await getObjectListHeader$1(uiSchema, listViewName, {
16040
+ const headerSchema = await getObjectListHeader(uiSchema, listViewName, {
16016
16041
  onlySecordLine: true,
16017
16042
  isListviewInit: true
16018
16043
  });
@@ -18495,5 +18520,5 @@ const getInstanceInfo = async ({ instanceId, box }) => {
18495
18520
  };
18496
18521
  };
18497
18522
 
18498
- export { index as Field, Router, absoluteUrl, amisRender, amisRootClick, cloneObject, conditionsToFilters, createObject, defaultsDeep, deleteVariable, execute, executeButton, extendObject, fetchAPI, filtersToConditions, getAmisInputTableSchema, getApp, getApps, getAuthToken, getAuthorization, getButton, getButtonVisible, getButtonVisibleOn, getButtons, getCalendarSchema, getCreatedInfoTpl, getDateTimeTpl, getDateTpl, getDefaultRenderData, getEnv, getEnvs, getEvn, getField, getFieldTpl, getFileSrc, getFlowFormSchema, getFormPageInitSchema, getFormSchema, getGlobalNowData, getIdsPickerSchema, getImageSrc, getInstanceInfo, getListPageInitSchema, getListSchema, getListViewButtons, getListViewColumns, getListViewFilter, getListViewItemButtons, getListViewSort, getListviewInitSchema, getLocationTpl, getLookupSapceUserTreeSchema, getLookupTpl, getModifiedInfoTpl, getNameTpl, getNameTplUrl, getNotifications, getNumberTpl, getObjectDetailButtons, getObjectDetailButtonsSchemas, getObjectDetailMoreButtons, getObjectFieldsFilterBarSchema, getObjectFieldsFilterButtonSchema, getObjectFieldsFilterFormSchema, getObjectListHeader$1 as getObjectListHeader, getObjectListHeaderFieldsFilterBar, getObjectListHeaderFirstLine, getObjectListHeaderSecordLine, getObjectListViewButtonsSchemas, getObjectRecordDetailHeader, getObjectRecordDetailRelatedListButtonsSchemas, getObjectRecordDetailRelatedListHeader, getObjectRelated, getObjectRelatedList, getObjectRelatedListButtons, getObjectRelatedListHeader, getObjectRelatedListsMiniSchema, getPage, getPasswordTpl, getRecord, getRecordDetailHeaderSchema, getRecordDetailMiniSchema, getRecordDetailRelatedListSchema, getRecordDetailSchema, getRecordPageInitSchema, getRecordPermissions, getRecordServiceSchema, getRefObjectNameFieldName, getReferenceTo, getReferenceToFieldSchema, getReferenceToSync, getRelatedFieldTpl, getRelatedFieldValue, getRelatedListSchema, getRelatedsCount, getRootUrl, getSelectMap, getSelectTpl, getSelectUserSchema, getSpaceUsersPickerAmisSchema, getSpaceUsersPickerSchema, getSteedosAuth, getSwitchTpl, getTableSchema, getTenantId, getTimeTpl, getUISchema, getUISchemaSync$1 as getUISchemaSync, getUiFieldTpl, getUiFileSizeTpl, getUserId, getViewSchema, isExpression, isObject, lookupToAmis, lookupToAmisIdsPicker, lookupToAmisPicker, lookupToAmisSelect, lookupToAmisSelectUser, markReadAll, parseSingleExpression, registerRemoteAssets, registerRenders, setEnv, setEnvs, setRootUrl, setSteedosAuth, setUISchemaFunction, setVariable, standardButtonsTodo, uuidv4 };
18523
+ export { index as Field, Router, absoluteUrl, amisRender, amisRootClick, cloneObject, conditionsToFilters, createObject, defaultsDeep, deleteVariable, execute, executeButton, extendObject, fetchAPI, filtersToConditions, getAmisInputTableSchema, getApp, getApps, getAuthToken, getAuthorization, getButton, getButtonVisible, getButtonVisibleOn, getButtons, getCalendarSchema, getCreatedInfoTpl, getDateTimeTpl, getDateTpl, getDefaultRenderData, getEnv, getEnvs, getEvn, getField, getFieldTpl, getFileSrc, getFlowFormSchema, getFormPageInitSchema, getFormSchema, getGlobalNowData, getIdsPickerSchema, getImageSrc, getInstanceInfo, getListPageInitSchema, getListSchema, getListViewButtons, getListViewColumns, getListViewFilter, getListViewItemButtons, getListViewSort, getListviewInitSchema, getLocationTpl, getLookupSapceUserTreeSchema, getLookupTpl, getModifiedInfoTpl, getNameTpl, getNameTplUrl, getNotifications, getNumberTpl, getObjectDetailButtons, getObjectDetailButtonsSchemas, getObjectDetailMoreButtons, getObjectFieldsFilterBarSchema, getObjectFieldsFilterButtonSchema, getObjectFieldsFilterFormSchema, getObjectListHeader, getObjectListHeaderFieldsFilterBar, getObjectListHeaderFirstLine, getObjectListHeaderSecordLine, getObjectListViewButtonsSchemas, getObjectRecordDetailHeader, getObjectRecordDetailRelatedListButtonsSchemas, getObjectRecordDetailRelatedListHeader, getObjectRelated, getObjectRelatedList, getObjectRelatedListButtons, getObjectRelatedListHeader, getObjectRelatedListsMiniSchema, getPage, getPasswordTpl, getRecord, getRecordDetailHeaderSchema, getRecordDetailMiniSchema, getRecordDetailRelatedListSchema, getRecordDetailSchema, getRecordPageInitSchema, getRecordPermissions, getRecordServiceSchema, getRefObjectNameFieldName, getReferenceTo, getReferenceToFieldSchema, getReferenceToSync, getRelatedFieldTpl, getRelatedFieldValue, getRelatedListSchema, getRelatedsCount, getRootUrl, getSelectMap, getSelectTpl, getSelectUserSchema, getSpaceUsersPickerAmisSchema, getSpaceUsersPickerSchema, getSteedosAuth, getSwitchTpl, getTableSchema, getTenantId, getTimeTpl, getUISchema, getUISchemaSync$1 as getUISchemaSync, getUiFieldTpl, getUiFileSizeTpl, getUserId, getViewSchema, isExpression, isObject, lookupToAmis, lookupToAmisIdsPicker, lookupToAmisPicker, lookupToAmisSelect, lookupToAmisSelectUser, markReadAll, parseSingleExpression, registerRemoteAssets, registerRenders, setEnv, setEnvs, setRootUrl, setSteedosAuth, setUISchemaFunction, setVariable, standardButtonsTodo, uuidv4 };
18499
18524
  //# sourceMappingURL=index.esm.js.map