@steedos-widgets/amis-object 6.10.9 → 6.10.10
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/amis-object.umd.css +103 -156
- package/dist/amis-object.umd.js +4 -4
- package/dist/amis-object.umd.js.map +1 -1
- package/dist/assets.json +19 -19
- package/package.json +3 -3
package/dist/amis-object.umd.js
CHANGED
|
@@ -141,7 +141,7 @@ return toGrayscale(r,g,b)>200;}function getContrastColor(bgColor){var background
|
|
|
141
141
|
* @LastEditTime: 2025-04-08 10:55:41
|
|
142
142
|
* @Description:
|
|
143
143
|
*/function getCreatedInfoTpl(formFactor){var href=Router$1.getObjectDetailPath({formFactor:formFactor,appId:"admin",objectName:'users',recordId:'${created_by._id}'});return"<span><a href='".concat(href,"'>${_display.created_by.label}</a>${_display.created}</span>");}function getModifiedInfoTpl(formFactor){var href=Router$1.getObjectDetailPath({formFactor:formFactor,appId:"admin",objectName:'users',recordId:'${modified_by._id}'});return"<span><a href='".concat(href,"'>${_display.modified_by.label}</a>${_display.modified}</span>");}function getNumberTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getTimeTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getDateTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getDateTimeTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getUiFieldTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getUiFileSizeTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}//TODO 处理name字段
|
|
144
|
-
function getRefObjectNameFieldName(_x3){return _getRefObjectNameFieldName.apply(this,arguments);}function _getRefObjectNameFieldName(){_getRefObjectNameFieldName=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee57(field){var refUiSchema,NAME_FIELD_KEY;return _regenerator().w(function(_context57){while(1)switch(_context57.n){case 0:_context57.n=1;return _getUISchema2(field.reference_to);case 1:refUiSchema=_context57.v;NAME_FIELD_KEY=refUiSchema.NAME_FIELD_KEY||'name';return _context57.a(2,NAME_FIELD_KEY);}},_callee57);}));return _getRefObjectNameFieldName.apply(this,arguments);}function getSelectTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getSelectMap(selectOptions){var map={};_$1.forEach(selectOptions,function(option){var optionValue=option.value+'';var optionColor=option.color+'';if(optionColor&&optionColor!="undefined"){var background=optionColor.charAt(0)==='#'?optionColor:'#'+optionColor;var color=getContrastColor(background);var optionColorStyle='background:'+background+';color:'+color+';line-height:1.5rem;font-size:14px';map[optionValue]="<span class=\"rounded-xl px-2 py-1\" style='".concat(optionColorStyle,"'>").concat(option.label,"</span>");}else{map[optionValue]=option.label;}});return map;}function getNameTplUrl(field,ctx){var href=Router$1.getObjectDetailPath(_objectSpread2(_objectSpread2({},ctx),{},{formFactor:ctx.formFactor,appId:"${appId}",objectName:ctx.objectName||"${objectName}",recordId:"${".concat(ctx.idFieldName,"}")}));return href;}function getNameTpl(field,ctx){var href=getNameTplUrl(field,ctx);var linkTarget="";if(ctx&&ctx.isLookup){linkTarget="target='_blank'";}var nameLabel=field.name;//若字段类型是lookup,则按照相关表tpl的label规则显示;若是其它类型,则显示_display或字段本身的值
|
|
144
|
+
function getRefObjectNameFieldName(_x3){return _getRefObjectNameFieldName.apply(this,arguments);}function _getRefObjectNameFieldName(){_getRefObjectNameFieldName=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee57(field){var refUiSchema,NAME_FIELD_KEY;return _regenerator().w(function(_context57){while(1)switch(_context57.n){case 0:_context57.n=1;return _getUISchema2(field.reference_to);case 1:refUiSchema=_context57.v;NAME_FIELD_KEY=refUiSchema.NAME_FIELD_KEY||'name';return _context57.a(2,NAME_FIELD_KEY);}},_callee57);}));return _getRefObjectNameFieldName.apply(this,arguments);}function getSelectTpl(field){return"<span>${_display.".concat(field.name,"}</span>");}function getSelectMap(selectOptions){var map={};_$1.forEach(selectOptions,function(option){var optionValue=option.value+'';var optionColor=option.color+'';if(optionColor&&optionColor!="undefined"){var background=optionColor.charAt(0)==='#'?optionColor:'#'+optionColor;var color=getContrastColor(background);var optionColorStyle='background:'+background+';color:'+color+';line-height:1.5rem;font-size:14px';map[optionValue]="<span class=\"rounded-xl px-2 py-1 whitespace-nowrap\" style='".concat(optionColorStyle,"'>").concat(option.label,"</span>");}else{map[optionValue]=option.label;}});return map;}function getNameTplUrl(field,ctx){var href=Router$1.getObjectDetailPath(_objectSpread2(_objectSpread2({},ctx),{},{formFactor:ctx.formFactor,appId:"${appId}",objectName:ctx.objectName||"${objectName}",recordId:"${".concat(ctx.idFieldName,"}")}));return href;}function getNameTpl(field,ctx){var href=getNameTplUrl(field,ctx);var linkTarget="";if(ctx&&ctx.isLookup){linkTarget="target='_blank'";}var nameLabel=field.name;//若字段类型是lookup,则按照相关表tpl的label规则显示;若是其它类型,则显示_display或字段本身的值
|
|
145
145
|
if(field.type=="lookup"||field.type=="master_detail"){if(!field.reference_to&&(field.optionsFunction||field._optionsFunction||field.options)){if(!field.isTableField){nameLabel="${".concat(field.name,"__label}");}}else{nameLabel="${_display.".concat(field.name,".label}");}}else{nameLabel="${_display.".concat(field.name," || ").concat(field.name,"}");}if(ctx.isRelated&&window.innerWidth>=768){return"<a href=\"".concat(href,"\" ").concat(linkTarget," onclick=\"return false;\">${").concat(nameLabel," | raw}</a>");}else{return"<a href=\"".concat(href,"\" ").concat(linkTarget,">${").concat(nameLabel," | raw}</a>");}}function getRelatedFieldTpl(field,ctx){var tpl='';if(!field.reference_to&&(field.optionsFunction||field._optionsFunction||field.options)){if(field.isTableField){return"${".concat(field.name,"}");}else{return"${".concat(field.name,"__label}");}}var linkTarget="";if(ctx&&ctx.isLookup){linkTarget="target='_blank'";}var onlyDisplayLookLabel=ctx.onlyDisplayLookLabel;var fieldDataStrTpl="data._display.".concat(field.name);if(field.isTableField){fieldDataStrTpl="data.".concat(field.name);}if(_.isString(field.reference_to)||!field.reference_to){if(field.multiple){var labelTpl="<%=item.label%>";if(ctx.isRelated){linkTarget="target='_blank'";}if(!onlyDisplayLookLabel){var href=Router$1.getObjectDetailPath({formFactor:ctx.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"});labelTpl="<a href=\"".concat(href,"\" ").concat(linkTarget,"><%=item.label%></a>");}tpl="\n <% if (".concat(fieldDataStrTpl," && ").concat(fieldDataStrTpl,".length) { %><% ").concat(fieldDataStrTpl,".forEach(function(item,index) { %> <% if(index>0 && index<").concat(fieldDataStrTpl,".length){ %> , <% } %> ").concat(labelTpl," <% }); %><% } %>\n ");}else{var _labelTpl="${_display.".concat(field.name,".label}");var objectNameTpl="${_display.".concat(field.name,".objectName}");var recordIdTpl="${_display.".concat(field.name,".value}");if(field.isTableField){_labelTpl="${".concat(field.name,".label}");objectNameTpl="${".concat(field.name,".objectName}");recordIdTpl="${".concat(field.name,".value}");}if(!onlyDisplayLookLabel){var _href=Router$1.getObjectDetailPath({formFactor:ctx.formFactor,appId:"${appId}",objectName:"".concat(objectNameTpl),recordId:"".concat(recordIdTpl)});if(window.innerWidth>=768){//(ctx.isRelated || isObjectListview) && window.innerWidth >= 768
|
|
146
146
|
// 相关表字段,包括列表视图、对象表格组件中的lookup/master_detail字段,在PC端显示时,点击字段值,不跳转到详情页而是右侧弹出drawer
|
|
147
147
|
_labelTpl="<a href=\"".concat(_href,"\" ").concat(linkTarget," onclick=\"return false;\">").concat(_labelTpl,"</a>");}else{_labelTpl="<a href=\"".concat(_href,"\" ").concat(linkTarget,">").concat(_labelTpl,"</a>");}}tpl=_labelTpl;}}else{var _labelTpl2="<%=item.label%>";if(!onlyDisplayLookLabel){var _href2=Router$1.getObjectDetailPath({formFactor:ctx.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"});_labelTpl2="<a href=\"".concat(_href2,"\" ").concat(linkTarget,"><%=item.label%></a>");}tpl="\n <% if (".concat(fieldDataStrTpl," && ").concat(fieldDataStrTpl,".length) { %><% ").concat(fieldDataStrTpl,".forEach(function(item) { %> ").concat(_labelTpl2," <% }); %><% } %>\n ");}return tpl;}function getLookupTpl(_x4,_x5){return _getLookupTpl.apply(this,arguments);}function _getLookupTpl(){_getLookupTpl=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee58(field,ctx){var NAME_FIELD_KEY,href,_href3;return _regenerator().w(function(_context58){while(1)switch(_context58.n){case 0:if(field.reference_to){_context58.n=1;break;}return _context58.a(2,getSelectTpl(field));case 1:_context58.n=2;return getRefObjectNameFieldName(field);case 2:NAME_FIELD_KEY=_context58.v;if(!field.multiple){_context58.n=3;break;}href=Router$1.getObjectDetailPath({formFactor:ctx.formFactor,appId:ctx.appId,objectName:field.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return _context58.a(2,"\n <% if (data.".concat(field.name," && data.").concat(field.name,".length) { %><% data.").concat(field.name,".forEach(function(item) { %> <a href=\"").concat(href,"\"><%=item.").concat(NAME_FIELD_KEY,"%></a> <% }); %><% } %>\n "));case 3:_href3=Router$1.getObjectDetailPath({formFactor:ctx.formFactor,appId:ctx.appId,objectName:field.reference_to,recordId:"${".concat(field.name,"._id}")});return _context58.a(2,"<a href=\"".concat(_href3,"\">${").concat(field.name,".").concat(NAME_FIELD_KEY,"}</a>"));case 4:return _context58.a(2);}},_callee58);}));return _getLookupTpl.apply(this,arguments);}function getSwitchTpl(field){var fieldDataStrTpl="data._display.".concat(field.name);if(field.isTableField){fieldDataStrTpl="data.".concat(field.name);}return"<% if (data.".concat(field.name,") { %>\n <span class=\"slds-icon_container slds-icon-utility-check slds-current-color\" title=\"<%=").concat(fieldDataStrTpl,"%>\">\n <span ><%= ").concat(fieldDataStrTpl," === \"\u221A\" ? \"<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>\" : ").concat(fieldDataStrTpl," %></span>\n </span>\n <% } %>");}function getPasswordTpl(field){return"<% if (data.".concat(field.name,") { %>\n <span>******</span>\n <% } %>");}function getLocationTpl(field){return"${".concat(field.name," ? ").concat(field.name,".address : ''}");}function getFieldTpl(_x6,_x7){return _getFieldTpl.apply(this,arguments);}function _getFieldTpl(){_getFieldTpl=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee59(field,options){var _t149;return _regenerator().w(function(_context59){while(1)switch(_context59.n){case 0:if(!((field.is_name||field.name===options.labelFieldName)&&!options.onlyDisplayLookLabel&&field.multiple!==true)){_context59.n=1;break;}return _context59.a(2,getNameTpl(field,options));case 1:_t149=field.type;_context59.n=_t149==='password'?2:_t149==='boolean'?3:_t149==='toggle'?4:_t149==='select'?5:_t149==='time'?6:_t149==='date'?7:_t149==='datetime'?8:_t149==='lookup'?9:_t149==='master_detail'?11:_t149==='location'?13:_t149==='number'?15:_t149==='currency'?15:_t149==='percent'?17:_t149==='formula'?17:_t149==='summary'?17:_t149==='filesize'?18:19;break;case 2:return _context59.a(2,getPasswordTpl(field));case 3:return _context59.a(2,getSwitchTpl(field));case 4:return _context59.a(2,getSwitchTpl(field));case 5:return _context59.a(2,getSelectTpl(field));case 6:return _context59.a(2,getTimeTpl(field));case 7:return _context59.a(2,getDateTpl(field));case 8:return _context59.a(2,getDateTimeTpl(field));case 9:_context59.n=10;return getRelatedFieldTpl(field,options);case 10:return _context59.a(2,_context59.v);case 11:_context59.n=12;return getRelatedFieldTpl(field,options);case 12:return _context59.a(2,_context59.v);case 13:_context59.n=14;return getLocationTpl(field);case 14:return _context59.a(2,_context59.v);case 15:_context59.n=16;return getNumberTpl(field);case 16:return _context59.a(2,_context59.v);case 17:return _context59.a(2,getUiFieldTpl(field));case 18:return _context59.a(2,getUiFileSizeTpl(field));case 19:return _context59.a(2);}},_callee59);}));return _getFieldTpl.apply(this,arguments);}function getFieldsTemplate(_x8,_x9,_x0){return _getFieldsTemplate.apply(this,arguments);}function _getFieldsTemplate(){_getFieldsTemplate=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee60(object,fields,display){var expandFields,fieldsName,displayFields,fieldsArr,_iterator0,_step11,field,expandFieldsQuery;return _regenerator().w(function(_context60){while(1)switch(_context60.n){case 0:expandFields=[];if(display!=false){display=true;}fieldsName=['_id'];if(!object.datasource||object.datasource==='default'||object.datasource==='meteor'){fieldsName.push('space');}displayFields=[];fieldsArr=[];if(_$1__namespace.isArray(fields)){fieldsArr=fields;}else{fieldsArr=_$1__namespace.values(fields);}_iterator0=_createForOfIteratorHelper(fieldsArr);try{for(_iterator0.s();!(_step11=_iterator0.n()).done;){field=_step11.value;if(field.name){//graphql 的 ui\display 中使用的字段需要先在query中查询. 否则会返回null
|
|
@@ -235,7 +235,7 @@ if(field.type=="location"){quickEditSchema=false;}if(field.type=="color"){quickE
|
|
|
235
235
|
"size": "none",
|
|
236
236
|
"className": "flex items-center justify-between"//每行样式类
|
|
237
237
|
}
|
|
238
|
-
*/function _getTableColumns$(){_getTableColumns$=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee67(object,fields,options){var _options$permissions;var columns,allowEdit,_iterator1,_step12,_field$amis,_field$amis2,field,quickEditSchema,className,bowserType,fieldAmis,columnItem,isNode,previewFileScript,map,tpl,type,needClickEvent,href,_t154,_t155,_t156,_t157,_t158,_t159;return _regenerator().w(function(_context67){while(1)switch(_context67.p=_context67.n){case 0:columns=[];if(!options.isLookup&&!options.isInputTable){if(!options.enable_tree){columns.push({name:'_index',type:'text',width:32,placeholder:""});}}allowEdit=((_options$permissions=options.permissions)===null||_options$permissions===void 0?void 0:_options$permissions.allowEdit)&&!options.isLookup&&options.enable_inline_edit!=false;_iterator1=_createForOfIteratorHelper(fields);_context67.p=1;_iterator1.s();case 2:if((_step12=_iterator1.n()).done){_context67.n=17;break;}field=_step12.value;if(!(field.hidden||field.extra)){_context67.n=3;break;}return _context67.a(3,16);case 3:if(!allowEdit){_context67.n=5;break;}_context67.n=4;return getQuickEditSchema(object,field,options);case 4:_t154=_context67.v;_context67.n=6;break;case 5:_t154=allowEdit;case 6:quickEditSchema=_t154;className="steedos-table-".concat(field.type,"-field");bowserType=getBowserType();if(bowserType==="Safari"){className+=" whitespace-nowrap ";}else{if(field.wrap
|
|
238
|
+
*/function _getTableColumns$(){_getTableColumns$=_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee67(object,fields,options){var _options$permissions;var columns,allowEdit,_iterator1,_step12,_field$amis,_field$amis2,field,quickEditSchema,className,bowserType,fieldAmis,columnItem,isNode,previewFileScript,map,tpl,type,needClickEvent,href,_t154,_t155,_t156,_t157,_t158,_t159;return _regenerator().w(function(_context67){while(1)switch(_context67.p=_context67.n){case 0:columns=[];if(!options.isLookup&&!options.isInputTable){if(!options.enable_tree){columns.push({name:'_index',type:'text',width:32,placeholder:""});}}allowEdit=((_options$permissions=options.permissions)===null||_options$permissions===void 0?void 0:_options$permissions.allowEdit)&&!options.isLookup&&options.enable_inline_edit!=false;_iterator1=_createForOfIteratorHelper(fields);_context67.p=1;_iterator1.s();case 2:if((_step12=_iterator1.n()).done){_context67.n=17;break;}field=_step12.value;if(!(field.hidden||field.extra)){_context67.n=3;break;}return _context67.a(3,16);case 3:if(!allowEdit){_context67.n=5;break;}_context67.n=4;return getQuickEditSchema(object,field,options);case 4:_t154=_context67.v;_context67.n=6;break;case 5:_t154=allowEdit;case 6:quickEditSchema=_t154;className="steedos-table-".concat(field.type,"-field");bowserType=getBowserType();if(bowserType==="Safari"){className+=" whitespace-nowrap ";}else{if(field.wrap===false){className+=" whitespace-nowrap ";}else{className+=" break-words ";}}if(_typeof2((_field$amis=field.amis)===null||_field$amis===void 0?void 0:_field$amis.className)=="object"){className=_objectSpread2(_defineProperty2({},className,"true"),field.amis.className);}else if(typeof((_field$amis2=field.amis)===null||_field$amis2===void 0?void 0:_field$amis2.className)=="string"){className="".concat(className," ").concat(field.amis.className," ");}fieldAmis=_$1__namespace.clone(field.amis);fieldAmis===null||fieldAmis===void 0||delete fieldAmis.className;columnItem=void 0;// PC客户端点击名称字段直接预览
|
|
239
239
|
isNode=!!(window&&window.nw&&window.nw.require);if(!((field.is_name||field.name===options.labelFieldName)&&options.objectName==='cms_files'&&isNode)){_context67.n=7;break;}previewFileScript="\n var data = event.data;\n var file_name = data.versions ? data.name : \"".concat(field.label,"\";\n var file_id = data.versions && data.versions[0] && data.versions[0]._id;\n window.previewFile && window.previewFile({file_name, file_id});\n ");columnItem=Object.assign({},{"type":"button","label":"<%=data.versions ? data.name : \"".concat(field.label,"\"%>"),className:className,"level":"link","onEvent":{"click":{"actions":[// {
|
|
240
240
|
// "args": {
|
|
241
241
|
// "api": {
|
|
@@ -2801,7 +2801,7 @@ return[2/*return*/,{}];});});};/*
|
|
|
2801
2801
|
* @LastEditTime: 2025-09-02 00:20:59
|
|
2802
2802
|
* @Description:
|
|
2803
2803
|
*/var AmisAppLauncher=function AmisAppLauncher(props){return __awaiter(void 0,void 0,void 0,function(){var app,data,className,_a,showAppName,_b,appNameClassName,_c,customElements,_d,showAppIcon,isSpaceAdmin,formFactor,isMobile,on_click_script,mobile_blank_script,convertAppVisibleOnScript,pcInitApiAdaptorScript,mobileInitApiAdaptorScript,dialogSchema,badgeText,overlaySchema,amisSchema;return __generator(this,function(_e){app=props.app,data=props.data,className=props.className,_a=props.showAppName,showAppName=_a===void 0?true:_a,_b=props.appNameClassName,appNameClassName=_b===void 0?'':_b,_c=props.customElements,customElements=_c===void 0?[]:_c,_d=props.showAppIcon,showAppIcon=_d===void 0?true:_d;if(!app){app=data.context.app;}isSpaceAdmin=false;if(data.context.user&&data.context.user.is_space_admin){isSpaceAdmin=true;}formFactor=window.innerWidth<768?'SMALL':'LARGE';isMobile=formFactor==="SMALL"?true:false;on_click_script="\n var evalFunString = \"(function(){\" + event.data.on_click + \"})()\";\n try{\n eval(evalFunString);\n }\n catch(e){\n console.error(\"catch some error when eval the on_click script for app link:\");\n console.error(e.message + \"\\r\\n\" + e.stack);\n }\n ";mobile_blank_script="\n if(event.data.path[0] == \"/\"){\n Steedos.openWindow(event.data.context.rootUrl + event.data.path)\n }else{\n Steedos.openWindow(event.data.path)\n }\n ";convertAppVisibleOnScript="\n var currentAmis = amisRequire('amis');\n app_items.forEach((item) => {\n let visible_on = item.visible_on && item.visible_on.trim();\n if(visible_on){\n // amis visibleOn\u5C5E\u6027\u4E2D\u7684\u8868\u8FBE\u5F0F\u6765\u81EA\u4F5C\u7528\u57DF\u4E2D\u53D8\u91CF\u65F6,amis\u4E0D\u8BA4,\u6240\u4EE5\u8FD9\u91CC\u628A\u516C\u5F0F\u8868\u8FBE\u5F0F\u63D0\u524D\u8FD0\u884C\u4E0B\n try{\n visible_on = currentAmis.evaluate(visible_on, BuilderAmisObject.AmisLib.createObject(context, item));\n item.visible_on = visible_on;\n }\n catch(ex){\n console.error(\"\u8FD0\u884C\u5E94\u7528\u201C\" + item.name + \"\u201D\u7684\u663E\u793A\u516C\u5F0F\u8868\u8FBE\u5F0F\u65F6\u51FA\u73B0\u9519\u8BEF:\",ex);\n item.visible_on = false;\n }\n }\n else{\n item.visible_on = true;\n }\n });\n ";pcInitApiAdaptorScript="\n let app_items = payload;\n let object_items = [];\n let objects = [];\n app_items.forEach((item) => {\n item.children.forEach((i) => {\n if (objects.indexOf(i.id) < 0) {\n objects.push(i.id);\n if(i.type != 'url' && i.type != 'page'){object_items.push(i);}\n }\n })\n })\n ".concat(convertAppVisibleOnScript,"\n payload = {\n app_items,\n object_items\n }\n return payload;\n ");mobileInitApiAdaptorScript="\n let app_items = payload;\n ".concat(convertAppVisibleOnScript,"\n payload = {\n app_items\n }\n return payload;\n ");dialogSchema={};badgeText="${IF(${id} == 'approve_workflow',${badges|pick:'workflow'},${badges|pick:${id}}) | toInt}";if(!isMobile){dialogSchema={"type":"service","id":"u:0f6224a0836f","affixFooter":false,"body":[{"type":"collapse-group","activeKey":["1","2"],"body":[{"type":"collapse","key":"1","header":instance.t('frontend_all_apps'),"body":[{"type":"each","name":"app_items","items":[{"type":"button","level":"link","body":[{"type":"tpl","tpl":"<div class='slds-app-launcher__tile slds-text-link_reset'><div class='slds-app-launcher__tile-figure'><svg class='w-12 h-12 slds-icon slds-icon_container slds-icon-standard-${REPLACE(icon, '_', '-')}' aria-hidden='true'><use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use></svg><span class='slds-assistive-text'>${name}</span></div><div class='slds-app-launcher__tile-body'><span class='slds-link text-blue-600 text-lg'><span title='${name}'>${name}</span></span><div style='display: -webkit-box; -webkit-line-clamp: 1;-webkit-box-orient: vertical;overflow: hidden;'><span title='${description}'>${description}</span></div></div></div>","badge":{"mode":"text","text":badgeText,"visibleOn":badgeText,"className":"w-full","overflowCount":99,"style":{"top":"20px","left":"37px","height":"20px","border-radius":"10px","line-height":"18px","margin-left":"${"+badgeText+">9?("+badgeText+">99?'-21px':'-11px'):'0'}","right":"auto","font-size":"16px"}}}],"onEvent":{"click":{"actions":[{"actionType":"closeDialog"},{"actionType":"link","args":{"link":"${path}"},"expression":"${AND(!blank , !on_click)}"},{"actionType":"url","args":{"url":"${path}","blank":true},"expression":"${AND(blank , !on_click)}"},{"actionType":"custom","script":on_click_script,"expression":"${!!on_click}"}]}},"inline":true,"style":{},"visibleOn":"${visible_on}","className":"slds-p-horizontal_small slds-size_1-of-1 slds-medium-size_1-of-3"}],"className":"slds-grid slds-wrap slds-grid_pull-padded"}]},{"type":"collapse","key":"2","header":instance.t('frontend_all_projects'),"body":[{"type":"each","name":"object_items","items":{"type":"button","level":"link","body":[{"type":"tpl","wrapperComponent":"span","className":"app-launcher-link slds-text-link--reset slds-app-launcher__tile--small slds-truncate creator-object-nav-${id}","tpl":"<span class=\"slds-truncate slds-text-link\">${name}</span>"}],"onEvent":{"click":{"actions":[{"actionType":"custom","script":"\nconst path = context.props.data.path;\ndoAction({\n actionType: 'link',\n args: {\n \"url\": path,\n \"blank\": false\n }\n});"},{"actionType":"broadcast","args":{"eventName":"@tabId.changed"},"data":{"tabId":"${event.data.id}"}},{"actionType":"closeDialog"}]}},"inline":true,"style":{},"className":"slds-col--padded slds-p-vertical_xx-small slds-size_1-of-5 slds-grow-none oneAppLauncherItem"},"className":"slds-grid slds-wrap"}],"className":""}]}],"className":"steedos-apps-service","visibleOn":"","clearValueOnHidden":false,"visible":true,"messages":{},"onEvent":{"@data.changed.steedos_keyvalues":{"actions":[{"actionType":"reload"}]},"fetchInited":{"actions":[{"actionType":"broadcast","args":{"eventName":"@appsLoaded"},"data":{"apps":"${event.data.app_items}"}}]}},"api":{"method":"get","cache":"10000","url":"${context.rootUrl}/service/api/apps/menus?mobile="+isMobile,"data":null,"adaptor":pcInitApiAdaptorScript}};}overlaySchema={"type":"service","className":isMobile?"steedos-apps-service":"steedos-apps-service w-96","affixFooter":false,"body":[{"type":"each","source":isMobile?"${app_items}":"${ARRAYFILTER(app_items, (item,index) => index<=8)}","items":{"type":"button","level":"link","body":[{"type":"tpl","tpl":"<div class='flex flex-col justify-center'><div class='text-center'><svg class='w-12 h-12 slds-icon slds-icon_container slds-icon-standard-${REPLACE(icon, '_', '-' )}' aria-hidden='true'><use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use></svg></div><div class='text-center text-lg'>${name}</div></div>","badge":{"mode":"text","text":badgeText,"visibleOn":badgeText,"overflowCount":99,"style":{"right":"50%","margin-right":"-23px","height":"20px","border-radius":"10px","font-size":"16px","line-height":"18px"}}}],"onEvent":{"click":{"actions":[{"actionType":"closeDialog"},{"actionType":"link","args":{"link":"${path}"},"expression":"${AND(!blank , !on_click)}"},{"actionType":"custom","script":mobile_blank_script,"expression":"${AND(blank , !on_click)}"},{"actionType":"custom","script":on_click_script,"expression":"${on_click}"}]}},"visibleOn":"${visible_on}","className":"block w-1/3 py-4 hover:bg-[#1589EE1A]","style":{"display":"inline-flex","justify-content":"center"}},"className":"flex flex-wrap","id":"u:a98e9f6fb4db"},isMobile?null:{"type":"divider","className":"m-0"},isMobile?null:{"type":"button","level":"link","label":instance.t('frontend_app_launcher_button_more'),"className":"w-full h-10","actionType":"dialog","visibleOn":"${app_items.length > 9}","dialog":{"size":"xl","title":{"type":"tpl","tpl":instance.t('frontend_application_launcher'),"className":"block text-xl text-center"},"actions":[],"body":[dialogSchema]}},isMobile||!isSpaceAdmin?null:{"type":"button","level":"link","label":instance.t('frontend_app_launcher_button_new_app'),"className":"w-full h-10","actionType":"dialog","dialog":{"title":instance.t('frontend_app_launcher_dialog_new_app_title'),"actions":[{"type":"button","actionType":"cancel","label":"\${'Cancel' | t}","id":"u:21d3cccf4d83"},{"type":"button","actionType":"confirm","label":"\${'OK' | t}","primary":true,"id":"u:238e5731a053"}],"body":[{"type":"form","api":{"url":"/service/api/apps/create_by_design","method":"post","requestAdaptor":"api.data={code: context.code, name: context.name, icon: context.icon}; return api;","adaptor":"window.location.href=Steedos.getRelativeUrl('/app/' + payload.code);return {}","messages":{}},"body":[{"type":"input-text","name":"code","label":instance.t('frontend_app_launcher_dialog_new_app_code_label'),"value":"a_\${UUID(6)}","required":true,"validateOnChange":true,"validations":{"isVariableName":/^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/}},{"name":"name","type":"input-text","label":instance.t('frontend_app_launcher_dialog_new_app_name_label'),"required":true},{"type":"steedos-field","label":instance.t('frontend_app_launcher_dialog_new_app_icon_label'),"config":{"label":"图标","type":"lookup","required":true,"sort_no":30,"optionsFunction":"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }","name":"icon","inlineHelpText":"","description":"","hidden":false,"readonly":false,"disabled":false}}]}]}}],"clearValueOnHidden":false,"visible":true,"messages":{},"api":{"method":"get","cache":"10000","url":"${context.rootUrl}/service/api/apps/menus?mobile="+isMobile,"adaptor":mobileInitApiAdaptorScript,"messages":{}},"onEvent":{"@data.changed.steedos_keyvalues":{"actions":[{"actionType":"reload"}]},"fetchInited":{"actions":[{"actionType":"broadcast","args":{"eventName":"@appsLoaded"},"data":{"apps":"${event.data.app_items}"}}]}},"id":"u:2c8bd22d4ea8"};amisSchema={"type":"service",className:className,"body":[isMobile?{"type":"button","actionType":"dialog","className":"flex items-center","body":__spreadArray([{"type":"tpl","className":"flex items-center","tpl":"<div aria-haspopup='true' title='".concat(instance.t('frontend_open_app_launcher'),"' class='slds-icon-waffle_container slds-context-bar__button' type='button'><span class='slds-icon-waffle'><span class='slds-r1'></span><span class='slds-r2'></span><span class='slds-r3'></span><span class='slds-r4'></span><span class='slds-r5'></span><span class='slds-r6'></span><span class='slds-r7'></span><span class='slds-r8'></span><span class='slds-r9'></span></span></div>"),"badge":{"visibleOn":"${badges.workflow | toInt}","offset":[3,-3],"style":{"width":"8px","height":"8px"}},"hiddenOn":"".concat(!showAppIcon)},{type:'tpl',className:"text-xl ml-4 mr-4 text-black nowrap ".concat(appNameClassName," "),tpl:'${app.name}',hiddenOn:"".concat(!!app||!!!showAppName),visibleOn:'${!!appId}'}],__read(customElements),false),"dialog":{"size":"xl","title":{"type":"tpl","tpl":instance.t('frontend_application_launcher'),"className":"block text-xl text-center"},"actions":[],"body":[overlaySchema]},"id":"u:b5dc095e1c11"}:{"type":"steedos-dropdown","placement":"bottomRight","trigger":["click"],"body":__spreadArray([{"type":"tpl","className":"flex items-center","tpl":"<div aria-haspopup='true' title='".concat(instance.t('frontend_open_app_launcher'),"' class='slds-icon-waffle_container slds-context-bar__button' type='button'><span class='slds-icon-waffle'><span class='slds-r1'></span><span class='slds-r2'></span><span class='slds-r3'></span><span class='slds-r4'></span><span class='slds-r5'></span><span class='slds-r6'></span><span class='slds-r7'></span><span class='slds-r8'></span><span class='slds-r9'></span></span></div>"),"badge":{"visibleOn":"${badges.workflow | toInt}","offset":[3,-3],"style":{"width":"8px","height":"8px"}},"hiddenOn":"".concat(!showAppIcon)},{type:'tpl',className:"text-xl ml-4 mr-4 text-black nowrap ".concat(appNameClassName," "),tpl:'${app.name}',hiddenOn:"".concat(!!app||!!!showAppName),visibleOn:'${!!appId}'}],__read(customElements),false),"overlay":[overlaySchema],"className":"flex items-center","open":false}],"id":"u:06ee48db134a","messages":{},"onEvent":{"@data.changed.steedos_keyvalues":{"actions":[{"actionType":"reload"}]}}};// console.log(`AmisAppLauncher`, amisSchema)
|
|
2804
|
-
return[2/*return*/,amisSchema];});});};var AmisLogo=function AmisLogo(props){return __awaiter(void 0,void 0,void 0,function(){var _a,src,className,_b,imgClassName;return __generator(this,function(_c){_a=props.src,src=_a===void 0?'/logo.png':_a,className=props.className,_b=props.imgClassName,imgClassName=_b===void 0?'block h-7 w-auto':_b;return[2/*return*/,{"type":"tpl",className:className,"tpl":"<a href='/app' class='flex items-center '><img class='".concat(imgClassName,"' src='").concat(src,"'></a>"),"id":"u:2a8e7a359dff"}];});});};var AmisAppMenu=function AmisAppMenu(props){return __awaiter(void 0,void 0,void 0,function(){var _a,stacked,overflow,appId,data,_b,links,_c,showIcon,_d,className,_e,indentSize,selectedId,badgeText,saveOrderApiRequestAdaptor,schema;return __generator(this,function(_f){_a=props.stacked,stacked=_a===void 0?false:_a,overflow=props.overflow,appId=props.appId,data=props.data,_b=props.links,links=_b===void 0?null:_b,_c=props.showIcon,showIcon=_c===void 0?true:_c,_d=props.className,className=_d===void 0?'':_d,_e=props.indentSize,indentSize=_e===void 0?12:_e,selectedId=props.selectedId;if(!appId){appId=data.context.appId;}badgeText="${badges.value | pick:".concat(appId," | toInt}");if(appId=="approve_workflow"){badgeText="${badges.value | pick:'workflow' | toInt}";}if(links){return[2/*return*/,{"type":"nav",className:"".concat(className," text-black"),"stacked":stacked,"overflow":overflow,"indentSize":indentSize,"links":links}];}saveOrderApiRequestAdaptor="\n const menus = context.data;\n // console.log(\"====saveOrderApiRequestAdaptor====menus==\", menus);\n const tab_groups = [];\n const tab_items = {};\n var hasError = false;\n _.each(menus, (menu) => {\n if (menu.isGroup) {\n tab_groups.push({\n group_name: menu.label,\n default_open: menu.default_open,\n });\n } else {\n tab_items[menu.tabApiName] = { group: \"\" };\n }\n if (menu.children) {\n _.each(menu.children, (menu2) => {\n if(menu2.isTempTabForEmptyGroup !== true){\n if (menu2.isGroup) {\n // \u56E0\u4E3A\u5206\u7EC4\u53EA\u652F\u6301\u5230\u4E00\u5C42\uFF0C\u4E0D\u652F\u6301\u5206\u7EC4\u62D6\u52A8\u5230\u53E6\u4E00\u4E2A\u5206\u7EC4\uFF0C\u8FD8\u539F\u5230\u539F\u6765\u7684\u5206\u7EC4\n // \u6CE8\u610F\uFF0C\u5982\u679C\u662F\u5206\u7EC4\u62D6\u52A8\u5230\u5F53\u524D\u5206\u7EC4\u672C\u8EAB\u5185\uFF0C\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\u548C\u5176children\u4F1A\u76F4\u63A5\u4E22\u5931\uFF0C\u6240\u4EE5\u4E0D\u4F1A\u8FDB\u8FD9\u91CC\uFF0C\u9700\u8981\u5728\u540E\u9762\u5355\u72EC\u5904\u7406\n tab_groups.push({\n group_name: menu2.label,\n default_open: menu2.default_open,\n });\n _.each(menu2.children, (menu3) => {\n tab_items[menu3.tabApiName] = { group: menu2.label };\n });\n hasError = true;\n } else {\n if (menu.isGroup) {\n tab_items[menu2.tabApiName] = { group: menu.label };\n }\n else{\n // menu.isGroup\u4E0D\u4E3Atrue\uFF0C\u8BF4\u660Emenu\u4E0D\u662F\u4E00\u4E2A\u5206\u7EC4\uFF0C\u800Cmenu.children\u6709\u503C\uFF0C\u8BF4\u660Emenu\u662F\u4E00\u4E2A\u5206\u7EC4\uFF0C\u8FD9\u662F\u5F02\u5E38\u64CD\u4F5C\n // \u8BF4\u660E\u6B64\u65F6\u662F\u628A\u4E00\u4E2A\u83DC\u5355\u62D6\u52A8\u5230\u4E00\u4E2A\u666E\u901A\u7684\u83DC\u5355\u5185\u90E8\uFF0C\u6B63\u5E38\u5E94\u8BE5\u628A\u83DC\u5355\u62D6\u52A8\u5230\u67D0\u4E2A\u5206\u7EC4\u5185\u6216\u5176\u5B83\u83DC\u5355\u540C\u7EA7\uFF0C\u4E0D\u53EF\u4EE5\u628A\u666E\u901A\u83DC\u5355\u5F53\u5206\u7EC4\n // \u6B64\u65F6\u628A\u83DC\u5355\u8FD8\u539F\u6210\u666E\u901A\u83DC\u5355\u5373\u53EF\uFF0C\u5373group\u503C\u4E3A\u7A7A\n tab_items[menu2.tabApiName] = { group: \"\" };\n }\n }\n }\n });\n }\n });\n if(hasError){\n var amis = amisRequire(\"amis\");\n // var errorMsg = window.t ? window.t(\"frontend_app_menu_save_order_group_nesting_error\") : \"Group nesting is not supported\";\n amis && amis.toast.warning(\"\u4E0D\u652F\u6301\u5206\u7EC4\u5D4C\u5957\");\n }\n else{\n // \u5982\u679C\u662F\u5206\u7EC4\u62D6\u52A8\u5230\u5F53\u524D\u5206\u7EC4\u672C\u8EAB\u5185\uFF0C\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\u548C\u5176children\u4F1A\u76F4\u63A5\u4E22\u5931\uFF0C\u5373context.data\u4E2D\u76F4\u63A5\u4E22\u5931\u4E86\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\n // \u8FD9\u91CC\u901A\u8FC7\u5BF9\u6BD4\u62D6\u52A8\u524D\u540E\u5206\u7EC4\u7684\u4E2A\u6570\uFF0C\u5982\u679C\u53D1\u73B0\u5206\u7EC4\u4E2A\u6570\u51CF\u5C11\uFF0C\u5219\u8BF4\u660E\u6709\u5206\u7EC4\u88AB\u4E22\u5931\uFF0C\u6B64\u65F6\u9700\u8981\u628A\u4E22\u5931\u7684\u5206\u7EC4\u8FD8\u539F\u56DE\u6765\n var prevGroups = context.__super.tab_groups;\n var preGroupNames = _.map(prevGroups, \"group_name\");\n var curGroupNames = _.map(tab_groups, \"group_name\");\n var difGroupNames = _.difference(preGroupNames, curGroupNames);\n if(difGroupNames.length > 0){\n // \u4E22\u5931\u7684\u5206\u7EC4difGroupNames\uFF0C\u9700\u8981\u4ECEcontext.__super.items\u4E2D\u8FD8\u539F\u56DE\u6765\uFF0C\u91CD\u65B0\u6DFB\u52A0\u5230tab_groups\u548Ctab_items\n var difGroupItem =_.find(context.__super.items, {label: difGroupNames[0], isGroup: true});\n tab_groups.push({\n group_name: difGroupItem.label,\n default_open: difGroupItem.default_open,\n });\n if (difGroupItem.children) {\n _.each(difGroupItem.children, (child) => {\n if(child.isTempTabForEmptyGroup !== true){\n tab_items[child.tabApiName] = { group: difGroupItem.label };\n }\n });\n }\n }\n }\n api.data = { appId: context.app.id, tab_groups, tab_items };\n // console.log(\"====saveOrderApiRequestAdaptor====api.data==\", api.data);\n return api;\n ";schema={type:'service',id:'u:app-menu',schemaApi:{"method":"get","url":"${context.rootUrl}/service/api/apps/${appId}/menus","sendOn":"!!appId","adaptor":"\n try {\n // console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n let collapsed = false;\n\n const data = { nav: [] };\n const stacked = ".concat(stacked,";\n let showIcon = ").concat(showIcon,";\n const selectedId = '").concat(selectedId,"';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"").concat(data.tabId,"\";\n var usedGroupNames = [];\n let allowEditApp = false;\n if(stacked){\n if(context.appId == context.app.id){\n collapsed = _.includes(document.body.classList, 'sidebar-open') != true;\n }\n // console.log('collapsed', collapsed, document.body.classList, context.appId == context.app.id)\n if(collapsed){\n showIcon = false;\n }\n\n if(payload.allowEditApp && (collapsed != true) && (window.innerWidth > 768)){\n allowEditApp = true;\n }\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n showNativeTitle: true,\n tpl: `<span class='leading-6 no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon fill-gray-700 mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n \"tabIcon\": tab.icon\n // active: selectedId === tab.id,\n })\n })\n } else {\n var tabGroup = _.find(tab_groups, {\"group_name\": groupName});\n usedGroupNames.push(groupName);\n data.nav.push({\n \"label\": groupName,\n 'default_open': tabGroup && tabGroup.default_open != false,\n \"unfolded\": tabGroup && tabGroup.default_open != false,\n \"isGroup\": true,\n \"children\": _.sortBy(_.map(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n showNativeTitle: true,\n tpl: `<span class='leading-6 block no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon fill-gray-700 mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n // active: selectedId === tab.id,\n \"groupName\": groupName,\n \"tabIcon\": tab.icon\n }\n }),(tab) => {return tab.index})\n }) \n }\n });\n \n }else{\n _.each(payload.children, (tab)=>{\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='whitespace-normal leading-6 no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon-standard-${ tab.iconClass } slds-icon !fill-white rounded-xl mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n \"tabIcon\": tab.icon\n // active: selectedId === tab.id,\n });\n })\n }\n\n if(allowEditApp){\n const tempTabForEmptyGroup = {\n \"label\": {\n \"type\": \"tpl\",\n \"tpl\": \"").concat(instance.t('frontend_menu_group_none_children'),"\"\n },\n \"searchKey\": \"\",\n \"disabled\": true,\n \"tabApiName\": \"temp_tab_for_empty_group\",\n \"isTempTabForEmptyGroup\": true\n };\n _.each(payload.tab_groups, (group)=>{\n if(!_.includes(usedGroupNames, group.group_name)){\n tempTabForEmptyGroup.id = \"temp_tab_for_empty_group__\" + group.group_name;\n data.nav.push({\n \"label\": group.group_name,\n 'default_open': group && group.default_open != false,\n \"unfolded\": group && group.default_open != false,\n \"isGroup\": true,\n \"children\": [tempTabForEmptyGroup]\n })\n }\n });\n }\n\n //\u4EE5\u4E0B\u4E3Anav\u7B2C\u4E00\u5C42\u6392\u5E8F\uFF0C\u5305\u62EC\u5206\u7EC4\u4E0E\u9009\u9879\u5361\n // let groupLength = ((payload.tab_groups && payload.tab_groups.length) || 0) + 1000;\n data.nav = _.sortBy(data.nav, function(tab){\n if(tab.isGroup){\n return _.findIndex(payload.tab_groups, function(group){\n return group.group_name === tab.label;\n });\n }else{\n // \u6CA1\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u6309index\u6392\u5217\u5728\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u524D\u65B9\n return (tab.index || 0) - 1000;\n }\n })\n\n if(collapsed){\n const collapsedNav = [];\n for(const item of data.nav){\n if(item.isGroup){\n if(collapsedNav.length > 0){\n collapsedNav.push({\n \"mode\": \"divider\"\n })\n }\n for(const childrenItem of item.children){\n collapsedNav.push(Object.assign({}, childrenItem, {\n disabledTip: true,\n label: {\n \"type\": \"tooltip-wrapper\",\n \"content\": childrenItem.label,\n \"placement\": \"right\",\n // \"disabled\": true,\n \"body\": [\n {\n 'type': 'tpl',\n 'tpl': '<svg class=\"slds-icon_container slds-icon fill-gray-700 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#' + (childrenItem.tabIcon || 'account') + '\"></use></svg>'\n }\n ]\n }\n \n \n // label: false, \n // icon: '/assets/icons/standard-sprite/svg/symbols.svg#' + (childrenItem.tabIcon || 'account')\n }));\n }\n }else{\n collapsedNav.push(Object.assign({}, item, {\n disabledTip: true,\n label: {\n \"type\": \"tooltip-wrapper\",\n \"content\": item.label,\n \"placement\": \"right\",\n // \"disabled\": true,\n \"body\": [\n {\n 'type': 'tpl',\n 'tpl': '<svg class=\"slds-icon_container slds-icon fill-gray-700 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#' + (item.tabIcon || 'account') + '\"></use></svg>'\n }\n ]\n }\n // label: false, \n // icon: '/assets/icons/standard-sprite/svg/symbols.svg#' + (item.tabIcon || 'account')\n }));\n }\n }\n data.nav = collapsedNav;\n }\n\n let editAppSearch = [];\n if(allowEditApp){\n editAppSearch = [{\n \"type\": \"grid\",\n \"className\": \"mx-0 mb-2\",\n \"align\": \"between\",\n \"columns\": [\n {\n \"columnClassName\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"level\": \"light\",\n \"icon\": \"fa fa-bars\",\n \"className\": \"w-[2.5rem]\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.body.classList.toggle('sidebar-open')\",\n },\n {\n \"actionType\": \"rebuild\",\n \"componentId\": \"u:app-menu\",\n \"args\": {\n \"toggleSidebar\": true\n }\n }\n ]\n }\n },\n }\n ]\n },\n {\n \"columnClassName\": \"steedos-app-menu-plus p-0\",\n \"body\": [\n {\n \"type\": \"dropdown-button\",\n \"className\": \"block justify-self-end\",\n \"btnClassName\": \"mx-0\",\n \"level\": \"default\",\n // \"icon\": \"fa fa-gear\",\n \"label\": \"").concat(instance.t('frontend_menu_setup'),"\",\n \"closeOnClick\": true,\n \"closeOnOutside\": true,\n \"align\": \"right\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_object'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_object'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.objects.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"value\": \"o_${UUID(6)}\",\n \"required\": true,\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.objects.label.label' | t}\",\n \"name\": \"oLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.objects.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/objects/create_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; window.location.href=Steedos.getRelativeUrl('/api/amisObjectFieldsDesign?oid=' + payload._id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale);return {}\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.oLabel, icon: context.icon}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_micro_page'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_micro_page'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.pages.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"value\": \"p_${UUID(6)}\",\n \"required\": true,\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.pages.label.label' | t}\",\n \"name\": \"oLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/pages/create_page_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; window.location.href=Steedos.getRelativeUrl('/api/pageDesign?pageId=' + payload._id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale);return {}\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.oLabel, icon: context.icon}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_url'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_url'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"API Name\",\n \"label\": \"${'CustomField.tabs.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"required\": true,\n \"value\": \"t_${UUID(6)}\",\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n \n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.label.label' | t}\",\n \"name\": \"fLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.url.label' | t}\",\n \"name\": \"fUrl\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/tabs/create_link_tab_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.fLabel, icon: context.icon, url: context.fUrl}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_add_existing_tabs'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_add_existing_tabs'),"\",\n \"body\": [\n {\n \"type\": \"steedos-field\",\n \"label\": \"\u9009\u9879\u5361\",\n \"config\": {\n \"type\": \"lookup\",\n \"reference_to\": \"tabs\",\n \"reference_to_field\": \"name\",\n \"required\": true,\n \"sort_no\": 30,\n \"name\": \"tabs\",\n \"multiple\": true,\n \"enable_enhanced_lookup\": true,\n \"amis\": {\n \"label\": false,\n \"embed\": true,\n }\n }\n }\n ],\n \"id\": \"u:709fd4d53437\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:ba7b707cddd8\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:2f3e5635b95d\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"size\": \"md\",\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/update_app_tabs_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', addTabNames: context.tabs}; return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_group'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_group'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"").concat(instance.t('frontend_menu_tabs_group_name_label'),"\",\n \"name\": \"name\",\n \"id\": \"u:e5bd37f6699b\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_tabs_group_name_placeholder'),"\",\n \"required\": true\n },\n {\n \"type\": \"checkbox\",\n \"option\": \"").concat(instance.t('frontend_menu_tabs_group_default_open_label'),"\",\n \"name\": \"defaultOpen\",\n \"id\": \"u:dae5884c1623\",\n \"required\": true,\n \"value\": true\n }\n ],\n \"id\": \"u:304b5b04c573\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d85\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a05b\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/apps/create_app_group_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, name: context.name, defaultOpen: context.defaultOpen}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n },\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_app'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const apps = payload.data.apps; if(apps && apps.length > 0){ return {data: apps[0]} }; return {data: null};\",\n \"requestAdaptor\": \"api.data={query: '{ apps(filters: [\\\"code\\\", \\\"=\\\", ' + context.appId + ']) { _id name}}'}; return api;\"\n }\n },\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": \" \",\n \"headerClassName\": \"hidden\",\n \"size\": \"lg\",\n \"width\": window.drawerWidth || \"70%\",\n \"bodyClassName\": \"p-0 m-0 bg-gray-100\",\n \"closeOnEsc\": true,\n \"closeOnOutside\": true,\n \"resizable\": true,\n \"actions\": [],\n \"body\": {\n \"type\": \"service\",\n \"id\": \"u:1678e148c8d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"url\": \"/api/pageSchema/app?objectApiName=apps&formFactor=LARGE&formFactor=LARGE\",\n \"method\": \"get\",\n \"adaptor\": \"const schema = {type: 'steedos-record-detail'}; schema.data={objectName: 'apps', _inDrawer: true, recordLoaded: false}; schema.objectApiName='apps'; schema.recordId=context.responseData._id; console.log('schema', schema); return {data: schema};\"\n }\n },\n \"className\": \"steedos-record-detail-drawer app-popover\",\n \"id\": \"u:fc5f055afa8c\"\n },\n \"preventDefault\": true\n }\n ]\n }\n }\n }\n ]\n }\n ]\n }\n ]\n }]\n }else if(stacked && window.innerWidth > 768){\n editAppSearch = [{\n \"type\": \"button\",\n \"level\": \"light\",\n \"className\": \"toggle-sidebar w-[3rem]\",\n \"icon\": \"fa fa-bars\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.body.classList.toggle('sidebar-open')\",\n },\n {\n \"actionType\": \"rebuild\",\n \"componentId\": \"u:app-menu\",\n \"args\": {\n \"toggleSidebar\": true\n }\n }\n ]\n }\n },\n }]\n }\n\n let menuItems = data.nav;\n\n if(context.keywords){\n // \u5982\u679CmenuItem\u7684children, children\u662F\u6570\u7EC4\u7ED3\u6784, \u6BCF\u4E00\u9879\u7684searchKey\u5305\u542Bcontext.keywords, \u5219\u663E\u793AmenuItem\u53CA\u5176\u7B26\u5408\u6761\u4EF6\u7684children;\n menuItems = _.filter(menuItems, (menuItem)=>{\n if(menuItem.children){\n const children = _.filter(menuItem.children, (child)=>{\n return _.includes(child.searchKey, context.keywords);\n });\n\n if(children.length > 0){\n menuItem.children = children;\n }\n\n return children.length > 0;\n }\n })\n };\n\n if(!menuItems || menuItems.length == 0){\n menuItems = data.nav;\n }\n // console.log(\"menuItems====\", menuItems);\n payload.data = {\n \"type\":\"service\",\n \"className\": \"steedos-app-service steedos-app-service-${allowEditApp ? 'edit' : 'readonly'}\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": menuItems,\n \"keyvalues\": \"${ss:keyvalues}\",\n \"allowEditApp\": allowEditApp,\n \"tab_groups\": tab_groups\n },\n \"id\": \"appMenuService\",\n \"onEvent\": {\n \"@data.changed.steedos_keyvalues\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"keyvalues\": \"${event.data.keyvalues}\"\n }\n }\n }\n ]\n }\n },\n \"body\": [\n ...editAppSearch,\n {\n \"type\": \"nav\",\n \"expandPosition\": \"after\",\n \"collapsed\": collapsed,\n \"searchable\": false,\n \"searchConfig\": {\n \"placeholder\": \"\u641C\u7D22\u83DC\u5355\",\n \"matchFunc\": \"return link.searchKey && link.searchKey.indexOf(keyword)>=0;\"\n },\n className: \"").concat(className," text-black steedos-app-menu px-0 ").concat(stacked?'stacked':'',"\",\n \"stacked\": ").concat(stacked,",\n \"overflow\": ").concat(JSON.stringify(overflow),",\n \"indentSize\": ").concat(indentSize,",\n \"draggable\": allowEditApp,\n \"dragOnSameLevel\": false,\n \"saveOrderApi\": {\n \"url\": \"/service/api/apps/update_app_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": ").concat(JSON.stringify(saveOrderApiRequestAdaptor),",\n \"messages\": {}\n },\n \"itemActions\": [\n {\n \"type\": \"dropdown-button\",\n \"level\": \"light\",\n \"icon\": \"fa fa-ellipsis-h\",\n \"hideCaret\": true,\n \"closeOnClick\": true,\n \"closeOnOutside\": true,\n \"btnClassName\": \" !px-2\",\n \"visibleOn\": \"!!allowEditApp\",\n \"className\": \"hidden hover-inline-flex px-1\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_group'),"\",\n \"visibleOn\": \"!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_edit_group'),"\",\n \"data\": {\n \"appId\": \"\\${app.id}\",\n \"name\": \"\\${event.data.label}\",\n \"oldName\": \"\\${event.data.label}\",\n \"defaultOpen\": \"\\${event.data.default_open}\"\n },\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"").concat(instance.t('frontend_menu_tabs_group_name_label'),"\",\n \"name\": \"name\",\n \"id\": \"u:e5bd37f6699b\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_tabs_group_name_placeholder'),"\",\n \"required\": true\n },\n {\n \"type\": \"checkbox\",\n \"option\": \"").concat(instance.t('frontend_menu_tabs_group_default_open_label'),"\",\n \"name\": \"defaultOpen\",\n \"id\": \"u:dae5884c1623\",\n \"required\": true\n }\n ],\n \"id\": \"u:304b5b04c573\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d85\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a05b\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/apps/update_app_group_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": \"api.data={appId: context.appId, name: context.name, defaultOpen: context.defaultOpen, oldName: context.oldName}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_view_object'),"\",\n \"visibleOn\": \"this.type==='object'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language;window.location.href=Steedos.getRelativeUrl('/api/amisObjectFieldsDesign?oid=' + event.data.id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale)\",\n \"expression\": \"${false}\"\n },\n {\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const objects = payload.data.objects; if(objects && objects.length > 0){ return {data: objects[0]} }; return {data: null};\",\n \"requestAdaptor\": \"api.data={query: '{ objects(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name}}'}; return api;\"\n }\n },\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": \" \",\n \"headerClassName\": \"hidden\",\n \"size\": \"lg\",\n \"width\": window.drawerWidth || \"70%\",\n \"bodyClassName\": \"p-0 m-0 bg-gray-100\",\n \"closeOnEsc\": true,\n \"closeOnOutside\": true,\n \"resizable\": true,\n \"actions\": [],\n \"body\": {\n \"type\": \"service\",\n \"id\": \"u:1678e148c8d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"url\": \"/api/pageSchema/record?objectApiName=objects&formFactor=LARGE\",\n \"method\": \"get\",\n \"adaptor\": \"const schema = JSON.parse(payload.schema); schema.data={objectName: 'objects', _inDrawer: true, recordLoaded: false}; schema.objectApiName='objects'; schema.recordId=context.responseData._id; return {data: schema};\"\n }\n },\n \"className\": \"steedos-record-detail-drawer app-popover\",\n \"id\": \"u:fc5f055afa8c\"\n },\n \"preventDefault\": true\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"expression\": \"${false}\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const objects = payload.data.objects; if(objects && objects.length > 0){ try{const objectId = objects[0]._id; navigate('/app/admin/objects/view/'+objectId+'?side_object=objects&side_listview_id=all')}catch(e){payload.error=e.message;} }; return payload;\",\n \"requestAdaptor\": \"api.data={query: '{ objects(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name}}'}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_micro_page'),"\",\n \"visibleOn\": \"this.type==='page'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; const tabs = payload.data.tabs; if(tabs && tabs.length > 0){ try{const pageId = tabs[0].page__expand._id; window.location.href=Steedos.getRelativeUrl('/api/pageDesign?pageId=' + pageId +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale)}catch(e){payload.error=e.message;} }; return payload;\",\n \"requestAdaptor\": \"api.data={query: '{ tabs(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name page page__expand { _id } }}'}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_tab'),"\",\n \"visibleOn\": \"this.type==='url'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"if(payload.data.tabs && payload.data.tabs.length > 0){payload.data=payload.data.tabs[0]}; return payload\",\n \"requestAdaptor\": \"api.data={query: '{ tabs(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id oName:name fLabel:label fUrl:url icon }}'}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_edit_url'),"\",\n \"data\": {\n \"appId\": \"\\${app.id}\",\n \"&\": \"\\${event.data.responseResult}\"\n },\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"required\": true,\n \"disabled\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.label.label' | t}\",\n \"name\": \"fLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.url.label' | t}\",\n \"name\": \"fUrl\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/tabs/update_link_tab_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.appId, groupId: context.label, name: context.oName, label: context.fLabel, icon: context.icon, url: context.fUrl}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_move_group'),"\",\n \"visibleOn\": \"!!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"event.setData({appId: event.data.app.id, groups: [{label: event.data.app.name, value: 0, children: _.map(event.data.tab_groups, (tGroup)=>{return {label: tGroup.group_name, value: tGroup.group_name}})}] , tabApiName: event.data.tabApiName, groupName: event.data.groupName})\"\n },\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_dialog_move_group'),"\",\n \"data\": {\n \"appId\": \"\\${event.data.appId}\",\n \"groups\": \"\\${event.data.groups}\",\n \"tabApiName\": \"\\${event.data.tabApiName}\",\n \"groupName\": \"\\${event.data.groupName}\",\n \"oldGroupName\": \"\\${event.data.groupName}\",\n },\n \"body\": [\n {\n \"type\": \"tree-select\",\n \"label\": \"\",\n \"name\": \"groupName\",\n \"id\": \"u:26d0b458ff51\",\n \"multiple\": false,\n \"source\": \"\\${groups}\"\n }\n ],\n \"id\": \"u:d69cbb95089a\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:12261bf51dcb\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:b144775ea124\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/move_app_tab\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.appId, groupName: context.groupName, oldGroupName: context.oldGroupName, tabName: context.tabApiName}; return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_delete_tab'),"\",\n \"visibleOn\": \"!!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/delete_app_tab\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, tabName: context.tabApiName};return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"id\": \"u:e54eed92d13f\",\n \"confirmText\": \"").concat(instance.t('frontend_button_delete_confirm_text'),"\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_delete_group'),"\",\n \"visibleOn\": \"!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"if(event.data.children && event.data.children.length > 0 && !event.data.children[0].isTempTabForEmptyGroup){doAction({'actionType': 'toast','args': { 'msgType': 'warning', 'msg': '\u5206\u7EC4\u4E0B\u6709\u6570\u636E,\u7981\u6B62\u5220\u9664'}});event.stopPropagation();};\"\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/delete_app_group\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupName: context.label};return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"id\": \"u:e54eed92d13f\",\n \"confirmText\": \"").concat(instance.t('frontend_button_delete_confirm_text'),"\"\n }\n ]\n },\n ],\n \"source\": \"${items}\",\n //\u5DE6\u5C42\u663E\u793A\u65F6\u5BA1\u6279\u5355\u663E\u793Abadge\u6570\u91CF\n \"itemBadge\": {\n \"mode\": \"text\",\n \"text\": \"").concat(badgeText,"\",\n \"visibleOn\": \"${id == 'instance_tasks'}\",\n \"overflowCount\": 99,\n \"style\": stacked?{\n \"right\": \"20%\",\n \"margin-right\": \"-23px\",\n \"height\": \"20px\",\n \"border-radius\": \"10px\",\n \"font-size\": \"16px\",\n \"line-height\": \"18px\",\n \"top\": \"50%\"\n }:{\n \"transform\": \"translate(calc(50% - 17px), calc(-50% + 10px))\",\n \"border-radius\": \"6.5px\",\n \"height\": \"15px\",\n \"line-height\": \"13px\",\n \"padding\": \"0px 4px\",\n \"font-size\": \"12px\"\n }\n },\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n ]\n };\n } catch (error) {\n console.log(`error`, error)\n }\n setTimeout(function(){\n $(\"[name='keywords']\").focus();\n }, 300);\n // console.log('AmisAppMenu AmisAppMenu=====>', payload)\n return payload;\n ")}};// console.log(`AmisAppMenu schema=====>`, schema)
|
|
2804
|
+
return[2/*return*/,amisSchema];});});};var AmisLogo=function AmisLogo(props){return __awaiter(void 0,void 0,void 0,function(){var _a,src,className,_b,imgClassName;return __generator(this,function(_c){_a=props.src,src=_a===void 0?'/logo.png':_a,className=props.className,_b=props.imgClassName,imgClassName=_b===void 0?'block h-7 w-auto':_b;return[2/*return*/,{"type":"tpl",className:className,"tpl":"<a href='/app' class='flex items-center '><img class='".concat(imgClassName,"' src='").concat(src,"'></a>"),"id":"u:2a8e7a359dff"}];});});};var AmisAppMenu=function AmisAppMenu(props){return __awaiter(void 0,void 0,void 0,function(){var _a,stacked,overflow,appId,data,_b,links,_c,showIcon,_d,className,_e,indentSize,selectedId,badgeText,saveOrderApiRequestAdaptor,schema;return __generator(this,function(_f){_a=props.stacked,stacked=_a===void 0?false:_a,overflow=props.overflow,appId=props.appId,data=props.data,_b=props.links,links=_b===void 0?null:_b,_c=props.showIcon,showIcon=_c===void 0?true:_c,_d=props.className,className=_d===void 0?'':_d,_e=props.indentSize,indentSize=_e===void 0?12:_e,selectedId=props.selectedId;if(!appId){appId=data.context.appId;}badgeText="${badges.value | pick:".concat(appId," | toInt}");if(appId=="approve_workflow"){badgeText="${badges.value | pick:'workflow' | toInt}";}if(links){return[2/*return*/,{"type":"nav",className:"".concat(className," text-black"),"stacked":stacked,"overflow":overflow,"indentSize":indentSize,"links":links}];}saveOrderApiRequestAdaptor="\n const menus = context.data;\n // console.log(\"====saveOrderApiRequestAdaptor====menus==\", menus);\n const tab_groups = [];\n const tab_items = {};\n var hasError = false;\n _.each(menus, (menu) => {\n if (menu.isGroup) {\n tab_groups.push({\n group_name: menu.label,\n default_open: menu.default_open,\n });\n } else {\n tab_items[menu.tabApiName] = { group: \"\" };\n }\n if (menu.children) {\n _.each(menu.children, (menu2) => {\n if(menu2.isTempTabForEmptyGroup !== true){\n if (menu2.isGroup) {\n // \u56E0\u4E3A\u5206\u7EC4\u53EA\u652F\u6301\u5230\u4E00\u5C42\uFF0C\u4E0D\u652F\u6301\u5206\u7EC4\u62D6\u52A8\u5230\u53E6\u4E00\u4E2A\u5206\u7EC4\uFF0C\u8FD8\u539F\u5230\u539F\u6765\u7684\u5206\u7EC4\n // \u6CE8\u610F\uFF0C\u5982\u679C\u662F\u5206\u7EC4\u62D6\u52A8\u5230\u5F53\u524D\u5206\u7EC4\u672C\u8EAB\u5185\uFF0C\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\u548C\u5176children\u4F1A\u76F4\u63A5\u4E22\u5931\uFF0C\u6240\u4EE5\u4E0D\u4F1A\u8FDB\u8FD9\u91CC\uFF0C\u9700\u8981\u5728\u540E\u9762\u5355\u72EC\u5904\u7406\n tab_groups.push({\n group_name: menu2.label,\n default_open: menu2.default_open,\n });\n _.each(menu2.children, (menu3) => {\n tab_items[menu3.tabApiName] = { group: menu2.label };\n });\n hasError = true;\n } else {\n if (menu.isGroup) {\n tab_items[menu2.tabApiName] = { group: menu.label };\n }\n else{\n // menu.isGroup\u4E0D\u4E3Atrue\uFF0C\u8BF4\u660Emenu\u4E0D\u662F\u4E00\u4E2A\u5206\u7EC4\uFF0C\u800Cmenu.children\u6709\u503C\uFF0C\u8BF4\u660Emenu\u662F\u4E00\u4E2A\u5206\u7EC4\uFF0C\u8FD9\u662F\u5F02\u5E38\u64CD\u4F5C\n // \u8BF4\u660E\u6B64\u65F6\u662F\u628A\u4E00\u4E2A\u83DC\u5355\u62D6\u52A8\u5230\u4E00\u4E2A\u666E\u901A\u7684\u83DC\u5355\u5185\u90E8\uFF0C\u6B63\u5E38\u5E94\u8BE5\u628A\u83DC\u5355\u62D6\u52A8\u5230\u67D0\u4E2A\u5206\u7EC4\u5185\u6216\u5176\u5B83\u83DC\u5355\u540C\u7EA7\uFF0C\u4E0D\u53EF\u4EE5\u628A\u666E\u901A\u83DC\u5355\u5F53\u5206\u7EC4\n // \u6B64\u65F6\u628A\u83DC\u5355\u8FD8\u539F\u6210\u666E\u901A\u83DC\u5355\u5373\u53EF\uFF0C\u5373group\u503C\u4E3A\u7A7A\n tab_items[menu2.tabApiName] = { group: \"\" };\n }\n }\n }\n });\n }\n });\n if(hasError){\n var amis = amisRequire(\"amis\");\n // var errorMsg = window.t ? window.t(\"frontend_app_menu_save_order_group_nesting_error\") : \"Group nesting is not supported\";\n amis && amis.toast.warning(\"\u4E0D\u652F\u6301\u5206\u7EC4\u5D4C\u5957\");\n }\n else{\n // \u5982\u679C\u662F\u5206\u7EC4\u62D6\u52A8\u5230\u5F53\u524D\u5206\u7EC4\u672C\u8EAB\u5185\uFF0C\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\u548C\u5176children\u4F1A\u76F4\u63A5\u4E22\u5931\uFF0C\u5373context.data\u4E2D\u76F4\u63A5\u4E22\u5931\u4E86\u88AB\u62D6\u52A8\u7684\u5206\u7EC4\n // \u8FD9\u91CC\u901A\u8FC7\u5BF9\u6BD4\u62D6\u52A8\u524D\u540E\u5206\u7EC4\u7684\u4E2A\u6570\uFF0C\u5982\u679C\u53D1\u73B0\u5206\u7EC4\u4E2A\u6570\u51CF\u5C11\uFF0C\u5219\u8BF4\u660E\u6709\u5206\u7EC4\u88AB\u4E22\u5931\uFF0C\u6B64\u65F6\u9700\u8981\u628A\u4E22\u5931\u7684\u5206\u7EC4\u8FD8\u539F\u56DE\u6765\n var prevGroups = context.__super.tab_groups;\n var preGroupNames = _.map(prevGroups, \"group_name\");\n var curGroupNames = _.map(tab_groups, \"group_name\");\n var difGroupNames = _.difference(preGroupNames, curGroupNames);\n if(difGroupNames.length > 0){\n // \u4E22\u5931\u7684\u5206\u7EC4difGroupNames\uFF0C\u9700\u8981\u4ECEcontext.__super.items\u4E2D\u8FD8\u539F\u56DE\u6765\uFF0C\u91CD\u65B0\u6DFB\u52A0\u5230tab_groups\u548Ctab_items\n var difGroupItem =_.find(context.__super.items, {label: difGroupNames[0], isGroup: true});\n tab_groups.push({\n group_name: difGroupItem.label,\n default_open: difGroupItem.default_open,\n });\n if (difGroupItem.children) {\n _.each(difGroupItem.children, (child) => {\n if(child.isTempTabForEmptyGroup !== true){\n tab_items[child.tabApiName] = { group: difGroupItem.label };\n }\n });\n }\n }\n }\n api.data = { appId: context.app.id, tab_groups, tab_items };\n // console.log(\"====saveOrderApiRequestAdaptor====api.data==\", api.data);\n return api;\n ";schema={type:'service',id:'u:app-menu',schemaApi:{"method":"get","url":"${context.rootUrl}/service/api/apps/${appId}/menus","sendOn":"!!appId","adaptor":"\n try {\n // console.log('payload====>', payload)\n if(payload.nav_schema){\n payload.data = payload.nav_schema;\n return payload\n }\n\n let collapsed = false;\n\n const data = { nav: [] };\n const stacked = ".concat(stacked,";\n let showIcon = ").concat(showIcon,";\n const selectedId = '").concat(selectedId,"';\n const tab_groups = payload.tab_groups;\n const locationPathname = window.location.pathname;\n var customTabId = \"\";\n var objectTabId = \"").concat(data.tabId,"\";\n var usedGroupNames = [];\n let allowEditApp = false;\n if(stacked){\n if(context.appId == context.app.id){\n collapsed = _.includes(document.body.classList, 'sidebar-open') != true;\n }\n // console.log('collapsed', collapsed, document.body.classList, context.appId == context.app.id)\n if(collapsed){\n showIcon = false;\n }\n\n if(payload.allowEditApp && (collapsed != true) && (window.innerWidth > 768)){\n allowEditApp = true;\n }\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n showNativeTitle: true,\n tpl: `<span class='leading-6 no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon fill-gray-700 mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n \"tabIcon\": tab.icon\n // active: selectedId === tab.id,\n })\n })\n } else {\n var tabGroup = _.find(tab_groups, {\"group_name\": groupName});\n usedGroupNames.push(groupName);\n data.nav.push({\n \"label\": groupName,\n 'default_open': tabGroup && tabGroup.default_open != false,\n \"unfolded\": tabGroup && tabGroup.default_open != false,\n \"isGroup\": true,\n \"children\": _.sortBy(_.map(tabs, (tab) => {\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n showNativeTitle: true,\n tpl: `<span class='leading-6 block no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon fill-gray-700 mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n // active: selectedId === tab.id,\n \"groupName\": groupName,\n \"tabIcon\": tab.icon\n }\n }),(tab) => {return tab.index})\n }) \n }\n });\n \n }else{\n _.each(payload.children, (tab)=>{\n tab.iconClass = (tab.icon || 'account').replaceAll('_', '-');\n if(locationPathname == tab.path){\n customTabId = tab.id;\n }else if(locationPathname.startsWith(tab.path + \"/\")){\n objectTabId = tab.id;\n }\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='whitespace-normal leading-6 no-underline group items-center rounded-md'><svg class=\"slds-icon_container slds-icon-standard-${ tab.iconClass } slds-icon !fill-white rounded-xl mr-2 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"searchKey\": tab.name,\n \"to\": tab.path,\n \"target\":tab.target,\n \"id\": tab.id,\n \"activeOn\": \"\\\\${tabId == '\"+ tab.id +\"'}\",\n \"index\": tab.index,\n \"tabApiName\": tab.tabApiName,\n \"type\": tab.type,\n \"tabIcon\": tab.icon\n // active: selectedId === tab.id,\n });\n })\n }\n\n if(allowEditApp){\n const tempTabForEmptyGroup = {\n \"label\": {\n \"type\": \"tpl\",\n \"tpl\": \"").concat(instance.t('frontend_menu_group_none_children'),"\"\n },\n \"searchKey\": \"\",\n \"disabled\": true,\n \"tabApiName\": \"temp_tab_for_empty_group\",\n \"isTempTabForEmptyGroup\": true\n };\n _.each(payload.tab_groups, (group)=>{\n if(!_.includes(usedGroupNames, group.group_name)){\n tempTabForEmptyGroup.id = \"temp_tab_for_empty_group__\" + group.group_name;\n data.nav.push({\n \"label\": group.group_name,\n 'default_open': group && group.default_open != false,\n \"unfolded\": group && group.default_open != false,\n \"isGroup\": true,\n \"children\": [tempTabForEmptyGroup]\n })\n }\n });\n }\n\n //\u4EE5\u4E0B\u4E3Anav\u7B2C\u4E00\u5C42\u6392\u5E8F\uFF0C\u5305\u62EC\u5206\u7EC4\u4E0E\u9009\u9879\u5361\n // let groupLength = ((payload.tab_groups && payload.tab_groups.length) || 0) + 1000;\n data.nav = _.sortBy(data.nav, function(tab){\n if(tab.isGroup){\n return _.findIndex(payload.tab_groups, function(group){\n return group.group_name === tab.label;\n });\n }else{\n // \u6CA1\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u6309index\u6392\u5217\u5728\u6709\u5206\u7EC4\u7684\u9009\u9879\u5361\u524D\u65B9\n return (tab.index || 0) - 1000;\n }\n })\n\n if(collapsed){\n const collapsedNav = [];\n for(const item of data.nav){\n if(item.isGroup){\n if(collapsedNav.length > 0){\n collapsedNav.push({\n \"mode\": \"divider\"\n })\n }\n for(const childrenItem of item.children){\n collapsedNav.push(Object.assign({}, childrenItem, {\n disabledTip: true,\n label: {\n \"type\": \"tooltip-wrapper\",\n \"content\": childrenItem.label,\n \"placement\": \"right\",\n // \"disabled\": true,\n \"body\": [\n {\n 'type': 'tpl',\n 'tpl': '<svg class=\"slds-icon_container slds-icon fill-gray-700 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#' + (childrenItem.tabIcon || 'account') + '\"></use></svg>'\n }\n ]\n }\n \n \n // label: false, \n // icon: '/assets/icons/standard-sprite/svg/symbols.svg#' + (childrenItem.tabIcon || 'account')\n }));\n }\n }else{\n collapsedNav.push(Object.assign({}, item, {\n disabledTip: true,\n label: {\n \"type\": \"tooltip-wrapper\",\n \"content\": item.label,\n \"placement\": \"right\",\n // \"disabled\": true,\n \"body\": [\n {\n 'type': 'tpl',\n 'tpl': '<svg class=\"slds-icon_container slds-icon fill-gray-700 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#' + (item.tabIcon || 'account') + '\"></use></svg>'\n }\n ]\n }\n // label: false, \n // icon: '/assets/icons/standard-sprite/svg/symbols.svg#' + (item.tabIcon || 'account')\n }));\n }\n }\n data.nav = collapsedNav;\n }\n\n let editAppSearch = [];\n if(allowEditApp){\n editAppSearch = [{\n \"type\": \"grid\",\n \"className\": \"mx-0 mb-2\",\n \"align\": \"between\",\n \"columns\": [\n {\n \"columnClassName\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"level\": \"light\",\n \"icon\": \"fa fa-bars\",\n \"className\": \"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.body.classList.toggle('sidebar-open')\",\n },\n {\n \"actionType\": \"rebuild\",\n \"componentId\": \"u:app-menu\",\n \"args\": {\n \"toggleSidebar\": true\n }\n }\n ]\n }\n },\n }\n ]\n },\n {\n \"columnClassName\": \"steedos-app-menu-plus p-0\",\n \"body\": [\n {\n \"type\": \"dropdown-button\",\n \"className\": \"block justify-self-end\",\n \"btnClassName\": \"mx-0 text-gray-600\",\n \"level\": \"light\",\n \"icon\": \"fa fa-gear\",\n // \"label\": \"").concat(instance.t('frontend_menu_setup'),"\",\n \"closeOnClick\": true,\n \"closeOnOutside\": true,\n \"align\": \"right\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_object'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_object'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.objects.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"value\": \"o_${UUID(6)}\",\n \"required\": true,\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.objects.label.label' | t}\",\n \"name\": \"oLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.objects.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/objects/create_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; window.location.href=Steedos.getRelativeUrl('/api/amisObjectFieldsDesign?oid=' + payload._id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale);return {}\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.oLabel, icon: context.icon}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_micro_page'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_micro_page'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.pages.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"value\": \"p_${UUID(6)}\",\n \"required\": true,\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.pages.label.label' | t}\",\n \"name\": \"oLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/pages/create_page_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; window.location.href=Steedos.getRelativeUrl('/api/pageDesign?pageId=' + payload._id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale);return {}\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.oLabel, icon: context.icon}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_url'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_url'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"API Name\",\n \"label\": \"${'CustomField.tabs.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"required\": true,\n \"value\": \"t_${UUID(6)}\",\n \"validateOnChange\": true,\n \"validations\": {\n \"isVariableName\": /^[a-zA-Z]([A-Za-z0-9]|_(?!_))*[A-Za-z0-9]$/\n }\n \n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.label.label' | t}\",\n \"name\": \"fLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.url.label' | t}\",\n \"name\": \"fUrl\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/tabs/create_link_tab_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', name: context.oName, label: context.fLabel, icon: context.icon, url: context.fUrl}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_add_existing_tabs'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_add_existing_tabs'),"\",\n \"body\": [\n {\n \"type\": \"steedos-field\",\n \"label\": \"\u9009\u9879\u5361\",\n \"config\": {\n \"type\": \"lookup\",\n \"reference_to\": \"tabs\",\n \"reference_to_field\": \"name\",\n \"required\": true,\n \"sort_no\": 30,\n \"name\": \"tabs\",\n \"multiple\": true,\n \"enable_enhanced_lookup\": true,\n \"amis\": {\n \"label\": false,\n \"embed\": true,\n }\n }\n }\n ],\n \"id\": \"u:709fd4d53437\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:ba7b707cddd8\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:2f3e5635b95d\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"size\": \"md\",\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/update_app_tabs_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupId: '', addTabNames: context.tabs}; return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_new_group'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_new_group'),"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"").concat(instance.t('frontend_menu_tabs_group_name_label'),"\",\n \"name\": \"name\",\n \"id\": \"u:e5bd37f6699b\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_tabs_group_name_placeholder'),"\",\n \"required\": true\n },\n {\n \"type\": \"checkbox\",\n \"option\": \"").concat(instance.t('frontend_menu_tabs_group_default_open_label'),"\",\n \"name\": \"defaultOpen\",\n \"id\": \"u:dae5884c1623\",\n \"required\": true,\n \"value\": true\n }\n ],\n \"id\": \"u:304b5b04c573\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d85\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a05b\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/apps/create_app_group_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, name: context.name, defaultOpen: context.defaultOpen}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n },\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_app'),"\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const apps = payload.data.apps; if(apps && apps.length > 0){ return {data: apps[0]} }; return {data: null};\",\n \"requestAdaptor\": \"api.data={query: '{ apps(filters: [\\\"code\\\", \\\"=\\\", ' + context.appId + ']) { _id name}}'}; return api;\"\n }\n },\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": \" \",\n \"headerClassName\": \"hidden\",\n \"size\": \"lg\",\n \"width\": window.drawerWidth || \"70%\",\n \"bodyClassName\": \"p-0 m-0 bg-gray-100\",\n \"closeOnEsc\": true,\n \"closeOnOutside\": true,\n \"resizable\": true,\n \"actions\": [],\n \"body\": {\n \"type\": \"service\",\n \"id\": \"u:1678e148c8d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"url\": \"/api/pageSchema/app?objectApiName=apps&formFactor=LARGE&formFactor=LARGE\",\n \"method\": \"get\",\n \"adaptor\": \"const schema = {type: 'steedos-record-detail'}; schema.data={objectName: 'apps', _inDrawer: true, recordLoaded: false}; schema.objectApiName='apps'; schema.recordId=context.responseData._id; console.log('schema', schema); return {data: schema};\"\n }\n },\n \"className\": \"steedos-record-detail-drawer app-popover\",\n \"id\": \"u:fc5f055afa8c\"\n },\n \"preventDefault\": true\n }\n ]\n }\n }\n }\n ]\n }\n ]\n }\n ]\n }]\n }else if(stacked && window.innerWidth > 768){\n editAppSearch = [{\n \"type\": \"button\",\n \"level\": \"light\",\n \"className\": \"toggle-sidebar mx-0\",\n \"icon\": \"fa fa-bars\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.body.classList.toggle('sidebar-open')\",\n },\n {\n \"actionType\": \"rebuild\",\n \"componentId\": \"u:app-menu\",\n \"args\": {\n \"toggleSidebar\": true\n }\n }\n ]\n }\n },\n }]\n }\n\n let menuItems = data.nav;\n\n if(context.keywords){\n // \u5982\u679CmenuItem\u7684children, children\u662F\u6570\u7EC4\u7ED3\u6784, \u6BCF\u4E00\u9879\u7684searchKey\u5305\u542Bcontext.keywords, \u5219\u663E\u793AmenuItem\u53CA\u5176\u7B26\u5408\u6761\u4EF6\u7684children;\n menuItems = _.filter(menuItems, (menuItem)=>{\n if(menuItem.children){\n const children = _.filter(menuItem.children, (child)=>{\n return _.includes(child.searchKey, context.keywords);\n });\n\n if(children.length > 0){\n menuItem.children = children;\n }\n\n return children.length > 0;\n }\n })\n };\n\n if(!menuItems || menuItems.length == 0){\n menuItems = data.nav;\n }\n // console.log(\"menuItems====\", menuItems);\n payload.data = {\n \"type\":\"service\",\n \"className\": \"steedos-app-service steedos-app-service-${allowEditApp ? 'edit' : 'readonly'}\",\n \"data\":{\n \"tabId\": customTabId || objectTabId,\n \"items\": menuItems,\n \"keyvalues\": \"${ss:keyvalues}\",\n \"allowEditApp\": allowEditApp,\n \"tab_groups\": tab_groups\n },\n \"id\": \"appMenuService\",\n \"onEvent\": {\n \"@data.changed.steedos_keyvalues\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"keyvalues\": \"${event.data.keyvalues}\"\n }\n }\n }\n ]\n }\n },\n \"body\": [\n ...editAppSearch,\n {\n \"type\": \"nav\",\n \"expandPosition\": \"before\",\n \"collapsed\": collapsed,\n \"searchable\": false,\n \"searchConfig\": {\n \"placeholder\": \"\u641C\u7D22\u83DC\u5355\",\n \"matchFunc\": \"return link.searchKey && link.searchKey.indexOf(keyword)>=0;\"\n },\n className: \"").concat(className," text-black steedos-app-menu px-0 ").concat(stacked?'stacked':'',"\",\n \"stacked\": ").concat(stacked,",\n \"overflow\": ").concat(JSON.stringify(overflow),",\n \"indentSize\": ").concat(indentSize,",\n \"draggable\": allowEditApp,\n \"dragOnSameLevel\": false,\n \"saveOrderApi\": {\n \"url\": \"/service/api/apps/update_app_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": ").concat(JSON.stringify(saveOrderApiRequestAdaptor),",\n \"messages\": {}\n },\n \"itemActions\": [\n {\n \"type\": \"dropdown-button\",\n \"level\": \"link\",\n \"icon\": \"fa fa-ellipsis-h\",\n \"hideCaret\": true,\n \"closeOnClick\": true,\n \"closeOnOutside\": true,\n \"btnClassName\": \"!text-gray-600\",\n \"visibleOn\": \"!!allowEditApp\",\n \"className\": \"hidden hover-inline-flex px-1\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_group'),"\",\n \"visibleOn\": \"!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_edit_group'),"\",\n \"data\": {\n \"appId\": \"\\${app.id}\",\n \"name\": \"\\${event.data.label}\",\n \"oldName\": \"\\${event.data.label}\",\n \"defaultOpen\": \"\\${event.data.default_open}\"\n },\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"").concat(instance.t('frontend_menu_tabs_group_name_label'),"\",\n \"name\": \"name\",\n \"id\": \"u:e5bd37f6699b\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_tabs_group_name_placeholder'),"\",\n \"required\": true\n },\n {\n \"type\": \"checkbox\",\n \"option\": \"").concat(instance.t('frontend_menu_tabs_group_default_open_label'),"\",\n \"name\": \"defaultOpen\",\n \"id\": \"u:dae5884c1623\",\n \"required\": true\n }\n ],\n \"id\": \"u:304b5b04c573\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d85\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a05b\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/apps/update_app_group_by_design\",\n \"method\": \"post\",\n \"adaptor\": \"\",\n \"requestAdaptor\": \"api.data={appId: context.appId, name: context.name, defaultOpen: context.defaultOpen, oldName: context.oldName}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_view_object'),"\",\n \"visibleOn\": \"this.type==='object'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language;window.location.href=Steedos.getRelativeUrl('/api/amisObjectFieldsDesign?oid=' + event.data.id +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale)\",\n \"expression\": \"${false}\"\n },\n {\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const objects = payload.data.objects; if(objects && objects.length > 0){ return {data: objects[0]} }; return {data: null};\",\n \"requestAdaptor\": \"api.data={query: '{ objects(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name}}'}; return api;\"\n }\n },\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": \" \",\n \"headerClassName\": \"hidden\",\n \"size\": \"lg\",\n \"width\": window.drawerWidth || \"70%\",\n \"bodyClassName\": \"p-0 m-0 bg-gray-100\",\n \"closeOnEsc\": true,\n \"closeOnOutside\": true,\n \"resizable\": true,\n \"actions\": [],\n \"body\": {\n \"type\": \"service\",\n \"id\": \"u:1678e148c8d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"url\": \"/api/pageSchema/record?objectApiName=objects&formFactor=LARGE\",\n \"method\": \"get\",\n \"adaptor\": \"const schema = JSON.parse(payload.schema); schema.data={objectName: 'objects', _inDrawer: true, recordLoaded: false}; schema.objectApiName='objects'; schema.recordId=context.responseData._id; return {data: schema};\"\n }\n },\n \"className\": \"steedos-record-detail-drawer app-popover\",\n \"id\": \"u:fc5f055afa8c\"\n },\n \"preventDefault\": true\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"expression\": \"${false}\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"const objects = payload.data.objects; if(objects && objects.length > 0){ try{const objectId = objects[0]._id; navigate('/app/admin/objects/view/'+objectId+'?side_object=objects&side_listview_id=all')}catch(e){payload.error=e.message;} }; return payload;\",\n \"requestAdaptor\": \"api.data={query: '{ objects(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name}}'}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_micro_page'),"\",\n \"visibleOn\": \"this.type==='page'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"var locale = Builder.settings.context?.user?.language || window.navigator.language; const tabs = payload.data.tabs; if(tabs && tabs.length > 0){ try{const pageId = tabs[0].page__expand._id; window.location.href=Steedos.getRelativeUrl('/api/pageDesign?pageId=' + pageId +`&assetUrls=${Builder.settings.assetUrls}`+'&retUrl='+window.location.href+'&locale='+locale)}catch(e){payload.error=e.message;} }; return payload;\",\n \"requestAdaptor\": \"api.data={query: '{ tabs(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id name page page__expand { _id } }}'}; return api;\",\n \"messages\": {}\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_edit_tab'),"\",\n \"visibleOn\": \"this.type==='url'\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/graphql\",\n \"method\": \"post\",\n \"adaptor\": \"if(payload.data.tabs && payload.data.tabs.length > 0){payload.data=payload.data.tabs[0]}; return payload\",\n \"requestAdaptor\": \"api.data={query: '{ tabs(filters: [\\\"name\\\", \\\"=\\\", ' + context.id + ']) { _id oName:name fLabel:label fUrl:url icon }}'}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_edit_url'),"\",\n \"data\": {\n \"appId\": \"\\${app.id}\",\n \"&\": \"\\${event.data.responseResult}\"\n },\n \"body\": [\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.name.label' | t}\",\n \"name\": \"oName\",\n \"id\": \"u:dae5884c1633\",\n \"placeholder\": \"").concat(instance.t('frontend_menu_dialog_name_placeholder'),"\",\n \"required\": true,\n \"disabled\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.label.label' | t}\",\n \"name\": \"fLabel\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"input-text\",\n \"label\": \"${'CustomField.tabs.url.label' | t}\",\n \"name\": \"fUrl\",\n \"id\": \"u:e5bd37f6691b\",\n \"required\": true\n },\n {\n \"type\": \"steedos-field\",\n \"label\": \"${'CustomField.tabs.icon.label' | t}\",\n \"config\": {\n \"label\": \"\u56FE\u6807\",\n \"type\": \"lookup\",\n \"required\": true,\n \"sort_no\": 30,\n \"optionsFunction\": \"function anonymous() { var options; options = []; _.forEach(Steedos.resources.sldsIcons.standard, function (svg) { return options.push({ value: svg, label: svg, icon: svg }); }); return options; }\",\n \"name\": \"icon\",\n \"inlineHelpText\": \"\",\n \"description\": \"\",\n \"hidden\": false,\n \"readonly\": false,\n \"disabled\": false\n }\n }\n ],\n \"id\": \"u:38b76ff2792d\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:21d3cccf4d83\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:238e5731a053\"\n }\n ],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"\",\n \"body\": [\n {\n \"type\": \"spinner\",\n \"id\": \"u:7b15becd491f\",\n \"overlay\": true\n }\n ],\n \"id\": \"u:38b76ff2798d\",\n \"actions\": [],\n \"showCloseButton\": false,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": false,\n \"showLoading\": false,\n \"draggable\": false\n }\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"api\": {\n \"url\": \"/service/api/tabs/update_link_tab_by_design\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.appId, groupId: context.label, name: context.oName, label: context.fLabel, icon: context.icon, url: context.fUrl}; return api;\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_move_group'),"\",\n \"visibleOn\": \"!!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"event.setData({appId: event.data.app.id, groups: [{label: event.data.app.name, value: 0, children: _.map(event.data.tab_groups, (tGroup)=>{return {label: tGroup.group_name, value: tGroup.group_name}})}] , tabApiName: event.data.tabApiName, groupName: event.data.groupName})\"\n },\n {\n \"ignoreError\": false,\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"").concat(instance.t('frontend_menu_dialog_move_group'),"\",\n \"data\": {\n \"appId\": \"\\${event.data.appId}\",\n \"groups\": \"\\${event.data.groups}\",\n \"tabApiName\": \"\\${event.data.tabApiName}\",\n \"groupName\": \"\\${event.data.groupName}\",\n \"oldGroupName\": \"\\${event.data.groupName}\",\n },\n \"body\": [\n {\n \"type\": \"tree-select\",\n \"label\": \"\",\n \"name\": \"groupName\",\n \"id\": \"u:26d0b458ff51\",\n \"multiple\": false,\n \"source\": \"\\${groups}\"\n }\n ],\n \"id\": \"u:d69cbb95089a\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"actionType\": \"cancel\",\n \"label\": \"${'Cancel' | t}\",\n \"id\": \"u:12261bf51dcb\"\n },\n {\n \"type\": \"button\",\n \"actionType\": \"confirm\",\n \"label\": \"${'OK' | t}\",\n \"primary\": true,\n \"id\": \"u:b144775ea124\"\n }\n ],\n \"showCloseButton\": true,\n \"closeOnOutside\": false,\n \"closeOnEsc\": false,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"draggable\": false,\n \"onEvent\": {\n \"confirm\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/move_app_tab\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.appId, groupName: context.groupName, oldGroupName: context.oldGroupName, tabName: context.tabApiName}; return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n }\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_delete_tab'),"\",\n \"visibleOn\": \"!!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/delete_app_tab\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, tabName: context.tabApiName};return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"id\": \"u:e54eed92d13f\",\n \"confirmText\": \"").concat(instance.t('frontend_button_delete_confirm_text'),"\"\n },\n {\n \"type\": \"button\",\n \"label\": \"").concat(instance.t('frontend_menu_delete_group'),"\",\n \"visibleOn\": \"!!this.isGroup\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"if(event.data.children && event.data.children.length > 0 && !event.data.children[0].isTempTabForEmptyGroup){doAction({'actionType': 'toast','args': { 'msgType': 'warning', 'msg': '\u5206\u7EC4\u4E0B\u6709\u6570\u636E,\u7981\u6B62\u5220\u9664'}});event.stopPropagation();};\"\n },\n {\n \"ignoreError\": false,\n \"outputVar\": \"responseResult\",\n \"actionType\": \"ajax\",\n \"options\": {},\n \"api\": {\n \"url\": \"/service/api/apps/delete_app_group\",\n \"method\": \"post\",\n \"requestAdaptor\": \"api.data={appId: context.app.id, groupName: context.label};return api;\",\n \"adaptor\": \"\",\n \"messages\": {}\n }\n },\n {\n \"componentId\": \"u:app-menu\",\n \"groupType\": \"component\",\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"id\": \"u:e54eed92d13f\",\n \"confirmText\": \"").concat(instance.t('frontend_button_delete_confirm_text'),"\"\n }\n ]\n },\n ],\n \"source\": \"${items}\",\n //\u5DE6\u5C42\u663E\u793A\u65F6\u5BA1\u6279\u5355\u663E\u793Abadge\u6570\u91CF\n \"itemBadge\": {\n \"mode\": \"text\",\n \"text\": \"").concat(badgeText,"\",\n \"visibleOn\": \"${id == 'instance_tasks'}\",\n \"overflowCount\": 99,\n \"style\": stacked?{\n \"right\": \"20%\",\n \"margin-right\": \"-23px\",\n \"height\": \"20px\",\n \"border-radius\": \"10px\",\n \"font-size\": \"16px\",\n \"line-height\": \"18px\",\n \"top\": \"50%\"\n }:{\n \"transform\": \"translate(calc(50% - 17px), calc(-50% + 10px))\",\n \"border-radius\": \"6.5px\",\n \"height\": \"15px\",\n \"line-height\": \"13px\",\n \"padding\": \"0px 4px\",\n \"font-size\": \"12px\"\n }\n },\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.item.id}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.item.id}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n },\n \"@tabId.changed\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": \"appMenuService\",\n \"args\": {\n \"value\": {\n \"tabId\": \"${event.data.tabId}\",\n \"items\": data.nav\n }\n },\n \"expression\":\"${event.data.tabId}\"\n },\n {\n \"actionType\": \"custom\",\n \"script\" : \"window.postMessage(Object.assign({type: 'nav.click', data: event.data.item}), '*');\"\n }\n ]\n }\n }\n }\n ]\n };\n } catch (error) {\n console.log(`error`, error)\n }\n setTimeout(function(){\n $(\"[name='keywords']\").focus();\n }, 300);\n // console.log('AmisAppMenu AmisAppMenu=====>', payload)\n return payload;\n ")}};// console.log(`AmisAppMenu schema=====>`, schema)
|
|
2805
2805
|
return[2/*return*/,schema];});});};/*
|
|
2806
2806
|
* @Author: baozhoutao@steedos.com
|
|
2807
2807
|
* @Date: 2022-09-01 14:44:57
|
|
@@ -2835,7 +2835,7 @@ return[2/*return*/,schema];});});};/*
|
|
|
2835
2835
|
* @LastEditTime: 2025-03-03 09:13:37
|
|
2836
2836
|
* @Description:
|
|
2837
2837
|
*/var AmisGlobalHeader=function AmisGlobalHeader(props){return __awaiter(void 0,void 0,void 0,function(){var logoSrc,customButtons,className,isMobile,schema;return __generator(this,function(_a){logoSrc=props.logoSrc,customButtons=props.customButtons,className=props.className;isMobile=window.innerWidth<=768;schema={"type":"wrapper","className":'p-0'+(className?" ".concat(className):''),body:[{"type":"wrapper","className":"bg-white sticky p-0 top-0 z-40 w-full flex-none backdrop-blur transition-colors duration-500 lg:z-[1000] border-b-[3px] border-sky-500 border-solid steedos-header-container",body:[{"type":"wrapper","className":'flex w-full px-4 h-[50px] p-0 justify-between items-center steedos-header-container-line-one',"body":[{type:"service",className:'p-0 flex flex-1 items-center',"onEvent":{"@history_paths.changed":{"actions":[{"actionType":"reload",// amis 3.6需要传入data来触发下面的window:historyPaths重新计算
|
|
2838
|
-
"data":{}}]}},body:[{"type":"button","className":"toggle-sidebar flex items-center pr-4","hiddenOn":"true","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.body.classList.toggle('sidebar-open')"}]}},"body":[{"type":"steedos-icon","category":"utility","name":"rows","colorVariant":"default","id":"u:afc3a08e8cf3","className":"slds-button_icon slds-global-header__icon"}]},{"type":"button","visibleOn":"${window:innerWidth < 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id)}","className":"flex","onEvent":{"click":{"actions":[{"actionType":"custom","script":"window.goBack()"}]}},"body":[{"type":"steedos-icon","category":"utility","name":"chevronleft","colorVariant":"default","className":"slds-button_icon slds-global-header__icon"}]},{"className":'block h-10 w-auto mr-4',"type":"tpl","tpl":"<a href='/app' class='flex items-center '><img class='block h-10 w-auto' src='".concat(logoSrc,"'></a>"),"hiddenOn":"${window:innerWidth < 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id)}"}]},{"type":"steedos-global-header-toolbar","label":"Global Header",className:'flex flex-nowrap gap-x-4 items-center',logoutScript:"window.signOut();",customButtons:customButtons}]},{"type":"grid","className":'steedos-context-bar flex flex-nowrap h-10 leading-5 pl-5 mb-[-3px] steedos-header-container-line-two',"hiddenOn":"${"+isMobile+"}","columns":[{"columnClassName":"items-center flex pb-0","body":[{"type":"steedos-app-launcher","showAppName":true,"appId":"${app.id}"}],"md":"auto","valign":"middle"},{"columnClassName":"flex overflow-hidden","hiddenOn":"${app.showSidebar === true}","body":[{"visibleOn":"${AND(!app.showSidebar,!"+isMobile+")}","type":"steedos-app-menu","stacked":false,showIcon:false,"appId":"${app.id}",overflow:{enable:false,itemWidth:80},"id":"u:77851eb4aa89"}],"id":"u:5367229505d8","md":"","valign":"middle"}]}]},{"type":"button","className":'p-0 absolute inset-0 mt-[50px] sm:mt-[90px]',hiddenOn:"${OR(app.showSidebar != true,isMobile)}",body:[{type:"wrapper",className:'sidebar-wrapper px-0 pt-0 pb-16 fixed z-20 h-full h-fill ease-in-out duration-300 flex flex-col overflow-y-auto block -translate-x-0
|
|
2838
|
+
"data":{}}]}},body:[{"type":"button","className":"toggle-sidebar flex items-center pr-4","hiddenOn":"true","onEvent":{"click":{"actions":[{"actionType":"custom","script":"document.body.classList.toggle('sidebar-open')"}]}},"body":[{"type":"steedos-icon","category":"utility","name":"rows","colorVariant":"default","id":"u:afc3a08e8cf3","className":"slds-button_icon slds-global-header__icon"}]},{"type":"button","visibleOn":"${window:innerWidth < 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id)}","className":"flex","onEvent":{"click":{"actions":[{"actionType":"custom","script":"window.goBack()"}]}},"body":[{"type":"steedos-icon","category":"utility","name":"chevronleft","colorVariant":"default","className":"slds-button_icon slds-global-header__icon"}]},{"className":'block h-10 w-auto mr-4',"type":"tpl","tpl":"<a href='/app' class='flex items-center '><img class='block h-10 w-auto' src='".concat(logoSrc,"'></a>"),"hiddenOn":"${window:innerWidth < 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id)}"}]},{"type":"steedos-global-header-toolbar","label":"Global Header",className:'flex flex-nowrap gap-x-4 items-center',logoutScript:"window.signOut();",customButtons:customButtons}]},{"type":"grid","className":'steedos-context-bar flex flex-nowrap h-10 leading-5 pl-5 mb-[-3px] steedos-header-container-line-two',"hiddenOn":"${"+isMobile+"}","columns":[{"columnClassName":"items-center flex pb-0","body":[{"type":"steedos-app-launcher","showAppName":true,"appId":"${app.id}"}],"md":"auto","valign":"middle"},{"columnClassName":"flex overflow-hidden","hiddenOn":"${app.showSidebar === true}","body":[{"visibleOn":"${AND(!app.showSidebar,!"+isMobile+")}","type":"steedos-app-menu","stacked":false,showIcon:false,"appId":"${app.id}",overflow:{enable:false,itemWidth:80},"id":"u:77851eb4aa89"}],"id":"u:5367229505d8","md":"","valign":"middle"}]}]},{"type":"button","className":'p-0 absolute inset-0 mt-[50px] sm:mt-[90px]',hiddenOn:"${OR(app.showSidebar != true,isMobile)}",body:[{type:"wrapper",className:'sidebar-wrapper px-0 pt-0 pb-16 fixed z-20 h-full h-fill ease-in-out duration-300 flex flex-col overflow-y-auto block -translate-x-0',visibleOn:'${!!appId}',body:[{"type":"steedos-app-launcher","className":"px-4 pb-4","visibleOn":"${isMobile}","showAppName":true},{"type":"steedos-app-menu","stacked":true,"appId":"${app.id}"}]},{"type":"wrapper","className":'sidebar-overlay',"hiddenOn":"${!isMobile}"}],"onEvent":{"click":{"actions":[{"actionType":"custom","script":"if(window.innerWidth < 768){ document.body.classList.remove('sidebar-open'); }"}]}}}]};return[2/*return*/,schema];});});};var defaultImageValue="data:image/svg+xml,%3C%3Fxml version='1.0' standalone='no'%3F%3E%3C!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3E%3Csvg t='1631083237695' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='2420' xmlns:xlink='http://www.w3.org/1999/xlink' width='1024' height='1024'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M959.872 128c0.032 0.032 0.096 0.064 0.128 0.128v767.776c-0.032 0.032-0.064 0.096-0.128 0.128H64.096c-0.032-0.032-0.096-0.064-0.128-0.128V128.128c0.032-0.032 0.064-0.096 0.128-0.128h895.776zM960 64H64C28.8 64 0 92.8 0 128v768c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z' p-id='2421' fill='%23bfbfbf'%3E%3C/path%3E%3Cpath d='M832 288c0 53.024-42.976 96-96 96s-96-42.976-96-96 42.976-96 96-96 96 42.976 96 96zM896 832H128V704l224-384 256 320h64l224-192z' p-id='2422' fill='%23bfbfbf'%3E%3C/path%3E%3C/svg%3E";var AmisFormInputs=['text','date',// 'file',
|
|
2839
2839
|
// "avatar",
|
|
2840
2840
|
// 'image',
|
|
2841
2841
|
'datetime','time','number',// 'password',
|