@steedos-widgets/amis-lib 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -176,7 +176,7 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
176
176
  })
177
177
  api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
178
178
  return api;
179
- `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let i=[];return i.length=0,_$1.forEach(e.fields,(e,t)=>{_$1.has(e,"name")||(e.name=t)}),_$1.forEach(_$1.sortBy(e.fields,"sort_no"),e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var t=e.name,a=/\w+\.\w+/.test(t);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),a||e.hidden||i.push(Object.assign({name:t},e,{permission:{allowEdit:!0}}))}),i},getSection=async(t,e,a,i)=>{e=_$1.filter(e,{group:a});if(e.length!=_$1.filter(e,["hidden",!0]).length){var r,l=[];for(const n of e){let e=n;"grid"===n.type?e=await getGridFieldSubFields(n,t):"object"===n.type&&(e=await getObjectFieldSubFields(n,t)),e.name.indexOf(".")<0&&((r=await convertSFieldToAmisField(e,e.readonly,i))&&l.push(r))}return{type:"fieldSet",title:a,collapsable:!0,body:l}}},getSections=async(e,t,a)=>{var i=getFieldSchemaArray(t),r=[];for(const n in _$1.groupBy(i,"group")){var l=await getSection(e,i,n,a);0<l.body.length&&r.push(l)}return r};async function getFormBody(e,t,a){return getSections(e,t,a)}async function getListBody(e,t){var a=[];for(const r of e){var i=await getFieldTpl(r,t);let e=i?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled})}return{type:"hbox",columns:a}}function getDefaultParams$1(e){return{perPage:e.top||10}}async function getListSchema$1(e,t){e=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}async function getCardSchema(e,t){let a=null;var i=_.find(e,e=>e.name===t.labelFieldName),i=(i&&(a=await getFieldTpl(i,t)),await getListBody(_.filter(e,e=>e.name!=t.labelFieldName),t));return{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...i.columns]}}}const defaultsDeep=(...e)=>{let t={};return toArray(e).reverse().forEach(e=>{mergeWith(t,e,(e,t)=>isArray(t)?t:void 0)}),t};function getBulkActions(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:getBatchDelete(e.name)}]}function getHeaderToolbar(e,t){return"SMALL"===t?["bulkActions",{type:"reload",align:"right"},{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]:["filter-toggler","bulkActions",{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]}function getToolbar(){return[]}function footerToolbar(){return["statistics","pagination"]}async function getObjectList(e,t,a){var i=getBulkActions(e),i={toolbar:getToolbar(),footerToolbar:footerToolbar(),headerToolbar:getHeaderToolbar(e,a.formFactor),bulkActions:0!=a.bulkActions&&i,bodyClassName:""};let r=null;var l="listview_"+e.name,n=(r="SMALL"===a.formFactor?(delete i.bulkActions,delete i.headerToolbar,delete i.footerToolbar,n=await getCardSchema(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},n,{type:"crud",primaryField:"_id",id:l,name:l,keepItemSelectionOnPageChange:!1,api:await getTableApi(e,t,a)},i)):(delete(n=await getTableSchema$1(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},n,{type:"crud",primaryField:"_id",affixHeader:!1,id:l,name:l,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a)},i)),a.defaults);return n&&(t=n.listSchema||{},r=defaultsDeep({},t,r),i=n.headerSchema,a=n.footerSchema,(i||a)&&(t=[r],i&&t.unshift(i),a&&t.push(a),r=t)),{type:"service",className:"mb-2",id:"service_"+l,name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()},objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e},body:r}}const getGlobalData$1=e=>{var t=getSteedosAuth();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function getObjectForm(e,t){var{recordId:a,formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,defaults:l}=t,n=___default.values(e.fields),l=l&&l.formSchema||{},i={type:"service",className:"p-0",name:"page_edit_"+a,api:await getEditFormInitApi(e,a,n),initApi:null,initFetch:null,body:[defaultsDeep({},l,{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,n),initFetch:"new"!=a,body:await getFormBody(n,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"steedos-amis-form",onEvent:{submitSucc:{weight:0,actions:[{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"},{componentId:"detail_"+a,actionType:"reload",expression:"!!!listViewId"}]}}})]};return l.id&&(i.id="service-"+l.id),i}async function getObjectDetail(e,t,a){var{formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,formInitProps:l}=a,n=___default.values(e.fields);return{type:"service",name:"page_readonly_"+t,id:"detail_"+t,data:{global:getGlobalData$1("read"),context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},api:await getReadonlyFormInitApi(e,t,n,l),body:[{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(map(n,e=>{e.readonly=!0}),e,Object.assign({},a,{showSystemFields:!0})),className:"steedos-amis-form bg-white pt-2 px-2",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{componentId:`page_${e.name}_record_detail`,actionType:"setValue",args:{value:{record:"${event.data}",uiSchema:e}}}]}}}}var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,a){return t?_$1.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":_$1.includes(AmisFormInputs,e)?"input-"+e:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{var t=e.type,a=getAmisFieldType(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`
179
+ `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let i=[];return i.length=0,_$1.forEach(e.fields,(e,t)=>{_$1.has(e,"name")||(e.name=t)}),_$1.forEach(_$1.sortBy(e.fields,"sort_no"),e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var t=e.name,a=/\w+\.\w+/.test(t);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),a||e.hidden||i.push(Object.assign({name:t},e,{permission:{allowEdit:!0}}))}),i},getSection=async(t,e,a,i)=>{e=_$1.filter(e,{group:a});if(e.length!=_$1.filter(e,["hidden",!0]).length){var r,l=[];for(const n of e){let e=n;"grid"===n.type?e=await getGridFieldSubFields(n,t):"object"===n.type&&(e=await getObjectFieldSubFields(n,t)),e.name.indexOf(".")<0&&((r=await convertSFieldToAmisField(e,e.readonly,i))&&l.push(r))}return{type:"fieldSet",title:a,collapsable:!0,body:l}}},getSections=async(e,t,a)=>{var i=getFieldSchemaArray(t),r=[];for(const n in _$1.groupBy(i,"group")){var l=await getSection(e,i,n,a);0<l.body.length&&r.push(l)}return r};async function getFormBody(e,t,a){return getSections(e,t,a)}async function getListBody(e,t){var a=[];for(const r of e){var i=await getFieldTpl(r,t);let e=i?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled})}return{type:"hbox",columns:a}}function getDefaultParams$1(e){return{perPage:e.top||10}}async function getListSchema$1(e,t){e=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}async function getCardSchema(e,t){let a=null;var i=_.find(e,e=>e.name===t.labelFieldName),i=(i&&(a=await getFieldTpl(i,t)),await getListBody(_.filter(e,e=>e.name!=t.labelFieldName),t));return{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...i.columns]}}}const defaultsDeep=(...e)=>{let t={};return toArray(e).reverse().forEach(e=>{mergeWith(t,e,(e,t)=>isArray(t)?t:void 0)}),t};function getBulkActions(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:getBatchDelete(e.name)}]}function getHeaderToolbar(e,t){return"SMALL"===t?["bulkActions",{type:"reload",align:"right"},{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]:["filter-toggler","bulkActions",{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]}function getToolbar(){return[]}function footerToolbar(){return["statistics","pagination"]}async function getObjectList(e,t,a){var i=getBulkActions(e),i={toolbar:getToolbar(),footerToolbar:footerToolbar(),headerToolbar:getHeaderToolbar(e,a.formFactor),bulkActions:0!=a.bulkActions&&i,bodyClassName:""};let r=null;var l="listview_"+e.name,n=(r="SMALL"===a.formFactor?(delete i.bulkActions,delete i.headerToolbar,delete i.footerToolbar,n=await getCardSchema(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},n,{type:"crud",primaryField:"_id",id:l,name:l,keepItemSelectionOnPageChange:!1,api:await getTableApi(e,t,a)},i)):(delete(n=await getTableSchema$1(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},n,{type:"crud",primaryField:"_id",affixHeader:!1,id:l,name:l,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a)},i)),a.defaults);return n&&(t=n.listSchema||{},r=defaultsDeep({},t,r),i=n.headerSchema,a=n.footerSchema,(i||a)&&(t=[r],i&&t.unshift(i),a&&t.push(a),r=t)),{type:"service",className:"mb-2",id:"service_"+l,name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()},objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:r}}const getGlobalData$1=e=>{var t=getSteedosAuth();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function getObjectForm(e,t){var{recordId:a,formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,defaults:l}=t,n=___default.values(e.fields),l=l&&l.formSchema||{},i={type:"service",className:"p-0",name:"page_edit_"+a,api:await getEditFormInitApi(e,a,n),initApi:null,initFetch:null,body:[defaultsDeep({},l,{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,n),initFetch:"new"!=a,body:await getFormBody(n,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"steedos-amis-form",onEvent:{submitSucc:{weight:0,actions:[{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"},{componentId:"detail_"+a,actionType:"reload",expression:"!!!listViewId"}]}}})]};return l.id&&(i.id="service-"+l.id),i}async function getObjectDetail(e,t,a){var{formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,formInitProps:l}=a,n=___default.values(e.fields);return{type:"service",name:"page_readonly_"+t,id:"detail_"+t,data:{global:getGlobalData$1("read"),context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},api:await getReadonlyFormInitApi(e,t,n,l),body:[{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(map(n,e=>(e.readonly=!0,e)),e,Object.assign({},a,{showSystemFields:!0})),className:"steedos-amis-form bg-white pt-2 px-2",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}}]}}}}var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,a){return t?_$1.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":_$1.includes(AmisFormInputs,e)?"input-"+e:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{var t=e.type,a=getAmisFieldType(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`
180
180
  <% let fileData = data.${e.name}; if (fileData) { %>
181
181
  <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>
182
182
  <% fileData.forEach(function(item) { %>
@@ -194,11 +194,35 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
194
194
  }
195
195
  }
196
196
  return payload;
197
- `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},getAmisFileSchema=(e,t)=>(t?getAmisFileReadonlySchema:getAmisFileEditSchema)(e);async function getTableColumns(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(r)});else{var i=await getFieldTpl(r,t);let e="text";i?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`\${${r.name}}`,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}function getDefaultParams(e){return{perPage:e.top||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),t=isBoolean(t)?t.toString():t)return t.trim().startsWith("function")?t+"(objectName, _id, recordPermissions, data)":t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}async function getTableOperation(e){e=e.buttons;const t=[];if(each(e,e=>{isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"antd-Button--default"})}),!(t.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomLeft",id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`
197
+ `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},getAmisFileSchema=(e,t)=>(t?getAmisFileReadonlySchema:getAmisFileEditSchema)(e);async function getTableColumns(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(r)});else{var i=await getFieldTpl(r,t);let e="text";i?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:""+r.label,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}function getDefaultParams(e){return{perPage:e.top||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),t=isBoolean(t)?t.toString():t)return t.trim().startsWith("function")?t+"(objectName, _id, recordPermissions, data)":t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}async function getTableOperation(e){e=e.buttons;const t=[];if(each(e,e=>{isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"antd-Button--default"})}),!(t.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomLeft",id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`
198
198
  payload.recordPermissions = payload;
199
199
  return payload;
200
- `}}]}}async function getTableSchema$1(e,t){e=await getTableColumns(e,t=t||{});return e.push(await getTableOperation(t)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams(t),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function getTableApi(e,t,a){const i=[];let{globalFilter:r,filter:l,sort:n,top:o}=a;l=(l=_$1.isArray(l)?_$1.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e}):l)||[],_$1.each(t,function(e){e.searchable&&i.push(e.name)});const s={},d=[];t.forEach(e=>{_$1.includes(["image","avatar","file"],e.type)&&(d.push(e.name),s[e.name]={name:e.name,type:e.type,multiple:e.multiple})});a=e.key_field||"_id",t=await getApi$1(e,null,t,{alias:"rows",limit:o,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});return t.data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.requestAdaptor=`
200
+ `}}]}}async function getTableSchema$1(e,t){e=await getTableColumns(e,t=t||{});return e.push(await getTableOperation(t)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams(t),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function getTableApi(e,t,a){const i=[];let{globalFilter:r,filter:l,sort:n,top:o}=a;l=(l=_$1.isArray(l)?_$1.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e}):l)||[],_$1.each(t,function(e){e.searchable&&i.push(e.name)});const s={},d=[];t.forEach(e=>{_$1.includes(["image","avatar","file"],e.type)&&(d.push(e.name),s[e.name]={name:e.name,type:e.type,multiple:e.multiple})});a=e.key_field||"_id",t=await getApi$1(e,null,t,{alias:"rows",limit:o,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});return t.data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.requestAdaptor=`
201
201
  let selfData = JSON.parse(JSON.stringify(api.data.$self));
202
+ if(!api.data.loaded){
203
+ // 只有第一次加载组件,比如刷新浏览器时才需要从本地存储中合并过滤条件等参数
204
+ // 否则翻页页码会因为刷新浏览器时api.data.pageNo始终有默认值为1无法生效
205
+ try{
206
+ // TODO: 不应该直接在这里取localStorage,应该从外面传入
207
+ const selfSupperData = api.data.$self.__super.__super;
208
+ const listViewId = selfSupperData.listViewId;
209
+ const searchableFilterStoreKey = location.pathname + "/crud/" + listViewId ;
210
+ let localSearchableFilter = localStorage.getItem(searchableFilterStoreKey);
211
+ localSearchableFilter = JSON.parse(localSearchableFilter);
212
+ if(localSearchableFilter){
213
+ selfData = Object.assign({}, selfData, localSearchableFilter);
214
+ api.data.filter = localSearchableFilter.filter;
215
+ api.data.pageNo = localSearchableFilter.page;
216
+ // TODO:翻页在这里无效,因为刷新浏览器时api.data.pageNo始终有默认值为1
217
+ // if(!api.data.pageNo){
218
+ // api.data.pageNo = localSearchableFilter.page;
219
+ // }
220
+ }
221
+ }
222
+ catch(ex){
223
+ console.error("本地存储中crud参数解析异常:", ex);
224
+ }
225
+ }
202
226
  ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}
203
227
  if(_.isEmpty(filters)){
204
228
  filters = api.data.filter || [${JSON.stringify(l)}];
@@ -219,20 +243,6 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
219
243
  filters = [["${a.name}", "=", selfData.value]];
220
244
  }
221
245
  var searchableFilter = [];
222
- try{
223
- // TODO: 不应该直接在这里取localStorage,应该从外面传入
224
- const selfSupperData = api.data.$self.__super.__super;
225
- const listViewId = selfSupperData.listViewId;
226
- const searchableFilterStoreKey = location.pathname + "/crud/" + listViewId ;
227
- let localSearchableFilter = localStorage.getItem(searchableFilterStoreKey);
228
- if(localSearchableFilter){
229
- selfData = Object.assign({}, JSON.parse(localSearchableFilter), selfData);
230
- }
231
- }
232
- catch(ex){
233
- console.error("本地存储中crud参数解析异常:", ex);
234
- }
235
-
236
246
  _.each(selfData, (value, key)=>{
237
247
  if(!_.isEmpty(value) || _.isBoolean(value)){
238
248
  if(_.startsWith(key, '__searchable__between__')){
@@ -251,7 +261,7 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
251
261
  if(filters.length > 0 ){
252
262
  filters = [filters, 'and', searchableFilter];
253
263
  }else{
254
- searchableFilter = filters;
264
+ filters = searchableFilter;
255
265
  }
256
266
  }
257
267
 
@@ -341,15 +351,24 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
341
351
  let localSearchableFilter = localStorage.getItem(searchableFilterStoreKey);
342
352
  let selfData = JSON.parse(JSON.stringify(api.data.$self));
343
353
  if(localSearchableFilter){
344
- selfData = Object.assign({}, JSON.parse(localSearchableFilter), selfData);
354
+ if(api.data.loaded){
355
+ selfData = Object.assign({}, JSON.parse(localSearchableFilter), selfData);
356
+ }
357
+ else{
358
+ selfData = Object.assign({}, selfData, JSON.parse(localSearchableFilter));
359
+ }
345
360
  }
346
361
  delete selfData.context;
347
362
  delete selfData.global;
348
363
  localStorage.setItem(searchableFilterStoreKey, JSON.stringify(selfData));
364
+ // 返回页码到UI界面
365
+ payload.data.page= selfData.page;
349
366
  }
350
367
  catch(ex){
351
368
  console.error("本地存储中crud参数解析异常:", ex);
352
369
  }
370
+ // 标记加载过,后续优先从本地存储中加载相关参数
371
+ payload.data.loaded= true;
353
372
  return payload;
354
373
  `,t}async function getApi$1(e,t,a,i){e=await getFindQuery(e,t,a,i);return{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSource(e){var t=await getFindQuery({name:"organizations"},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"}),a=(t.query=t.query.replace(/,count\:.+/,"}"),await getFindQuery({name:"organizations"},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"})),a=(a.query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await getFindQuery({name:"space_users"},null,[{name:"user"},{name:"name"}],{alias:"defaultValueOptions",filters:"{__options_filters}"})),a=(a.query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),t.$value="$"+e.name,`
355
374
  var filters = [['parent', '=', null]];
@@ -540,23 +559,11 @@ import*as _$1 from"lodash";import ___default,{isEmpty,isArray,each,find,endsWith
540
559
  return payload;
541
560
  `},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"},{componentId:"",args:{url:"/app/${app_id}/${objectName}/grid/all",blank:!1},actionType:"link",expression:"!!!listViewId"},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"}]}}}],regions:["body"]}),getSchema$1=e=>({type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:"导入数据",body:[{type:"form",mode:"edit",persistData:!1,promptPageLeave:!0,name:"form_edit_data_import",debug:!1,title:"",submitText:"",api:{method:"post",url:"${context.rootUrl}/graphql",data:{objectName:"queue_import_history",$:"$$"},requestAdaptor:"\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n delete formData.success_count;\ndelete formData.failure_count;\ndelete formData.total_count;\ndelete formData.start_time;\ndelete formData.end_time;\ndelete formData.state;\ndelete formData.error;\ndelete formData.created;\ndelete formData.created_by;\ndelete formData.modified;\ndelete formData.modified_by;\n \n \n let fileFieldsKeys = [\"file\"];\n let fileFields = {\"file\":{\"name\":\"file\"}};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n \n let query = `mutation{record: ${objectName}__insert(doc: {__saveData}){_id}}`;\n if(formData.recordId && formData.recordId !='new'){\n query = `mutation{record: ${objectName}__update(id: \"${formData._id}\", doc: {__saveData}){_id}}`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n ",responseData:{recordId:"${record._id}"},adaptor:"console.log('payload', payload)\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},dataType:"json"},initFetch:!0,body:[{type:"fieldSet",title:"通用",collapsable:!0,body:[{name:"object_name",label:"导入对象",required:!1,type:"select",joinValues:!1,extractValue:!0,autoComplete:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:"{options:objects(filters: {__filters}, top: {__top}){_id label:label value:name},count:objects__count(filters:{__filters})}",$term:"$term",$value:"$object_name.name",$:"$$",rfield:"${object_name}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n "},className:"m-1",labelClassName:"text-left",clearValueOnHidden:!1,id:"u:04295fee3896",multiple:!1,hidden:!0},{name:"queue_import",label:"数据导入",required:!0,type:"picker",labelField:"description",valueField:"_id",modalMode:"dialog",source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:queue_import(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,description,object_name,encoding,template_url,_display:_ui{object_name,encoding}},count:queue_import__count(filters:{__filters})}',$term:"$term",$self:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",adaptor:"\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n "},size:"lg",pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:20},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"description",label:"导入描述",type:"tpl",tpl:'<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',className:"whitespace-nowrap",html:null},{name:"object_name",label:"导入对象",type:"tpl",tpl:'<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',className:"whitespace-nowrap",html:null},{name:"encoding",label:"字符代码",type:"tpl",tpl:"<div>${_display.encoding}</div>",className:"whitespace-nowrap",html:null},{name:"template_url",label:"导入模板",type:"markdown",className:"whitespace-nowrap",html:!0},null],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,autoFillHeight:!1},joinValues:!1,extractValue:!0,className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,id:"u:401df27113e0"},{name:"file",label:"Excel文件",required:!0,type:"input-file",className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/files",data:{$:"$$",context:"${context}"},adaptor:'\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/files/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n ',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},id:"u:0213f2cc365b"}],id:"u:4899c260d667"}],panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form",label:"对象表单",objectApiName:"queue_import_history",id:"u:e4ef598eed61",onEvent:{submitSucc:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/data/initiateImport",method:"post",data:{eventData:"${event.data}"},dataType:"json",requestAdaptor:"\napi.data = {\n importObjectHistoryId: api.body.eventData.result.data.recordId\n}\nreturn api;",adaptor:"payload.status = payload.status === 'success' ? 0 : payload.status;\nconsole.log(\"payload ssss==>\", payload)\nreturn payload;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已开始导入...",failed:"导入失败"}},actionType:"ajax",expression:"event.data.result"}]}},closeDialogOnSubmit:!0}],id:"u:dc05498d3bd4",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}},level:"default"}],regions:["body"],className:"p-0",id:"u:bd2f9c4e986f"}),getSchema=e=>({type:"service",className:"p-0",body:[{type:"button",label:"查看",className:"border-none",onEvent:{click:{actions:[{componentId:"",args:{blank:!1,url:"/app/${app_id}/${objectName}/view/${_id}"},actionType:"link"}]}},id:"u:ef35c9ae1d19"}],regions:["body"]}),StandardButtons={getStandardNew:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$4(e,t)}),getStandardEdit:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$3(e,t)}),getStandardDelete:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$2(e)}),getStandardDeleteMany:async(e,t)=>({type:"amis_button"}),getStandardImportData:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$1()}),getStandardOpenView:async(e,t)=>({type:"amis_button",amis_schema:await getSchema()})},getGlobalData=()=>({now:new Date});function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),t=___default.isBoolean(t)?t.toString():t)return 0<t.indexOf("Meteor.")||0<t.indexOf("Creator.")||0<t.indexOf("Session.")?(console.warn("无效的visible",t),"false"):t.trim().startsWith("function")?t+`.apply({
542
561
  object: uiSchema
543
- }, [objectName, _id, recordPermissions, data])`:t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}const getButtonVisible=(t,e)=>{if(t._visible&&(___default.startsWith(___default.trim(t._visible),"function")?(window.eval("var fun = "+t._visible),t.visible=fun):isExpression(t._visible)&&(t.visible=e=>{parseSingleExpression(t._visible,e.record,"#",getGlobalData(),e.userSession)})),!___default.isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},standardButtonsTodo={standard_delete_many:function(){var{listViewId:e,uiSchema:t}=this,e=SteedosUI?.getRef(e).getComponentByName("page.listview_"+t.name);___default.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0])}},getButtons=(t,a)=>{const i=t.permissions&&t.permissions.disabled_actions;let e=___default.sortBy(___default.values(t.actions),"sort");return ___default.has(t,"allow_customActions")&&(e=___default.filter(e,e=>___default.include(t.allow_customActions,e.name))),___default.has(t,"exclude_actions")&&(e=___default.filter(e,e=>!___default.include(t.exclude_actions,e.name))),___default.each(e,e=>{e.objectName=t.name,a.isMobile&&-1<["record","record_only"].indexOf(e.on)&&"standard_edit"!=e.name&&("record_only"==e.on?e.on="record_only_more":e.on="record_more")}),a.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(t.name)&&___default.map(e,e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")}),___default.filter(e,e=>___default.indexOf(i,e.name)<0&&"standard_query"!=e.name)},getListViewButtons=(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>"list"==e.on)},getObjectDetailButtons=(e,t)=>{e=getButtons(e,t),t=___default.filter(e,e=>"record"==e.on||"record_only"==e.on);return ___default.sortBy(t,"sort")},getObjectDetailMoreButtons=(e,t)=>{e=getButtons(e,t),t=___default.filter(e,e=>"record_more"==e.on||"record_only_more"==e.on);return ___default.sortBy(t,"sort")},getListViewItemButtons=async(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on)},getObjectRelatedListButtons=async(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>{if("cms_files"!==e.objectName)return"standard_new"==e.name})},getButton=async(e,t,a)=>{var i=await getUISchema(e);if(i){var r=await getButtons(i,a),r=___default.find(r,e=>e.name===t);if(r)return"standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardEdit(i,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardNew(i,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardDelete(i,a)}:i.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardImportData(i,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardOpenView(i,a)}:r}},execute=(e,t)=>{if(e.todo)return ___default.isString(e.todo)&&___default.startsWith(___default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),___default.isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},executeButton=execute;async function getObjectListHeader(a,e,t){t=t||{};var{icon:i,label:r}=a;const l=[];each(a.list_views,(e,t)=>{l.push({type:"button",label:e.label,actionType:"link",link:`/app/\${appId}/${a.name}/grid/`+t})});var n=getListViewButtons(a,{}),n=map(n,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),o=new RegExp("_","g"),o=i&&i.replace(o,"-"),s="listview_"+a.name,o={type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<p><img class="slds-icon slds-icon_container slds-icon-standard-${o} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg" /></p>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}},{type:"dropdown-button",className:"leading-none",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",hideCaret:!0,btnClassName:"bg-transparent border-none text-lg font-bold p-0",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:n,md:"auto"}],align:"between"},i={type:"grid",align:"between",columns:[{body:[],md:"auto"},{body:[await getObjectFieldsFilterButtonSchema(a),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:s,className:"bg-transparent p-0 ml-1"},{type:"button",label:"",icon:"fa fa-filter",actionType:"custom",className:"bg-transparent p-0 ml-1",id:"u:c20cb87d96c9",onEvent:{click:{actions:[{actionType:"custom",script:'const eventData = event.data;\nconst uiSchema = eventData.uiSchema;\nconst listview_id = eventData.listName;\nvar selectedListView = uiSchema.list_views[listview_id]\nvar filter = eventData.filter;\n\nSteedosUI.ListView.showFilter(uiSchema.name, {\n listView: selectedListView,\n data: {\n filters: SteedosUI.ListView.getVisibleFilter(selectedListView, filter),\n },\n onFilterChange: (filter) => {\n doAction({\n componentId: `service_listview_${uiSchema.name}`,\n actionType: \'setValue\',\n "args": {\n "value": {\n filter: filter\n }\n }\n });\n doAction({\n componentId: `listview_${uiSchema.name}`,\n actionType: \'reload\',\n "args": {\n filter: filter\n }\n });\n }\n});'}],weight:0}}}],md:"auto"}],className:"-mt-3"};let d=[o,i];t.onlyFirstLine?d=[o]:t.onlySecordLine&&(d=[i]);r=[{type:"wrapper",body:d,size:"xs",className:"p-t-sm p-b-sm p-l pr-4 border-b py-4"}],n=keys(a.fields),s=sortBy(compact(map(n,e=>a.fields[e])),"sort_no"),o=await getObjectFieldsFilterBarSchema(a,s,{isListviewInit:t.isListviewInit});return r.push(o),r}async function getObjectRecordDetailHeader(e,t){var{name:a,label:i,icon:r,NAME_FIELD_KEY:l}=e,n=getObjectDetailButtons(e,{}),o=getObjectDetailMoreButtons(e,{recordId:t,objectName:a}),n=map(n,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),o=map(o,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e)})),o=(n.push({type:"steedos-dropdown-button",label:"",buttons:o,className:"slds-icon"}),new RegExp("_","g")),o=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(o,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${(record && uiSchema && record[uiSchema.NAME_FIELD_KEY]) || name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:n,md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{},api:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{query:`{rows:${a}(filters: ["_id","=","${t}"]){_id, ${l||"name"}} }`},sendOn:""+!!t,requestAdaptor:"",adaptor:`
544
- const rows = payload.data.rows;
545
- let label = null;
546
- if (rows.length) {
547
- const objectInfo = rows[0];
548
- label = objectInfo.name;
549
- }
550
- delete payload.rows;
551
- payload.data = {
552
- name: label
553
- }
554
- return payload;
555
- `}}];return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()},objectName:a,_id:t,recordPermissions:e.permissions,uiSchema:e},body:o}}async function getObjectRecordDetailRelatedListHeader(e){var{icon:t,label:a}=e,e=await getObjectRelatedListButtons(e,{}),e=map(e,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),i=new RegExp("_","g");return{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${t&&t.replace(i,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${t}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+a,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:e,md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}async function getObjectRelatedListHeader(e,t,a){}const getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)}),""+t.join(" ")},getFindOneQuery=(e,t,a)=>{e=e.replace(/\./g,"_");a=getGraphqlFieldsQuery(a);let i="";t=[`id: "${t}"`];return`{record:${e}__findOne${i=0<t.length?`(${t.join(",")})`:i}{${a}}}`},getRecord=async(e,t,a)=>{return(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,a)})})).data.record},getRelatedsCount=async(t,e)=>{const a=[];each(e,e=>{a.push(`${e.object_name}: ${e.object_name}__count(filters: [["${e.foreign_key}","=","${t}"]])`)});e=`
562
+ }, [objectName, _id, recordPermissions, data])`:t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}const getButtonVisible=(t,e)=>{if(t._visible&&(___default.startsWith(___default.trim(t._visible),"function")?(window.eval("var fun = "+t._visible),t.visible=fun):isExpression(t._visible)&&(t.visible=e=>{parseSingleExpression(t._visible,e.record,"#",getGlobalData(),e.userSession)})),!___default.isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},standardButtonsTodo={standard_delete_many:function(){var{listViewId:e,uiSchema:t}=this,e=SteedosUI?.getRef(e).getComponentByName("page.listview_"+t.name);___default.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0])}},getButtons=(t,a)=>{const i=t.permissions&&t.permissions.disabled_actions;let e=___default.sortBy(___default.values(t.actions),"sort");return ___default.has(t,"allow_customActions")&&(e=___default.filter(e,e=>___default.include(t.allow_customActions,e.name))),___default.has(t,"exclude_actions")&&(e=___default.filter(e,e=>!___default.include(t.exclude_actions,e.name))),___default.each(e,e=>{e.objectName=t.name,a.isMobile&&-1<["record","record_only"].indexOf(e.on)&&"standard_edit"!=e.name&&("record_only"==e.on?e.on="record_only_more":e.on="record_more")}),a.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(t.name)&&___default.map(e,e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")}),___default.filter(e,e=>___default.indexOf(i,e.name)<0&&"standard_query"!=e.name)},getListViewButtons=(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>"list"==e.on)},getObjectDetailButtons=(e,t)=>{e=getButtons(e,t),t=___default.filter(e,e=>"record"==e.on||"record_only"==e.on);return ___default.sortBy(t,"sort")},getObjectDetailMoreButtons=(e,t)=>{e=getButtons(e,t),t=___default.filter(e,e=>"record_more"==e.on||"record_only_more"==e.on);return ___default.sortBy(t,"sort")},getListViewItemButtons=async(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on)},getObjectRelatedListButtons=async(e,t)=>{e=getButtons(e,t);return ___default.filter(e,e=>{if("cms_files"!==e.objectName)return"standard_new"==e.name})},getButton=async(e,t,a)=>{var i=await getUISchema(e);if(i){var r=await getButtons(i,a),r=___default.find(r,e=>e.name===t);if(r)return"standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardEdit(i,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardNew(i,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardDelete(i,a)}:i.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardImportData(i,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardOpenView(i,a)}:r}},execute=(e,t)=>{if(e.todo)return ___default.isString(e.todo)&&___default.startsWith(___default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),___default.isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},executeButton=execute;async function getObjectListHeader(a,e,t){t=t||{};var{icon:i,label:r}=a;const l=[];each(a.list_views,(e,t)=>{l.push({type:"button",label:e.label,actionType:"link",link:`/app/\${appId}/${a.name}/grid/`+t})});var n=getListViewButtons(a,{}),n=map(n,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),o=new RegExp("_","g"),o=i&&i.replace(o,"-"),s="listview_"+a.name,o={type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<p><img class="slds-icon slds-icon_container slds-icon-standard-${o} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg" /></p>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}},{type:"dropdown-button",className:"leading-none",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",hideCaret:!0,btnClassName:"bg-transparent border-none text-lg font-bold p-0",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:n,md:"auto"}],align:"between"},i={type:"grid",align:"between",columns:[{body:[],md:"auto"},{body:[await getObjectFieldsFilterButtonSchema(a),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:s,className:"bg-transparent p-0 ml-1"},{type:"button",label:"",icon:"fa fa-filter",actionType:"custom",className:"bg-transparent p-0 ml-1",id:"u:c20cb87d96c9",onEvent:{click:{actions:[{actionType:"custom",script:'const eventData = event.data;\nconst uiSchema = eventData.uiSchema;\nconst listview_id = eventData.listName;\nvar selectedListView = uiSchema.list_views[listview_id]\nvar filter = eventData.filter;\n\nSteedosUI.ListView.showFilter(uiSchema.name, {\n listView: selectedListView,\n data: {\n filters: SteedosUI.ListView.getVisibleFilter(selectedListView, filter),\n },\n onFilterChange: (filter) => {\n doAction({\n componentId: `service_listview_${uiSchema.name}`,\n actionType: \'setValue\',\n "args": {\n "value": {\n filter: filter\n }\n }\n });\n doAction({\n componentId: `listview_${uiSchema.name}`,\n actionType: \'reload\',\n "args": {\n filter: filter\n }\n });\n }\n});'}],weight:0}}}],md:"auto"}],className:"-mt-3"};let d=[o,i];t.onlyFirstLine?d=[o]:t.onlySecordLine&&(d=[i]);r=[{type:"wrapper",body:d,size:"xs",className:"p-t-sm p-b-sm p-l pr-4 border-b py-4"}],n=keys(a.fields),s=sortBy(compact(map(n,e=>a.fields[e])),"sort_no"),o=await getObjectFieldsFilterBarSchema(a,s,{isListviewInit:t.isListviewInit});return r.push(o),r}async function getObjectRecordDetailHeader(e,t){var{name:a,label:i,icon:r}=e,l=getObjectDetailButtons(e,{}),n=getObjectDetailMoreButtons(e,{recordId:t,objectName:a}),l=map(l,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),n=map(n,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e)})),n=(l.push({type:"steedos-dropdown-button",label:"",buttons:n,className:"slds-icon"}),new RegExp("_","g")),n=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(n,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:l,md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{}}];return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()},objectName:a,_id:t,recordPermissions:e.permissions,uiSchema:e},body:n}}async function getObjectRecordDetailRelatedListHeader(e){var{icon:t,label:a}=e,e=await getObjectRelatedListButtons(e,{}),e=map(e,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),i=new RegExp("_","g");return{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${t&&t.replace(i,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${t}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+a,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:e,md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}async function getObjectRelatedListHeader(e,t,a){}const getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)}),""+t.join(" ")},getFindOneQuery=(e,t,a)=>{e=e.replace(/\./g,"_");a=getGraphqlFieldsQuery(a);let i="";t=[`id: "${t}"`];return`{record:${e}__findOne${i=0<t.length?`(${t.join(",")})`:i}{${a}}}`},getRecord=async(e,t,a)=>{return(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,a)})})).data.record},getRelatedsCount=async(t,e)=>{const a=[];each(e,e=>{a.push(`${e.object_name}: ${e.object_name}__count(filters: [["${e.foreign_key}","=","${t}"]])`)});e=`
556
563
  {
557
564
  ${a.join(",")}
558
565
  }
559
- `;return(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getRecordPermissions=async(e,t)=>{return await fetchAPI(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"})};let UI_SCHEMA_CACHE={},UISchemaFunction;const setUISchemaFunction=function(e){UISchemaFunction=e},setUISchemaCache=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE),(e,t)=>{UI_SCHEMA_CACHE[e]=t}),getUISchemaCache=e=>cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let a=[];return a="SMALL"===t?isEmpty(e.mobile_columns)?slice(e.columns,0,4):e.mobile_columns:e.columns}function getListViewSort(e){let i="";return e&&e.sort&&e.sort.length&&each(e.sort,function(e,t){var a;isArray(e)?(a=e[0]+" "+(e[1]||""),a=0<t?","+a:a,i+=a):(a=e.field_name+" "+e.order,a=0<t?","+a:a,i+=a)}),i}async function getUISchema(t,e){if(t){if(!hasUISchemaCache(t)||e){let a=null;try{if(!(a=UISchemaFunction?await UISchemaFunction(t,e):await fetchAPI(`/service/api/@${t.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;setUISchemaCache(t,a),each(a.list_views,(e,t)=>{e.name=t,has(e,"columns")||(e.columns=a.list_views.all.columns)})}catch(e){console.error("getUISchema",t,e),setUISchemaCache(t,null)}}return getUISchemaCache(t)}}async function getField(e,t){return(await getUISchema(e))?.fields[t]}async function getFormSchema(e,t){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectForm(e,t)}}async function getViewSchema(e,t,a){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectDetail(e,t,a)}}async function getListSchema(e,t,a,i={}){var r=await getUISchema(t),l=find(r.list_views,(e,t)=>t===(a=a||t));if(!l)return{uiSchema:r};if(l.enable_amis_schema&&l.amis_schema)return{uiSchema:r,isCustom:!0,amisSchema:isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema};var n=getListViewColumns(l,i.formFactor),o=getListViewSort(l),s=i.defaults||{};!s.headerSchema&&i.showHeader&&(s.headerSchema=await getObjectListHeader(r)),i.showHeader||(s.headerSchema=null);try{var d,c=location.pathname+"/crud/"+i.listViewId,p=localStorage.getItem(c);p&&(p=JSON.parse(p),d={},p.orderBy&&(d.orderBy=p.orderBy),p.orderDir&&(d.orderDir=p.orderDir),p.perPage&&(d.defaultParams={perPage:p.perPage}),p.page&&(d.defaultParams=Object.assign({},d.defaultParams,{page:p.page})),s.listSchema=defaultsDeep$1({},d,s.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}return i.defaults=s,{uiSchema:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:n,extraColumns:l.extra_columns,filters:l.filters,sort:o,ctx:i}}}async function getTableSchema(e,t,a,i={}){const r=await getUISchema(t);let l=i.sort;l||(o=i.sortField,s=i.sortOrder,o&&(l=o+" "+s||"asc"));let n=[];each(a,function(e){isString(e)&&r.fields[e]?n.push(r.fields[e]):isObject$1(e)&&r.fields[e.field]&&n.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))});var o=i.extraColumns,s=(o&&each(o,function(e){isString(e)?n.push({extra:!0,name:e}):isObject$1(e)&&n.push({extra:!0,name:e.field})}),await getObjectList(r,n,{tabId:t,appId:e,objectName:t,...i,filter:i.filters,sort:l,buttons:await getListViewItemButtons(r,i)}));return{uiSchema:r,amisSchema:s}}async function getRecordDetailHeaderSchema(e,t){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectRecordDetailHeader(e,t)}}async function getRecordDetailRelatedListSchema(t,e,a){var i=await getUISchema(a),{list_views:r,fields:l}=i;return{uiSchema:i,amisSchema:(await getListSchema(null,a,keys(r)[0],{globalFilter:[findKey(l,function(e){return-1<["lookup","master_detail"].indexOf(e.type)&&e.reference_to===t}),"=",e],defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:await getObjectRecordDetailRelatedListHeader(i)},showHeader:!0})).amisSchema}}async function getObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],n=[].concat(e.related_lists||[]);if(isEmpty(n))for(const m of[].concat(e.details||[])){var o=m.split("."),s=await getUISchema(o[0]);if(s){let e=null;var d=await getField(o[0],o[1]);e=d._reference_to||d.reference_to&&!isString(d.reference_to)?[[o[1]+"/o","=",i],[o[1]+"/ids","=",a]]:[""+o[1],"=",a],l.push({masterObjectName:i,object_name:o[0],foreign_key:o[1],schema:await getListSchema(t,o[0],"all",{globalFilter:e,formFactor:r,buttons:await getListViewItemButtons(s,{isMobile:!1})})})}}else for(const u of n){var c=u.related_field_fullname.split(".");let e=null;var p=await getField(c[0],c[1]);if(p){e=p._reference_to||p.reference_to&&!isString(p.reference_to)?[[c[1]+"/o","=",i],[c[1]+"/ids","=",a]]:[""+c[1],"=",a];const f=await getUISchema(c[0]);if(f){let a=[];forEach(u.field_names,t=>{var e=find(f.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:i,object_name:c[0],foreign_key:c[1],schema:{uiSchema:f,amisSchema:await getObjectList(f,a,{tabId:i,appId:t,objectName:c[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(f,{isMobile:!1})})}})}}}return l}async function getObjectRelated({appName:e,masterObjectName:t,objectName:a,relatedFieldName:i,recordId:r,formFactor:l}){let n=null;var o=await getField(a,i),o=(n=o._reference_to||o.reference_to&&!isString(o.reference_to)?[[i+"/o","=",t],[i+"/ids","=",r]]:[""+i,"=",r],await getUISchema(t));return{masterObjectName:t,object_name:a,foreign_key:i,schema:await getListSchema(e,a,"all",{globalFilter:n,formFactor:l}),record:await getRecord(t,r,[o.NAME_FIELD_KEY]),masterObjectUISchema:o}}async function getSearchableFieldsFilterSchema(e,t,a){return getObjectFieldsFilterFormSchema(e,t,a)}const getRelatedFieldValue=(e,t,a,i)=>{a=find(a.fields,e=>i===e?.name);return isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]}};async function getAmisObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],n=[].concat(e.related_lists||[]);if(isEmpty(n))for(const u of[].concat(e.details||[])){var o,s,d=u.split("."),c=await getUISchema(d[0]);c&&(((o=await getField(d[0],d[1]))._reference_to||o.reference_to&&!isString(o.reference_to))&&d[1],d[1],s=(o=await getListSchema(t,d[0],"all",{formFactor:r,buttons:await getListViewItemButtons(c,{isMobile:!1})})).amisSchema,c=await getObjectRecordDetailRelatedListHeader(c),s.headerSchema=c,s.headerToolbar=[],s.columnsTogglable=!1,s.globalFilter=s.filters,delete s.ctx,o.amisSchema={type:"service",data:{masterObjectName:i,masterRecordId:"${recordId}",relatedKey:d[1],objectName:d[0],listViewId:`amis-\${appId}-${d[0]}-listview`},body:[{...s,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",[d[1]]:getRelatedFieldValue(i,"${recordId}",o.uiSchema,d[1])}}]},l.push({masterObjectName:i,object_name:d[0],foreign_key:d[1],schema:o}))}else for(const f of n){var p=f.related_field_fullname.split(".");let e=null;var m=await getField(p[0],p[1]);if(m){e=m._reference_to||m.reference_to&&!isString(m.reference_to)?[[p[1]+"/o","=",i],[p[1]+"/ids","=",a]]:[""+p[1],"=",a];const g=await getUISchema(p[0]);if(g){let a=[];forEach(f.field_names,t=>{var e=find(g.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:i,object_name:p[0],foreign_key:p[1],schema:{uiSchema:g,amisSchema:await getObjectList(g,a,{tabId:i,appId:t,objectName:p[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(g,{isMobile:!1})})}})}}}return l}async function getFormPageInitSchema(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await getFormSchema(e,{recordId:"${recordId}"})).amisSchema]}}async function getListPageInitSchema(e,t,a){var i=await getUISchema(e),i=(first(keys(i.list_views)),await getObjectListHeader(i));return{type:"page",bodyClassName:"p-0",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:i}]}}async function getRecordPageInitSchema(e){var t=await getAmisObjectRelatedList(null,e,"${recordId}",null),a=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}"}],i={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"},t=map(t,e=>e.schema.amisSchema);return t.length&&i.tabs.push({title:"相关",body:t}),a.push(i),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:a}}async function getListviewInitSchema(e,a,t){t=t||{};var i,r=await getUISchema(e),l=find(r.list_views,(e,t)=>t===a);let n={};return l&&(t=getListViewColumns(l,t.formFactor),i=getListViewSort(l),r=await getObjectListHeader(r,a,{onlySecordLine:!0,isListviewInit:!0}),n={type:"steedos-object-table",objectApiName:e,columns:t,extraColumns:l.extra_columns,filters:l.filters,sort:i,headerSchema:r}),{type:"page",bodyClassName:"p-0",regions:["body"],body:[n],data:{listName:a}}}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}const getNotifications=async()=>{var e=getSteedosAuth(),e=`
566
+ `;return(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getRecordPermissions=async(e,t)=>{return await fetchAPI(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"})};let UI_SCHEMA_CACHE={},UISchemaFunction;const setUISchemaFunction=function(e){UISchemaFunction=e},setUISchemaCache=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE),(e,t)=>{UI_SCHEMA_CACHE[e]=t}),getUISchemaCache=e=>cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let a=[];return a="SMALL"===t?isEmpty(e.mobile_columns)?slice(e.columns,0,4):e.mobile_columns:e.columns}function getListViewSort(e){let i="";return e&&e.sort&&e.sort.length&&each(e.sort,function(e,t){var a;isArray(e)?(a=e[0]+" "+(e[1]||""),a=0<t?","+a:a,i+=a):(a=e.field_name+" "+e.order,a=0<t?","+a:a,i+=a)}),i}async function getUISchema(t,e){if(t){if(!hasUISchemaCache(t)||e){let a=null;try{if(!(a=UISchemaFunction?await UISchemaFunction(t,e):await fetchAPI(`/service/api/@${t.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;setUISchemaCache(t,a),each(a.list_views,(e,t)=>{e.name=t,has(e,"columns")||(e.columns=a.list_views.all.columns)})}catch(e){console.error("getUISchema",t,e),setUISchemaCache(t,null)}}return getUISchemaCache(t)}}async function getField(e,t){return(await getUISchema(e))?.fields[t]}async function getFormSchema(e,t){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectForm(e,t)}}async function getViewSchema(e,t,a){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectDetail(e,t,a)}}async function getListSchema(e,t,a,i={}){var r=await getUISchema(t),l=find(r.list_views,(e,t)=>t===(a=a||t));if(!l)return{uiSchema:r};if(l.enable_amis_schema&&l.amis_schema)return{uiSchema:r,isCustom:!0,amisSchema:isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema};var n=getListViewColumns(l,i.formFactor),o=getListViewSort(l),s=i.defaults||{};!s.headerSchema&&i.showHeader&&(s.headerSchema=await getObjectListHeader(r)),i.showHeader||(s.headerSchema=null);try{var d,c=location.pathname+"/crud/"+i.listViewId,p=localStorage.getItem(c);p&&(p=JSON.parse(p),d={},p.orderBy&&(d.orderBy=p.orderBy),p.orderDir&&(d.orderDir=p.orderDir),p.perPage&&(d.defaultParams={perPage:p.perPage}),s.listSchema=defaultsDeep$1({},d,s.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}return i.defaults=s,{uiSchema:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:n,extraColumns:l.extra_columns,filters:l.filters,sort:o,ctx:i}}}async function getTableSchema(e,t,a,i={}){const r=await getUISchema(t);let l=i.sort;l||(o=i.sortField,s=i.sortOrder,o&&(l=o+" "+s||"asc"));let n=[];each(a,function(e){isString(e)&&r.fields[e]?n.push(r.fields[e]):isObject$1(e)&&r.fields[e.field]&&n.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))});var o=i.extraColumns,s=(o&&each(o,function(e){isString(e)?n.push({extra:!0,name:e}):isObject$1(e)&&n.push({extra:!0,name:e.field})}),await getObjectList(r,n,{tabId:t,appId:e,objectName:t,...i,filter:i.filters,sort:l,buttons:await getListViewItemButtons(r,i)}));return{uiSchema:r,amisSchema:s}}async function getRecordDetailHeaderSchema(e,t){e=await getUISchema(e);return{uiSchema:e,amisSchema:await getObjectRecordDetailHeader(e,t)}}async function getRecordDetailRelatedListSchema(t,e,a){var i=await getUISchema(a),{list_views:r,fields:l}=i;return{uiSchema:i,amisSchema:(await getListSchema(null,a,keys(r)[0],{globalFilter:[findKey(l,function(e){return-1<["lookup","master_detail"].indexOf(e.type)&&e.reference_to===t}),"=",e],defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:await getObjectRecordDetailRelatedListHeader(i)},showHeader:!0})).amisSchema}}async function getObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],n=[].concat(e.related_lists||[]);if(isEmpty(n))for(const m of[].concat(e.details||[])){var o=m.split("."),s=await getUISchema(o[0]);if(s){let e=null;var d=await getField(o[0],o[1]);e=d._reference_to||d.reference_to&&!isString(d.reference_to)?[[o[1]+"/o","=",i],[o[1]+"/ids","=",a]]:[""+o[1],"=",a],l.push({masterObjectName:i,object_name:o[0],foreign_key:o[1],schema:await getListSchema(t,o[0],"all",{globalFilter:e,formFactor:r,buttons:await getListViewItemButtons(s,{isMobile:!1})})})}}else for(const u of n){var c=u.related_field_fullname.split(".");let e=null;var p=await getField(c[0],c[1]);if(p){e=p._reference_to||p.reference_to&&!isString(p.reference_to)?[[c[1]+"/o","=",i],[c[1]+"/ids","=",a]]:[""+c[1],"=",a];const f=await getUISchema(c[0]);if(f){let a=[];forEach(u.field_names,t=>{var e=find(f.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:i,object_name:c[0],foreign_key:c[1],schema:{uiSchema:f,amisSchema:await getObjectList(f,a,{tabId:i,appId:t,objectName:c[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(f,{isMobile:!1})})}})}}}return l}async function getObjectRelated({appName:e,masterObjectName:t,objectName:a,relatedFieldName:i,recordId:r,formFactor:l}){let n=null;var o=await getField(a,i),o=(n=o._reference_to||o.reference_to&&!isString(o.reference_to)?[[i+"/o","=",t],[i+"/ids","=",r]]:[""+i,"=",r],await getUISchema(t));return{masterObjectName:t,object_name:a,foreign_key:i,schema:await getListSchema(e,a,"all",{globalFilter:n,formFactor:l}),record:await getRecord(t,r,[o.NAME_FIELD_KEY]),masterObjectUISchema:o}}async function getSearchableFieldsFilterSchema(e,t,a){return getObjectFieldsFilterFormSchema(e,t,a)}const getRelatedFieldValue=(e,t,a,i)=>{a=find(a.fields,e=>i===e?.name);return isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]}};async function getAmisObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],n=[].concat(e.related_lists||[]);if(isEmpty(n))for(const u of[].concat(e.details||[])){var o,s,d=u.split("."),c=await getUISchema(d[0]);c&&(((o=await getField(d[0],d[1]))._reference_to||o.reference_to&&!isString(o.reference_to))&&d[1],d[1],s=(o=await getListSchema(t,d[0],"all",{formFactor:r,buttons:await getListViewItemButtons(c,{isMobile:!1})})).amisSchema,c=await getObjectRecordDetailRelatedListHeader(c),s.headerSchema=c,s.headerToolbar=[],s.columnsTogglable=!1,s.globalFilter=s.filters,delete s.ctx,o.amisSchema={type:"service",data:{masterObjectName:i,masterRecordId:"${recordId}",relatedKey:d[1],objectName:d[0],listViewId:`amis-\${appId}-${d[0]}-listview`},body:[{...s,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",[d[1]]:getRelatedFieldValue(i,"${recordId}",o.uiSchema,d[1])}}]},l.push({masterObjectName:i,object_name:d[0],foreign_key:d[1],schema:o}))}else for(const f of n){var p=f.related_field_fullname.split(".");let e=null;var m=await getField(p[0],p[1]);if(m){e=m._reference_to||m.reference_to&&!isString(m.reference_to)?[[p[1]+"/o","=",i],[p[1]+"/ids","=",a]]:[""+p[1],"=",a];const g=await getUISchema(p[0]);if(g){let a=[];forEach(f.field_names,t=>{var e=find(g.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:i,object_name:p[0],foreign_key:p[1],schema:{uiSchema:g,amisSchema:await getObjectList(g,a,{tabId:i,appId:t,objectName:p[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(g,{isMobile:!1})})}})}}}return l}async function getFormPageInitSchema(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await getFormSchema(e,{recordId:"${recordId}"})).amisSchema]}}async function getListPageInitSchema(e,t,a){var i=await getUISchema(e),i=(first(keys(i.list_views)),await getObjectListHeader(i));return{type:"page",bodyClassName:"p-0",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:i}]}}async function getRecordPageInitSchema(e){var t=await getAmisObjectRelatedList(null,e,"${recordId}",null),a=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.name}"}}]}}}],i={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"},t=map(t,e=>e.schema.amisSchema);return t.length&&i.tabs.push({title:"相关",body:t}),a.push(i),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:a}}async function getListviewInitSchema(e,a,t){t=t||{};var i,r=await getUISchema(e),l=find(r.list_views,(e,t)=>t===a);let n={};return l&&(t=getListViewColumns(l,t.formFactor),i=getListViewSort(l),r=await getObjectListHeader(r,a,{onlySecordLine:!0,isListviewInit:!0}),n={type:"steedos-object-table",objectApiName:e,columns:t,extraColumns:l.extra_columns,filters:l.filters,sort:i,headerSchema:r}),{type:"page",bodyClassName:"p-0",regions:["body"],body:[n],data:{listName:a}}}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}const getNotifications=async()=>{var e=getSteedosAuth(),e=`
560
567
  {
561
568
  notifications(filters: ["owner","=","${e.userId}"], sort: "created desc,name", top : 10){
562
569
  _id,name,body,related_to,related_name,url,owner,is_read,from,created