@steedos-widgets/amis-lib 6.3.17-beta.3 → 6.3.17-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -232,9 +232,9 @@ toolbar:[]};hideToolbarOperation=options.formFactor==='SMALL'||["split"].indexOf
232
232
  useMobileColumns=false;}if(listSchema.mode&&listSchema.mode!=="table"){// 如果指定的mode,则不走我们内置的手机端列表效果,使用steedos组件内部开发的默认card/list效果,或者由用户自己实现card/list模式的crud列表
233
233
  useMobileColumns=false;}if(!useMobileColumns){_context65.next=14;break;}_context65.next=11;return getMobileTableColumns(fields,options);case 11:columns=_context65.sent;_context65.next=29;break;case 14:_context65.next=16;return getTableColumns(object,fields,options);case 16:columns=_context65.sent;if(!(listSchema.mode==="cards")){_context65.next=24;break;}card=listSchema.card;if(card){_context65.next=23;break;}_context65.next=22;return getDefaultCrudCard(columns,options);case 22:card=_context65.sent;case 23:return _context65.abrupt("return",_objectSpread({mode:"cards",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:false,card:card,syncLocation:false,keepItemSelectionOnPageChange:true,checkOnItemClick:isLookup?true:false,labelTpl:"${".concat(options.labelFieldName,"}"),autoFillHeight:false,// 自动高度效果不理想,先关闭
234
234
  columnsTogglable:false},getDefaultParams$1(options)));case 24:if(!(!isLookup&&!hiddenColumnOperation)){_context65.next=29;break;}_context65.next=27;return getTableOperation(options);case 27:toolbarOperation=_context65.sent;columns.push(toolbarOperation);case 29:treeConfig={};if(options.enable_tree){treeConfig.expandConfig={expand:'first'};}return _context65.abrupt("return",_objectSpread(_objectSpread({mode:"table",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:false,columns:columns,syncLocation:false,keepItemSelectionOnPageChange:true,checkOnItemClick:isLookup?true:false,labelTpl:"${".concat(options.labelFieldName,"}"),autoFillHeight:false,// 自动高度效果不理想,先关闭
235
- columnsTogglable:false},treeConfig),getDefaultParams$1(options)));case 32:case"end":return _context65.stop();}}},_callee65);}));return _getTableSchema$.apply(this,arguments);}function getTableApi(_x41,_x42,_x43){return _getTableApi.apply(this,arguments);}function _getTableApi(){_getTableApi=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee66(mainObject,fields,options){var searchableFields,filter,filtersFunction,sort,top,_options$setDataToCom,setDataToComponentId,baseFilters,fileFields,fileFieldsKeys,lookupFields,valueField,api;return _regeneratorRuntime().wrap(function _callee66$(_context66){while(1){switch(_context66.prev=_context66.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字段
235
+ columnsTogglable:false},treeConfig),getDefaultParams$1(options)));case 32:case"end":return _context65.stop();}}},_callee65);}));return _getTableSchema$.apply(this,arguments);}function getTableApi(_x41,_x42,_x43){return _getTableApi.apply(this,arguments);}function _getTableApi(){_getTableApi=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee66(mainObject,fields,options){var searchableFields,filter,filtersFunction,sort,top,_options$setDataToCom,setDataToComponentId,searchableDefault,baseFilters,fileFields,fileFieldsKeys,lookupFields,valueField,api;return _regeneratorRuntime().wrap(function _callee66$(_context66){while(1){switch(_context66.prev=_context66.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,searchableDefault=options.searchable_default;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字段
236
236
  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';_context66.next=14;return getApi$1(mainObject,null,fields,{count:options.queryCount,alias:'rows',limit:top,queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\""});case 14:api=_context66.sent;api.url+="&objectName=${objectName}";//设计器上对象表格组件需要切换对象重新请求列表数据
237
- if(options.isRelated){api.url+="&recordId=${_master.recordId}";}api.cache=3000;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 let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // \u628A\u8868\u5355\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\u4E2D\u7684change\u4E8B\u4EF6\u4E2D\u8BB0\u5F55\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E5F\u62FC\u5230$self\u4E2D\uFF0C\u662F\u4E3A\u89E3\u51B3\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u65F6\uFF0C\u4E24\u8FB9\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u90FD\u5E26\u4E0A\uFF0C\u5373\uFF1A\n // \u6709\u65F6\u5728\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E8B\uFF0C\u5FD8\u8BB0\u70B9\u51FB\u56DE\u8F66\u952E\u6216\u641C\u7D22\u6309\u94AE\uFF0C\u800C\u662F\u8FDB\u4E00\u6B65\u4FEE\u6539\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u7684\u5173\u952E\u5B57\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\n // \u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0C\u89E6\u53D1\u7684\u641C\u7D22\u8BF7\u6C42\u4E2D\u6CA1\u6709\u5E26\u4E0A\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n // \u53CD\u8FC7\u6765\u5148\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u5374\u4E0D\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\uFF0C\u800C\u662F\u5230\u641C\u7D22\u8868\u5355\u4E2D\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u4E5F\u662F\u4E00\u6837\u7684\u3002\n // \u8FD9\u91CC\u76F4\u63A5\u5408\u5E76\u5230api.data.$self\uFF0C\u800C\u4E0D\u662F\u540E\u9762\u5B9A\u4E49\u7684selfData\u53D8\u91CF\uFF0C\u662F\u56E0\u4E3A\u53EF\u4EE5\u7701\u53BB\u5728\u63A5\u6536\u9002\u914D\u5668\u4E2D\u5199\u4E00\u6837\u7684\u5408\u5E76\u903B\u8F91\n // \u5982\u679C\u6709\u95EE\u9898\u53EF\u4EE5\u6539\u4E3A\u5408\u5E76\u5230selfData\u53D8\u91CF\u4E2D\uFF0C\u4F46\u662F\u8981\u5728\u63A5\u6536\u9002\u914D\u5668\u4E2D\u5199\u4E0A\u4E00\u6837\u7684\u5408\u5E76\u903B\u8F91\uFF0C\u5426\u5219\u91CC\u9762\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E0D\u4F1A\u5B58\u5165\u672C\u5730\u5B58\u50A8\u4E2D\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\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 let needToStoreListViewProps;\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 // \u53EA\u6709\u5728\u5217\u8868\u9875\u9762\u4E2D\u624D\u9700\u8981\u5B58\u50A8\u548C\u8BFB\u53D6\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u53C2\u6570\uFF0C\u76F8\u5173\u5B50\u8868\u7EC4\u4EF6\u4E0D\u9700\u8981\n needToStoreListViewProps = !!listName && !api.body.$self._isRelated;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(needToStoreListViewProps && 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 // \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 if(searchableFilter.length > 0){\n if(userFilters.length > 0 ){\n userFilters = [userFilters, 'and', searchableFilter];\n }else{\n userFilters = searchableFilter;\n }\n }\n\n // \"\u641C\u7D22\u6B64\u5217\u8868\"\u641C\u7D22\u6846\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\n //\u5199\u5165\u672C\u6B21\u5B58\u50A8filters\u3001sort\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n needToStoreListViewProps && sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify({\n filters: filters,\n sort: sort.trim(),\n pageSize: pageSize,\n skip: skip,\n fields: ").concat(JSON.stringify(___namespace.map(fields,'name')),"\n }));\n return api;\n ");api.adaptor="\n\n if(payload.errors && payload.errors.length > 0){\n return {\n status: 500,\n msg: payload.errors[0].message,\n data: {}\n }\n }\n\n\n let fields = ".concat(JSON.stringify(___namespace.map(fields,'name')),";\n // \u8FD9\u91CC\u628A\u884C\u6570\u636E\u4E2D\u6240\u6709\u4E3A\u7A7A\u7684\u5B57\u6BB5\u503C\u914D\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF0C\u662F\u56E0\u4E3Aamis\u6709bug\uFF1Acrud\u7684columns\u4E2D\u7684\u5217\u5982\u679Ctype\u4E3Astatic-\u524D\u7F00\u7684\u8BDD\uFF0C\u884C\u6570\u636E\u4E2D\u8BE5\u5B57\u6BB5\u4E3A\u7A7A\u7684\u8BDD\u4F1A\u663E\u793A\u4E3A\u7236\u4F5C\u7528\u57DF\u4E2D\u540C\u540D\u53D8\u91CF\u503C\uFF0C\u89C1\uFF1Ahttps://github.com/baidu/amis/issues/9556\n (payload.data.rows || []).forEach((itemRow) => {\n (fields || []).forEach((itemField) => {\n if(itemField && itemField.indexOf(\".\") > -1){\n return;\n }\n if(itemField && (itemRow[itemField] === undefined || itemRow[itemField] === null)){\n // \u8FD9\u91CCitemRow\u4E2D\u4E0D\u5B58\u5728 itemField \u5C5E\u6027\uFF0C\u6216\u8005\u503C\u4E3Anull\u65F6\u90FD\u4F1A\u6709\u201C\u663E\u793A\u4E3A\u7236\u4F5C\u7528\u57DF\u4E2D\u7684\u540C\u540D\u53D8\u91CF\u503C\u201D\u7684\u95EE\u9898\uFF0C\u6240\u4EE5null\u548Cundefined\u90FD\u8981\u91CD\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\n // \u5B9E\u6D4B\u6570\u5B57\u3001\u4E0B\u62C9\u6846\u3001\u591A\u9009lookup\u7B49\u5B57\u6BB5\u7C7B\u578B\u91CD\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\u90FD\u4E0D\u4F1A\u6709\u95EE\u9898\uFF0C\u800C\u4E14\u5B9E\u6D4Bamis from\u7EC4\u4EF6\u7684\u6E05\u7A7A\u8868\u5355\u5B57\u6BB5\u503C\u529F\u80FD\u5C31\u662F\u628A\u8868\u5355\u4E2D\u7684\u5404\u79CD\u5B57\u6BB5\u7C7B\u578B\u8BBE\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF0C\u6240\u4EE5\u770B\u8D77\u6765\u4E5F\u7B26\u5408amis\u89C4\u8303\n itemRow[itemField] = \"\";\n }\n });\n });\n \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 // PC\u5BA2\u6237\u7AEF\u9644\u4EF6\u5B50\u8868\u5217\u8868\u70B9\u51FB\u6807\u9898\u9884\u89C8\u9644\u4EF6\u529F\u80FD\u4F9D\u8D56\u4E86_id\uFF0C\u6240\u4EE5\u8FD9\u91CC\u62FC\u51FA\u6765\n let itemKeyValue = item[key];\n item[key] = value.map(function(curValue, index){\n let fileId = typeof itemKeyValue == 'string' ? itemKeyValue : itemKeyValue[index];\n // \u514B\u9686\u4E00\u4EFD\u5BF9\u8C61\uFF0C\u907F\u514D\u4E0B\u65B9value\u9012\u5F52\u6C61\u67D3curValue\n let result = _.clone(curValue);\n result._id = fileId;\n result.value = fileId;\n return result;\n });\n }else{\n item[key] = _.map(value, (item)=>{\n if(field.type === 'image'){\n const url = window.getImageFieldUrl(item.url);\n return url;\n }\n return item.url;\n })\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 const assignIndexToTreeRecords = function(tree, parentIndex) {\n tree.forEach(function (node, index) {\n // \u6784\u5EFA\u5F53\u524D\u8282\u70B9\u7684 _index\n var currentIndex = parentIndex ? parentIndex + '-' + (index + 1) : '' + (index + 1);\n \n // \u8D4B\u503C\u7ED9\u8282\u70B9\n node._index = currentIndex;\n \n // \u5982\u679C\u6709\u5B50\u8282\u70B9\uFF0C\u9012\u5F52\u8C03\u7528\u51FD\u6570\n if (node.children && node.children.length > 0) {\n assignIndexToTreeRecords(node.children, currentIndex);\n }\n });\n };\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n assignIndexToTreeRecords(payload.data.rows, '');\n }\n\n\n let needToStoreListViewProps;\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 // \u53EA\u6709\u5728\u5217\u8868\u9875\u9762\u4E2D\u624D\u9700\u8981\u5B58\u50A8\u548C\u8BFB\u53D6\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u53C2\u6570\uFF0C\u76F8\u5173\u5B50\u8868\u7EC4\u4EF6\u4E0D\u9700\u8981\n needToStoreListViewProps = !!listName && !api.body.$self._isRelated;\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 = needToStoreListViewProps && 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 \n delete selfData.context;\n delete selfData.global;\n needToStoreListViewProps && 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 let formFactor = \"").concat(options.formFactor,"\";\n if(formFactor !== \"SMALL\"){\n const lisviewDom = document.querySelector(\".steedos-object-listview .antd-Table-table\");\n if(lisviewDom){\n setTimeout(()=>{\n lisviewDom.scrollIntoView();\n }, 600);\n }\n }\n\n // \u5217\u8868\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\uFF0C\u6709\u65F6\u5728\u67D0\u4E9B\u64CD\u4F5C\u60C5\u51B5\u4E0B\u8FD8\u662F\u4F1A\u9020\u6210crud\u63A5\u53E3\u8BF7\u6C42\u4F7F\u7528\u7684\u8FC7\u6EE4\u6761\u4EF6\u662F\u4E0A\u6B21\u7684\uFF0C\u8FD9\u91CC\u5F3A\u5236\u628A\u6B63\u786E\u7684\u8FC7\u6EE4\u6761\u4EF6\u8FD4\u56DE\u5230crud\uFF0C\u8BE6\u7EC6\u89C4\u5219\u89C1\uFF1Ahttps://github.com/steedos/steedos-platform/issues/7112\n // lookup\u5B57\u6BB5\u7684\u5F39\u51FA\u5217\u8868\u641C\u7D22\u4E0D\u53D7\u8FD9\u91CC\u5F71\u54CD\uFF0C\u56E0\u4E3Alookup\u5B57\u6BB5\u7684\u5F39\u51FA\u5217\u8868\u641C\u7D22\u662F\u5355\u72EC\u7684\u63A5\u53E3\u8BF7\u6C42\n payload.data.__changedFilterFormValues = api.context.__changedFilterFormValues;\n payload.data.__changedSearchBoxValues = api.context.__changedSearchBoxValues;\n ").concat(options.adaptor||'',"\n return payload;\n ");return _context66.abrupt("return",api);case 29:case"end":return _context66.stop();}}},_callee66);}));return _getTableApi.apply(this,arguments);}function getApi$1(_x44,_x45,_x46,_x47){return _getApi$.apply(this,arguments);}function _getApi$(){_getApi$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee67(object,recordId,fields,options){var data;return _regeneratorRuntime().wrap(function _callee67$(_context67){while(1){switch(_context67.prev=_context67.next){case 0:_context67.next=2;return getFindQuery(object,recordId,fields,options);case 2:data=_context67.sent;return _context67.abrupt("return",{method:"post",url:getApi$2(),// + "&recordId=${recordId}"
237
+ if(options.isRelated){api.url+="&recordId=${_master.recordId}";}api.cache=3000;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 let __changedFilterFormValues = api.data.$self.__changedFilterFormValues || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // \u628A\u8868\u5355\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\u4E2D\u7684change\u4E8B\u4EF6\u4E2D\u8BB0\u5F55\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E5F\u62FC\u5230$self\u4E2D\uFF0C\u662F\u4E3A\u89E3\u51B3\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u65F6\uFF0C\u4E24\u8FB9\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u90FD\u5E26\u4E0A\uFF0C\u5373\uFF1A\n // \u6709\u65F6\u5728\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E8B\uFF0C\u5FD8\u8BB0\u70B9\u51FB\u56DE\u8F66\u952E\u6216\u641C\u7D22\u6309\u94AE\uFF0C\u800C\u662F\u8FDB\u4E00\u6B65\u4FEE\u6539\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u7684\u5173\u952E\u5B57\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\n // \u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0C\u89E6\u53D1\u7684\u641C\u7D22\u8BF7\u6C42\u4E2D\u6CA1\u6709\u5E26\u4E0A\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n // \u53CD\u8FC7\u6765\u5148\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u5374\u4E0D\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\uFF0C\u800C\u662F\u5230\u641C\u7D22\u8868\u5355\u4E2D\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u4E5F\u662F\u4E00\u6837\u7684\u3002\n // \u8FD9\u91CC\u76F4\u63A5\u5408\u5E76\u5230api.data.$self\uFF0C\u800C\u4E0D\u662F\u540E\u9762\u5B9A\u4E49\u7684selfData\u53D8\u91CF\uFF0C\u662F\u56E0\u4E3A\u53EF\u4EE5\u7701\u53BB\u5728\u63A5\u6536\u9002\u914D\u5668\u4E2D\u5199\u4E00\u6837\u7684\u5408\u5E76\u903B\u8F91\n // \u5982\u679C\u6709\u95EE\u9898\u53EF\u4EE5\u6539\u4E3A\u5408\u5E76\u5230selfData\u53D8\u91CF\u4E2D\uFF0C\u4F46\u662F\u8981\u5728\u63A5\u6536\u9002\u914D\u5668\u4E2D\u5199\u4E0A\u4E00\u6837\u7684\u5408\u5E76\u903B\u8F91\uFF0C\u5426\u5219\u91CC\u9762\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E0D\u4F1A\u5B58\u5165\u672C\u5730\u5B58\u50A8\u4E2D\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\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 let needToStoreListViewProps;\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 // \u53EA\u6709\u5728\u5217\u8868\u9875\u9762\u4E2D\u624D\u9700\u8981\u5B58\u50A8\u548C\u8BFB\u53D6\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u53C2\u6570\uFF0C\u76F8\u5173\u5B50\u8868\u7EC4\u4EF6\u4E0D\u9700\u8981\n needToStoreListViewProps = !!listName && !api.body.$self._isRelated;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(needToStoreListViewProps && 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 // \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 let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ").concat(___namespace.isObject(searchableDefault)?JSON.stringify(searchableDefault):'"'+(searchableDefault||"")+'"'," || {};\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n _.each(filterFormValues, function(v, k){\n const isAmisFormulaValue = typeof v === \"string\" && v.indexOf(\"${\") > -1;\n if (isAmisFormulaValue){\n filterFormValues[k] = AmisCore.evaluate(v, context);\n }\n });\n let uiSchema = api.data.$self.uiSchema;\n let fields = uiSchema && uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, 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 // \"\u641C\u7D22\u6B64\u5217\u8868\"\u641C\u7D22\u6846\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\n //\u5199\u5165\u672C\u6B21\u5B58\u50A8filters\u3001sort\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n needToStoreListViewProps && sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify({\n filters: filters,\n sort: sort.trim(),\n pageSize: pageSize,\n skip: skip,\n fields: ").concat(JSON.stringify(___namespace.map(fields,'name')),"\n }));\n return api;\n ");api.adaptor="\n\n if(payload.errors && payload.errors.length > 0){\n return {\n status: 500,\n msg: payload.errors[0].message,\n data: {}\n }\n }\n\n\n let fields = ".concat(JSON.stringify(___namespace.map(fields,'name')),";\n // \u8FD9\u91CC\u628A\u884C\u6570\u636E\u4E2D\u6240\u6709\u4E3A\u7A7A\u7684\u5B57\u6BB5\u503C\u914D\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF0C\u662F\u56E0\u4E3Aamis\u6709bug\uFF1Acrud\u7684columns\u4E2D\u7684\u5217\u5982\u679Ctype\u4E3Astatic-\u524D\u7F00\u7684\u8BDD\uFF0C\u884C\u6570\u636E\u4E2D\u8BE5\u5B57\u6BB5\u4E3A\u7A7A\u7684\u8BDD\u4F1A\u663E\u793A\u4E3A\u7236\u4F5C\u7528\u57DF\u4E2D\u540C\u540D\u53D8\u91CF\u503C\uFF0C\u89C1\uFF1Ahttps://github.com/baidu/amis/issues/9556\n (payload.data.rows || []).forEach((itemRow) => {\n (fields || []).forEach((itemField) => {\n if(itemField && itemField.indexOf(\".\") > -1){\n return;\n }\n if(itemField && (itemRow[itemField] === undefined || itemRow[itemField] === null)){\n // \u8FD9\u91CCitemRow\u4E2D\u4E0D\u5B58\u5728 itemField \u5C5E\u6027\uFF0C\u6216\u8005\u503C\u4E3Anull\u65F6\u90FD\u4F1A\u6709\u201C\u663E\u793A\u4E3A\u7236\u4F5C\u7528\u57DF\u4E2D\u7684\u540C\u540D\u53D8\u91CF\u503C\u201D\u7684\u95EE\u9898\uFF0C\u6240\u4EE5null\u548Cundefined\u90FD\u8981\u91CD\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\n // \u5B9E\u6D4B\u6570\u5B57\u3001\u4E0B\u62C9\u6846\u3001\u591A\u9009lookup\u7B49\u5B57\u6BB5\u7C7B\u578B\u91CD\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\u90FD\u4E0D\u4F1A\u6709\u95EE\u9898\uFF0C\u800C\u4E14\u5B9E\u6D4Bamis from\u7EC4\u4EF6\u7684\u6E05\u7A7A\u8868\u5355\u5B57\u6BB5\u503C\u529F\u80FD\u5C31\u662F\u628A\u8868\u5355\u4E2D\u7684\u5404\u79CD\u5B57\u6BB5\u7C7B\u578B\u8BBE\u7F6E\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF0C\u6240\u4EE5\u770B\u8D77\u6765\u4E5F\u7B26\u5408amis\u89C4\u8303\n itemRow[itemField] = \"\";\n }\n });\n });\n \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 // PC\u5BA2\u6237\u7AEF\u9644\u4EF6\u5B50\u8868\u5217\u8868\u70B9\u51FB\u6807\u9898\u9884\u89C8\u9644\u4EF6\u529F\u80FD\u4F9D\u8D56\u4E86_id\uFF0C\u6240\u4EE5\u8FD9\u91CC\u62FC\u51FA\u6765\n let itemKeyValue = item[key];\n item[key] = value.map(function(curValue, index){\n let fileId = typeof itemKeyValue == 'string' ? itemKeyValue : itemKeyValue[index];\n // \u514B\u9686\u4E00\u4EFD\u5BF9\u8C61\uFF0C\u907F\u514D\u4E0B\u65B9value\u9012\u5F52\u6C61\u67D3curValue\n let result = _.clone(curValue);\n result._id = fileId;\n result.value = fileId;\n return result;\n });\n }else{\n item[key] = _.map(value, (item)=>{\n if(field.type === 'image'){\n const url = window.getImageFieldUrl(item.url);\n return url;\n }\n return item.url;\n })\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 const assignIndexToTreeRecords = function(tree, parentIndex) {\n tree.forEach(function (node, index) {\n // \u6784\u5EFA\u5F53\u524D\u8282\u70B9\u7684 _index\n var currentIndex = parentIndex ? parentIndex + '-' + (index + 1) : '' + (index + 1);\n \n // \u8D4B\u503C\u7ED9\u8282\u70B9\n node._index = currentIndex;\n \n // \u5982\u679C\u6709\u5B50\u8282\u70B9\uFF0C\u9012\u5F52\u8C03\u7528\u51FD\u6570\n if (node.children && node.children.length > 0) {\n assignIndexToTreeRecords(node.children, currentIndex);\n }\n });\n };\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n assignIndexToTreeRecords(payload.data.rows, '');\n }\n\n\n let needToStoreListViewProps;\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 // \u53EA\u6709\u5728\u5217\u8868\u9875\u9762\u4E2D\u624D\u9700\u8981\u5B58\u50A8\u548C\u8BFB\u53D6\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u53C2\u6570\uFF0C\u76F8\u5173\u5B50\u8868\u7EC4\u4EF6\u4E0D\u9700\u8981\n needToStoreListViewProps = !!listName && !api.body.$self._isRelated;\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 = needToStoreListViewProps && 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 \n delete selfData.context;\n delete selfData.global;\n needToStoreListViewProps && 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 let formFactor = \"").concat(options.formFactor,"\";\n if(formFactor !== \"SMALL\"){\n const lisviewDom = document.querySelector(\".steedos-object-listview .antd-Table-table\");\n if(lisviewDom){\n setTimeout(()=>{\n lisviewDom.scrollIntoView();\n }, 600);\n }\n }\n\n // \u5217\u8868\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\uFF0C\u6709\u65F6\u5728\u67D0\u4E9B\u64CD\u4F5C\u60C5\u51B5\u4E0B\u8FD8\u662F\u4F1A\u9020\u6210crud\u63A5\u53E3\u8BF7\u6C42\u4F7F\u7528\u7684\u8FC7\u6EE4\u6761\u4EF6\u662F\u4E0A\u6B21\u7684\uFF0C\u8FD9\u91CC\u5F3A\u5236\u628A\u6B63\u786E\u7684\u8FC7\u6EE4\u6761\u4EF6\u8FD4\u56DE\u5230crud\uFF0C\u8BE6\u7EC6\u89C4\u5219\u89C1\uFF1Ahttps://github.com/steedos/steedos-platform/issues/7112\n // lookup\u5B57\u6BB5\u7684\u5F39\u51FA\u5217\u8868\u641C\u7D22\u4E0D\u53D7\u8FD9\u91CC\u5F71\u54CD\uFF0C\u56E0\u4E3Alookup\u5B57\u6BB5\u7684\u5F39\u51FA\u5217\u8868\u641C\u7D22\u662F\u5355\u72EC\u7684\u63A5\u53E3\u8BF7\u6C42\n payload.data.__changedFilterFormValues = api.context.__changedFilterFormValues;\n payload.data.__changedSearchBoxValues = api.context.__changedSearchBoxValues;\n ").concat(options.adaptor||'',"\n return payload;\n ");return _context66.abrupt("return",api);case 29:case"end":return _context66.stop();}}},_callee66);}));return _getTableApi.apply(this,arguments);}function getApi$1(_x44,_x45,_x46,_x47){return _getApi$.apply(this,arguments);}function _getApi$(){_getApi$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee67(object,recordId,fields,options){var data;return _regeneratorRuntime().wrap(function _callee67$(_context67){while(1){switch(_context67.prev=_context67.next){case 0:_context67.next=2;return getFindQuery(object,recordId,fields,options);case 2:data=_context67.sent;return _context67.abrupt("return",{method:"post",url:getApi$2(),// + "&recordId=${recordId}"
238
238
  data:data,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}});case 4:case"end":return _context67.stop();}}},_callee67);}));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});
239
239
  // _.each(refFields, function(field){
240
240
  // if(!_.includes(OMIT_FIELDS, field.name)){
@@ -387,20 +387,27 @@ var buttons=getButtons(uiSchema,ctx);var listButtons=___namespace.filter(buttons
387
387
  * @param {*} ctx
388
388
  * @returns
389
389
  */var getButton=/*#__PURE__*/function(){var _ref13=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(objectName,buttonName,ctx){var uiSchema,buttons,button;return _regeneratorRuntime().wrap(function _callee14$(_context14){while(1){switch(_context14.prev=_context14.next){case 0:_context14.next=2;return getUISchema(objectName);case 2:uiSchema=_context14.sent;if(!uiSchema){_context14.next=60;break;}_context14.next=6;return getButtons(uiSchema,ctx);case 6:buttons=_context14.sent;button=___namespace.find(buttons,function(button){return button.name===buttonName;});if(button){_context14.next=10;break;}return _context14.abrupt("return");case 10:if(!(button.name=='standard_edit'&&button.todo==='standard_edit'&&button.type!="amis_button")){_context14.next=17;break;}_context14.t0=_objectSpread;_context14.t1={label:button.label,name:button.name,on:button.on};_context14.next=15;return StandardButtons.getStandardEdit(uiSchema,ctx);case 15:_context14.t2=_context14.sent;return _context14.abrupt("return",(0,_context14.t0)(_context14.t1,_context14.t2));case 17:if(!(objectName!='cms_files'&&button.name=='standard_new'&&button.todo==='standard_new'&&button.type!="amis_button")){_context14.next=24;break;}_context14.t3=_objectSpread;_context14.t4={label:button.label,name:button.name,on:button.on};_context14.next=22;return StandardButtons.getStandardNew(uiSchema,ctx);case 22:_context14.t5=_context14.sent;return _context14.abrupt("return",(0,_context14.t3)(_context14.t4,_context14.t5));case 24:if(!(button.name=='standard_delete'&&button.todo==='standard_delete'&&button.type!="amis_button")){_context14.next=31;break;}_context14.t6=_objectSpread;_context14.t7={label:button.label,name:button.name,on:button.on,sort:button.sort};_context14.next=29;return StandardButtons.getStandardDelete(uiSchema,ctx);case 29:_context14.t8=_context14.sent;return _context14.abrupt("return",(0,_context14.t6)(_context14.t7,_context14.t8));case 31:if(!(uiSchema.hasImportTemplates&&button.name==='standard_import_data')){_context14.next=38;break;}_context14.t9=_objectSpread;_context14.t10={label:button.label,name:button.name,on:button.on,sort:button.sort};_context14.next=36;return StandardButtons.getStandardImportData(uiSchema,ctx);case 36:_context14.t11=_context14.sent;return _context14.abrupt("return",(0,_context14.t9)(_context14.t10,_context14.t11));case 38:if(!(button.name==='standard_export_excel')){_context14.next=45;break;}_context14.t12=_objectSpread;_context14.t13={label:button.label,name:button.name,on:button.on,sort:button.sort};_context14.next=43;return StandardButtons.getStandardExportExcel(uiSchema,ctx);case 43:_context14.t14=_context14.sent;return _context14.abrupt("return",(0,_context14.t12)(_context14.t13,_context14.t14));case 45:if(!(button.name==='standard_open_view')){_context14.next=52;break;}_context14.t15=_objectSpread;_context14.t16={label:button.label,name:button.name,on:button.on,sort:button.sort};_context14.next=50;return StandardButtons.getStandardOpenView(uiSchema,ctx);case 50:_context14.t17=_context14.sent;return _context14.abrupt("return",(0,_context14.t15)(_context14.t16,_context14.t17));case 52:if(!(button.name==='standard_delete_many')){_context14.next=59;break;}_context14.t18=_objectSpread;_context14.t19={label:button.label,name:button.name,on:button.on,sort:button.sort};_context14.next=57;return StandardButtons.getStandardDeleteMany(uiSchema,ctx);case 57:_context14.t20=_context14.sent;return _context14.abrupt("return",(0,_context14.t18)(_context14.t19,_context14.t20));case 59:return _context14.abrupt("return",button);case 60:case"end":return _context14.stop();}}},_callee14);}));return function getButton(_x90,_x91,_x92){return _ref13.apply(this,arguments);};}();var execute=function execute(button,props){if(!button.todo){return;//TODO 弹出提示未配置todo
390
- }if(___namespace.isString(button.todo)){if(___namespace.startsWith(___namespace.trim(button.todo),"function")){window.eval("var fun = "+button.todo);button.todo=fun;}}if(___namespace.isFunction(button.todo)){var todoThis=_objectSpread(_objectSpread({objectName:props.objectName,object_name:props.objectName,object:props.uiSchema,record:props.record,recordId:props.recordId,record_id:props.recordId},props),{},{action:button});return button.todo.apply(todoThis,[todoThis.objectName,todoThis.recordId]);}};var executeButton=execute;var getObjectDetailHeaderButtons=function getObjectDetailHeaderButtons(objectSchema,recordId){var name=objectSchema.name;var buttons=getObjectDetailButtons(objectSchema,{});var moreButtons=getObjectDetailMoreButtons(objectSchema,{recordId:recordId,objectName:name});var amisButtonsSchema=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});var moreButtonsVisibleOn='';var dropdownButtons=___namespace.map(moreButtons,function(button,index){if(index===0){moreButtonsVisibleOn=getButtonVisibleOn(button);}else{moreButtonsVisibleOn=moreButtonsVisibleOn+' || '+getButtonVisibleOn(button);}return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button)};});return{buttons:amisButtonsSchema,moreButtons:dropdownButtons,moreButtonsVisibleOn:moreButtonsVisibleOn};};var getDropdown=function getDropdown(dropdownButtons){var dropdown={"type":"dropdown-button","icon":"fa fa-angle-down","size":"sm","hideCaret":true,"className":"mr-0 steedos-mobile-header-drop-down","closeOnClick":true,"menuClassName":"buttons-drawer fixed bg-none border-0 shadow-none","align":"right","body":[{"type":"action","style":{"z-index":1,"background":"var(--Drawer-overlay-bg)","height":"100%","width":"100%","padding":"0","margin":"0","border-radius":"0"}},{"type":"wrapper","style":{"position":"fixed","bottom":0,"z-index":2,"width":"100vw","left":"0","padding":"0","background":"white","box-shadow":"0 -10px 10px -10px rgba(0, 0, 0, 0.2)"},"body":[{"type":"flex","justify":"space-between","items":[{"type":"tpl","tpl":"操作","style":{"padding":"4px 12px","align-items":"center","display":"flex"}},{"type":"action","label":"","icon":"fa fa-times","level":"link","style":{"color":"black"}}],"style":{"padding-top":"0.5rem","padding-bottom":"0.5rem","border-bottom":"var(--Drawer-content-borderWidth) solid var(--Drawer-header-borderColor)"}},{"type":"wrapper","body":[{"type":"button-group","id":"u:fd837823be5b","vertical":true,"tiled":true,"buttons":dropdownButtons,"className":"w-full overflow-auto","btnClassName":"w-full","size":"lg"}],"style":{"padding":"0","overflow":"auto","max-height":"70vh"}}]}]};return dropdown;};var getObjectDetailButtonsSchemas=function getObjectDetailButtonsSchemas(objectSchema,recordId,ctx){var _getObjectDetailHeade=getObjectDetailHeaderButtons(objectSchema,recordId),buttons=_getObjectDetailHeade.buttons,moreButtons=_getObjectDetailHeade.moreButtons,moreButtonsVisibleOn=_getObjectDetailHeade.moreButtonsVisibleOn;if(ctx.formFactor==='SMALL'){var dropdownButtons=[].concat(_toConsumableArray(___namespace.map(buttons,function(button){button.className+=' w-full';return button;})),_toConsumableArray(___namespace.map(moreButtons,function(button){button.className+=' w-full';return button;})));var phoneMoreButtonsVisibleOn='';___namespace.forEach(dropdownButtons,function(button,index){if(index===0){phoneMoreButtonsVisibleOn=button.visibleOn;}else{phoneMoreButtonsVisibleOn=phoneMoreButtonsVisibleOn+' || '+button.visibleOn;}});return[getDropdown(dropdownButtons)];}else{if(moreButtons.length>0){var dropdownButtonsSchema={type:"steedos-dropdown-button",label:"",buttons:moreButtons,"overlayClassName":"border rounded !min-w-[160px]",className:'slds-icon ml-1',visibleOn:moreButtonsVisibleOn};buttons.push(dropdownButtonsSchema);}return buttons;}};var getObjectListViewButtonsSchemas=function getObjectListViewButtonsSchemas(objectSchema,ctx){var buttons=getListViewButtons(objectSchema,ctx);if(ctx.formFactor==='SMALL'){var dropdownButtons=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name," w-full")};});return getDropdown(dropdownButtons);}else{return ___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});}};var getObjectRecordDetailRelatedListButtonsSchemas=function getObjectRecordDetailRelatedListButtonsSchemas(objectSchema,ctx){var buttons=getObjectRelatedListButtons(objectSchema,ctx);if(ctx.formFactor==='SMALL'){var dropdownButtons=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name," w-full")};});return[getDropdown(dropdownButtons)];}else{return ___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});}};function getObjectFieldsFilterButtonSchema(_x93){return _getObjectFieldsFilterButtonSchema.apply(this,arguments);}function _getObjectFieldsFilterButtonSchema(){_getObjectFieldsFilterButtonSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee75(objectSchema){return _regeneratorRuntime().wrap(function _callee75$(_context75){while(1){switch(_context75.prev=_context75.next){case 0:return _context75.abrupt("return",{"type":"button","label":"","icon":"fa fa-search","className":"bg-white p-2 rounded border-gray-300 text-gray-500","onEvent":{"click":{"actions":[{"actionType":"broadcast","args":{"eventName":"broadcast_toggle_fields_filter"}}]}}});case 1:case"end":return _context75.stop();}}},_callee75);}));return _getObjectFieldsFilterButtonSchema.apply(this,arguments);}function getObjectFieldsFilterFormSchema(_x94){return _getObjectFieldsFilterFormSchema.apply(this,arguments);}function _getObjectFieldsFilterFormSchema(){_getObjectFieldsFilterFormSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee76(ctx){var formSchema;return _regeneratorRuntime().wrap(function _callee76$(_context76){while(1){switch(_context76.prev=_context76.next){case 0:if(!ctx){ctx={};}formSchema={"type":"service","visibleOn":"this.filterFormSearchableFields && this.filterFormSearchableFields.length","className":ctx.formFactor==='SMALL'?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-4 p-2","style":{"max-height":ctx.formFactor==='SMALL'?"30vh":"unset"},"schemaApi":{method:'post',url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:"{\n data: objects(filters: [[\"_id\",\"=\",null]],top: 1, skip: 0){_id}\n }"},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n \"body\": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn(\"run function getFieldSearchable failed.\");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ".concat(JSON.stringify(ctx),";\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n "),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return _context76.abrupt("return",formSchema);case 3:case"end":return _context76.stop();}}},_callee76);}));return _getObjectFieldsFilterFormSchema.apply(this,arguments);}function getObjectFieldsFilterBarSchema(_x95,_x96){return _getObjectFieldsFilterBarSchema.apply(this,arguments);}function _getObjectFieldsFilterBarSchema(){_getObjectFieldsFilterBarSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee77(objectSchema,ctx){var searchableFields,autoOpenFilter,btnSearchId,filterFormSchema,keywordsSearchBoxName,onSearchScript,onCancelScript,filterFormValues,dataProviderInited,onSearchableFieldsChangeScript;return _regeneratorRuntime().wrap(function _callee77$(_context77){while(1){switch(_context77.prev=_context77.next){case 0:if(!ctx){ctx={};}searchableFields=ctx.searchable_fields;autoOpenFilter=!!ctx.auto_open_filter;btnSearchId="btn_filter_form_search_"+new Date().getTime();_context77.next=6;return getObjectFieldsFilterFormSchema(ctx);case 6:filterFormSchema=_context77.sent;keywordsSearchBoxName=ctx.keywordsSearchBoxName||"__keywords";onSearchScript="\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n // \u4F7F\u7528filterForm.getValues()\u7684\u8BDD\uFF0C\u5E76\u4E0D\u80FD\u62FF\u5230\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u8FC7\u6EE4\u6761\u4EF6\uFF0C\u6240\u4EE5\u9700\u8981\u4ECEevent.data\u4E2D\u53D6\uFF0C\u56E0\u4E3A\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u8FC7\u6EE4\u6761\u4EF6\u81EA\u52A8\u586B\u5145\u5230\u8868\u5355\u4E0A\u65F6filterForm.getValues()\u62FF\u4E0D\u5230\u3002\n let filterFormValues = event.data;\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //\u53EA\u53D6\u5F53\u5C42\u6570\u636E\u57DF\u4E2D\u6570\u636E\uFF0C\u53BB\u9664__super\u5C42\u6570\u636E\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // \u540C\u6B65__changedFilterFormValues\u4E2D\u7684\u503C\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(isLookup && __lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // const removedValues = {};\n // // \u8BBE\u7F6E\u641C\u7D22\u9879\u4E2D\u79FB\u9664\u641C\u7D22\u9879\u540E\uFF0CfilterFormValues\u672A\u628A\u5176\u5B57\u6BB5\u7684\u7A7A\u503C\u4FDD\u5B58\u4E3Aown property\uFF0C\u5373hasOwnProperty\u5C5E\u6027\u4E2D\n // // \u8FD9\u4F1A\u9020\u6210handleFilterSubmit\u65F6\u628A\u79FB\u9664\u6389\u7684\u641C\u7D22\u9879\u5B57\u6BB5\u4E4B\u524D\u7684\u503C\u52A0\u5230\u8FC7\u6EE4\u6761\u4EF6\u4E2D\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === \"\" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // \u70B9\u51FB\u641C\u7D22\u7684\u65F6\u5019\u81EA\u52A8\u6536\u8D77\u641C\u7D22\u680F\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.".concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 500\n }\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // \u5982\u679C\u662F\u4ECE\u8BBE\u7F6E\u641C\u7D22\u9879\u70B9\u51FB\u786E\u8BA4\u6309\u94AE\u89E6\u53D1\u7684\u641C\u7D22\u4E8B\u4EF6\u4E0D\u5E94\u8BE5\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = true;\n }\n else if(isMobile){\n // \u5982\u679C\u662F\u624B\u673A\u7AEF\uFF0C\u70B9\u51FB\u641C\u7D22\u540E\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === \"split\") {\n // PC\u4E0A\u5206\u680F\u6A21\u5F0F\u4E0B\u7684\u5217\u8868\uFF0C\u59CB\u7EC8\u6309\u624B\u673A\u4E0A\u6548\u679C\u5904\u7406\uFF0C\u5373\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // \u9AD8\u5206\u8FA8\u7387\u5C4F\u5E55\uFF082k+\uFF09\uFF0C\u5217\u8868\u9AD8\u5EA6\u6BD4\u8F83\u9AD8\uFF0C\u6CA1\u5FC5\u8981\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//\u5DF2\u8FC1\u79FB\u5230\u641C\u7D22\u680F\u8868\u5355\u63D0\u4EA4\u4E8B\u4EF6\u4E2D\u6267\u884C\uFF0C\u56E0\u4E3A\u8868\u5355\u9879change\u540E\u4E5F\u4F1A\u89E6\u53D1\u8868\u5355\u63D0\u4EA4\u4E86\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\", {name: \"service_object_table_crud\"});\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n ");onCancelScript="\n // console.log(\"===onCancelScript=form==\");\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n var filterFormValues = filterForm.getValues();\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // \u5237\u65B0\u6D4F\u89C8\u5668\u540E\uFF0CfilterFormValues\u503C\u662F\u7A7A\u7684\uFF0C\u53EA\u80FD\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u51FA\u5E76\u91CD\u7F6E\u4E3A\u7A7A\u503C\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = \"".concat(keywordsSearchBoxName,"\";\n //lookup\u5B57\u6BB5\u4FDD\u7559\u5FEB\u901F\u641C\u7D22\u6761\u4EF6\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.setValues(removedValues);//\u4F1A\u628A\u8868\u5355\u63D0\u4EA4\u5230toolbar\u7684\u5FEB\u901F\u641C\u7D22\u533A\u57DF\uFF0C\u9020\u6210\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u89E6\u53D1\u641C\u7D22\u65F6\u518D\u6B21\u628A\u641C\u7D22\u8868\u5355\u4E2D\u7684\u5B57\u6BB5\u503C\u6E05\u9664\u6389\u7684bug\uFF0C\u5DF2\u5355\u72EC\u5728\u5FEB\u901F\u641C\u7D22\u6846\u90A3\u8FB9\u6DFB\u52A0\u641C\u7D22\u4E8B\u4EF6\u4EE3\u7801\u5904\u7406\u8FC7\u4E86\n // \u4EE5\u4E0B\u65B9\u6CD5\u90FD\u65E0\u6CD5\u5B9E\u73B0\u6E05\u9664\u8868\u5355\u503C\n // filterForm.setValues({}, true)\n // filterForm.reset();\n // filterForm.handleAction({},{\n // \"actionType\": \"setValue\",\n // \"args\": {\n // \"value\": removedValues\n // }\n // });\n // \u4E0B\u9762\u89E6\u53D1clear\u52A8\u4F5C\u53EF\u4EE5\u6E05\u9664\u8868\u5355\u503C\uFF0C\u4E14\u4E0D\u4F1A\u628A\u8868\u5355\u63D0\u4EA4\u5230toolbar\u7684\u5FEB\u901F\u641C\u7D22\u533A\u57DF\uFF0C\u4F46\u662F\u4F1A\u628A\u91D1\u989D\u7B49\u8303\u56F4\u5B57\u6BB5\u6E05\u7A7A\u6210\u975E\u8303\u56F4\u5B57\u6BB5\n // filterForm.handleAction({},{\n // \"actionType\": \"clear\"\n // });\n\n // \u6E05\u9664__changedFilterFormValues\u4E2D\u7684\u503C\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(isLookup && __lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = {};\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // crud.handleFilterSubmit(removedValues);\n\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"service\");\n filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.").concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 100\n }\n });\n \n // \u79FB\u9664\u641C\u7D22\u6309\u94AE\u4E0A\u7684\u7EA2\u70B9\n // let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\", {name: \"service_object_table_crud\"});\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n ");/**
391
- 给lookup字段配置filter_form_data时可以配置为amis变量,也可以配置为事态key-value键值对象值:
390
+ }if(___namespace.isString(button.todo)){if(___namespace.startsWith(___namespace.trim(button.todo),"function")){window.eval("var fun = "+button.todo);button.todo=fun;}}if(___namespace.isFunction(button.todo)){var todoThis=_objectSpread(_objectSpread({objectName:props.objectName,object_name:props.objectName,object:props.uiSchema,record:props.record,recordId:props.recordId,record_id:props.recordId},props),{},{action:button});return button.todo.apply(todoThis,[todoThis.objectName,todoThis.recordId]);}};var executeButton=execute;var getObjectDetailHeaderButtons=function getObjectDetailHeaderButtons(objectSchema,recordId){var name=objectSchema.name;var buttons=getObjectDetailButtons(objectSchema,{});var moreButtons=getObjectDetailMoreButtons(objectSchema,{recordId:recordId,objectName:name});var amisButtonsSchema=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});var moreButtonsVisibleOn='';var dropdownButtons=___namespace.map(moreButtons,function(button,index){if(index===0){moreButtonsVisibleOn=getButtonVisibleOn(button);}else{moreButtonsVisibleOn=moreButtonsVisibleOn+' || '+getButtonVisibleOn(button);}return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button)};});return{buttons:amisButtonsSchema,moreButtons:dropdownButtons,moreButtonsVisibleOn:moreButtonsVisibleOn};};var getDropdown=function getDropdown(dropdownButtons){var dropdown={"type":"dropdown-button","icon":"fa fa-angle-down","size":"sm","hideCaret":true,"className":"mr-0 steedos-mobile-header-drop-down","closeOnClick":true,"menuClassName":"buttons-drawer fixed bg-none border-0 shadow-none","align":"right","body":[{"type":"action","style":{"z-index":1,"background":"var(--Drawer-overlay-bg)","height":"100%","width":"100%","padding":"0","margin":"0","border-radius":"0"}},{"type":"wrapper","style":{"position":"fixed","bottom":0,"z-index":2,"width":"100vw","left":"0","padding":"0","background":"white","box-shadow":"0 -10px 10px -10px rgba(0, 0, 0, 0.2)"},"body":[{"type":"flex","justify":"space-between","items":[{"type":"tpl","tpl":"操作","style":{"padding":"4px 12px","align-items":"center","display":"flex"}},{"type":"action","label":"","icon":"fa fa-times","level":"link","style":{"color":"black"}}],"style":{"padding-top":"0.5rem","padding-bottom":"0.5rem","border-bottom":"var(--Drawer-content-borderWidth) solid var(--Drawer-header-borderColor)"}},{"type":"wrapper","body":[{"type":"button-group","id":"u:fd837823be5b","vertical":true,"tiled":true,"buttons":dropdownButtons,"className":"w-full overflow-auto","btnClassName":"w-full","size":"lg"}],"style":{"padding":"0","overflow":"auto","max-height":"70vh"}}]}]};return dropdown;};var getObjectDetailButtonsSchemas=function getObjectDetailButtonsSchemas(objectSchema,recordId,ctx){var _getObjectDetailHeade=getObjectDetailHeaderButtons(objectSchema,recordId),buttons=_getObjectDetailHeade.buttons,moreButtons=_getObjectDetailHeade.moreButtons,moreButtonsVisibleOn=_getObjectDetailHeade.moreButtonsVisibleOn;if(ctx.formFactor==='SMALL'){var dropdownButtons=[].concat(_toConsumableArray(___namespace.map(buttons,function(button){button.className+=' w-full';return button;})),_toConsumableArray(___namespace.map(moreButtons,function(button){button.className+=' w-full';return button;})));var phoneMoreButtonsVisibleOn='';___namespace.forEach(dropdownButtons,function(button,index){if(index===0){phoneMoreButtonsVisibleOn=button.visibleOn;}else{phoneMoreButtonsVisibleOn=phoneMoreButtonsVisibleOn+' || '+button.visibleOn;}});return[getDropdown(dropdownButtons)];}else{if(moreButtons.length>0){var dropdownButtonsSchema={type:"steedos-dropdown-button",label:"",buttons:moreButtons,"overlayClassName":"border rounded !min-w-[160px]",className:'slds-icon ml-1',visibleOn:moreButtonsVisibleOn};buttons.push(dropdownButtonsSchema);}return buttons;}};var getObjectListViewButtonsSchemas=function getObjectListViewButtonsSchemas(objectSchema,ctx){var buttons=getListViewButtons(objectSchema,ctx);if(ctx.formFactor==='SMALL'){var dropdownButtons=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name," w-full")};});return getDropdown(dropdownButtons);}else{return ___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});}};var getObjectRecordDetailRelatedListButtonsSchemas=function getObjectRecordDetailRelatedListButtonsSchemas(objectSchema,ctx){var buttons=getObjectRelatedListButtons(objectSchema,ctx);if(ctx.formFactor==='SMALL'){var dropdownButtons=___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name," w-full")};});return[getDropdown(dropdownButtons)];}else{return ___namespace.map(buttons,function(button){return{type:'steedos-object-button',name:button.name,objectName:button.objectName,visibleOn:getButtonVisibleOn(button),className:"button_".concat(button.name)};});}};function getObjectFieldsFilterButtonSchema(_x93){return _getObjectFieldsFilterButtonSchema.apply(this,arguments);}function _getObjectFieldsFilterButtonSchema(){_getObjectFieldsFilterButtonSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee75(objectSchema){return _regeneratorRuntime().wrap(function _callee75$(_context75){while(1){switch(_context75.prev=_context75.next){case 0:return _context75.abrupt("return",{"type":"button","label":"","icon":"fa fa-search","className":"bg-white p-2 rounded border-gray-300 text-gray-500","onEvent":{"click":{"actions":[{"actionType":"broadcast","args":{"eventName":"broadcast_toggle_fields_filter"}}]}}});case 1:case"end":return _context75.stop();}}},_callee75);}));return _getObjectFieldsFilterButtonSchema.apply(this,arguments);}function getObjectFieldsFilterFormSchema(_x94){return _getObjectFieldsFilterFormSchema.apply(this,arguments);}function _getObjectFieldsFilterFormSchema(){_getObjectFieldsFilterFormSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee76(ctx){var formSchema;return _regeneratorRuntime().wrap(function _callee76$(_context76){while(1){switch(_context76.prev=_context76.next){case 0:if(!ctx){ctx={};}formSchema={"type":"service","visibleOn":"this.filterFormSearchableFields && this.filterFormSearchableFields.length","className":ctx.formFactor==='SMALL'?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-4 p-2","style":{"max-height":ctx.formFactor==='SMALL'?"30vh":"unset"},"schemaApi":{method:'post',url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:"{\n data: objects(filters: [[\"_id\",\"=\",null]],top: 1, skip: 0){_id}\n }"},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n \"body\": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn(\"run function getFieldSearchable failed.\");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ".concat(JSON.stringify(ctx),";\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n "),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return _context76.abrupt("return",formSchema);case 3:case"end":return _context76.stop();}}},_callee76);}));return _getObjectFieldsFilterFormSchema.apply(this,arguments);}function getObjectFieldsFilterBarSchema(_x95,_x96){return _getObjectFieldsFilterBarSchema.apply(this,arguments);}function _getObjectFieldsFilterBarSchema(){_getObjectFieldsFilterBarSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee77(objectSchema,ctx){var searchableFields,autoOpenFilter,btnSearchId,filterFormSchema,keywordsSearchBoxName,onSearchScript,onCancelScript,searchableDefault,dataProviderInited,onSearchableFieldsChangeScript;return _regeneratorRuntime().wrap(function _callee77$(_context77){while(1){switch(_context77.prev=_context77.next){case 0:if(!ctx){ctx={};}searchableFields=ctx.searchable_fields;autoOpenFilter=!!ctx.auto_open_filter;btnSearchId="btn_filter_form_search_"+new Date().getTime();_context77.next=6;return getObjectFieldsFilterFormSchema(ctx);case 6:filterFormSchema=_context77.sent;keywordsSearchBoxName=ctx.keywordsSearchBoxName||"__keywords";onSearchScript="\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n // \u4F7F\u7528filterForm.getValues()\u7684\u8BDD\uFF0C\u5E76\u4E0D\u80FD\u62FF\u5230\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u8FC7\u6EE4\u6761\u4EF6\uFF0C\u6240\u4EE5\u9700\u8981\u4ECEevent.data\u4E2D\u53D6\uFF0C\u56E0\u4E3A\u672C\u5730\u5B58\u50A8\u4E2D\u7684\u8FC7\u6EE4\u6761\u4EF6\u81EA\u52A8\u586B\u5145\u5230\u8868\u5355\u4E0A\u65F6filterForm.getValues()\u62FF\u4E0D\u5230\u3002\n let filterFormValues = event.data;\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //\u53EA\u53D6\u5F53\u5C42\u6570\u636E\u57DF\u4E2D\u6570\u636E\uFF0C\u53BB\u9664__super\u5C42\u6570\u636E\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // \u540C\u6B65__changedFilterFormValues\u4E2D\u7684\u503C\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(isLookup && __lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // const removedValues = {};\n // // \u8BBE\u7F6E\u641C\u7D22\u9879\u4E2D\u79FB\u9664\u641C\u7D22\u9879\u540E\uFF0CfilterFormValues\u672A\u628A\u5176\u5B57\u6BB5\u7684\u7A7A\u503C\u4FDD\u5B58\u4E3Aown property\uFF0C\u5373hasOwnProperty\u5C5E\u6027\u4E2D\n // // \u8FD9\u4F1A\u9020\u6210handleFilterSubmit\u65F6\u628A\u79FB\u9664\u6389\u7684\u641C\u7D22\u9879\u5B57\u6BB5\u4E4B\u524D\u7684\u503C\u52A0\u5230\u8FC7\u6EE4\u6761\u4EF6\u4E2D\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === \"\" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // \u70B9\u51FB\u641C\u7D22\u7684\u65F6\u5019\u81EA\u52A8\u6536\u8D77\u641C\u7D22\u680F\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.".concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 500\n }\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // \u5982\u679C\u662F\u4ECE\u8BBE\u7F6E\u641C\u7D22\u9879\u70B9\u51FB\u786E\u8BA4\u6309\u94AE\u89E6\u53D1\u7684\u641C\u7D22\u4E8B\u4EF6\u4E0D\u5E94\u8BE5\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = true;\n }\n else if(isMobile){\n // \u5982\u679C\u662F\u624B\u673A\u7AEF\uFF0C\u70B9\u51FB\u641C\u7D22\u540E\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === \"split\") {\n // PC\u4E0A\u5206\u680F\u6A21\u5F0F\u4E0B\u7684\u5217\u8868\uFF0C\u59CB\u7EC8\u6309\u624B\u673A\u4E0A\u6548\u679C\u5904\u7406\uFF0C\u5373\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // \u9AD8\u5206\u8FA8\u7387\u5C4F\u5E55\uFF082k+\uFF09\uFF0C\u5217\u8868\u9AD8\u5EA6\u6BD4\u8F83\u9AD8\uFF0C\u6CA1\u5FC5\u8981\u81EA\u52A8\u5173\u95ED\u641C\u7D22\u680F\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//\u5DF2\u8FC1\u79FB\u5230\u641C\u7D22\u680F\u8868\u5355\u63D0\u4EA4\u4E8B\u4EF6\u4E2D\u6267\u884C\uFF0C\u56E0\u4E3A\u8868\u5355\u9879change\u540E\u4E5F\u4F1A\u89E6\u53D1\u8868\u5355\u63D0\u4EA4\u4E86\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\", {name: \"service_object_table_crud\"});\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n ");onCancelScript="\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n var filterFormValues = filterForm.getValues();\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // \u5237\u65B0\u6D4F\u89C8\u5668\u540E\uFF0CfilterFormValues\u503C\u662F\u7A7A\u7684\uFF0C\u53EA\u80FD\u4ECE\u672C\u5730\u5B58\u50A8\u4E2D\u53D6\u51FA\u5E76\u91CD\u7F6E\u4E3A\u7A7A\u503C\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = \"".concat(keywordsSearchBoxName,"\";\n //lookup\u5B57\u6BB5\u4FDD\u7559\u5FEB\u901F\u641C\u7D22\u6761\u4EF6\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.setValues(removedValues);//\u4F1A\u628A\u8868\u5355\u63D0\u4EA4\u5230toolbar\u7684\u5FEB\u901F\u641C\u7D22\u533A\u57DF\uFF0C\u9020\u6210\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u89E6\u53D1\u641C\u7D22\u65F6\u518D\u6B21\u628A\u641C\u7D22\u8868\u5355\u4E2D\u7684\u5B57\u6BB5\u503C\u6E05\u9664\u6389\u7684bug\uFF0C\u5DF2\u5355\u72EC\u5728\u5FEB\u901F\u641C\u7D22\u6846\u90A3\u8FB9\u6DFB\u52A0\u641C\u7D22\u4E8B\u4EF6\u4EE3\u7801\u5904\u7406\u8FC7\u4E86\n // \u4EE5\u4E0B\u65B9\u6CD5\u90FD\u65E0\u6CD5\u5B9E\u73B0\u6E05\u9664\u8868\u5355\u503C\n // filterForm.setValues({}, true)\n // filterForm.reset();\n // filterForm.handleAction({},{\n // \"actionType\": \"setValue\",\n // \"args\": {\n // \"value\": removedValues\n // }\n // });\n // \u4E0B\u9762\u89E6\u53D1clear\u52A8\u4F5C\u53EF\u4EE5\u6E05\u9664\u8868\u5355\u503C\uFF0C\u4E14\u4E0D\u4F1A\u628A\u8868\u5355\u63D0\u4EA4\u5230toolbar\u7684\u5FEB\u901F\u641C\u7D22\u533A\u57DF\uFF0C\u4F46\u662F\u4F1A\u628A\u91D1\u989D\u7B49\u8303\u56F4\u5B57\u6BB5\u6E05\u7A7A\u6210\u975E\u8303\u56F4\u5B57\u6BB5\n // filterForm.handleAction({},{\n // \"actionType\": \"clear\"\n // });\n\n // \u6E05\u9664__changedFilterFormValues\u4E2D\u7684\u503C\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(isLookup && __lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = {};\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // crud.handleFilterSubmit(removedValues);\n\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"service\");\n filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.").concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 100\n }\n });\n \n // \u79FB\u9664\u641C\u7D22\u6309\u94AE\u4E0A\u7684\u7EA2\u70B9\n // let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\", {name: \"service_object_table_crud\"});\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n ");/**
391
+ 给lookup字段或列表视图中配置 searchable_default 时可以配置为amis变量,也可以配置为静态key-value键值对象值:
392
392
  ```
393
- "filter_form_data": "${selectedPublicGroupFilterFormData|toJson}"
393
+ "searchable_default": {
394
+ "start": "${[STARTOF(NOW(), 'month'),ENDOF(DATEMODIFY(NOW(), 3, 'month'), 'month')]}"
395
+ }
394
396
  ```
395
397
  or
396
398
  ```
397
- "filter_form_data": {
399
+ "searchable_default": {
398
400
  "public_group_ids": [
399
401
  "67addbef39f9a4503789b38d"
400
402
  ]
401
403
  }
402
404
  ```
403
- */filterFormValues=ctx.filter_form_data;dataProviderInited="\n const searchableFields = ".concat(JSON.stringify(searchableFields),";\n const autoOpenFilter = ").concat(autoOpenFilter,";\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(\",\");\n }\n if(_.isEmpty(defaultSearchableFields) && searchableFields){\n if(searchableFields.length){\n defaultSearchableFields = _.map(searchableFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), \"sort_no\"),\n \"name\"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n let filterFormValues = ").concat(_.isObject(filterFormValues)?JSON.stringify(filterFormValues):'"'+filterFormValues+'"'," || {};\n const isAmisFormula = typeof filterFormValues === \"string\" && filterFormValues.indexOf(\"${\") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = data.uiSchema && data.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n setData({ ...filterFormValues });\n }\n // looup\u5B57\u6BB5\u8FC7\u6EE4\u5668\u4E0D\u5728\u672C\u5730\u7F13\u5B58\u8BB0\u4F4F\u8FC7\u6EE4\u6761\u4EF6\uFF0C\u6240\u4EE5\u521D\u59CB\u59CB\u7EC8\u9690\u85CF\u8FC7\u6EE4\u5668\n setData({ showFieldsFilter: autoOpenFilter });\n }\n else{\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // \u6709\u8FC7\u6EE4\u6761\u4EF6\u65F6\u53EA\u663E\u793A\u641C\u7D22\u6309\u94AE\u4E0A\u7684\u7EA2\u70B9\uFF0C\u4E0D\u81EA\u52A8\u5C55\u5F00\u641C\u7D22\u680F\n if(!_.isEmpty(omitedEmptyFormValue)){\n let crudService = SteedosUI.getRef(data.$scopeId).parent.getComponentById(\"service_listview_\" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//\u81EA\u52A8\u5C55\u5F00\u641C\u7D22\u680F\n }\n }\n }\n }\n ");onSearchableFieldsChangeScript="\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // \u8FD9\u91CC\u7684filterForm\u4E0D\u662Fname\u4E3A\"listview-filter-form\"\u7684\u5185\u90E8form\uFF0C\u800C\u662Fcrud\u81EA\u5E26\u7684filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:\u5F53\u53D8\u66F4\u53EF\u641C\u7D22\u5B57\u6BB5\u65F6\uFF0C\u5982\u679C\u88AB\u79FB\u9664\u7684\u53EF\u641C\u7D22\u5B57\u6BB5\u5728\u672C\u5730\u5B58\u50A8\u4E2D\u5DF2\u7ECF\u5B58\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E2D\u5219\u5E94\u8BE5\u6E05\u9664\u672C\u5730\u5B58\u50A8\u4E2D\u76F8\u5173\u5B57\u6BB5\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === \"string\"){\n preSearchableFields = preSearchableFields.split(\",\");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // \u9012\u5F52children\u627E\u5230listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // \u8FD9\u91CC\u7B2C\u4E8C\u5C42form\u624D\u662F\u771F\u6B63\u8981\u63D0\u4EA4\u5230crud\u8FC7\u6EE4\u6761\u4EF6\u7684form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, \"form\", \"listview-filter-form\");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__\u5F00\u5934\u7684\u4E0D\u5728searchableFields\u8303\u56F4\u5219\u6E05\u9664\u5176\u503C\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//\u8FD9\u91CC\u4F7F\u7528filterInnerForm\u4E5F\u53EF\u4EE5\n\n if(isLookup){\n return;\n }\n \n // \u5217\u8868\u89C6\u56FEcrud\u652F\u6301\u672C\u5730\u7F13\u5B58\uFF0C\u6240\u4EE5\u9700\u8981\u8FDB\u4E00\u6B65\u6E05\u9664\u6D4F\u89C8\u5668\u672C\u5730\u7F13\u5B58\u91CC\u9762\u7528\u6237\u5728\u53EF\u641C\u7D22\u9879\u4E2D\u79FB\u9664\u7684\u5B57\u6BB5\u503C\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__\u5F00\u5934\u7684\u4E0D\u5728searchableFields\u8303\u56F4\u5219\u6E05\u9664\u5176\u503C\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.".concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 100\n }\n });\n // ===END===\n ");return _context77.abrupt("return",{"type":"service","name":"service_listview_filter_form","data":{// "showFieldsFilter": false
405
+ 注意只能配置为json键值对格式,amis变量值只能分别配置到各个字段值中,不支持配置为amis变量的字符串形式,例如:
406
+ ```
407
+ "searchable_default": "${selectedPublicGroupFilterFormData|toJson}"
408
+ ```
409
+ */ // 列表视图、对象表格组件或lookup字段上配置的searchable_default会传入到ctx中
410
+ searchableDefault=ctx.searchable_default;dataProviderInited="\n const searchableFields = ".concat(JSON.stringify(searchableFields),";\n const autoOpenFilter = ").concat(autoOpenFilter,";\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n const crudId = \"").concat(ctx.crudId||"","\" || \"listview_\" + objectName;\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(\",\");\n }\n if(_.isEmpty(defaultSearchableFields) && searchableFields){\n if(searchableFields.length){\n defaultSearchableFields = _.map(searchableFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), \"sort_no\"),\n \"name\"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n\n let searchableFilterData = ").concat(_.isObject(searchableDefault)?JSON.stringify(searchableDefault):'"'+(searchableDefault||"")+'"'," || {};\n if (_.isObject(searchableFilterData) || !_.isEmpty(searchableFilterData)){\n _.each(searchableFilterData, function(v, k){\n const isAmisFormulaValue = typeof v === \"string\" && v.indexOf(\"${\") > -1;\n if (isAmisFormulaValue){\n searchableFilterData[k] = AmisCore.evaluate(v, data);\n }\n });\n let fields = data.uiSchema && data.uiSchema.fields;\n searchableFilterData = SteedosUI.getSearchFilterFormValues(searchableFilterData, fields);\n }\n if(isLookup){\n if (!_.isEmpty(searchableFilterData)){\n setData({ ...searchableFilterData });\n }\n // looup\u5B57\u6BB5\u8FC7\u6EE4\u5668\u4E0D\u5728\u672C\u5730\u7F13\u5B58\u8BB0\u4F4F\u8FC7\u6EE4\u6761\u4EF6\uFF0C\u53EA\u5904\u7406\u662F\u5426\u9690\u85CF\u8FC7\u6EE4\u5668\n setData({ showFieldsFilter: autoOpenFilter });\n }\n else{\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let localFilterFormValues;\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n localFilterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n }\n let filterFormValues = Object.assign({}, searchableFilterData, localFilterFormValues);\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n // \u6709\u8FC7\u6EE4\u6761\u4EF6\u65F6\u53EA\u663E\u793A\u641C\u7D22\u6309\u94AE\u4E0A\u7684\u7EA2\u70B9\uFF0C\u4E0D\u81EA\u52A8\u5C55\u5F00\u641C\u7D22\u680F\n if(!isFieldsFilterEmpty){\n let crud = SteedosUI.getRef(data.$scopeId).getComponentById(crudId);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\", {name: \"service_object_table_crud\"});\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//\u81EA\u52A8\u5C55\u5F00\u641C\u7D22\u680F\n }\n }\n }\n ");onSearchableFieldsChangeScript="\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // \u8FD9\u91CC\u7684filterForm\u4E0D\u662Fname\u4E3A\"listview-filter-form\"\u7684\u5185\u90E8form\uFF0C\u800C\u662Fcrud\u81EA\u5E26\u7684filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:\u5F53\u53D8\u66F4\u53EF\u641C\u7D22\u5B57\u6BB5\u65F6\uFF0C\u5982\u679C\u88AB\u79FB\u9664\u7684\u53EF\u641C\u7D22\u5B57\u6BB5\u5728\u672C\u5730\u5B58\u50A8\u4E2D\u5DF2\u7ECF\u5B58\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E2D\u5219\u5E94\u8BE5\u6E05\u9664\u672C\u5730\u5B58\u50A8\u4E2D\u76F8\u5173\u5B57\u6BB5\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === \"string\"){\n preSearchableFields = preSearchableFields.split(\",\");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // \u9012\u5F52children\u627E\u5230listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // \u8FD9\u91CC\u7B2C\u4E8C\u5C42form\u624D\u662F\u771F\u6B63\u8981\u63D0\u4EA4\u5230crud\u8FC7\u6EE4\u6761\u4EF6\u7684form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, \"form\", \"listview-filter-form\");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__\u5F00\u5934\u7684\u4E0D\u5728searchableFields\u8303\u56F4\u5219\u6E05\u9664\u5176\u503C\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//\u8FD9\u91CC\u4F7F\u7528filterInnerForm\u4E5F\u53EF\u4EE5\n\n if(isLookup){\n return;\n }\n \n // \u5217\u8868\u89C6\u56FEcrud\u652F\u6301\u672C\u5730\u7F13\u5B58\uFF0C\u6240\u4EE5\u9700\u8981\u8FDB\u4E00\u6B65\u6E05\u9664\u6D4F\u89C8\u5668\u672C\u5730\u7F13\u5B58\u91CC\u9762\u7528\u6237\u5728\u53EF\u641C\u7D22\u9879\u4E2D\u79FB\u9664\u7684\u5B57\u6BB5\u503C\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__\u5F00\u5934\u7684\u4E0D\u5728searchableFields\u8303\u56F4\u5219\u6E05\u9664\u5176\u503C\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //\u89E6\u53D1amis crud \u9AD8\u5EA6\u91CD\u7B97\n doAction({\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@height.changed.".concat(objectSchema.name,"\"\n },\n \"data\": {\n \"timeOut\": 100\n }\n });\n // ===END===\n ");return _context77.abrupt("return",{"type":"service","name":"service_listview_filter_form","data":{// "showFieldsFilter": false
404
411
  // "filterFormSearchableFields": ["name"],//默认可搜索项
405
412
  // "filterFormValues": {"__searchable__name": "xxx"},//搜索项表单值
406
413
  // "listViewId": "${listViewId}"
@@ -725,8 +732,8 @@ delete ctx.filtersFunction;delete ctx.sort;delete ctx.extraColumns;delete ctx.fi
725
732
  return _context91.abrupt("return",{uiSchema:uiSchema,amisSchema:amisSchema});case 29:case"end":return _context91.stop();}}},_callee91);}));return _getRelatedListSchema.apply(this,arguments);}function getObjectRelatedListsMiniSchema(_x143){return _getObjectRelatedListsMiniSchema.apply(this,arguments);}/*
726
733
  * @Author: baozhoutao@steedos.com
727
734
  * @Date: 2022-07-05 15:55:39
728
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
729
- * @LastEditTime: 2025-05-20 16:56:55
735
+ * @LastEditors: yinlianghui yinlianghui@hotoa.com
736
+ * @LastEditTime: 2025-12-25 16:41:00
730
737
  * @Description:
731
738
  */function _getObjectRelatedListsMiniSchema(){_getObjectRelatedListsMiniSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee92(objectApiName){var relatedLists,relatedListsMiniSchema,_iterator13,_step14,relatedList;return _regeneratorRuntime().wrap(function _callee92$(_context92){while(1){switch(_context92.prev=_context92.next){case 0:_context92.next=2;return getObjectRelatedList(objectApiName);case 2:relatedLists=_context92.sent;relatedListsMiniSchema=[];_iterator13=_createForOfIteratorHelper(relatedLists);try{for(_iterator13.s();!(_step14=_iterator13.n()).done;){relatedList=_step14.value;relatedListsMiniSchema.push({type:'steedos-record-detail-list-mini',objectApiName:objectApiName,// recordId: recordId,
732
739
  formFactor:formFactor,relatedObjectApiName:relatedList.object_name,foreign_key:relatedList.foreign_key,relatedKey:relatedList.foreign_key,columns:relatedList.columns,sort:relatedList.sort,filters:relatedList.filters,visible_on:relatedList.visible_on,perPage:relatedList.page_size||perPage,hiddenEmptyTable:true,relatedLabel:relatedList.label});}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}return _context92.abrupt("return",{type:'wrapper',className:"steedos-record-detail-related-lists-mini",body:relatedListsMiniSchema});case 7:case"end":return _context92.stop();}}},_callee92);}));return _getObjectRelatedListsMiniSchema.apply(this,arguments);}var UI_SCHEMA_CACHE={};var UISchemaFunction;var setUISchemaFunction=function setUISchemaFunction(fun){UISchemaFunction=fun;};if('undefined'!=typeof window){if(!window.UI_SCHEMA_CACHE){window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE;}UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE;}var setUISchemaCache=function setUISchemaCache(key,value){UI_SCHEMA_CACHE[key]=value;};var getUISchemaCache=function getUISchemaCache(key){return _$1.cloneDeep(UI_SCHEMA_CACHE[key]);};var hasUISchemaCache=function hasUISchemaCache(key){return _$1.has(UI_SCHEMA_CACHE,key);};function getListViewColumns(listView,formFactor){var listViewColumns=[];if(formFactor==="SMALL"){listViewColumns=!_$1.isEmpty(listView.mobile_columns)?listView.mobile_columns:_$1.slice(listView.columns,0,4);}else{listViewColumns=listView.columns;}return listViewColumns;}function getListViewSort(listView){var sort='';if(listView&&listView.sort&&listView.sort.length){_$1.each(listView.sort,function(item,index){if(_$1.isArray(item)){var field_name=item[0];var order=item[1]||'';var sortStr=field_name+' '+order;sortStr=index>0?','+sortStr:sortStr;sort+=sortStr;}else{var _sortStr=item.field_name+' '+item.order;_sortStr=index>0?','+_sortStr:_sortStr;sort+=_sortStr;}});}return sort;}function getListViewFilter(listView){if(!listView){return;}try{var userId=getUserId();var filters=listView.filters;if(listView.filter_scope==='mine'){if(___default["default"].isEmpty(filters)){filters=[["owner","=",userId]];}else{if(___default["default"].isString(filters)&&___default["default"].startsWith(___default["default"].trim(filters),"function")){filters=new Function("return ".concat(filters));filters=filters();}if(___default["default"].isArray(filters)){filters.push(["owner","=",userId]);}else{console.debug("listView filters is not array",listView);throw new Error('filters is not array');}}};return filters;}catch(error){console.error(error);}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema);_$1.each(uiSchema.fields,function(field){try{if(field.type==="lookup"&&field._reference_to&&___default["default"].isString(field._reference_to)){field.reference_to=eval("(".concat(field._reference_to,")"))();}}catch(exception){field.reference_to=undefined;console.error(exception);}});_$1.each(uiSchema.list_views,function(v,k){v.name=k;if(!_$1.has(v,'columns')){v.columns=uiSchema.list_views.all.columns;}});}function getUISchema(_x144,_x145){return _getUISchema.apply(this,arguments);}function _getUISchema(){_getUISchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee93(objectName,force){var uiSchema,url;return _regeneratorRuntime().wrap(function _callee93$(_context93){while(1){switch(_context93.prev=_context93.next){case 0:if(objectName){_context93.next=2;break;}return _context93.abrupt("return");case 2:if(!(hasUISchemaCache(objectName)&&!force)){_context93.next=4;break;}return _context93.abrupt("return",getUISchemaCache(objectName));case 4:uiSchema=null;_context93.prev=5;if(!UISchemaFunction){_context93.next=12;break;}_context93.next=9;return UISchemaFunction(objectName,force);case 9:uiSchema=_context93.sent;_context93.next=16;break;case 12:url="/service/api/@".concat(objectName.replace(/\./g,"_"),"/uiSchema");_context93.next=15;return fetchAPI(url,{method:"get"});case 15:uiSchema=_context93.sent;case 16:if(uiSchema){_context93.next=18;break;}return _context93.abrupt("return");case 18:formatUISchemaCache(objectName,uiSchema);_context93.next=25;break;case 21:_context93.prev=21;_context93.t0=_context93["catch"](5);console.error("getUISchema",objectName,_context93.t0);setUISchemaCache(objectName,null);case 25:return _context93.abrupt("return",getUISchemaCache(objectName));case 26:case"end":return _context93.stop();}}},_callee93,null,[[5,21]]);}));return _getUISchema.apply(this,arguments);}function getUISchemaSync$1(objectName,force){if(!objectName){return;}if(hasUISchemaCache(objectName)&&!force){return getUISchemaCache(objectName);}var uiSchema=null;try{var url="/service/api/@".concat(objectName.replace(/\./g,"_"),"/uiSchema");uiSchema=Steedos.authRequest(url,{type:'GET',async:false});if(!uiSchema){return;}formatUISchemaCache(objectName,uiSchema);}catch(error){console.error("getUISchema",objectName,error);setUISchemaCache(objectName,null);}return getUISchemaCache(objectName);}function getField(_x146,_x147){return _getField.apply(this,arguments);}// 获取表单页面
@@ -755,7 +762,7 @@ defaults.headerSchema=null;/**
755
762
  * orderDir:排序方向
756
763
  */if(localListViewProps){localListViewProps=JSON.parse(localListViewProps);// localListViewProps.perPage = 3;
757
764
  listSchema={};if(localListViewProps.orderBy){listSchema.orderBy=localListViewProps.orderBy;}if(localListViewProps.orderDir){listSchema.orderDir=localListViewProps.orderDir;}if(localListViewProps.perPage){listSchema.perPage=localListViewProps.perPage;}defaults.listSchema=_$1.defaultsDeep({},listSchema,defaults.listSchema||{});}}catch(ex){console.error("本地存储中crud参数解析异常:",ex);}if(window.innerWidth>768){// 列表视图组件PC端高度自动计算实现满屏效果,手机端不需要满屏效果,所以不用autofillheight,且允许微页面中重写组件autoFillHeight属性
758
- defaults.listSchema=_$1.defaultsDeep({},defaults.listSchema||{},{autoFillHeight:true});}ctx.defaults=defaults;if(listViewName=="recent"){listview_filters="\n function(filters, data) {\n var result = Steedos.authRequest('/graphql', {\n type: 'POST',\n async: false,\n data: JSON.stringify({\n query: '{object_recent_viewed(filters: [[\"record.o\",\"=\",\"' + data.objectName + '\"],[\"space\",\"=\",\"' + data.context.tenantId + '\"],[\"owner\",\"=\",\"' + data.context.userId + '\"]],sort:\"modified desc\",top:50){ _id,record} }'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return [\"_id\", \"=\", _ids];\n }\n ";}amisSchema={"type":"steedos-object-table","objectApiName":objectName,"columns":listViewColumns,"extraColumns":listView.extra_columns,"filters":listviewFilter,"filtersFunction":listview_filters,"sort":sort,"ctx":ctx,"requestAdaptor":listView.requestAdaptor||ctx.requestAdaptor,"adaptor":listView.adaptor||ctx.adaptor,"headerToolbarItems":ctx.headerToolbarItems,"filterVisible":ctx.filterVisible,"rowClassNameExpr":ctx.rowClassNameExpr,"crudDataFilter":ctx.crudDataFilter,"onCrudDataFilter":ctx.onCrudDataFilter};// console.log(`getListSchema===>`,amisSchema)
765
+ defaults.listSchema=_$1.defaultsDeep({},defaults.listSchema||{},{autoFillHeight:true});}ctx.defaults=defaults;if(listViewName=="recent"){listview_filters="\n function(filters, data) {\n var result = Steedos.authRequest('/graphql', {\n type: 'POST',\n async: false,\n data: JSON.stringify({\n query: '{object_recent_viewed(filters: [[\"record.o\",\"=\",\"' + data.objectName + '\"],[\"space\",\"=\",\"' + data.context.tenantId + '\"],[\"owner\",\"=\",\"' + data.context.userId + '\"]],sort:\"modified desc\",top:50){ _id,record} }'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return [\"_id\", \"=\", _ids];\n }\n ";}amisSchema={"type":"steedos-object-table","objectApiName":objectName,"columns":listViewColumns,"extraColumns":listView.extra_columns,"filters":listviewFilter,"filtersFunction":listview_filters,"sort":sort,"ctx":ctx,"requestAdaptor":listView.requestAdaptor||ctx.requestAdaptor,"adaptor":listView.adaptor||ctx.adaptor,"headerToolbarItems":ctx.headerToolbarItems,"filterVisible":ctx.filterVisible,"rowClassNameExpr":ctx.rowClassNameExpr,"crudDataFilter":ctx.crudDataFilter,"onCrudDataFilter":ctx.onCrudDataFilter,"searchable_default":listView.searchable_default};// console.log(`getListSchema===>`,amisSchema)
759
766
  return _context97.abrupt("return",{uiSchema:uiSchema,amisSchema:amisSchema});case 27:case"end":return _context97.stop();}}},_callee97);}));return _getListSchema.apply(this,arguments);}function convertColumnsToTableFields(_x156,_x157){return _convertColumnsToTableFields.apply(this,arguments);}// 获取对象表格
760
767
  function _convertColumnsToTableFields(){_convertColumnsToTableFields=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee98(columns,uiSchema){var ctx,fields,_iterator14,_step15,column,columnField,fieldName,displayName,filedInfo,rfUiSchema,rfFieldInfo,_args98=arguments;return _regeneratorRuntime().wrap(function _callee98$(_context98){while(1){switch(_context98.prev=_context98.next){case 0:ctx=_args98.length>2&&_args98[2]!==undefined?_args98[2]:{};fields=[];_iterator14=_createForOfIteratorHelper(columns);_context98.prev=3;_iterator14.s();case 5:if((_step15=_iterator14.n()).done){_context98.next=48;break;}column=_step15.value;columnField=void 0,fieldName=void 0,displayName=void 0,filedInfo=void 0,rfUiSchema=void 0,rfFieldInfo=void 0;if(!_$1.isString(column)){_context98.next=28;break;}if(!(column.indexOf('.')>0)){_context98.next=24;break;}fieldName=column.split('.')[0];displayName=column.split('.')[1];filedInfo=uiSchema.fields[fieldName];if(!(filedInfo&&(filedInfo.type==='lookup'||filedInfo.type==='master_detail')&&_$1.isString(filedInfo.reference_to))){_context98.next=21;break;}_context98.next=16;return getUISchema(filedInfo.reference_to);case 16:rfUiSchema=_context98.sent;rfFieldInfo=rfUiSchema.fields[displayName];columnField=Object.assign({},rfFieldInfo,{name:"".concat(fieldName,"__expand.").concat(displayName),expand:true,expandInfo:{fieldName:fieldName,displayName:displayName}},ctx);_context98.next=22;break;case 21:if(filedInfo&&filedInfo.type==='object'){columnField=uiSchema.fields[column];}case 22:_context98.next=25;break;case 24:if(uiSchema.fields[column]){columnField=Object.assign({},uiSchema.fields[column],ctx);}else if(ctx.extra){// 配置列表视图extra_columns时允许字段是hidden的,hidden的字段在uiSchema.fields中不存在
761
768
  columnField={extra:true,name:column};}case 25:if(columnField){// 列上的字段不认uiSchema.fields中定义的amis属性
@@ -810,7 +817,7 @@ autoFillMapping=!field.multiple&&field.auto_fill_mapping;if(autoFillMapping&&aut
810
817
  queryOptions:"filters: {__filters}, sort: \"{__sort}\""});case 6:data=_context111.sent;// 传入的默认过滤条件,比如[["name", "contains", "三"]],将会作为基本过滤条件
811
818
  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\:.+/,"}");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 filters = [['parent', '=', dep]];\n sort = \"").concat(ctx.sort,"\";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).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 _context111.abrupt("return",{"method":"post","url":getApi$2()+"&dep=${value}","requestAdaptor":requestAdaptor,"adaptor":adaptor,"data":data,"headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}});case 14:case"end":return _context111.stop();}}},_callee111);}));return _getDeferApi.apply(this,arguments);}function getRefListViewSort(refObject){var listView=getLookupListView(refObject);var sort="";if(listView){sort=getListViewSort(listView);}return sort;}function lookupToAmisTreeSelect(_x187,_x188,_x189){return _lookupToAmisTreeSelect.apply(this,arguments);}function _lookupToAmisTreeSelect(){_lookupToAmisTreeSelect=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee112(field,readonly,ctx){var amisSchema,refObjectConfig,onEvent;return _regeneratorRuntime().wrap(function _callee112$(_context112){while(1){switch(_context112.prev=_context112.next){case 0:if(field){_context112.next=2;break;}return _context112.abrupt("return",{});case 2:if(!ctx){ctx={};}amisSchema={"type":getAmisStaticFieldType('tree-select',readonly)};if(!readonly){_context112.next=10;break;}_context112.next=7;return getLookupTpl(field,ctx);case 7:amisSchema.tpl=_context112.sent;_context112.next=30;break;case 10:_context112.next=12;return getUISchema(ctx.objectName);case 12:refObjectConfig=_context112.sent;ctx.sort=getRefListViewSort(refObjectConfig);_context112.t0=Object;_context112.t1=amisSchema;_context112.t2=field.multiple;_context112.t3=field.searchable;_context112.next=20;return getSource(field,ctx);case 20:_context112.t4=_context112.sent;_context112.next=23;return getDeferApi(field,ctx);case 23:_context112.t5=_context112.sent;_context112.t6={"multiple":_context112.t2,"searchable":_context112.t3,"extractValue":true,"hideNodePathLabel":true,"clearable":true,"source":_context112.t4,"deferApi":_context112.t5};_context112.t0.assign.call(_context112.t0,_context112.t1,_context112.t6);if(field.multiple){// 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题
812
819
  Object.assign(amisSchema,{"joinValues":false});}if(typeof amisSchema.searchable!=="boolean"){amisSchema.searchable=true;}onEvent=field.onEvent;if(onEvent){amisSchema.onEvent=onEvent;}case 30:return _context112.abrupt("return",amisSchema);case 31:case"end":return _context112.stop();}}},_callee112);}));return _lookupToAmisTreeSelect.apply(this,arguments);}var getReferenceToFieldSchema=function getReferenceToFieldSchema(field,refObjectConfig){var referenceTo=field.reference_to;if(!referenceTo){return;}// 如果lookup 引用的对象未定义
813
- if(!refObjectConfig)return null;var valueField=null;var 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{objectName:referenceTo,valueField:valueField,labelField:refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY||'name'],NAME_FIELD_KEY:refObjectConfig.NAME_FIELD_KEY||'name'};};var getReferenceTo=/*#__PURE__*/function(){var _ref20=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(field){var referenceTo,refObjectConfig;return _regeneratorRuntime().wrap(function _callee18$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:referenceTo=field.reference_to;if(referenceTo==='users'){field.reference_to='space_users';field.reference_to_field='user';}_context18.next=4;return getUISchema(field.reference_to);case 4:refObjectConfig=_context18.sent;return _context18.abrupt("return",getReferenceToFieldSchema(field,refObjectConfig));case 6:case"end":return _context18.stop();}}},_callee18);}));return function getReferenceTo(_x190){return _ref20.apply(this,arguments);};}();function getReferenceToSync(field){var referenceTo=field.reference_to;if(referenceTo==='users'){field.reference_to='space_users';field.reference_to_field='user';}var refObjectConfig=getUISchemaSync(field.reference_to);return getReferenceToFieldSchema(field,refObjectConfig);}function getLookupSapceUserTreeSchema(isMobile){var apiAdaptor="\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (currentRecord, records, childrenIds) => {\n if (currentRecord.children && typeof currentRecord.children[0] === \"object\") {\n // \u8003\u8651api\u914D\u7F6E\u4E86cache\u7F13\u5B58\u7684\u8BDD\uFF0C\u4E0D\u4F1A\u8BF7\u6C42\u63A5\u53E3\u4F46\u662F\u4F1A\u91CD\u65B0\u8FDB\u8FD9\u4E2A\u63A5\u6536\u9002\u914D\u5668\u811A\u672C\u4E14payload.data.options\u8FD4\u56DE\u7684\u4F1A\u662F\u4E0A\u4E00\u6B21\u8BA1\u7B97\u7ED3\u679C\uFF0C\u8FD9\u91CC\u76F4\u63A5\u8FD4\u56DE\u8BA1\u7B97\u8FC7\u7684children\n return currentRecord.children;\n }\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(item, records, item.children)\n }else{\n 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(record, records, record.children) }));\n }\n });\n console.log(treeRecords)\n \n payload.data.options = treeRecords;\n return payload;\n ";var treeSchema={"type":"input-tree","className":"steedos-select-user-tree","inputClassName":"p-0","source":{"method":"post","url":"${context.rootUrl}/graphql","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"adaptor":apiAdaptor,"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 console.log(\"lookup-tree-event.data:\",event.data);\n console.log(\"lookup-tree-event.data.value.label:\",event.data.value.label);\n console.log(\"lookup-tree-event.data.value.value:\",event.data.value.value);\n const scope = event.context.scoped;\n var treeFilterFormValues={\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 let __lookupField = event.data.__lookupField;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n var filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n let filterFormValues = filterForm.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //\u53EA\u53D6\u5F53\u5C42\u6570\u636E\u57DF\u4E2D\u6570\u636E\uFF0C\u53BB\u9664__super\u5C42\u6570\u636E\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n Object.assign(changedFilterFormValues, treeFilterFormValues);\n // \u540C\u6B65__changedFilterFormValues\u4E2D\u7684\u503C\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.setData(treeFilterFormValues);\n filterForm.handleFormSubmit(event);\n "},{"actionType":"custom","script":" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }"}]}},"label":"","mode":"normal","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,"originPosition":"left-top"};var tree=[];if(isMobile){tree.push({type:"action",body:[{type:"action",body:[treeSchema],className:"h-full w-[240px]"}],className:"absolute inset-0 steedos-select-user-sidebar","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_select_user_tree"});tree.push({"type":"button","label":"组织","icon":"fa fa-sitemap","className":"bg-white p-2 rounded border-gray-300 text-gray-500","align":"left","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')"}]}},"id":"steedos_crud_toolbar_organization_button"});}else{tree.push(treeSchema);}return tree;}function lookupToAmisPicker(_x191,_x192,_x193){return _lookupToAmisPicker.apply(this,arguments);}function _lookupToAmisPicker(){_lookupToAmisPicker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee113(field,readonly,ctx){var _fields;var referenceTo,refObjectConfig,showLeftFilter,tableFields,searchableFields,fieldsArr,isMobile,listView,listName,autoFillMapping,fields,listviewFilter,listviewFiltersFunction,sort,source,depend_on,sendOn,keywordsSearchBoxName,filterFormValues,top,pickerSchema,labelFieldName,isAllowCreate,isCreate,hasFilters,new_button,data;return _regeneratorRuntime().wrap(function _callee113$(_context113){while(1){switch(_context113.prev=_context113.next){case 0:_context113.next=2;return getReferenceTo(field);case 2:referenceTo=_context113.sent;if(referenceTo){_context113.next=5;break;}return _context113.abrupt("return");case 5:_context113.next=7;return getUISchema(referenceTo.objectName);case 7:refObjectConfig=_context113.sent;ctx.idFieldName=refObjectConfig.idFieldName;ctx.objectName=refObjectConfig.name;// 是否显示lookup字段左侧的过滤器(如果有的话),默认为true,目前只有lookup选人字段有左侧树过滤器
820
+ if(!refObjectConfig)return null;var valueField=null;var 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{objectName:referenceTo,valueField:valueField,labelField:refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY||'name'],NAME_FIELD_KEY:refObjectConfig.NAME_FIELD_KEY||'name'};};var getReferenceTo=/*#__PURE__*/function(){var _ref20=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(field){var referenceTo,refObjectConfig;return _regeneratorRuntime().wrap(function _callee18$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:referenceTo=field.reference_to;if(referenceTo==='users'){field.reference_to='space_users';field.reference_to_field='user';}_context18.next=4;return getUISchema(field.reference_to);case 4:refObjectConfig=_context18.sent;return _context18.abrupt("return",getReferenceToFieldSchema(field,refObjectConfig));case 6:case"end":return _context18.stop();}}},_callee18);}));return function getReferenceTo(_x190){return _ref20.apply(this,arguments);};}();function getReferenceToSync(field){var referenceTo=field.reference_to;if(referenceTo==='users'){field.reference_to='space_users';field.reference_to_field='user';}var refObjectConfig=getUISchemaSync(field.reference_to);return getReferenceToFieldSchema(field,refObjectConfig);}function getLookupSapceUserTreeSchema(isMobile){var apiAdaptor="\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (currentRecord, records, childrenIds) => {\n if (currentRecord.children && typeof currentRecord.children[0] === \"object\") {\n // \u8003\u8651api\u914D\u7F6E\u4E86cache\u7F13\u5B58\u7684\u8BDD\uFF0C\u4E0D\u4F1A\u8BF7\u6C42\u63A5\u53E3\u4F46\u662F\u4F1A\u91CD\u65B0\u8FDB\u8FD9\u4E2A\u63A5\u6536\u9002\u914D\u5668\u811A\u672C\u4E14payload.data.options\u8FD4\u56DE\u7684\u4F1A\u662F\u4E0A\u4E00\u6B21\u8BA1\u7B97\u7ED3\u679C\uFF0C\u8FD9\u91CC\u76F4\u63A5\u8FD4\u56DE\u8BA1\u7B97\u8FC7\u7684children\n return currentRecord.children;\n }\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(item, records, item.children)\n }else{\n 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(record, records, record.children) }));\n }\n });\n console.log(treeRecords)\n \n payload.data.options = treeRecords;\n return payload;\n ";var treeSchema={"type":"input-tree","className":"steedos-select-user-tree","inputClassName":"p-0","source":{"method":"post","url":"${context.rootUrl}/graphql","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"adaptor":apiAdaptor,"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 console.log(\"lookup-tree-event.data:\",event.data);\n console.log(\"lookup-tree-event.data.value.label:\",event.data.value.label);\n console.log(\"lookup-tree-event.data.value.value:\",event.data.value.value);\n const scope = event.context.scoped;\n var treeFilterFormValues={\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 let __lookupField = event.data.__lookupField;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n var filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n let filterFormValues = filterForm.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //\u53EA\u53D6\u5F53\u5C42\u6570\u636E\u57DF\u4E2D\u6570\u636E\uFF0C\u53BB\u9664__super\u5C42\u6570\u636E\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n Object.assign(changedFilterFormValues, treeFilterFormValues);\n // \u540C\u6B65__changedFilterFormValues\u4E2D\u7684\u503C\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.setData(treeFilterFormValues);\n filterForm.handleFormSubmit(event);\n "},{"actionType":"custom","script":" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }"}]}},"label":"","mode":"normal","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,"originPosition":"left-top"};var tree=[];if(isMobile){tree.push({type:"action",body:[{type:"action",body:[treeSchema],className:"h-full w-[240px]"}],className:"absolute inset-0 steedos-select-user-sidebar","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_select_user_tree"});tree.push({"type":"button","label":"组织","icon":"fa fa-sitemap","className":"bg-white p-2 rounded border-gray-300 text-gray-500","align":"left","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')"}]}},"id":"steedos_crud_toolbar_organization_button"});}else{tree.push(treeSchema);}return tree;}function lookupToAmisPicker(_x191,_x192,_x193){return _lookupToAmisPicker.apply(this,arguments);}function _lookupToAmisPicker(){_lookupToAmisPicker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee113(field,readonly,ctx){var _fields;var referenceTo,refObjectConfig,showLeftFilter,tableFields,searchableFields,fieldsArr,isMobile,listView,listName,autoFillMapping,fields,listviewFilter,listviewFiltersFunction,sort,source,depend_on,sendOn,keywordsSearchBoxName,searchableDefault,top,pickerSchema,labelFieldName,isAllowCreate,isCreate,hasFilters,new_button,data;return _regeneratorRuntime().wrap(function _callee113$(_context113){while(1){switch(_context113.prev=_context113.next){case 0:_context113.next=2;return getReferenceTo(field);case 2:referenceTo=_context113.sent;if(referenceTo){_context113.next=5;break;}return _context113.abrupt("return");case 5:_context113.next=7;return getUISchema(referenceTo.objectName);case 7:refObjectConfig=_context113.sent;ctx.idFieldName=refObjectConfig.idFieldName;ctx.objectName=refObjectConfig.name;// 是否显示lookup字段左侧的过滤器(如果有的话),默认为true,目前只有lookup选人字段有左侧树过滤器
814
821
  showLeftFilter=field.show_left_filter!==false;tableFields=[];searchableFields=[];fieldsArr=[];isMobile=window.innerWidth<768;listView=getLookupListView(refObjectConfig);listName=listView&&listView.name;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,amis:column.amis}));}});___namespace.each(listView.extra_columns||[],function(column){// Lookup弹出列表跟列表视图组件一样,支持配置列表视图extra_columns,且允许其中字段是hidden的,hidden的字段在uiSchema.fields中不存在
815
822
  if(___namespace.isString(column)){fieldsArr.push({extra:true,name:column});}else if(___namespace.isObject(column)){fieldsArr.push({extra:true,name:column.field});}});}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);}});// 没有视图权限时,取对象上前5个字段,按sort_no排序
816
823
  fieldsArr=___namespace.sortBy(fieldsArr,"sort_no").slice(0,5);}___namespace.each(fieldsArr,function(field){if(!___namespace.find(tableFields,function(f){return f.name===field.name;})){tableFields.push(field);}});// 把自动填充规则中依赖的字段也加到api请求中
@@ -818,10 +825,11 @@ autoFillMapping=field.auto_fill_mapping;if(autoFillMapping&&autoFillMapping.leng
818
825
  // F字段值变更后,虽然会自动填充值到T字段中,但是并不会触发T字段的source接口重新请求,这会造成T字段被填充后,可能会显示为字段id而不是label了,见issue:https://github.com/steedos/steedos-platform/issues/6601
819
826
  // amis@6.2.2不需要配置trackExpression不会有#6601所示问题,但是更高版本6.3.0也会有,所以这里只能加上trackExpression避开相关bug。
820
827
  source.trackExpression="${".concat(field.name,"}");source.data.$term="$term";source.data.$self="$$";// field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
821
- keywordsSearchBoxName="__keywords_lookup__".concat(field.name.replace(/\./g,"_"),"__to__").concat(refObjectConfig.name);filterFormValues=field.filter_form_data;source.requestAdaptor="\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // \u628A\u8868\u5355\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\u4E2D\u7684change\u4E8B\u4EF6\u4E2D\u8BB0\u5F55\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E5F\u62FC\u5230$self\u4E2D\uFF0C\u662F\u4E3A\u89E3\u51B3\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u65F6\uFF0C\u4E24\u8FB9\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u90FD\u5E26\u4E0A\uFF0C\u5373\uFF1A\n // \u6709\u65F6\u5728\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E8B\uFF0C\u5FD8\u8BB0\u70B9\u51FB\u56DE\u8F66\u952E\u6216\u641C\u7D22\u6309\u94AE\uFF0C\u800C\u662F\u8FDB\u4E00\u6B65\u4FEE\u6539\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u7684\u5173\u952E\u5B57\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\n // \u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0C\u89E6\u53D1\u7684\u641C\u7D22\u8BF7\u6C42\u4E2D\u6CA1\u6709\u5E26\u4E0A\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n // \u53CD\u8FC7\u6765\u5148\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u5374\u4E0D\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\uFF0C\u800C\u662F\u5230\u641C\u7D22\u8868\u5355\u4E2D\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u4E5F\u662F\u4E00\u6837\u7684\u3002\n if(api.data.$self.op !== 'loadOptions'){\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\n }\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n ".concat(listviewFilter&&!ctx.inFilterForm?"var filters = ".concat(JSON.stringify(listviewFilter),";"):'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 let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ").concat(___namespace.isObject(filterFormValues)?JSON.stringify(filterFormValues):'"'+filterFormValues+'"'," || {};\n const isAmisFormula = typeof filterFormValues === \"string\" && filterFormValues.indexOf(\"${\") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, 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 var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //\u9012\u5F52fieldFilters\u6570\u7EC4\uFF0C\u68C0\u67E5\u6BCF\u4E00\u4E2A\u5143\u7D20\uFF0C\u5224\u65AD\u82E5\u662F\u516C\u5F0F\uFF0C\u5C31\u4EC5\u628A\u5B83\u89E3\u6790\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // \u5982\u679C\u5F53\u524D\u5143\u7D20\u662F\u6570\u7EC4\uFF0C\u5219\u9012\u5F52\u8C03\u7528\u81EA\u8EAB\u7EE7\u7EED\u904D\u5386\n traverseNestedArray(arr[i]);\n } else {\n // \u5982\u679C\u5F53\u524D\u5143\u7D20\u4E0D\u662F\u6570\u7EC4\uFF0C\u5219\u5904\u7406\u8BE5\u5143\u7D20\n // \u4E0B\u9762\u6B63\u5219\u7528\u4E8E\u5339\u914Damis\u516C\u5F0F${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error(\"\u8FD0\u884Clookup\u8FC7\u6EE4\u516C\u5F0F\u65F6\u51FA\u73B0\u9519\u8BEF:\",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ").concat(ctx.inFilterForm,";\n\n const listviewFiltersFunction = ").concat(listviewFiltersFunction,";\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$self.__super);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ").concat(field.filtersFunction||field._filtersFunction,";\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__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 // \u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528_.pick\u51FD\u6570\u8BA9payload\u53EA\u8FD4\u56DElabelField\u548CvalueField\uFF0C\u56E0\u4E3A\u5B57\u6BB5\u4E0A\u914D\u7F6E\u7684amis autoFill\u529F\u80FD\u53EF\u80FD\u4F9D\u8D56\u4E86\u5176\u4ED6\u5B57\u6BB5\n /*\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 */\n if(enable_tree){\n const rows = _.map(payload.data.rows, (item)=>{\n if (!item.children) {\n return { ...item, children: [] };\n } else {\n return item;\n }\n })\n payload.data.rows = rows;\n }\n return payload;\n }\n if(!payload.data.rows){\n payload.data.rows = [];\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 }else{\n 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 const result = payload.data.rows;\n if(result && result.length){\n const updatedResult = _.map(result, (element) => {\n const data = { ...element };\n // image\u5B57\u6BB5\u503C\u6DFB\u52A0URL\u524D\u7F00\n ").concat(getScriptForAddUrlPrefixForImgFields(___namespace.values(refObjectConfig.fields)),"\n return data;\n });\n payload.data.rows = updatedResult;\n }\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};\n // \u5217\u8868\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\uFF0C\u6709\u65F6\u5728\u67D0\u4E9B\u64CD\u4F5C\u60C5\u51B5\u4E0B\u8FD8\u662F\u4F1A\u9020\u6210crud\u63A5\u53E3\u8BF7\u6C42\u4F7F\u7528\u7684\u8FC7\u6EE4\u6761\u4EF6\u662F\u4E0A\u6B21\u7684\uFF0C\u8FD9\u91CC\u5F3A\u5236\u628A\u6B63\u786E\u7684\u8FC7\u6EE4\u6761\u4EF6\u8FD4\u56DE\u5230crud\uFF0C\u8BE6\u7EC6\u89C4\u5219\u89C1\uFF1Ahttps://github.com/steedos/steedos-platform/issues/7112\n payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;\n payload.data.__changedSearchBoxValues = __changedSearchBoxValues;\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=500;if(refObjectConfig.paging&&refObjectConfig.paging.enabled===false){top=1000;}pickerSchema=null;labelFieldName=refObjectConfig.NAME_FIELD_KEY||'name';// organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.
828
+ keywordsSearchBoxName="__keywords_lookup__".concat(field.name.replace(/\./g,"_"),"__to__").concat(refObjectConfig.name);// 优先认lookup字段上配置的searchable_default,没有时再使用lookup字段关联对象对应的Lookup列表视图上的searchable_default配置
829
+ searchableDefault=field.searchable_default||listView.searchable_default;source.requestAdaptor="\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // \u628A\u8868\u5355\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\u4E2D\u7684change\u4E8B\u4EF6\u4E2D\u8BB0\u5F55\u7684\u8FC7\u6EE4\u6761\u4EF6\u4E5F\u62FC\u5230$self\u4E2D\uFF0C\u662F\u4E3A\u89E3\u51B3\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u65F6\uFF0C\u4E24\u8FB9\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u90FD\u5E26\u4E0A\uFF0C\u5373\uFF1A\n // \u6709\u65F6\u5728\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u4E8B\uFF0C\u5FD8\u8BB0\u70B9\u51FB\u56DE\u8F66\u952E\u6216\u641C\u7D22\u6309\u94AE\uFF0C\u800C\u662F\u8FDB\u4E00\u6B65\u4FEE\u6539\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u7684\u5173\u952E\u5B57\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\n // \u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0C\u89E6\u53D1\u7684\u641C\u7D22\u8BF7\u6C42\u4E2D\u6CA1\u6709\u5E26\u4E0A\u641C\u7D22\u8868\u5355\u4E2D\u8F93\u5165\u7684\u8FC7\u6EE4\u6761\u4EF6\u3002\n // \u53CD\u8FC7\u6765\u5148\u5728\u5FEB\u901F\u641C\u7D22\u6846\u4E2D\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6\u5374\u4E0D\u70B9\u51FB\u5176\u4E2D\u56DE\u8F66\u952E\u89E6\u53D1\u641C\u7D22\uFF0C\u800C\u662F\u5230\u641C\u7D22\u8868\u5355\u4E2D\u89E6\u53D1\u641C\u7D22\u8BF7\u6C42\u4E5F\u662F\u4E00\u6837\u7684\u3002\n if(api.data.$self.op !== 'loadOptions'){\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\n }\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n ".concat(listviewFilter&&!ctx.inFilterForm?"var filters = ".concat(JSON.stringify(listviewFilter),";"):'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 let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ").concat(___namespace.isObject(searchableDefault)?JSON.stringify(searchableDefault):'"'+(searchableDefault||"")+'"'," || {};\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n _.each(filterFormValues, function(v, k){\n const isAmisFormulaValue = typeof v === \"string\" && v.indexOf(\"${\") > -1;\n if (isAmisFormulaValue){\n filterFormValues[k] = AmisCore.evaluate(v, context);\n }\n });\n let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, 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 var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //\u9012\u5F52fieldFilters\u6570\u7EC4\uFF0C\u68C0\u67E5\u6BCF\u4E00\u4E2A\u5143\u7D20\uFF0C\u5224\u65AD\u82E5\u662F\u516C\u5F0F\uFF0C\u5C31\u4EC5\u628A\u5B83\u89E3\u6790\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // \u5982\u679C\u5F53\u524D\u5143\u7D20\u662F\u6570\u7EC4\uFF0C\u5219\u9012\u5F52\u8C03\u7528\u81EA\u8EAB\u7EE7\u7EED\u904D\u5386\n traverseNestedArray(arr[i]);\n } else {\n // \u5982\u679C\u5F53\u524D\u5143\u7D20\u4E0D\u662F\u6570\u7EC4\uFF0C\u5219\u5904\u7406\u8BE5\u5143\u7D20\n // \u4E0B\u9762\u6B63\u5219\u7528\u4E8E\u5339\u914Damis\u516C\u5F0F${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error(\"\u8FD0\u884Clookup\u8FC7\u6EE4\u516C\u5F0F\u65F6\u51FA\u73B0\u9519\u8BEF:\",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ").concat(ctx.inFilterForm,";\n\n const listviewFiltersFunction = ").concat(listviewFiltersFunction,";\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$self.__super);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ").concat(field.filtersFunction||field._filtersFunction,";\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__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 // \u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528_.pick\u51FD\u6570\u8BA9payload\u53EA\u8FD4\u56DElabelField\u548CvalueField\uFF0C\u56E0\u4E3A\u5B57\u6BB5\u4E0A\u914D\u7F6E\u7684amis autoFill\u529F\u80FD\u53EF\u80FD\u4F9D\u8D56\u4E86\u5176\u4ED6\u5B57\u6BB5\n /*\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 */\n if(enable_tree){\n const rows = _.map(payload.data.rows, (item)=>{\n if (!item.children) {\n return { ...item, children: [] };\n } else {\n return item;\n }\n })\n payload.data.rows = rows;\n }\n return payload;\n }\n if(!payload.data.rows){\n payload.data.rows = [];\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 }else{\n 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 const result = payload.data.rows;\n if(result && result.length){\n const updatedResult = _.map(result, (element) => {\n const data = { ...element };\n // image\u5B57\u6BB5\u503C\u6DFB\u52A0URL\u524D\u7F00\n ").concat(getScriptForAddUrlPrefixForImgFields(___namespace.values(refObjectConfig.fields)),"\n return data;\n });\n payload.data.rows = updatedResult;\n }\n let __changedFilterFormValuesKey = \"__changedFilterFormValues\";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = \"__lookup__\" + __lookupField.name + \"__\" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += \"__\" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};\n // \u5217\u8868\u641C\u7D22\u548C\u5FEB\u901F\u641C\u7D22\uFF0C\u6709\u65F6\u5728\u67D0\u4E9B\u64CD\u4F5C\u60C5\u51B5\u4E0B\u8FD8\u662F\u4F1A\u9020\u6210crud\u63A5\u53E3\u8BF7\u6C42\u4F7F\u7528\u7684\u8FC7\u6EE4\u6761\u4EF6\u662F\u4E0A\u6B21\u7684\uFF0C\u8FD9\u91CC\u5F3A\u5236\u628A\u6B63\u786E\u7684\u8FC7\u6EE4\u6761\u4EF6\u8FD4\u56DE\u5230crud\uFF0C\u8BE6\u7EC6\u89C4\u5219\u89C1\uFF1Ahttps://github.com/steedos/steedos-platform/issues/7112\n payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;\n payload.data.__changedSearchBoxValues = __changedSearchBoxValues;\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=500;if(refObjectConfig.paging&&refObjectConfig.paging.enabled===false){top=1000;}pickerSchema=null;labelFieldName=refObjectConfig.NAME_FIELD_KEY||'name';// organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.
822
830
  if(refObjectConfig.name==='organizations'){labelFieldName='name';}_context113.next=47;return getTableSchema$1(refObjectConfig,tableFields,_objectSpread({labelFieldName:labelFieldName,top:top,isLookup:true,enable_tree:refObjectConfig.enable_tree},ctx));case 47:pickerSchema=_context113.sent;pickerSchema.affixHeader=false;pickerSchema.headerToolbar=getObjectHeaderToolbar(refObjectConfig,fieldsArr,ctx.formFactor,{isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName});if(referenceTo.objectName==="space_users"&&field.reference_to_field==="user"&&showLeftFilter){pickerSchema.headerToolbar.push(getLookupSapceUserTreeSchema(isMobile));pickerSchema.className=pickerSchema.className||""+" steedos-select-user";}isAllowCreate=refObjectConfig.permissions.allowCreate;isCreate=___namespace.isBoolean(field.create)?field.create:true;// lookup字段配置过滤条件就强制不显示新建按钮
823
831
  hasFilters=!___namespace.isEmpty(field.filters)||!!field.filtersFunction||!!field._filtersFunction;if(!(isAllowCreate&&isCreate&&!hasFilters)){_context113.next=60;break;}_context113.next=57;return getSchema$5(refObjectConfig,{appId:ctx.appId,objectName:refObjectConfig.name,formFactor:ctx.formFactor});case 57:new_button=_context113.sent;new_button.align="right";// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
824
- pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length-1,0,new_button);case 60:pickerSchema.footerToolbar=refObjectConfig.enable_tree?[]:getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup:true});if(!(ctx.filterVisible!==false)){_context113.next=65;break;}_context113.next=64;return getObjectFilter(refObjectConfig,fields,_objectSpread(_objectSpread({},ctx),{},{isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName,searchable_fields:field.searchable_fields,auto_open_filter:field.auto_open_filter,show_left_filter:field.show_left_filter,filter_form_data:field.filter_form_data}));case 64:pickerSchema.filter=_context113.sent;case 65:pickerSchema.data=Object.assign({},pickerSchema.data,{"&":"$$","objectName":refObjectConfig.name,"uiSchema":refObjectConfig,"listName":listName,// 需要按视图取可搜索项
832
+ pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length-1,0,new_button);case 60:pickerSchema.footerToolbar=refObjectConfig.enable_tree?[]:getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup:true});if(!(ctx.filterVisible!==false)){_context113.next=65;break;}_context113.next=64;return getObjectFilter(refObjectConfig,fields,_objectSpread(_objectSpread({},ctx),{},{isLookup:true,keywordsSearchBoxName:keywordsSearchBoxName,searchable_fields:field.searchable_fields,auto_open_filter:field.auto_open_filter,searchable_default:searchableDefault,show_left_filter:field.show_left_filter}));case 64:pickerSchema.filter=_context113.sent;case 65:pickerSchema.data=Object.assign({},pickerSchema.data,{"&":"$$","objectName":refObjectConfig.name,"uiSchema":refObjectConfig,"listName":listName,// 需要按视图取可搜索项
825
833
  "isLookup":true,"__lookupField":{"name":field.name,"reference_to":refObjectConfig.name,"reference_to_field":field.reference_to_field,"filters":field.filters,"filtersFunction":field.filtersFunction,"_filtersFunction":field._filtersFunction,"inFilterForm":ctx.inFilterForm,"listviewFilter":listviewFilter,"listviewFiltersFunction":listviewFiltersFunction}});if(!pickerSchema.onEvent){pickerSchema.onEvent={};}pickerSchema.onEvent["@data.changed.".concat(refObjectConfig.name)]={"actions":[{"actionType":"reload"},{"actionType":"custom","script":"\n // lookup\u5B57\u6BB5\u5F39\u51FA\u5217\u8868\uFF0C\u70B9\u51FB\u65B0\u5EFA\u6309\u94AE\uFF0C\u65B0\u5EFA\u8BB0\u5F55\u6210\u529F\u540E\uFF0C\u89E6\u53D1@data.changed.xxx\uFF0C\n // \u6B64\u65F6context.props.data\u503C\u662Flookup\u5B57\u6BB5\u6240\u5728\u8868\u5355\u6570\u636E\uFF0C\u7ECF\u6D4B\u8BD5\u591A\u5C42lookup\u5F39\u51FA\u5217\u8868\u65B0\u5EFA\u8BB0\u5F55\u6210\u529F\u540Econtext.props.data\u59CB\u7EC8\u53D6\u7684\u662F\u6700\u8FD1\u4E00\u5C42\u7684lookup\u5B57\u6BB5\u6240\u5728\u8868\u5355\u6570\u636E\uFF0C\u7B26\u5408\u9884\u671F\n const masterRecord = context.props.data;//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 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 // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n // \u8FDE\u7EED\u65B0\u5EFA\u591A\u4E2A\u8BB0\u5F55\u65F6\uFF0C\u56E0\u4E3AmasterRecord\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\n // \u800C\u4E0B\u9762context.context.component\u6307\u5411\u7684\u662Flookup picker\u7EC4\u4EF6\uFF0C\u53EF\u4EE5\u76F4\u63A5\u53D6\u5230\u7528\u6237\u5B9E\u65F6\u52FE\u9009\u7684\u8BB0\u5F55\u3002\n const fieldValue = context.context.component.props.store.toJSON().selectedItems\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 && ctx.defaults.formSchema && ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n ")}]};if(field.pickerSchema){pickerSchema=Object.assign({},pickerSchema,field.pickerSchema);}if(referenceTo.objectName==="space_users"&&field.reference_to_field==="user"&&isMobile){//手机端选人控件只保留部分toolbar
826
834
  pickerSchema.headerToolbar=pickerSchema.headerToolbar&&pickerSchema.headerToolbar.filter(function(item){if(["steedos_crud_toolbar_quick_search","steedos_crud_toolbar_filter","steedos_crud_toolbar_select_user_tree","steedos_crud_toolbar_organization_button"].indexOf(item.id)>-1){return true;}else{return false;}});pickerSchema.footerToolbar=["pagination"];}if(field.inlineHelpText){pickerSchema.toolbarClassName="hasHelpText";pickerSchema.headerToolbar=[{"type":"tpl","tpl":field.inlineHelpText,"className":"text-secondary"}].concat(_toConsumableArray(pickerSchema.headerToolbar));}pickerSchema.className=(pickerSchema.className||"")+" steedos-lookup-crud";data={type:getAmisStaticFieldType('picker',readonly),className:ctx.className||'',modalTitle:i18next__default["default"].t('frontend_form_please_select')+" "+refObjectConfig.label,labelField:referenceTo.labelField.name,valueField:referenceTo.valueField.name,// disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。
827
835
  disabledOn:"".concat(readonly," || ( (this._master && (this._master.relatedKey ==='").concat(field.name,"')) || ((this.relatedKey ==='").concat(field.name,"') && (").concat(field.multiple," != true)) )"),modalMode:'dialog',//TODO 设置 dialog 或者 drawer,用来配置弹出方式