@steedos-widgets/amis-lib 1.3.0-beta.3 → 1.3.0-beta.5
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/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +27 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +27 -15
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +17 -14
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/toolbar.d.ts +4 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -107,9 +107,9 @@ Object.assign(amisSchema,{"joinValues":false});}if(typeof amisSchema.searchable!
|
|
|
107
107
|
* @Author: baozhoutao@steedos.com
|
|
108
108
|
* @Date: 2022-11-07 17:00:38
|
|
109
109
|
* @LastEditors: baozhoutao@steedos.com
|
|
110
|
-
* @LastEditTime:
|
|
110
|
+
* @LastEditTime: 2023-08-24 16:44:42
|
|
111
111
|
* @Description:
|
|
112
|
-
*/var getSchema$1=function getSchema$1(uiSchema){return{"type":"service","className":"p-0","body":[{"type":"button","label":i18next__default["default"].t('frontend_form_view'),"className":"border-none","onEvent":{"click":{"actions":[{"componentId":"","args":{"blank":false,"url":"/app/${app_id}/${objectName}/view/${_id}"},"actionType":"link"}]}},"id":"u:ef35c9ae1d19"}],"regions":["body"]};};var getSchema=/*#__PURE__*/function(){var _ref8=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(uiSchema,ctx){var requestAdaptor;return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:requestAdaptor="\n // \u83B7\u53D6\u5217\u8868\u89C6\u56FE\u7684\u5C5E\u6027\n let uiSchema = api.body.uiSchema;\n let list_views = uiSchema.list_views;\n let list_views_name = api.body.listName;\n let col = list_views[list_views_name].columns;\n let sort_test = list_views[list_views_name].sort;\n\n // \u83B7\u53D6\u4E0B\u8F7D\u5B57\u6BB5\n let select = [];\n _.each(col, (col) => {\n if (col.field == undefined)\n select.push(col);\n else select.push(col.field);\n });\n\n // \u83B7\u53D6\u6392\u5E8F\u5B57\u6BB5\n\n let sort = [];\n _.forEach(sort_test, (sortField) => {\n if (sortField.field_name == undefined)\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n })\n\n let orders = [];\n _.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == \"desc\")\n order_tmp = value[0] + ' desc';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n });\n let order = orders.join(',');\n\n let filename = uiSchema.label + \"-\" + list_views[list_views_name].label;\n\n url_tmp = api.url.split('?')[0];\n api.url = url_tmp + \"?$select=\" + encodeURIComponent(select.toString()) + \"&filename=\" + encodeURIComponent(filename);\n\n // \u5224\u65ADsort \u548C filters\n if (sort.length > 0) {\n api.url += \"&$orderby=\" + encodeURIComponent(order);\n }\n let filters = list_views[list_views_name].filters;\n if (filters && filters.length > 0) {\n api.url = api.url + \"&filters=\" + encodeURIComponent(JSON.stringify(filters));\n }\n return api;\n ";return _context3.abrupt("return",{"type":"service","body":[{"type":"button","label":i18next__default["default"].t('frontend_export_excel'),"id":"u:standard_export_excel","level":"default","onEvent":{"click":{"weight":0,"actions":[{"args":{"api":{"url":"${context.rootUrl}/api/record/export/${objectName}","method":"get","messages":{},"requestAdaptor":requestAdaptor,"data":{"uiSchema":"${uiSchema}","listName":"${listName}"},"headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}}},"actionType":"download"}]}}}]});case 2:case"end":return _context3.stop();}}},_callee3);}));return function getSchema(_x37,_x38){return _ref8.apply(this,arguments);};}();/*
|
|
112
|
+
*/var getSchema$1=function getSchema$1(uiSchema){return{"type":"service","className":"p-0","body":[{"type":"button","label":i18next__default["default"].t('frontend_form_view'),"className":"border-none","onEvent":{"click":{"actions":[{"componentId":"","args":{"blank":false,"url":"/app/${app_id}/${objectName}/view/${_id}?side_object=${objectName}&side_listview_id=${listName}"},"actionType":"link"}]}},"id":"u:ef35c9ae1d19"}],"regions":["body"]};};var getSchema=/*#__PURE__*/function(){var _ref8=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(uiSchema,ctx){var requestAdaptor;return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:requestAdaptor="\n // \u83B7\u53D6\u5217\u8868\u89C6\u56FE\u7684\u5C5E\u6027\n let uiSchema = api.body.uiSchema;\n let list_views = uiSchema.list_views;\n let list_views_name = api.body.listName;\n let col = list_views[list_views_name].columns;\n let sort_test = list_views[list_views_name].sort;\n\n // \u83B7\u53D6\u4E0B\u8F7D\u5B57\u6BB5\n let select = [];\n _.each(col, (col) => {\n if (col.field == undefined)\n select.push(col);\n else select.push(col.field);\n });\n\n // \u83B7\u53D6\u6392\u5E8F\u5B57\u6BB5\n\n let sort = [];\n _.forEach(sort_test, (sortField) => {\n if (sortField.field_name == undefined)\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n })\n\n let orders = [];\n _.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == \"desc\")\n order_tmp = value[0] + ' desc';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n });\n let order = orders.join(',');\n\n let filename = uiSchema.label + \"-\" + list_views[list_views_name].label;\n\n url_tmp = api.url.split('?')[0];\n api.url = url_tmp + \"?$select=\" + encodeURIComponent(select.toString()) + \"&filename=\" + encodeURIComponent(filename);\n\n // \u5224\u65ADsort \u548C filters\n if (sort.length > 0) {\n api.url += \"&$orderby=\" + encodeURIComponent(order);\n }\n let filters = list_views[list_views_name].filters;\n if (filters && filters.length > 0) {\n api.url = api.url + \"&filters=\" + encodeURIComponent(JSON.stringify(filters));\n }\n return api;\n ";return _context3.abrupt("return",{"type":"service","body":[{"type":"button","label":i18next__default["default"].t('frontend_export_excel'),"id":"u:standard_export_excel","level":"default","onEvent":{"click":{"weight":0,"actions":[{"args":{"api":{"url":"${context.rootUrl}/api/record/export/${objectName}","method":"get","messages":{},"requestAdaptor":requestAdaptor,"data":{"uiSchema":"${uiSchema}","listName":"${listName}"},"headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}}},"actionType":"download"}]}}}]});case 2:case"end":return _context3.stop();}}},_callee3);}));return function getSchema(_x37,_x38){return _ref8.apply(this,arguments);};}();/*
|
|
113
113
|
* @Author: baozhoutao@steedos.com
|
|
114
114
|
* @Date: 2022-11-01 15:53:07
|
|
115
115
|
* @LastEditors: baozhoutao@steedos.com
|
|
@@ -230,7 +230,7 @@ secordLineSchema={"type":"grid","columns":[{"body":[{"type":"tpl","tpl":"${$coun
|
|
|
230
230
|
* @returns amisSchema
|
|
231
231
|
*/function _getObjectRecordDetailHeader(){_getObjectRecordDetailHeader=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee67(objectSchema,recordId,options){var _ref54,_ref54$showRecordTitl,showRecordTitle,name,label,icon,NAME_FIELD_KEY,amisButtonsSchema,reg,standardIcon,gridBody,body;return _regeneratorRuntime().wrap(function _callee67$(_context67){while(1){switch(_context67.prev=_context67.next){case 0:_ref54=options||{},_ref54$showRecordTitl=_ref54.showRecordTitle,showRecordTitle=_ref54$showRecordTitl===void 0?true:_ref54$showRecordTitl;// console.log('getObjectRecordDetailHeader==>', objectSchema, recordId)
|
|
232
232
|
name=objectSchema.name,label=objectSchema.label,icon=objectSchema.icon,NAME_FIELD_KEY=objectSchema.NAME_FIELD_KEY;amisButtonsSchema=getObjectDetailButtonsSchemas(objectSchema,recordId,options);// console.log(`getObjectRecordDetailHeader==>`, amisButtonsSchema)
|
|
233
|
-
reg=new RegExp('_','g');standardIcon=icon&&icon.replace(reg,'-');gridBody=[];if(showRecordTitle){gridBody.push({"body":[{"type":"grid","columns":[{"body":[{"type":"service","onEvent":{"@history_paths.changed":{"actions":[{"actionType":"reload"}]}},"body":[{"type":"button","visibleOn":"${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}","className":"flex mr-4","onEvent":{"click":{"actions":[{"actionType":"custom","script":"
|
|
233
|
+
reg=new RegExp('_','g');standardIcon=icon&&icon.replace(reg,'-');gridBody=[];if(showRecordTitle){gridBody.push({"body":[{"type":"grid","columns":[{"body":[{"type":"service","onEvent":{"@history_paths.changed":{"actions":[{"actionType":"reload"}]}},"body":[{"type":"button","visibleOn":"${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}","className":"flex mr-4","onEvent":{"click":{"actions":[{"actionType":"custom","script":"window.goBack()"}]}},"body":[{"type":"steedos-icon","category":"utility","name":"back","colorVariant":"default","className":"slds-button_icon slds-global-header__icon w-4"}]}]},{"type":"tpl","className":"block",// "tpl": `<img class='slds-icon slds-icon_container slds-icon-standard-${standardIcon}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg'>`
|
|
234
234
|
"tpl":"<svg class=\"slds-icon slds-icon_container slds-icon-standard-".concat(standardIcon," slds-page-header__icon\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#").concat(icon,"\"></use></svg>")}],"md":"auto","className":"","columnClassName":"flex justify-center items-center"},{"body":[{"type":"tpl","tpl":"".concat(label),"inline":false,"wrapperComponent":"","className":"leading-4 text-md"},{"type":"tpl","tpl":"${name}",// "tpl": "${(record && uiSchema && record[uiSchema.NAME_FIELD_KEY]) || name}",
|
|
235
235
|
"inline":false,"wrapperComponent":"","className":"record-detail-header-name leading-5 text-xl font-bold"}],"columnClassName":"p-l-xs"}],"className":"flex justify-between"}],"columnClassName":"flex-initial","md":"auto"});}gridBody.push({"body":{"type":"flex","items":amisButtonsSchema},"md":"auto"// "hiddenOn": "${recordLoaded != true}"
|
|
236
236
|
});body=[{"type":"wrapper","className":"p-0","body":[{"type":"grid","columns":gridBody,"className":"flex justify-between flex-nowrap"}],"hiddenOn":"${recordLoaded != true}"}];if(showRecordTitle){body.push({"type":"wrapper","className":"p-0","body":[{"type":"grid","columns":[gridBody[0]],"className":"flex justify-between"}],"hiddenOn":"${recordLoaded == true}"});}return _context67.abrupt("return",{type:'service',id:"page_readonly_".concat(name,"_header"),name:"page",data:{objectName:name,_id:recordId,recordPermissions:objectSchema.permissions,uiSchema:objectSchema,record:"${record}"},body:body,className:''});case 11:case"end":return _context67.stop();}}},_callee67);}));return _getObjectRecordDetailHeader.apply(this,arguments);}function getObjectRecordDetailRelatedListHeader(_x71,_x72,_x73){return _getObjectRecordDetailRelatedListHeader.apply(this,arguments);}/**
|
|
@@ -249,7 +249,7 @@ reg=new RegExp('_','g');standardIcon=icon&&icon.replace(reg,'-');gridBody=[];if(
|
|
|
249
249
|
// "tooltip": i18next.t('frontend_button_listview_control_tooltip'),
|
|
250
250
|
"btnClassName":"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500","align":"right","visibleOn":"${!isLookup}","buttons":[{"label":i18next__default["default"].t('frontend_button_listview_control_label'),"children":[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]};};var getDisplayAsButton=function getDisplayAsButton(objectName,showDisplayAs){var displayAs=amisLib.Router.getTabDisplayAs(objectName);var buttons=[{"type":"button","label":i18next__default["default"].t('frontend_display_type_is_table'),"onClick":"const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\"side_object\") && urlSearch.get(\"side_listview_id\")){url=`/app/${props.data.appId}/${urlSearch.get(\"side_object\")}/grid/${urlSearch.get(\"side_listview_id\")}`;}; props.env.jumpTo(url + '?display=grid');","rightIcon":displayAs!='split'?"fa fa-check":null,"rightIconClassName":"m-l-sm"},{"type":"button","label":i18next__default["default"].t('frontend_display_type_is_split'),"onClick":"const key = 'tab_"+objectName+"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);","rightIcon":displayAs==='split'?"fa fa-check":null,"rightIconClassName":"m-l-sm"}];displayAs==='split'?i18next__default["default"].t('frontend_display_type_is_split'):i18next__default["default"].t('frontend_display_type_is_table');return{"type":"dropdown-button","icon":"fa fa-table-columns",//TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330
|
|
251
251
|
// "tooltip": `${i18next.t('frontend_display_as')} ${displayAsLabel}`,
|
|
252
|
-
"btnClassName":"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500","align":"right","visibleOn":"${window:innerWidth > 768 && !!!isLookup}","buttons":[{"label":i18next__default["default"].t('frontend_display_as'),"children":buttons}]};};var onFieldsFilterToggleScript="\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 500);\n}\nresizeWindow();\n// \u624B\u673A\u7AEF\u5728\u663E\u793A\u641C\u7D22\u680F\u65F6\u9690\u85CFcrud\u4E0A\u7684\u5237\u65B0\u6309\u94AE\uFF0C\u56E0\u4E3A\u70B9\u51FB\u540Ecrud\u9AD8\u5EA6\u663E\u793A\u6709\u95EE\u9898\nlet crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // \u624B\u673A\u4E0A\u53EA\u80FD\u901A\u8FC7\u53D6\u6D88\u6309\u94AE\u6765\u5173\u95ED\u641C\u7D22\u680F\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"button\", { \n// direction: \"down\", \n// name: \"btn_filter_form_cancel\" \n// });\n// buttonCancel.props.dispatchEvent('click', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // \u624B\u673A\u7AEF\u5728\u663E\u793A\u641C\u7D22\u680F\u65F6\u9690\u85CFcrud\u4E0A\u7684\u5237\u65B0\u6309\u94AE\uFF0C\u56E0\u4E3A\u70B9\u51FB\u540Ecrud\u9AD8\u5EA6\u663E\u793A\u6709\u95EE\u9898\n// let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n";function getObjectHeaderQuickSearchBox(mainObject,fields,formFactor){var _ref11=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},_ref11$isLookup=_ref11.isLookup,isLookup=_ref11$isLookup===void 0?false:_ref11$isLookup,_ref11$keywordsSearch=_ref11.keywordsSearchBoxName,keywordsSearchBoxName=_ref11$keywordsSearch===void 0?"__keywords":_ref11$keywordsSearch;var searchableFieldsLabel=[];_.each(fields,function(field){if(isFieldQuickSearchable(field,mainObject.NAME_FIELD_KEY)){searchableFieldsLabel.push(field.label);}});var listViewPropsStoreKey=location.pathname+"/crud";var localListViewProps=sessionStorage.getItem(listViewPropsStoreKey);var crudKeywords="";if(localListViewProps&&!isLookup){localListViewProps=JSON.parse(localListViewProps);crudKeywords=localListViewProps&&localListViewProps.__keywords||"";}return{"type":"tooltip-wrapper","align":"right","title":"","content":"可搜索字段:"+searchableFieldsLabel.join(","),"placement":"bottom","tooltipTheme":"dark","trigger":"click","className":formFactor!=='SMALL'?"mr-1":'',"visible":!!searchableFieldsLabel.length,"body":[{"type":"search-box","name":keywordsSearchBoxName,"placeholder":"快速搜索","value":crudKeywords,"clearable":true,"clearAndSubmit":true}]};}function getObjectHeaderToolbar(mainObject,fields,formFactor){var _ref12=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},_ref12$showDisplayAs=_ref12.showDisplayAs,showDisplayAs=_ref12$showDisplayAs===void 0?false:_ref12$showDisplayAs,_ref12$hiddenCount=_ref12.hiddenCount,hiddenCount=_ref12$hiddenCount===void 0?false:_ref12$hiddenCount,headerToolbarItems=_ref12.headerToolbarItems,_ref12$filterVisible=_ref12.filterVisible,filterVisible=_ref12$filterVisible===void 0?true:_ref12$filterVisible,_ref12$isLookup=_ref12.isLookup,isLookup=_ref12$isLookup===void 0?false:_ref12$isLookup,keywordsSearchBoxName=_ref12.keywordsSearchBoxName;// console.log(`getObjectHeaderToolbar====>`, filterVisible)
|
|
252
|
+
"btnClassName":"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500","align":"right","visibleOn":"${window:innerWidth > 768 && !!!isLookup}","buttons":[{"label":i18next__default["default"].t('frontend_display_as'),"children":buttons}]};};var onFieldsFilterToggleScript="\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 500);\n}\nresizeWindow();\n// \u624B\u673A\u7AEF\u5728\u663E\u793A\u641C\u7D22\u680F\u65F6\u9690\u85CFcrud\u4E0A\u7684\u5237\u65B0\u6309\u94AE\uFF0C\u56E0\u4E3A\u70B9\u51FB\u540Ecrud\u9AD8\u5EA6\u663E\u793A\u6709\u95EE\u9898\nlet crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // \u624B\u673A\u4E0A\u53EA\u80FD\u901A\u8FC7\u53D6\u6D88\u6309\u94AE\u6765\u5173\u95ED\u641C\u7D22\u680F\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"button\", { \n// direction: \"down\", \n// name: \"btn_filter_form_cancel\" \n// });\n// buttonCancel.props.dispatchEvent('click', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // \u624B\u673A\u7AEF\u5728\u663E\u793A\u641C\u7D22\u680F\u65F6\u9690\u85CFcrud\u4E0A\u7684\u5237\u65B0\u6309\u94AE\uFF0C\u56E0\u4E3A\u70B9\u51FB\u540Ecrud\u9AD8\u5EA6\u663E\u793A\u6709\u95EE\u9898\n// let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n";function getObjectHeaderQuickSearchBox(mainObject,fields,formFactor){var _ref11=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},_ref11$isLookup=_ref11.isLookup,isLookup=_ref11$isLookup===void 0?false:_ref11$isLookup,_ref11$keywordsSearch=_ref11.keywordsSearchBoxName,keywordsSearchBoxName=_ref11$keywordsSearch===void 0?"__keywords":_ref11$keywordsSearch;var searchableFieldsLabel=[];_.each(mainObject.fields,function(field){if(isFieldQuickSearchable(field,mainObject.NAME_FIELD_KEY)){searchableFieldsLabel.push(field.label);}});var listViewPropsStoreKey=location.pathname+"/crud";var localListViewProps=sessionStorage.getItem(listViewPropsStoreKey);var crudKeywords="";if(localListViewProps&&!isLookup){localListViewProps=JSON.parse(localListViewProps);crudKeywords=localListViewProps&&localListViewProps.__keywords||"";}return{"type":"tooltip-wrapper","align":"right","title":"","content":"可搜索字段:"+searchableFieldsLabel.join(","),"placement":"bottom","tooltipTheme":"dark","trigger":"click","className":formFactor!=='SMALL'?"mr-1":'',"visible":!!searchableFieldsLabel.length,"body":[{"type":"search-box","name":keywordsSearchBoxName,"placeholder":"快速搜索","value":crudKeywords,"clearable":true,"clearAndSubmit":true}]};}function getObjectHeaderToolbar(mainObject,fields,formFactor){var _ref12=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},_ref12$showDisplayAs=_ref12.showDisplayAs,showDisplayAs=_ref12$showDisplayAs===void 0?false:_ref12$showDisplayAs,_ref12$hiddenCount=_ref12.hiddenCount,hiddenCount=_ref12$hiddenCount===void 0?false:_ref12$hiddenCount,headerToolbarItems=_ref12.headerToolbarItems,_ref12$filterVisible=_ref12.filterVisible,filterVisible=_ref12$filterVisible===void 0?true:_ref12$filterVisible,_ref12$isLookup=_ref12.isLookup,isLookup=_ref12$isLookup===void 0?false:_ref12$isLookup,keywordsSearchBoxName=_ref12.keywordsSearchBoxName;// console.log(`getObjectHeaderToolbar====>`, filterVisible)
|
|
253
253
|
// console.log(`getObjectHeaderToolbar`, mainObject)
|
|
254
254
|
var isMobile=window.innerWidth<768;if(isMobile){showDisplayAs=false;}if(formFactor==='SMALL'){var onReloadScript="\n const scope = event.context.scoped;\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n listView.handleChangePage(1);\n ";return[].concat(_toConsumableArray(headerToolbarItems||[]),[hiddenCount?{}:{"type":"tpl","tpl":"${count} "+i18next__default["default"].t('frontend_record_sum')},{// "type": "reload",//不可以直接使用reload,因为它不会设置页码到第一页
|
|
255
255
|
"type":"button","align":"right",//TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330
|
|
@@ -274,7 +274,10 @@ mainObject!==null&&mainObject!==void 0&&(_mainObject$permissio=mainObject.permis
|
|
|
274
274
|
// "type": "pagination",
|
|
275
275
|
// "align": "right"
|
|
276
276
|
// }
|
|
277
|
-
]);}}function getObjectFooterToolbar(mainObject,formFactor,options){if(formFactor==='SMALL'){
|
|
277
|
+
]);}}function getObjectFooterToolbar(mainObject,formFactor,options){if(formFactor==='SMALL'){// return [
|
|
278
|
+
// "load-more",
|
|
279
|
+
// ]
|
|
280
|
+
return[{"type":"pagination","maxButtons":5}];}else{if(options&&options.isRelated){return["statistics","pagination"];}else{return["switch-per-page","statistics","pagination"];}}}function getObjectFilter(_x77,_x78,_x79){return _getObjectFilter.apply(this,arguments);}function _getObjectFilter(){_getObjectFilter=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee70(objectSchema,fields,options){var fieldsFilterBarSchema;return _regeneratorRuntime().wrap(function _callee70$(_context70){while(1){switch(_context70.prev=_context70.next){case 0:_context70.next=2;return getObjectListHeaderFieldsFilterBar(objectSchema,null,options);case 2:fieldsFilterBarSchema=_context70.sent;return _context70.abrupt("return",{"title":"","submitText":"","className":"",// "debug": true,
|
|
278
281
|
"mode":"normal","wrapWithPanel":false,"body":[fieldsFilterBarSchema]});case 4:case"end":return _context70.stop();}}},_callee70);}));return _getObjectFilter.apply(this,arguments);}function getSource(_x80,_x81){return _getSource.apply(this,arguments);}function _getSource(){_getSource=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee71(field,ctx){var refObjectName,data,defaultValueOptionsData,valueField,requestAdaptor,adaptor;return _regeneratorRuntime().wrap(function _callee71$(_context71){while(1){switch(_context71.prev=_context71.next){case 0:// 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} }"
|
|
279
282
|
refObjectName=ctx.objectName;_context71.next=3;return getFindQuery({name:refObjectName},null,[{name:ctx.valueField,alias:"value"},{name:ctx.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});case 3:data=_context71.sent;data.query=data.query.replace(/,count\:.+/,"}");// const childrenData = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: "ref" }], {
|
|
280
283
|
// alias: "children",
|
|
@@ -289,11 +292,11 @@ refObjectName=ctx.objectName;_context72.next=3;return getFindQuery({name:"{__obj
|
|
|
289
292
|
queryOptions:"filters: {__filters}, sort: \"{__sort}\""});case 3:data=_context72.sent;// 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
|
|
290
293
|
filters=field.filters;if(typeof filters==="string"){filters=new Function("return ".concat(filters));filters=filters();}if(typeof filters==="function"){filters=filters(field);}data.query=data.query.replace(/,count\:.+/,"}");// 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换
|
|
291
294
|
data.query=data.query.replace("{_id}","{{__fields}}");requestAdaptor="\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = \"\";\n if (dep) {\n objectName = \"".concat(refObjectName,"\";\n fields = \"_id,value:").concat(ctx.valueField,",label:").concat(ctx.labelField,",children\";\n filters = [['parent', '=', dep]];\n sort = \"").concat(ctx.sort,"\";\n }\n 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());\n return api;\n ");adaptor="\n if (api.query.dep) {\n // \u5C55\u5F00\u7EC4\u7EC7\u65F6\u624D\u9700\u8981\u6839\u636Echildren\u503C\u8BBE\u7F6Edefer\u5C5E\u6027\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ";return _context72.abrupt("return",{"method":"post","url":getApi$2()+"&dep=${value}","requestAdaptor":requestAdaptor,"adaptor":adaptor,"data":data,"headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}});case 12:case"end":return _context72.stop();}}},_callee72);}));return _getDeferApi.apply(this,arguments);}function getRefListViewSort(refObject){var listView=___namespace.find(refObject.list_views,function(view,name){return name==="all";});var sort="";if(listView){sort=getListViewSort(listView);}return sort;}function lookupToAmisTreeSelect(_x84,_x85,_x86){return _lookupToAmisTreeSelect.apply(this,arguments);}function _lookupToAmisTreeSelect(){_lookupToAmisTreeSelect=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee73(field,readonly,ctx){var amisSchema,refObjectConfig,onEvent;return _regeneratorRuntime().wrap(function _callee73$(_context73){while(1){switch(_context73.prev=_context73.next){case 0:if(field){_context73.next=2;break;}return _context73.abrupt("return",{});case 2:if(!ctx){ctx={};}amisSchema={"type":getAmisStaticFieldType('tree-select',readonly)};if(!readonly){_context73.next=10;break;}_context73.next=7;return getLookupTpl(field,ctx);case 7:amisSchema.tpl=_context73.sent;_context73.next=30;break;case 10:_context73.next=12;return getUISchema(ctx.objectName);case 12:refObjectConfig=_context73.sent;ctx.sort=getRefListViewSort(refObjectConfig);_context73.t0=Object;_context73.t1=amisSchema;_context73.t2=field.multiple;_context73.t3=field.searchable;_context73.next=20;return getSource(field,ctx);case 20:_context73.t4=_context73.sent;_context73.next=23;return getDeferApi(field,ctx);case 23:_context73.t5=_context73.sent;_context73.t6={"multiple":_context73.t2,"searchable":_context73.t3,"extractValue":true,"hideNodePathLabel":true,"clearable":true,"source":_context73.t4,"deferApi":_context73.t5};_context73.t0.assign.call(_context73.t0,_context73.t1,_context73.t6);if(field.multiple){// 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
|
|
292
|
-
Object.assign(amisSchema,{"joinValues":false});}if(typeof amisSchema.searchable!=="boolean"){amisSchema.searchable=true;}onEvent=field.onEvent;if(onEvent){amisSchema.onEvent=onEvent;}case 30:return _context73.abrupt("return",amisSchema);case 31:case"end":return _context73.stop();}}},_callee73);}));return _lookupToAmisTreeSelect.apply(this,arguments);}var getReferenceTo=/*#__PURE__*/function(){var _ref13=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(field){var referenceTo,refObjectConfig,valueField,valueFieldName;return _regeneratorRuntime().wrap(function _callee13$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:referenceTo=field.reference_to;if(referenceTo){_context13.next=3;break;}return _context13.abrupt("return");case 3:if(referenceTo==='users'){referenceTo='space_users';field.reference_to_field='user';}_context13.next=6;return getUISchema(referenceTo);case 6:refObjectConfig=_context13.sent;if(refObjectConfig){_context13.next=9;break;}return _context13.abrupt("return",null);case 9:valueField=null;valueFieldName=field.reference_to_field;if(!valueFieldName){valueFieldName=refObjectConfig.idFieldName||'_id';}if(valueFieldName==='_id'){valueField={name:'_id',label:'ID',type:'text',toggled:false};}else{valueField=refObjectConfig.fields[valueFieldName]||{name:valueFieldName};}return _context13.abrupt("return",{objectName:referenceTo,valueField:valueField,labelField:refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY||'name'],NAME_FIELD_KEY:refObjectConfig.NAME_FIELD_KEY||'name'});case 14:case"end":return _context13.stop();}}},_callee13);}));return function getReferenceTo(_x87){return _ref13.apply(this,arguments);};}();function getLookupSapceUserTreeSchema(){var tree=[{"type":"input-tree","className":"","inputClassName":"p-0","id":"u:7fd77b7915b0","source":{"method":"post","url":"${context.rootUrl}/graphql","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"adaptor":"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ","requestAdaptor":"\n ","data":{"query":"{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"},"messages":{},"cache":300000},"onEvent":{"change":{"actions":[{"actionType":"custom","script":"\n const scope = event.context.scoped;\n var filterFormValues={\n \"__searchable__organizations_parents\":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n "}]}},"label":"","name":"organizations","multiple":false,"joinValues":false,"clearValueOnHidden":false,"fieldName":"organizations","hideRoot":true,"initiallyOpen":false,"extractValue":true,"onlyChildren":true,"treeContainerClassName":"no-border","showIcon":false,"enableNodePath":false,"autoCheckChildren":false,"searchable":true,"searchConfig":{"sticky":true,"placeholder":"查找部门"},"unfoldedLevel":2,"style":{"max-height":"100%","position":"absolute","left":"-330px","width":"320px","bottom":0,"top":"0","overflow":"auto","min-height":"300px"},"originPosition":"left-top"}];return tree;}function lookupToAmisPicker(_x88,_x89,_x90){return _lookupToAmisPicker.apply(this,arguments);}function _lookupToAmisPicker(){_lookupToAmisPicker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee74(field,readonly,ctx){var _fields;var referenceTo,refObjectConfig,tableFields,i,searchableFields,fieldsArr,listName,isMobile,listView,fields,sort,source,depend_on,sendOn,keywordsSearchBoxName,top,pickerSchema,headerToolbarItems,isAllowCreate,new_button,data;return _regeneratorRuntime().wrap(function _callee74$(_context74){while(1){switch(_context74.prev=_context74.next){case 0:_context74.next=2;return getReferenceTo(field);case 2:referenceTo=_context74.sent;if(referenceTo){_context74.next=5;break;}return _context74.abrupt("return");case 5:_context74.next=7;return getUISchema(referenceTo.objectName);case 7:refObjectConfig=_context74.sent;ctx.idFieldName=refObjectConfig.idFieldName;ctx.objectName=refObjectConfig.name;tableFields=[];i=0;searchableFields=[];fieldsArr=[];listName="all";isMobile=window.innerWidth<768;listView=___namespace.find(refObjectConfig.list_views,function(listView,name){return name===listName;});if(listView&&listView.columns){___namespace.each(listView.columns,function(column){if(___namespace.isString(column)&&refObjectConfig.fields[column]){fieldsArr.push(refObjectConfig.fields[column]);}else if(___namespace.isObject(column)&&refObjectConfig.fields[column.field]){fieldsArr.push(Object.assign({},refObjectConfig.fields[column.field],{width:column.width,wrap:column.wrap}));}});}else{___namespace.each(refObjectConfig.fields,function(field,field_name){if(field_name!='_id'&&!field.hidden){if(!___namespace.has(field,"name")){field.name=field_name;}fieldsArr.push(field);}});}___namespace.each(___namespace.sortBy(fieldsArr,"sort_no"),function(field){if(i<5){if(!___namespace.find(tableFields,function(f){return f.name===field.name;})){i++;tableFields.push(field);if(isFieldQuickSearchable(field,refObjectConfig.NAME_FIELD_KEY)){searchableFields.push(field.name);}}}});fields=(_fields={},_defineProperty(_fields,referenceTo.labelField.name,referenceTo.labelField),_defineProperty(_fields,referenceTo.valueField.name,referenceTo.valueField),_fields);___namespace.each(tableFields,function(tableField){if(!tableField.hidden){fields[tableField.name]=tableField;}});sort="";if(listView){sort=getListViewSort(listView);}_context74.next=25;return getApi$1(refObjectConfig,null,fields,{expand:true,alias:'rows',queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\""});case 25:source=_context74.sent;if(source.url&&!ctx.inFilterForm){depend_on=[];sendOn=[];___namespace.each(field.depend_on,function(fName){depend_on.push("depend_on_".concat(fName,"=${").concat(fName,"}"));sendOn.push("this.".concat(fName));});if(depend_on.length>0){source.url="".concat(source.url,"?").concat(depend_on.join('&'));source.sendOn="".concat(sendOn.join(' && '));}}source.data.$term="$term";source.data.$self="$$";keywordsSearchBoxName="__keywords_lookup__".concat(field.name,"__to__").concat(refObjectConfig.name);source.requestAdaptor="\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"".concat(sort,"\";\n var allowSearchFields = ").concat(JSON.stringify(searchableFields),";\n let fieldValue;\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [[\"").concat(referenceTo.valueField.name,"\", \"=\", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [[\"").concat(referenceTo.valueField.name,"\", \"=\", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(").concat((referenceTo===null||referenceTo===void 0?void 0:referenceTo.objectName)==="space_users"," && ").concat(field.reference_to_field==="user","){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.").concat(keywordsSearchBoxName,", allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ").concat(JSON.stringify(field.filters),";\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ").concat(ctx.inFilterForm,";\n const filtersFunction = ").concat(field.filtersFunction||field._filtersFunction,";\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ").concat(refObjectConfig.enable_tree,";\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ");source.adaptor="\n const enable_tree = ".concat(refObjectConfig.enable_tree,";\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op\u4E0D\u4E3A\u7A7A\uFF0C\u8868\u793A\u5904\u4E8E\u5B57\u6BB5\u521D\u59CB\u7F16\u8F91\u72B6\u6001\uFF0C\u4E0D\u662F\u70B9\u51FB\u540E\u51FA\u73B0\u5F39\u7A97\u72B6\u6001\u3002\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, [\"").concat(referenceTo.labelField.name,"\", \"").concat(referenceTo.valueField.name,"\"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n ");if(field.optionsFunction||field._optionsFunction){source.adaptor="\n payload.data.rows = eval(".concat(field.optionsFunction||field._optionsFunction,")(api.data.$self);\n return payload;\n ");}top=20;if(refObjectConfig.paging&&refObjectConfig.paging.enabled===false){top=1000;}pickerSchema=null;if(!(ctx.formFactor==='SMALL')){_context74.next=42;break;}_context74.next=39;return getListSchema$1(tableFields,_objectSpread(_objectSpread({top:top},ctx),{},{actions:false}));case 39:pickerSchema=_context74.sent;_context74.next=64;break;case 42:_context74.next=44;return getTableSchema$1(tableFields,_objectSpread({labelFieldName:refObjectConfig.NAME_FIELD_KEY,top:top,isLookup:true},ctx));case 44:pickerSchema=_context74.sent;pickerSchema.affixHeader=false;headerToolbarItems=[];if(referenceTo.objectName==="space_users"&&field.reference_to_field==="user"&&!isMobile){headerToolbarItems=getLookupSapceUserTreeSchema();pickerSchema["style"]={"margin-left":"330px","min-height":"300px"};pickerSchema.className=pickerSchema.className||""+" steedos-select-user";}pickerSchema.headerToolbar=getObjectHeaderToolbar(refObjectConfig,fieldsArr,ctx.formFactor,{headerToolbarItems:headerToolbarItems,isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName});isAllowCreate=refObjectConfig.permissions.allowCreate;if(!isAllowCreate){_context74.next=56;break;}_context74.next=53;return getSchema$5(refObjectConfig,{appId:ctx.appId,objectName:refObjectConfig.name,formFactor:ctx.formFactor});case 53:new_button=_context74.sent;new_button.align="right";// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
293
|
-
pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length-1,0,new_button);case
|
|
294
|
-
"isLookup":true});if(!pickerSchema.onEvent){pickerSchema.onEvent={};}pickerSchema.onEvent["@data.changed.".concat(refObjectConfig.name)]={"actions":[{"actionType":"reload"},{"actionType":"custom","script":"\n const masterRecord = event.data._master && event.data._master.record;\n const fieldConfig = ".concat(JSON.stringify(field),";\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: \u8FDE\u7EED\u65B0\u5EFA\u591A\u4E2A\u8BB0\u5F55\u65F6\uFF0C\u56E0\u4E3A\u83B7\u53D6\u7684\u4E3B\u8BB0\u5F55\u4E0D\u662F\u5B9E\u65F6\u7684\uFF0C\u6240\u4EE5\u53EA\u4F1A\u52FE\u9009\u6700\u540E\u4E00\u4E2A\u65B0\u5EFA\u7684\u8BB0\u5F55\u3002\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ").concat(JSON.stringify(ctx),";\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n ")}]};case
|
|
295
|
+
Object.assign(amisSchema,{"joinValues":false});}if(typeof amisSchema.searchable!=="boolean"){amisSchema.searchable=true;}onEvent=field.onEvent;if(onEvent){amisSchema.onEvent=onEvent;}case 30:return _context73.abrupt("return",amisSchema);case 31:case"end":return _context73.stop();}}},_callee73);}));return _lookupToAmisTreeSelect.apply(this,arguments);}var getReferenceTo=/*#__PURE__*/function(){var _ref13=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(field){var referenceTo,refObjectConfig,valueField,valueFieldName;return _regeneratorRuntime().wrap(function _callee13$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:referenceTo=field.reference_to;if(referenceTo){_context13.next=3;break;}return _context13.abrupt("return");case 3:if(referenceTo==='users'){referenceTo='space_users';field.reference_to_field='user';}_context13.next=6;return getUISchema(referenceTo);case 6:refObjectConfig=_context13.sent;if(refObjectConfig){_context13.next=9;break;}return _context13.abrupt("return",null);case 9:valueField=null;valueFieldName=field.reference_to_field;if(!valueFieldName){valueFieldName=refObjectConfig.idFieldName||'_id';}if(valueFieldName==='_id'){valueField={name:'_id',label:'ID',type:'text',toggled:false};}else{valueField=refObjectConfig.fields[valueFieldName]||{name:valueFieldName};}return _context13.abrupt("return",{objectName:referenceTo,valueField:valueField,labelField:refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY||'name'],NAME_FIELD_KEY:refObjectConfig.NAME_FIELD_KEY||'name'});case 14:case"end":return _context13.stop();}}},_callee13);}));return function getReferenceTo(_x87){return _ref13.apply(this,arguments);};}();function getLookupSapceUserTreeSchema(){var tree=[{"type":"input-tree","className":"","inputClassName":"p-0","id":"u:7fd77b7915b0","source":{"method":"post","url":"${context.rootUrl}/graphql","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"adaptor":"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ","requestAdaptor":"\n ","data":{"query":"{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"},"messages":{},"cache":300000},"onEvent":{"change":{"actions":[{"actionType":"custom","script":"\n const scope = event.context.scoped;\n var filterFormValues={\n \"__searchable__organizations_parents\":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n "}]}},"label":"","name":"organizations","multiple":false,"joinValues":false,"clearValueOnHidden":false,"fieldName":"organizations","hideRoot":true,"initiallyOpen":false,"extractValue":true,"onlyChildren":true,"treeContainerClassName":"no-border","showIcon":false,"enableNodePath":false,"autoCheckChildren":false,"searchable":true,"searchConfig":{"sticky":true,"placeholder":"查找部门"},"unfoldedLevel":2,"style":{"max-height":"100%","position":"absolute","left":"-330px","width":"320px","bottom":0,"top":"0","overflow":"auto","min-height":"300px"},"originPosition":"left-top"}];return tree;}function lookupToAmisPicker(_x88,_x89,_x90){return _lookupToAmisPicker.apply(this,arguments);}function _lookupToAmisPicker(){_lookupToAmisPicker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee74(field,readonly,ctx){var _fields;var referenceTo,refObjectConfig,tableFields,i,searchableFields,fieldsArr,listName,isMobile,listView,fields,sort,source,depend_on,sendOn,keywordsSearchBoxName,top,pickerSchema,headerToolbarItems,isAllowCreate,new_button,data;return _regeneratorRuntime().wrap(function _callee74$(_context74){while(1){switch(_context74.prev=_context74.next){case 0:_context74.next=2;return getReferenceTo(field);case 2:referenceTo=_context74.sent;if(referenceTo){_context74.next=5;break;}return _context74.abrupt("return");case 5:_context74.next=7;return getUISchema(referenceTo.objectName);case 7:refObjectConfig=_context74.sent;ctx.idFieldName=refObjectConfig.idFieldName;ctx.objectName=refObjectConfig.name;tableFields=[];i=0;searchableFields=[];fieldsArr=[];listName="all";isMobile=window.innerWidth<768;listView=___namespace.find(refObjectConfig.list_views,function(listView,name){return name===listName;});if(listView&&listView.columns){___namespace.each(listView.columns,function(column){if(___namespace.isString(column)&&refObjectConfig.fields[column]){fieldsArr.push(refObjectConfig.fields[column]);}else if(___namespace.isObject(column)&&refObjectConfig.fields[column.field]){fieldsArr.push(Object.assign({},refObjectConfig.fields[column.field],{width:column.width,wrap:column.wrap}));}});}else{___namespace.each(refObjectConfig.fields,function(field,field_name){if(field_name!='_id'&&!field.hidden){if(!___namespace.has(field,"name")){field.name=field_name;}fieldsArr.push(field);}});}___namespace.each(___namespace.sortBy(fieldsArr,"sort_no"),function(field){if(i<5){if(!___namespace.find(tableFields,function(f){return f.name===field.name;})){i++;tableFields.push(field);}}});___namespace.each(refObjectConfig.fields,function(field){if(isFieldQuickSearchable(field,refObjectConfig.NAME_FIELD_KEY)){searchableFields.push(field.name);}});fields=(_fields={},_defineProperty(_fields,referenceTo.labelField.name,referenceTo.labelField),_defineProperty(_fields,referenceTo.valueField.name,referenceTo.valueField),_fields);___namespace.each(tableFields,function(tableField){if(!tableField.hidden){fields[tableField.name]=tableField;}});sort="";if(listView){sort=getListViewSort(listView);}_context74.next=26;return getApi$1(refObjectConfig,null,fields,{expand:true,alias:'rows',queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\""});case 26:source=_context74.sent;if(source.url&&!ctx.inFilterForm){depend_on=[];sendOn=[];___namespace.each(field.depend_on,function(fName){depend_on.push("depend_on_".concat(fName,"=${").concat(fName,"}"));sendOn.push("this.".concat(fName));});if(depend_on.length>0){source.url="".concat(source.url,"?").concat(depend_on.join('&'));source.sendOn="".concat(sendOn.join(' && '));}}source.data.$term="$term";source.data.$self="$$";keywordsSearchBoxName="__keywords_lookup__".concat(field.name,"__to__").concat(refObjectConfig.name);source.requestAdaptor="\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"".concat(sort,"\";\n var allowSearchFields = ").concat(JSON.stringify(searchableFields),";\n let fieldValue;\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [[\"").concat(referenceTo.valueField.name,"\", \"=\", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [[\"").concat(referenceTo.valueField.name,"\", \"=\", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(").concat((referenceTo===null||referenceTo===void 0?void 0:referenceTo.objectName)==="space_users"," && ").concat(field.reference_to_field==="user","){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.").concat(keywordsSearchBoxName,", allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ").concat(JSON.stringify(field.filters),";\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ").concat(ctx.inFilterForm,";\n const filtersFunction = ").concat(field.filtersFunction||field._filtersFunction,";\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ").concat(refObjectConfig.enable_tree,";\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ");source.adaptor="\n const enable_tree = ".concat(refObjectConfig.enable_tree,";\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op\u4E0D\u4E3A\u7A7A\uFF0C\u8868\u793A\u5904\u4E8E\u5B57\u6BB5\u521D\u59CB\u7F16\u8F91\u72B6\u6001\uFF0C\u4E0D\u662F\u70B9\u51FB\u540E\u51FA\u73B0\u5F39\u7A97\u72B6\u6001\u3002\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, [\"").concat(referenceTo.labelField.name,"\", \"").concat(referenceTo.valueField.name,"\"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n ");if(field.optionsFunction||field._optionsFunction){source.adaptor="\n payload.data.rows = eval(".concat(field.optionsFunction||field._optionsFunction,")(api.data.$self);\n return payload;\n ");}top=20;if(refObjectConfig.paging&&refObjectConfig.paging.enabled===false){top=1000;}pickerSchema=null;if(!(ctx.formFactor==='SMALL')){_context74.next=43;break;}_context74.next=40;return getListSchema$1(tableFields,_objectSpread(_objectSpread({top:top},ctx),{},{actions:false}));case 40:pickerSchema=_context74.sent;_context74.next=65;break;case 43:_context74.next=45;return getTableSchema$1(tableFields,_objectSpread({labelFieldName:refObjectConfig.NAME_FIELD_KEY,top:top,isLookup:true},ctx));case 45:pickerSchema=_context74.sent;pickerSchema.affixHeader=false;headerToolbarItems=[];if(referenceTo.objectName==="space_users"&&field.reference_to_field==="user"&&!isMobile){headerToolbarItems=getLookupSapceUserTreeSchema();pickerSchema["style"]={"margin-left":"330px","min-height":"300px"};pickerSchema.className=pickerSchema.className||""+" steedos-select-user";}pickerSchema.headerToolbar=getObjectHeaderToolbar(refObjectConfig,fieldsArr,ctx.formFactor,{headerToolbarItems:headerToolbarItems,isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName});isAllowCreate=refObjectConfig.permissions.allowCreate;if(!isAllowCreate){_context74.next=57;break;}_context74.next=54;return getSchema$5(refObjectConfig,{appId:ctx.appId,objectName:refObjectConfig.name,formFactor:ctx.formFactor});case 54:new_button=_context74.sent;new_button.align="right";// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
296
|
+
pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length-1,0,new_button);case 57:pickerSchema.footerToolbar=refObjectConfig.enable_tree?[]:getObjectFooterToolbar();if(!(ctx.filterVisible!==false)){_context74.next=62;break;}_context74.next=61;return getObjectFilter(refObjectConfig,fields,_objectSpread(_objectSpread({},ctx),{},{isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName}));case 61:pickerSchema.filter=_context74.sent;case 62:pickerSchema.data=Object.assign({},pickerSchema.data,{"&":"$$","objectName":refObjectConfig.name,"uiSchema":refObjectConfig,"listName":listName,// 需要按视图取可搜索项
|
|
297
|
+
"isLookup":true});if(!pickerSchema.onEvent){pickerSchema.onEvent={};}pickerSchema.onEvent["@data.changed.".concat(refObjectConfig.name)]={"actions":[{"actionType":"reload"},{"actionType":"custom","script":"\n const masterRecord = event.data._master && event.data._master.record;\n const fieldConfig = ".concat(JSON.stringify(field),";\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: \u8FDE\u7EED\u65B0\u5EFA\u591A\u4E2A\u8BB0\u5F55\u65F6\uFF0C\u56E0\u4E3A\u83B7\u53D6\u7684\u4E3B\u8BB0\u5F55\u4E0D\u662F\u5B9E\u65F6\u7684\uFF0C\u6240\u4EE5\u53EA\u4F1A\u52FE\u9009\u6700\u540E\u4E00\u4E2A\u65B0\u5EFA\u7684\u8BB0\u5F55\u3002\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ").concat(JSON.stringify(ctx),";\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n ")}]};case 65:if(field.pickerSchema){pickerSchema=Object.assign({},pickerSchema,field.pickerSchema);}data={type:getAmisStaticFieldType('picker',readonly),modalTitle:i18next__default["default"].t('frontend_form_please_select')+" "+refObjectConfig.label,labelField:referenceTo.labelField.name,valueField:referenceTo.valueField.name,// disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段。
|
|
295
298
|
disabledOn:"".concat(readonly," || ( (this._master && (this._master.relatedKey ==='").concat(field.name,"')) || (this.relatedKey ==='").concat(field.name,"') )"),modalMode:'dialog',//TODO 设置 dialog 或者 drawer,用来配置弹出方式
|
|
296
|
-
source:source,size:"lg",pickerSchema:pickerSchema,joinValues:false,extractValue:true};if(field.multiple){data.multiple=true;data.extractValue=true;}if(!readonly){_context74.next=
|
|
299
|
+
source:source,size:"lg",pickerSchema:pickerSchema,joinValues:false,extractValue:true};if(field.multiple){data.multiple=true;data.extractValue=true;}if(!readonly){_context74.next=72;break;}_context74.next=71;return getLookupTpl(field,ctx);case 71:data.tpl=_context74.sent;case 72:return _context74.abrupt("return",data);case 73:case"end":return _context74.stop();}}},_callee74);}));return _lookupToAmisPicker.apply(this,arguments);}function lookupToAmisSelect(_x91,_x92,_x93){return _lookupToAmisSelect.apply(this,arguments);}function _lookupToAmisSelect(){_lookupToAmisSelect=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee75(field,readonly,ctx){var _referenceTo$valueFie;var referenceTo,valueFieldKey,apiInfo,defaultValueOptionsQueryData,refObjectConfig,listView,sort,depend_on,sendOn,data,select_menuTpl;return _regeneratorRuntime().wrap(function _callee75$(_context75){while(1){switch(_context75.prev=_context75.next){case 0:_context75.next=2;return getReferenceTo(field);case 2:referenceTo=_context75.sent;valueFieldKey=referenceTo&&((_referenceTo$valueFie=referenceTo.valueField)===null||_referenceTo$valueFie===void 0?void 0:_referenceTo$valueFie.name)||'_id';// const labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';
|
|
297
300
|
if(!referenceTo){_context75.next=14;break;}_context75.next=7;return getFindQuery({name:referenceTo.objectName},null,[Object.assign({},referenceTo.labelField,{alias:'label'}),Object.assign({},referenceTo.valueField,{alias:'value'})],{alias:"defaultValueOptions",filters:"{__options_filters}",count:false});case 7:defaultValueOptionsQueryData=_context75.sent;_context75.next=10;return getApi$1({name:referenceTo.objectName},null,[Object.assign({},referenceTo.labelField,{alias:'label'}),Object.assign({},referenceTo.valueField,{alias:'value'})],{expand:false,alias:'options',queryOptions:"filters: {__filters}, top: {__top}, sort: \"{__sort}\"",moreQueries:[defaultValueOptionsQueryData.query]});case 10:apiInfo=_context75.sent;apiInfo.adaptor="\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // \u5B57\u6BB5\u503C\u4E0B\u62C9\u9009\u9879\u5408\u5E76\u5230options\u4E2D\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a[\"value\"]=== b[\"value\"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n ";_context75.next=15;break;case 14:apiInfo={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"},"headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}};case 15:_context75.t0=referenceTo;if(!_context75.t0){_context75.next=20;break;}_context75.next=19;return getUISchema(referenceTo.objectName);case 19:_context75.t0=_context75.sent;case 20:refObjectConfig=_context75.t0;listView=refObjectConfig&&___namespace.find(refObjectConfig.list_views,function(listView,name){return name==="all";});sort="";if(listView){sort=getListViewSort(listView);}// 列表视图搜索栏中,即inFilterForm=true时,不需要执行depend_on
|
|
298
301
|
if(apiInfo.url&&!ctx.inFilterForm){depend_on=[];sendOn=[];___namespace.each(field.depend_on,function(fName){depend_on.push("depend_on_".concat(fName,"=${").concat(fName,"}"));sendOn.push("this.".concat(fName));});if(depend_on.length>0){apiInfo.url="".concat(apiInfo.url,"?").concat(depend_on.join('&'));apiInfo.sendOn="".concat(sendOn.join(' && '));}}apiInfo.data.$term="$term";// apiInfo.data.$value = `$${field.name}.${referenceTo ? referenceTo.valueField.name : '_id'}`;
|
|
299
302
|
apiInfo.data.$value=ctx.isRefToMutiple?"$".concat(field.name,".ids"):"$".concat(field.name);___namespace.each(field.depend_on,function(fName){apiInfo.data[fName]="$".concat(fName);});apiInfo.data['$']="$$";apiInfo.data['rfield']="${object_name}";// [["_id", "=", "$${field.name}._id"],"or",["name", "contains", "$term"]]
|
|
@@ -406,7 +409,7 @@ width:getFieldWidth(field.width),type:type,tpl:tpl,toggled:field.toggled,classNa
|
|
|
406
409
|
},field.amis,{name:field.name});}case 45:if(columnItem){if(quickEditSchema){columnItem.quickEdit=quickEditSchema;columnItem.quickEditEnabledOn="${is_system !== true}";}columns.push(columnItem);}case 46:_context84.next=5;break;case 48:_context84.next=53;break;case 50:_context84.prev=50;_context84.t1=_context84["catch"](3);_iterator9.e(_context84.t1);case 53:_context84.prev=53;_iterator9.f();return _context84.finish(53);case 56:// columns.push(getOperation(fields));
|
|
407
410
|
if(!___namespace.some(columns,{name:options.labelFieldName})){href=Router.getObjectDetailPath(_objectSpread(_objectSpread({},options),{},{formFactor:options.formFactor,appId:"${appId}",objectName:options.objectName||"${objectName}",recordId:"${".concat(options.idFieldName,"}")}));columns[0].type="tpl";columns[0].tpl="<a href=\"".concat(href,"\">${").concat(columns[0].name,"}</a>");}return _context84.abrupt("return",columns);case 58:case"end":return _context84.stop();}}},_callee84,null,[[3,50,53,56]]);}));return _getTableColumns.apply(this,arguments);}function getMobileLines(tpls){var lines=[];var maxLineCount=2;var lineChildren=[];var isNewLine=false;var isLeft=true;var lineChildrenClassName="";var lineClassName="flex items-center justify-between";tpls.forEach(function(item){if(isNewLine&&lines.length<maxLineCount){lines.push({"type":"wrapper","body":lineChildren,"size":"none","className":lineClassName});lineChildren=[];}if(isLeft){// 左侧半行
|
|
408
411
|
lineChildrenClassName="steedos-listview-item-left two-lines-truncate";if(item.field.is_wide){// 左侧全行样式可以单独写
|
|
409
|
-
lineChildrenClassName="steedos-listview-item-wide truncate";}if(lines.length===0){// 第一个字段加粗黑色显示
|
|
412
|
+
lineChildrenClassName="steedos-listview-item-wide two-lines-truncate";}if(lines.length===0){// 第一个字段加粗黑色显示
|
|
410
413
|
lineChildrenClassName+=" font-bold text-gray-800";}}else{// 右侧半行
|
|
411
414
|
lineChildrenClassName="steedos-listview-item-right truncate ml-2 flex flex-shrink-0";}lineChildren.push({"type":"tpl","tpl":item.tpl,"className":lineChildrenClassName});if(item.field.is_wide){// 宽字段占整行
|
|
412
415
|
isLeft=true;isNewLine=true;}else{isLeft=!isLeft;isNewLine=isLeft;}});if(lineChildren.length&&lines.length<maxLineCount){lines.push({"type":"wrapper","body":lineChildren,"size":"none","className":lineClassName});}return lines;}function getMobileTableColumns(_x120,_x121){return _getMobileTableColumns.apply(this,arguments);}function _getMobileTableColumns(){_getMobileTableColumns=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee85(fields,options){var columns,nameField,tpls,_iterator10,_step11,field,tpl,url,columnLines,column,_window$Meteor;return _regeneratorRuntime().wrap(function _callee85$(_context85){while(1){switch(_context85.prev=_context85.next){case 0:columns=[];nameField={};tpls=[];_iterator10=_createForOfIteratorHelper(fields);_context85.prev=4;_iterator10.s();case 6:if((_step11=_iterator10.n()).done){_context85.next=29;break;}field=_step11.value;tpl="";if(!(field.is_name||field.name===options.labelFieldName)){_context85.next=17;break;}nameField=field;options.onlyDisplayLabel=true;_context85.next=14;return getFieldTpl(field,options);case 14:tpl=_context85.sent;_context85.next=25;break;case 17:if(!(field.type==='avatar'||field.type==='image'||field.type==='file')){_context85.next=21;break;}// 图片和附件类型字段暂时显示为附件名称,后续需要再优化
|
|
@@ -430,10 +433,10 @@ operationButtons.push({type:'steedos-object-button',name:button.name,objectName:
|
|
|
430
433
|
* @param {*} fields
|
|
431
434
|
* @param {*} options = {filter: listview 过滤条件, ...}
|
|
432
435
|
* @returns
|
|
433
|
-
*/function _getTableSchema$(){_getTableSchema$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee87(fields,options){var isLookup,columns;return _regeneratorRuntime().wrap(function _callee87$(_context87){while(1){switch(_context87.prev=_context87.next){case 0:isLookup=options&&options.isLookup;if(!options){options={};}columns=[];if(!(options.formFactor==='SMALL'||["split"].indexOf(options.displayAs)>-1)){_context87.next=
|
|
434
|
-
columnsTogglable:false});case
|
|
436
|
+
*/function _getTableSchema$(){_getTableSchema$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee87(fields,options){var isLookup,hiddenColumnOperation,columns;return _regeneratorRuntime().wrap(function _callee87$(_context87){while(1){switch(_context87.prev=_context87.next){case 0:isLookup=options&&options.isLookup;hiddenColumnOperation=options&&options.hiddenColumnOperation;if(!options){options={};}columns=[];if(!(options.formFactor==='SMALL'||["split"].indexOf(options.displayAs)>-1)){_context87.next=10;break;}_context87.next=7;return getMobileTableColumns(fields,options);case 7:columns=_context87.sent;_context87.next=19;break;case 10:_context87.next=12;return getTableColumns(fields,options);case 12:columns=_context87.sent;if(!(!isLookup&&!hiddenColumnOperation)){_context87.next=19;break;}_context87.t0=columns;_context87.next=17;return getTableOperation(options);case 17:_context87.t1=_context87.sent;_context87.t0.push.call(_context87.t0,_context87.t1);case 19:return _context87.abrupt("return",{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:false,defaultParams:getDefaultParams(options),columns:columns,syncLocation:false,keepItemSelectionOnPageChange:true,checkOnItemClick:false,labelTpl:"${".concat(options.labelFieldName,"}"),autoFillHeight:false,// 自动高度效果不理想,先关闭
|
|
437
|
+
columnsTogglable:false});case 20:case"end":return _context87.stop();}}},_callee87);}));return _getTableSchema$.apply(this,arguments);}function getTableApi(_x125,_x126,_x127){return _getTableApi.apply(this,arguments);}function _getTableApi(){_getTableApi=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee88(mainObject,fields,options){var searchableFields,filter,filtersFunction,sort,top,_options$setDataToCom,setDataToComponentId,baseFilters,fileFields,fileFieldsKeys,lookupFields,valueField,api;return _regeneratorRuntime().wrap(function _callee88$(_context88){while(1){switch(_context88.prev=_context88.next){case 0:searchableFields=[];filter=options.filter,filtersFunction=options.filtersFunction,sort=options.sort,top=options.top,_options$setDataToCom=options.setDataToComponentId,setDataToComponentId=_options$setDataToCom===void 0?'':_options$setDataToCom;if(___namespace.isArray(filter)){filter=___namespace.map(filter,function(item){if(item.operation){return[item.field,item.operation,item.value];}else{return item;}});}if(!filter){filter=[];}baseFilters=null;if(filter){baseFilters=filter;}___namespace.each(mainObject.fields,function(field){if(isFieldQuickSearchable(field,mainObject.NAME_FIELD_KEY)){searchableFields.push(field.name);}});fileFields={};fileFieldsKeys=[];// 含有optionsFunction属性, 无reference_to属性的lookup字段
|
|
435
438
|
lookupFields={};fields.forEach(function(item){if(___namespace.includes(['image','avatar','file'],item.type)){fileFieldsKeys.push(item.name);fileFields[item.name]={name:item.name,type:item.type,multiple:item.multiple};}if(___namespace.includes(['lookup'],item.type)&&!item.reference_to){lookupFields[item.name]=item;}});valueField=mainObject.key_field||'_id';_context88.next=14;return getApi(mainObject,null,fields,{count:options.queryCount,alias:'rows',limit:top,queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\""});case 14:api=_context88.sent;api.url+="&objectName=${objectName}";//设计器上对象表格组件需要切换对象重新请求列表数据
|
|
436
|
-
if(options.isRelated){api.url+="&recordId=${_master.recordId}";}api.data.$term="$term";api.data.term="$term";api.data.$self="$$";api.data.self="$$";api.data.filter="$filter";api.data.loaded="${loaded}";api.data.listViewId="${listViewId}";api.data.listName="${listName}";api.requestAdaptor="\n // selfData \u4E2D\u7684\u6570\u636E\u7531 CRUD \u63A7\u5236. selfData\u4E2D,\u53EA\u80FD\u83B7\u53D6\u5230 CRUD \u7ED9\u5B9A\u7684data. \u65E0\u6CD5\u4ECE\u6570\u636E\u94FE\u4E2D\u83B7\u53D6\u6570\u636E.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n // \u4FDD\u7559\u4E00\u4EFD\u521D\u59CBdata\uFF0C\u4EE5\u4F9B\u81EA\u5B9A\u4E49\u53D1\u9001\u9002\u914D\u5668\u4E2D\u83B7\u53D6\u539F\u59CB\u6570\u636E\u3002\n const data = _.cloneDeep(api.data);\n try{\n // TODO: \u4E0D\u5E94\u8BE5\u76F4\u63A5\u5728\u8FD9\u91CC\u53D6localStorage\uFF0C\u5E94\u8BE5\u4ECE\u5916\u9762\u4F20\u5165\n const listName = api.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData);\n if(!api.data.filter){\n api.data.filter = localListViewProps.filter;\n }\n if(!api.data.loaded){\n // \u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\uFF0C\u6BD4\u5982\u5237\u65B0\u6D4F\u89C8\u5668\u65F6\u56E0\u4E3Aapi.data.pageNo\u6709\u9ED8\u8BA4\u503C1\n // \u6240\u4EE5\u4F1A\u628AlocalSearchableFilter\u4E2D\u5DF2\u7ECF\u5B58\u8FC7\u7684\u9875\u7801\u8986\u76D6\n // \u5982\u679C\u662F\u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\u59CB\u7EC8\u8BA9\u7FFB\u9875\u9875\u7801\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u503C\n let formFactor = \"".concat(options.formFactor,"\";\n // \u79FB\u52A8\u7AEF\u4E0D\u8BC6\u522B\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u7FFB\u9875\u9875\u7801\uFF0C\u5426\u5219\u70B9\u51FB\u52A0\u8F7D\u66F4\u591A\u6309\u94AE\u540E\u65E0\u6CD5\u5237\u65B0\u56DE\u7B2C\u4E00\u9875\n api.data.pageNo = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n }\n }\n }\n catch(ex){\n console.error(\"\u672C\u5730\u5B58\u50A8\u4E2Dcrud\u53C2\u6570\u89E3\u6790\u5F02\u5E38\uFF1A\", ex);\n }\n ").concat(baseFilters?"var systemFilters = ".concat(JSON.stringify(baseFilters),";"):'var systemFilters = [];',"\n var _ids = []\n const filtersFunction = ").concat(filtersFunction,";\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\n if(api.data.listName == \"recent\"){\n _ids = _filters[2]\n }\n if(_filters && _filters.length > 0){\n if(_.isEmpty(systemFilters)){\n systemFilters = _filters || [];\n }else{\n systemFilters = [systemFilters, 'and', _filters];\n }\n }\n }\n let userFilters =[];\n \n if(_.isEmpty(systemFilters)){\n systemFilters = api.data.filter || [];\n }else{\n if(!_.isEmpty(api.data.filter)){\n systemFilters = [systemFilters, 'and', api.data.filter];\n }\n }\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"").concat(sort||'',"\";\n var allowSearchFields = ").concat(JSON.stringify(searchableFields),";\n if(api.data.$term){\n userFilters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [[\"").concat(valueField.name,"\", \"=\", selfData.value]];\n }\n \n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(userFilters.length > 0 ){\n userFilters = [userFilters, 'and', searchableFilter];\n }else{\n userFilters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n userFilters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n userFilters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n userFilters.push(keywordsFilters);\n }\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n };\n if(api.data.$self.additionalFilters){\n if(_.isString(api.data.$self.additionalFilters)){\n userFilters.push(eval(api.data.$self.additionalFilters))\n }else{\n userFilters.push(api.data.$self.additionalFilters)\n }\n }\n\n if(api.data.$self._isRelated){\n const self = api.data.$self;\n const relatedKey = self.relatedKey;\n const refField = self.uiSchema.fields[relatedKey];\n const masterRecord = self._master.record;\n const masterObjectName = self._master.objectName;\n let relatedValue = self._master.recordId;\n if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){\n relatedValue = masterRecord[refField.reference_to_field]\n }\n let relatedFilters;\n if (\n refField && (refField._reference_to ||\n (refField.reference_to && !_.isString(refField.reference_to)))\n ) {\n relatedFilters = [\n [relatedKey + \"/o\", \"=\", masterObjectName],\n [relatedKey + \"/ids\", \"=\", relatedValue],\n ];\n } else {\n relatedFilters = [relatedKey, \"=\", relatedValue];\n }\n userFilters.push(relatedFilters)\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters = [filters, 'and', userFilters]\n }\n }\n api.data._ids = _ids;\n api.data = {\n query: api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim())\n }\n ").concat(options.requestAdaptor||'',"\n return api;\n ");api.adaptor="\n if(api.body.listName == \"recent\"){\n payload.data.rows = _.sortBy(payload.data.rows, function(item){\n return _.indexOf(api.body._ids, item._id)\n });\n }\n const enable_tree = ".concat(mainObject.enable_tree,";\n if(!enable_tree){\n _.each(payload.data.rows, function(item, index){\n const {pageNo, pageSize} = api.body;\n const skip = (pageNo - 1) * pageSize;\n item._index = skip + index + 1;\n })\n }\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n let fileFields = ").concat(JSON.stringify(fileFields),";\n let lookupFields = ").concat(JSON.stringify(lookupFields),";\n _.each(payload.data.rows, function(item, index){\n _.each(fileFields , (field, key)=>{\n if(item[key] && item._display && item._display[key]){\n let value = item._display[key];\n if(!_.isArray(value)){\n value = [value]\n };\n if(field.type === 'file'){\n item[key] = value\n }else{\n item[key] = _.map(value, 'url')\n }\n }\n })\n _.each(lookupFields , (field, key)=>{\n if(item[key]){\n if(field._optionsFunction){\n const optionsFunction = eval(\"(\" + field._optionsFunction+ \")\")(item);\n item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');\n }else if(field.options){\n const options = field.options;\n item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows || [];\n const getTreeOptions = SteedosUI.getTreeOptions\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n }\n\n\n try{\n // TODO: \u4E0D\u5E94\u8BE5\u76F4\u63A5\u5728\u8FD9\u91CC\u53D6localStorage\uFF0C\u5E94\u8BE5\u4ECE\u5916\u9762\u4F20\u5165\n const listName = api.body.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n /**\n * localListViewProps\u89C4\u8303\u6765\u81EAcrud\u8BF7\u6C42api\u4E2Dapi.data.$self\u53C2\u6570\u503C\u7684\u3002\n * \u6BD4\u5982\uFF1A{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:\u9876\u90E8\u653E\u5927\u955C\u641C\u7D22\u6761\u4EF6\n * filter:\u53F3\u4FA7\u8FC7\u6EE4\u5668\n * perPage:\u6BCF\u9875\u6761\u6570\n * page:\u5F53\u524D\u9875\u7801\n * orderBy:\u6392\u5E8F\u5B57\u6BB5\n * orderDir:\u6392\u5E8F\u65B9\u5411\n */\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.body.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.body.filter });\n if(!api.body.loaded){\n // \u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\uFF0C\u6BD4\u5982\u5237\u65B0\u6D4F\u89C8\u5668\u65F6\u56E0\u4E3Aapi.data.pageNo\u6709\u9ED8\u8BA4\u503C1\n // \u6240\u4EE5\u4F1A\u628AlocalSearchableFilter\u4E2D\u5DF2\u7ECF\u5B58\u8FC7\u7684\u9875\u7801\u8986\u76D6\n // \u5982\u679C\u662F\u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\u59CB\u7EC8\u8BA9\u7FFB\u9875\u9875\u7801\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u503C\n let formFactor = \"").concat(options.formFactor,"\";\n // \u79FB\u52A8\u7AEF\u4E0D\u8BC6\u522B\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u7FFB\u9875\u9875\u7801\uFF0C\u5426\u5219\u70B9\u51FB\u52A0\u8F7D\u66F4\u591A\u6309\u94AE\u540E\u65E0\u6CD5\u5237\u65B0\u56DE\u7B2C\u4E00\u9875\n selfData.page = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n }\n }\n delete selfData.context;\n delete selfData.global;\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));\n // \u8FD4\u56DE\u9875\u7801\u5230UI\u754C\u9762\n payload.data.page= selfData.page;\n }\n catch(ex){\n console.error(\"\u672C\u5730\u5B58\u50A8\u4E2Dcrud\u53C2\u6570\u89E3\u6790\u5F02\u5E38\uFF1A\", ex);\n }\n // \u6807\u8BB0\u52A0\u8F7D\u8FC7\uFF0C\u540E\u7EED\u4F18\u5148\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u52A0\u8F7D\u76F8\u5173\u53C2\u6570\n payload.data.loaded= true;\n\n const setDataToComponentId = \"").concat(setDataToComponentId,"\";\n if(setDataToComponentId){\n //https://github.com/baidu/amis/pull/6807 .parent\u7684\u6539\u52A8\u662F\u4E3A\u9002\u5E943.2getComponentById\u7684\u89C4\u5219\u6539\u52A8\uFF0C\u4E0D\u5F71\u54CD2.9\n var scope = SteedosUI.getRef(api.body.$self.$scopeId);\n var scopeParent = scope && scope.parent;\n var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ").concat(options.adaptor||'',"\n return payload;\n ");return _context88.abrupt("return",api);case 28:case"end":return _context88.stop();}}},_callee88);}));return _getTableApi.apply(this,arguments);}function getApi(_x128,_x129,_x130,_x131){return _getApi.apply(this,arguments);}function _getApi(){_getApi=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee89(object,recordId,fields,options){var data;return _regeneratorRuntime().wrap(function _callee89$(_context89){while(1){switch(_context89.prev=_context89.next){case 0:_context89.next=2;return getFindQuery(object,recordId,fields,options);case 2:data=_context89.sent;return _context89.abrupt("return",{method:"post",url:getApi$2(),// + "&recordId=${recordId}"
|
|
439
|
+
if(options.isRelated){api.url+="&recordId=${_master.recordId}";}api.data.$term="$term";api.data.term="$term";api.data.$self="$$";api.data.self="$$";api.data.filter="$filter";api.data.loaded="${loaded}";api.data.listViewId="${listViewId}";api.data.listName="${listName}";api.requestAdaptor="\n // selfData \u4E2D\u7684\u6570\u636E\u7531 CRUD \u63A7\u5236. selfData\u4E2D,\u53EA\u80FD\u83B7\u53D6\u5230 CRUD \u7ED9\u5B9A\u7684data. \u65E0\u6CD5\u4ECE\u6570\u636E\u94FE\u4E2D\u83B7\u53D6\u6570\u636E.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n // \u4FDD\u7559\u4E00\u4EFD\u521D\u59CBdata\uFF0C\u4EE5\u4F9B\u81EA\u5B9A\u4E49\u53D1\u9001\u9002\u914D\u5668\u4E2D\u83B7\u53D6\u539F\u59CB\u6570\u636E\u3002\n const data = _.cloneDeep(api.data);\n try{\n // TODO: \u4E0D\u5E94\u8BE5\u76F4\u63A5\u5728\u8FD9\u91CC\u53D6localStorage\uFF0C\u5E94\u8BE5\u4ECE\u5916\u9762\u4F20\u5165\n const listName = api.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData);\n if(!api.data.filter){\n api.data.filter = localListViewProps.filter;\n }\n if(!api.data.loaded){\n // \u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\uFF0C\u6BD4\u5982\u5237\u65B0\u6D4F\u89C8\u5668\u65F6\u56E0\u4E3Aapi.data.pageNo\u6709\u9ED8\u8BA4\u503C1\n // \u6240\u4EE5\u4F1A\u628AlocalSearchableFilter\u4E2D\u5DF2\u7ECF\u5B58\u8FC7\u7684\u9875\u7801\u8986\u76D6\n // \u5982\u679C\u662F\u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\u59CB\u7EC8\u8BA9\u7FFB\u9875\u9875\u7801\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u503C\n let formFactor = \"".concat(options.formFactor,"\";\n // api.data.pageNo = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n // \u79FB\u52A8\u7AEF\u6682\u65F6\u53BB\u9664\u52A0\u8F7D\u66F4\u591A\uFF0C\u653E\u5F00\u7FFB\u9875\n api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error(\"\u672C\u5730\u5B58\u50A8\u4E2Dcrud\u53C2\u6570\u89E3\u6790\u5F02\u5E38\uFF1A\", ex);\n }\n ").concat(baseFilters?"var systemFilters = ".concat(JSON.stringify(baseFilters),";"):'var systemFilters = [];',"\n var _ids = []\n const filtersFunction = ").concat(filtersFunction,";\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\n if(api.data.listName == \"recent\"){\n _ids = _filters[2]\n }\n if(_filters && _filters.length > 0){\n if(_.isEmpty(systemFilters)){\n systemFilters = _filters || [];\n }else{\n systemFilters = [systemFilters, 'and', _filters];\n }\n }\n }\n let userFilters =[];\n \n if(_.isEmpty(systemFilters)){\n systemFilters = api.data.filter || [];\n }else{\n if(!_.isEmpty(api.data.filter)){\n systemFilters = [systemFilters, 'and', api.data.filter];\n }\n }\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"").concat(sort||'',"\";\n var allowSearchFields = ").concat(JSON.stringify(searchableFields),";\n if(api.data.$term){\n userFilters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [[\"").concat(valueField.name,"\", \"=\", selfData.value]];\n }\n \n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(userFilters.length > 0 ){\n userFilters = [userFilters, 'and', searchableFilter];\n }else{\n userFilters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n userFilters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n userFilters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n userFilters.push(keywordsFilters);\n }\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n };\n if(api.data.$self.additionalFilters){\n if(_.isString(api.data.$self.additionalFilters)){\n userFilters.push(eval(api.data.$self.additionalFilters))\n }else{\n userFilters.push(api.data.$self.additionalFilters)\n }\n }\n\n if(api.data.$self._isRelated){\n const self = api.data.$self;\n const relatedKey = self.relatedKey;\n const refField = self.uiSchema.fields[relatedKey];\n const masterRecord = self._master.record;\n const masterObjectName = self._master.objectName;\n let relatedValue = self._master.recordId;\n if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){\n relatedValue = masterRecord[refField.reference_to_field]\n }\n let relatedFilters;\n if (\n refField && (refField._reference_to ||\n (refField.reference_to && !_.isString(refField.reference_to)))\n ) {\n relatedFilters = [\n [relatedKey + \"/o\", \"=\", masterObjectName],\n [relatedKey + \"/ids\", \"=\", relatedValue],\n ];\n } else {\n relatedFilters = [relatedKey, \"=\", relatedValue];\n }\n userFilters.push(relatedFilters)\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters = [filters, 'and', userFilters]\n }\n }\n api.data._ids = _ids;\n api.data = {\n query: api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim())\n }\n ").concat(options.requestAdaptor||'',"\n return api;\n ");api.adaptor="\n if(api.body.listName == \"recent\"){\n payload.data.rows = _.sortBy(payload.data.rows, function(item){\n return _.indexOf(api.body._ids, item._id)\n });\n }\n const enable_tree = ".concat(mainObject.enable_tree,";\n if(!enable_tree){\n _.each(payload.data.rows, function(item, index){\n const {pageNo, pageSize} = api.body;\n const skip = (pageNo - 1) * pageSize;\n item._index = skip + index + 1;\n })\n }\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n let fileFields = ").concat(JSON.stringify(fileFields),";\n let lookupFields = ").concat(JSON.stringify(lookupFields),";\n _.each(payload.data.rows, function(item, index){\n _.each(fileFields , (field, key)=>{\n if(item[key] && item._display && item._display[key]){\n let value = item._display[key];\n if(!_.isArray(value)){\n value = [value]\n };\n if(field.type === 'file'){\n item[key] = value\n }else{\n item[key] = _.map(value, 'url')\n }\n }\n })\n _.each(lookupFields , (field, key)=>{\n if(item[key]){\n if(field._optionsFunction){\n const optionsFunction = eval(\"(\" + field._optionsFunction+ \")\")(item);\n item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');\n }else if(field.options){\n const options = field.options;\n item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows || [];\n const getTreeOptions = SteedosUI.getTreeOptions\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n }\n\n\n try{\n // TODO: \u4E0D\u5E94\u8BE5\u76F4\u63A5\u5728\u8FD9\u91CC\u53D6localStorage\uFF0C\u5E94\u8BE5\u4ECE\u5916\u9762\u4F20\u5165\n const listName = api.body.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n /**\n * localListViewProps\u89C4\u8303\u6765\u81EAcrud\u8BF7\u6C42api\u4E2Dapi.data.$self\u53C2\u6570\u503C\u7684\u3002\n * \u6BD4\u5982\uFF1A{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:\u9876\u90E8\u653E\u5927\u955C\u641C\u7D22\u6761\u4EF6\n * filter:\u53F3\u4FA7\u8FC7\u6EE4\u5668\n * perPage:\u6BCF\u9875\u6761\u6570\n * page:\u5F53\u524D\u9875\u7801\n * orderBy:\u6392\u5E8F\u5B57\u6BB5\n * orderDir:\u6392\u5E8F\u65B9\u5411\n */\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.body.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.body.filter });\n if(!api.body.loaded){\n // \u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\uFF0C\u6BD4\u5982\u5237\u65B0\u6D4F\u89C8\u5668\u65F6\u56E0\u4E3Aapi.data.pageNo\u6709\u9ED8\u8BA4\u503C1\n // \u6240\u4EE5\u4F1A\u628AlocalSearchableFilter\u4E2D\u5DF2\u7ECF\u5B58\u8FC7\u7684\u9875\u7801\u8986\u76D6\n // \u5982\u679C\u662F\u7B2C\u4E00\u6B21\u52A0\u8F7D\u7EC4\u4EF6\u59CB\u7EC8\u8BA9\u7FFB\u9875\u9875\u7801\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u503C\n let formFactor = \"").concat(options.formFactor,"\";\n // \u79FB\u52A8\u7AEF\u4E0D\u8BC6\u522B\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u7FFB\u9875\u9875\u7801\uFF0C\u5426\u5219\u70B9\u51FB\u52A0\u8F7D\u66F4\u591A\u6309\u94AE\u540E\u65E0\u6CD5\u5237\u65B0\u56DE\u7B2C\u4E00\u9875\n // selfData.page = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));\n // \u8FD4\u56DE\u9875\u7801\u5230UI\u754C\u9762\n payload.data.page= selfData.page;\n }\n catch(ex){\n console.error(\"\u672C\u5730\u5B58\u50A8\u4E2Dcrud\u53C2\u6570\u89E3\u6790\u5F02\u5E38\uFF1A\", ex);\n }\n // \u6807\u8BB0\u52A0\u8F7D\u8FC7\uFF0C\u540E\u7EED\u4F18\u5148\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u52A0\u8F7D\u76F8\u5173\u53C2\u6570\n payload.data.loaded= true;\n\n const setDataToComponentId = \"").concat(setDataToComponentId,"\";\n if(setDataToComponentId){\n //https://github.com/baidu/amis/pull/6807 .parent\u7684\u6539\u52A8\u662F\u4E3A\u9002\u5E943.2getComponentById\u7684\u89C4\u5219\u6539\u52A8\uFF0C\u4E0D\u5F71\u54CD2.9\n var scope = SteedosUI.getRef(api.body.$self.$scopeId);\n var scopeParent = scope && scope.parent;\n var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ").concat(options.adaptor||'',"\n return payload;\n ");return _context88.abrupt("return",api);case 28:case"end":return _context88.stop();}}},_callee88);}));return _getTableApi.apply(this,arguments);}function getApi(_x128,_x129,_x130,_x131){return _getApi.apply(this,arguments);}function _getApi(){_getApi=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee89(object,recordId,fields,options){var data;return _regeneratorRuntime().wrap(function _callee89$(_context89){while(1){switch(_context89.prev=_context89.next){case 0:_context89.next=2;return getFindQuery(object,recordId,fields,options);case 2:data=_context89.sent;return _context89.abrupt("return",{method:"post",url:getApi$2(),// + "&recordId=${recordId}"
|
|
437
440
|
data:data,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}});case 4:case"end":return _context89.stop();}}},_callee89);}));return _getApi.apply(this,arguments);}function getRecordPermissionsApi(object,recordId,options){var data=getRecordPermissionsQuery(object,recordId,options);return{method:"post",url:getApi$2(),data:data,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};}var API_CACHE=100;function getReadonlyFormAdaptor(object,fields,options){var scriptStr='';var selectFields=___namespace.filter(fields,function(field){return field.name.indexOf('.')<0&&(field.type=='select'&&field.options||(field.type=='lookup'||field.type=='master_detail')&&!field.reference_to);});var gridAndObjectFieldsName=___namespace.map(___namespace.filter(fields,function(field){return field.name.indexOf('.')<0&&(field.type==='object'||field.type==='grid');}),'name');___namespace.each(selectFields,function(field){if(!___namespace.includes(OMIT_FIELDS,field.name)){field.name;if(field.options){var _options=JSON.stringify({options:field.options});scriptStr=scriptStr+"var ".concat(field.name,"Options= (").concat(_options,").options;");}else if(field.optionsFunction){scriptStr=scriptStr+"var ".concat(field.name,"Options = eval(").concat(field.optionsFunction.toString(),")(api.data);");}else if(field._optionsFunction){scriptStr=scriptStr+"var ".concat(field.name,"Options = eval(").concat(field._optionsFunction,")(api.data);");}if(field.multiple){scriptStr=scriptStr+"data.".concat(field.name,"__label = _.map(_.filter(").concat(field.name,"Options, function(option){return _.includes(data.").concat(field.name,", option.value)}), 'label');");}else{scriptStr=scriptStr+"var ".concat(field.name,"Selected = _.find(").concat(field.name,"Options, function(option){return data.").concat(field.name," == option.value});");scriptStr=scriptStr+"data.".concat(field.name,"__label = ").concat(field.name,"Selected ? ").concat(field.name,"Selected.label:null;");}}});// const refFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to});
|
|
438
441
|
// _.each(refFields, function(field){
|
|
439
442
|
// if(!_.includes(OMIT_FIELDS, field.name)){
|
|
@@ -551,7 +554,7 @@ ___default["default"].forEach(objectSchema.fields,function(field,fieldName){if(!
|
|
|
551
554
|
// "url": "/app/${appId}/${objectName}/grid/${side_listview_id}",
|
|
552
555
|
// "blank": false
|
|
553
556
|
// },
|
|
554
|
-
"actionType":"custom","script":"
|
|
557
|
+
"actionType":"custom","script":"window.goBack()","expression":"this.__deletedRecord === true"}]});_context97.t11={type:"form",mode:_context97.t4,labelAlign:_context97.t5,persistData:false,promptPageLeave:false,name:_context97.t6,debug:false,title:"",data:_context97.t7,wrapWithPanel:false,body:_context97.t8,className:'steedos-amis-form bg-white',actions:_context97.t9,onEvent:_context97.t10};_context97.t12={"type":"wrapper",hiddenOn:"${recordLoaded != true}","className":"p-0 m-0","body":_context97.t11};_context97.t13=[_context97.t12];_context97.t14={"fetchInited":{"weight":0,"actions":[{actionType:'broadcast',eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{objectName:"${event.data.__objectName}",record:"${event.data.__record}"},expression:"${event.data.__response.error != true}"},{"actionType":"setValue","args":{value:{"recordLoaded":true}},expression:"${event.data.__response.error != true}"}]}};return _context97.abrupt("return",{type:'service',name:_context97.t0,id:_context97.t1,data:_context97.t2,api:_context97.t3,body:_context97.t13,onEvent:_context97.t14});case 24:case"end":return _context97.stop();}}},_callee97);}));return _getObjectDetail.apply(this,arguments);}var getGraphqlFieldsQuery=function getGraphqlFieldsQuery(fields){var fieldsName=['_id'];fields.push('record_permissions');//TODO 此处需要考虑相关对象查询
|
|
555
558
|
_$1.each(fields,function(fieldName){if(fieldName.indexOf('.')>-1){fieldName=fieldName.split('.')[0];}fieldsName.push("".concat(fieldName));});return"".concat(fieldsName.join(' '));};var getFindOneQuery=function getFindOneQuery(objectName,id,fields){objectName=objectName.replace(/\./g,'_');var queryFields=getGraphqlFieldsQuery(fields);var queryOptions='';var alias="record";var queryOptionsArray=["id: \"".concat(id,"\"")];if(queryOptionsArray.length>0){queryOptions="(".concat(queryOptionsArray.join(','),")");}return"{".concat(alias,":").concat(objectName,"__findOne").concat(queryOptions,"{").concat(queryFields,"}}");};var getRecord=/*#__PURE__*/function(){var _ref16=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(objectName,recordId,fields){var result;return _regeneratorRuntime().wrap(function _callee16$(_context16){while(1){switch(_context16.prev=_context16.next){case 0:_context16.next=2;return fetchAPI('/graphql',{method:'post',body:JSON.stringify({query:getFindOneQuery(objectName,recordId,fields)})});case 2:result=_context16.sent;return _context16.abrupt("return",result.data.record);case 4:case"end":return _context16.stop();}}},_callee16);}));return function getRecord(_x165,_x166,_x167){return _ref16.apply(this,arguments);};}();var getRelatedsCount=/*#__PURE__*/function(){var _ref17=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17(masterRecordId,relateds){var relatedQuery,query,result;return _regeneratorRuntime().wrap(function _callee17$(_context17){while(1){switch(_context17.prev=_context17.next){case 0:relatedQuery=[];_$1.each(relateds,function(relate){relatedQuery.push("".concat(relate.object_name,": ").concat(relate.object_name,"__count(filters: [[\"").concat(relate.foreign_key,"\",\"=\",\"").concat(masterRecordId,"\"]])"));});query="\n {\n ".concat(relatedQuery.join(','),"\n }\n ");_context17.next=5;return fetchAPI('/graphql',{method:'POST',body:JSON.stringify({query:query})});case 5:result=_context17.sent;return _context17.abrupt("return",result.data);case 7:case"end":return _context17.stop();}}},_callee17);}));return function getRelatedsCount(_x168,_x169){return _ref17.apply(this,arguments);};}();var getRecordPermissions=/*#__PURE__*/function(){var _ref18=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(objectName,recordId){var result;return _regeneratorRuntime().wrap(function _callee18$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:_context18.next=2;return fetchAPI("/service/api/@".concat(objectName,"/recordPermissions/").concat(recordId),{method:'GET'});case 2:result=_context18.sent;return _context18.abrupt("return",result);case 4:case"end":return _context18.stop();}}},_callee18);}));return function getRecordPermissions(_x170,_x171){return _ref18.apply(this,arguments);};}();/*
|
|
556
559
|
* @Author: baozhoutao@steedos.com
|
|
557
560
|
* @Date: 2022-07-05 15:55:39
|