@steedos-widgets/amis-lib 1.0.15 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -220,7 +220,7 @@
220
220
  delete payload.extensions;
221
221
  }
222
222
  return payload;
223
- `,data:await Z(d,a,r),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}),initApi:null,initFetch:null,body:[c({},o,{type:"form",mode:l,labelAlign:s,persistData:!1,promptPageLeave:!0,name:"form_edit_"+i,debug:!1,title:"",submitText:"",api:await ne(e,i,n),initFetch:"new"!=i,body:await ue(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"},{actionType:"custom",script:`
223
+ `,data:await Z(d,a,r),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}),initApi:null,initFetch:null,body:[c({},o,{type:"form",mode:l,labelAlign:s,persistData:!1,promptPageLeave:!0,name:"form_edit_"+i,debug:!1,title:"",submitText:"",api:await ne(e,i,n),initFetch:"new"!=i,body:await ue(n,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"steedos-amis-form",onEvent:{submitSucc:{weight:0,actions:[{componentId:"steedos-record-related-list-"+e.name,actionType:"setValue",args:{value:{$count:void 0}}},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"},{actionType:"custom",script:`
224
224
  const { recordId, listViewId } = context.props.data;
225
225
  const data = event.data;
226
226
  const appId = data.appId;
@@ -271,7 +271,7 @@
271
271
  `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},Be=(e,t)=>(t?Pe:Le)(e);async function Re(e){e=e.buttons;const t=[];if(b.each(e,e=>{b.isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:function(e){let t=e.visible;if(e._visible&&(t=e._visible),t=b.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}}(e),className:"antd-Button--default"})}),!(t.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],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:`
272
272
  payload.recordPermissions = payload;
273
273
  return payload;
274
- `}}]}}async function ze(e,t){var a,e=await async function(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const i of e)if(!i.is_name&&i.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===i.type||"image"===i.type||"file"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap",...Pe(i)});else{var r=await re(i,t);let e="text";r?e="tpl":"html"===i.type&&(e="markdown"),i.hidden||i.extra||a.push({name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:r,toggled:i.toggled,className:"textarea"===i.type?"min-w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===i.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${i.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}(e,t=t||{});return e.push(await Re(t)),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-0",className:"",draggable:!1,defaultParams:{perPage:(a=t).top||a.perPage||ve.listView.perPage},columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function Je(e,t,a){const r=[];let{globalFilter:i,filter:l,sort:s,top:o,setDataToComponentId:n=""}=a,d=(l=(l=g.isArray(l)?g.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e}):l)||[],null);b.isEmpty(i)||b.isEmpty(l)?i?d=i:l&&(d=l):d=[i,"and",l],g.each(t,function(e){e.searchable&&r.push(e.name)});const c={},p=[];t.forEach(e=>{g.includes(["image","avatar","file"],e.type)&&(p.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})});a=e.key_field||"_id",t=await Me(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.data.listViewId="${listViewId}",t.requestAdaptor=`
274
+ `}}]}}async function ze(e,t){var a,e=await async function(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const i of e)if(!i.is_name&&i.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===i.type||"image"===i.type||"file"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap",...Pe(i)});else{var r=await re(i,t);let e="text";r?e="tpl":"html"===i.type&&(e="markdown"),i.hidden||i.extra||a.push({name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:r,toggled:i.toggled,className:"textarea"===i.type?"min-w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===i.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${i.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}(e,t=t||{});return e.push(await Re(t)),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-0",className:"",draggable:!1,defaultParams:{perPage:(a=t).top||a.perPage||ve.listView.perPage},columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function Je(e,t,a){const r=[];let{globalFilter:i,filter:l,filtersFunction:s,sort:o,top:n,setDataToComponentId:d=""}=a,c=(l=(l=g.isArray(l)?g.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e}):l)||[],null);b.isEmpty(i)||b.isEmpty(l)?i?c=i:l&&(c=l):c=[i,"and",l],g.each(t,function(e){e.searchable&&r.push(e.name)});const p={},u=[];t.forEach(e=>{g.includes(["image","avatar","file"],e.type)&&(u.push(e.name),p[e.name]={name:e.name,type:e.type,multiple:e.multiple})});a=e.key_field||"_id",t=await Me(e,null,t,{alias:"rows",limit:n,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.data.listViewId="${listViewId}",t.requestAdaptor=`
275
275
  let selfData = JSON.parse(JSON.stringify(api.data.$self));
276
276
  try{
277
277
  // TODO: 不应该直接在这里取localStorage,应该从外面传入
@@ -295,7 +295,18 @@
295
295
  catch(ex){
296
296
  console.error("本地存储中crud参数解析异常:", ex);
297
297
  }
298
- ${d?`var systemFilters = ${JSON.stringify(d)};`:"var systemFilters = [];"}
298
+ ${c?`var systemFilters = ${JSON.stringify(c)};`:"var systemFilters = [];"}
299
+ const filtersFunction = ${s};
300
+ if(filtersFunction){
301
+ const _filters = filtersFunction(systemFilters, selfData);
302
+ if(_filters && _filters.length > 0){
303
+ if(_.isEmpty(systemFilters)){
304
+ systemFilters = _filters || [];
305
+ }else{
306
+ systemFilters = [systemFilters, 'and', _filters];
307
+ }
308
+ }
309
+ }
299
310
  let userFilters =[];
300
311
 
301
312
  if(_.isEmpty(systemFilters)){
@@ -311,7 +322,7 @@
311
322
  var orderBy = api.data.orderBy || '';
312
323
  var orderDir = api.data.orderDir || '';
313
324
  var sort = orderBy + ' ' + orderDir;
314
- sort = orderBy ? sort : "${s}";
325
+ sort = orderBy ? sort : "${o}";
315
326
  var allowSearchFields = ${JSON.stringify(r)};
316
327
  if(api.data.$term){
317
328
  userFilters = [["name", "contains", "'+ api.data.$term +'"]];
@@ -394,7 +405,7 @@
394
405
  })
395
406
  }
396
407
  window.postMessage(Object.assign({type: "listview.loaded"}), "*");
397
- let fileFields = ${JSON.stringify(c)};
408
+ let fileFields = ${JSON.stringify(p)};
398
409
  _.each(payload.data.rows, function(item, index){
399
410
  _.each(fileFields , (field, key)=>{
400
411
  if(item[key] && item._display && item._display [key]){
@@ -476,7 +487,7 @@
476
487
  // 标记加载过,后续优先从本地存储中加载相关参数
477
488
  payload.data.loaded= true;
478
489
 
479
- const setDataToComponentId = "${n}";
490
+ const setDataToComponentId = "${d}";
480
491
  if(setDataToComponentId){
481
492
  SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
482
493
  }
@@ -708,41 +719,7 @@
708
719
  `,r&&r.labelField.name,r&&r.valueField.name,e._optionsFunction&&(i.adaptor=`
709
720
  payload.data.options = eval(${e._optionsFunction})(api.data);
710
721
  return payload;
711
- `);l={type:k("select",t),joinValues:!1,extractValue:!0,source:i,autoComplete:i,searchable:!0};let o=e.defaultValue;return!g.has(e,"defaultValue")||g.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(g.isString(o)&&o.startsWith("{{")&&(o="$"+o.substring(1,o.length-1)),l.value=o),e.multiple&&(l.multiple=!0,l.extractValue=!0),t&&(l.tpl=await w(e,a)),l}async function Ze(e,t,a,r){e=await l(e,t,a,r);return{method:"post",url:m(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Xe(e,t,a){var r,i;return t?{type:k("picker",t),tpl:ee(e,a)}:!e.reference_to||g.isString(e.reference_to)||t?((r=await Ye(e))?(i=await V(r.objectName),"space_users"===r.objectName?Qe:1==i.enable_enhanced_lookup&&g.isEmpty(e.depend_on)?We:Ge):Ge)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function Qe(e,t,a){return Ke(e,t,a)}const et=["created","created_by","modified","modified_by"];function tt(t,e){var a=Object.assign({subFields:[]},t),e=g.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function at(t,e){var a=Object.assign({subFields:[]},t),e=g.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function rt(e){const t=e.data_type||"text",a=[];return g.each(e.options,e=>{switch(t){case"number":a.push({label:e.label,value:Number(e.value)});break;case"text":a.push({label:e.label,value:String(e.value)});break;case"boolean":a.push({label:e.label,value:"false"!==e.value})}}),a}async function O(a,r,i){if(!g.includes(et,a.name)||1==i.showSystemFields){var l,s,o={name:i.fieldNamePrefix?""+i.fieldNamePrefix+a.name:a.name,label:a.label,labelRemark:a.inlineHelpText,required:(g.has(i,"required")?i:a).required};let t={};switch(a.type){case"text":t.type=k("text",r);break;case"textarea":t.type=k("textarea",r),t.tpl=`<b><%=data.${a.name}%></b>`;break;case"html":t=(s=a,r?{type:"html",name:s.name}:{type:"input-rich-text",name:s.name});break;case"markdown":t=(s=a,r?{type:"markdown",name:s.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:s.name,language:"markdown"},{type:"markdown",name:s.name,options:{linkify:!0,html:!0,breaks:!0}}]});break;case"select":t={type:k("select",r),joinValues:!1,options:rt(a),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:r?y(a):null};let e=a.defaultValue;!g.has(a,"defaultValue")||g.isString(a.defaultValue)&&a.defaultValue.startsWith("{")||(g.isString(e)&&e.startsWith("{{")&&(e="$"+e.substring(1,e.length-1)),l=a.data_type||"text",null!=e&&("text"===l?t.value=String(e):"number"===l?t.value=Number(e):"boolean"===l&&(t.value="false"!==e))),a.multiple&&(t.multiple=!0,t.extractValue=!0);break;case"boolean":t={type:k("checkbox",r),tpl:r?te(a):null};break;case"input-date-range":t={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:r?p(a):null,joinValues:!1};break;case"date":t={type:k("date",r),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:r?p(a):null};break;case"input-datetime-range":t={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:r?f(a):null,utc:!0,joinValues:!1};break;case"datetime":t={type:k("datetime",r),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:r?f(a):null,utc:!0};break;case"input-time-range":t={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:r?f(a):null,joinValues:!1};break;case"time":t={type:k("time",r),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:r?f(a):null};break;case"currency":case"number":t=r?{type:"static-tpl",tpl:Q(a)}:{type:k("number",r),min:a.min,max:a.max,precision:a.scale};break;case"input-array":t=Object.assign({},a,o);break;case"input-range":t={type:"input-range",min:a.min,max:a.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":t={type:k("number",r),min:a.min,max:a.max,precision:a.scale};break;case"password":t={type:k("password",r),tpl:r?ae(a):null};break;case"lookup":case"master_detail":t=await Xe(a,r,i);break;case"autonumber":r&&(t={type:"static-text"});break;case"url":t={type:k("url",r)};break;case"email":t={type:k("email",r)};break;case"avatar":case"image":case"file":t=Be(a,r);break;case"formula":case"summary":r&&(t.type=k(a.data_type,r));break;case"code":t={type:"editor",language:a.language,value:a.defaultValue||""};break;case"toggle":t={type:"switch",name:a.name,label:a.label,width:a.width,toggled:a.toggled,disabled:r};break;case"grid":t={type:"input-table",strictMode:!1,affixHeader:!1,editable:!r,addable:!r,removable:!r,draggable:!r,columns:[]};for(const c of a.subFields){var n=c.name.replace(a.name+".$.","").replace(a.name+".",""),d=await O(Object.assign({},c,{name:n}),r,i);d&&(delete d.name,delete d.label,t.columns.push({name:n,label:c.label,quickEdit:!r&&d}))}}return g.isEmpty(t)?void 0:(a.is_wide||"group"===t.type?t.className="col-span-2 m-1":t.className="m-1",r&&(t.className=t.className+" md:border-b"),r&&(t.quickEdit=!1),a.visible_on&&(a.visible_on.startsWith("{{")?t.visibleOn=""+a.visible_on.substring(2,a.visible_on.length-2).replace(/formData./g,"data."):t.visibleOn=""+a.visible_on.replace(/formData./g,"data.")),"group"===t.type?(t.body[0]=Object.assign({},o,t.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:a.name}),t):Object.assign({},o,t,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:a.name}))}}async function it(e,t,a){var r=a.filterLoopCount||0;let i=e,l=("grid"===i.type?i=await at(e,t):"object"===e.type&&(i=await tt(e,t)),"__searchable__");if(i.name.indexOf(".")<0){e=b.cloneDeep(i),t=(b.includes(["textarea","html","code","autonumber"],i.type)&&(e.type="text"),"number"!==i.type&&"currency"!==i.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,l+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,l+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,l+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,l+="between__"),"users"===i.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,await O(e,!1,Object.assign({},a,{fieldNamePrefix:l,required:!1,showSystemFields:!0,filterVisible:r<5})));if(t)return t}}var lt=Object.freeze({__proto__:null,OMIT_FIELDS:et,getBaseFields:function(e){let t="m-1";return[{name:"createdInfo",label:"创建人",type:"static",labelClassName:"text-left",className:t=e?""+t:t,tpl:`<div><a href='${v.getObjectDetailPath({formFactor:r,appId:"admin",objectName:"users",recordId:"${created_by._id}"})}'>\${_display.created_by.label}</a>\${_display.created}</div>`},{name:"modifiedInfo",label:"修改人",type:"static",labelClassName:"text-left",className:t,tpl:`<div><a href='${v.getObjectDetailPath({formFactor:a,appId:"admin",objectName:"users",recordId:"${modified_by._id}"})}'>\${_display.modified_by.label}</a>\${_display.modified}</div>`}];var a,r},getAmisFieldType:function(e){switch(e.type){case"text":return"text";case"textarea":return"textarea";case"html":return"html";case"markdown":return"markdown";case"select":return"select";case"boolean":return"checkbox";case"date":return"date";case"datetime":return"datetime";case"number":case"currency":case"percent":return"number";case"password":return"password";case"lookup":return"select";case"master_detail":return"picker";case"autonumber":return"text";case"url":return"url";case"email":return"email";case"image":return"image";case"formula":case"summary":break;case"grid":return"table";default:console.log("convertData default",e.type)}},getObjectFieldSubFields:tt,getGridFieldSubFields:at,getPermissionFields:function(e,t){const a=[],r=[];return g.each(e.fields,(e,t)=>{g.has(e,"name")||(e.name=t),r.push(e)}),g.each(g.sortBy(r,"sort_no"),function(e){e.hidden||a.push(Object.assign({},e,{permission:{allowEdit:!0}}))}),a},getSelectFieldOptions:rt,convertSFieldToAmisField:O,getFieldSearchable:it,getAmisStaticFieldType:k});async function st(e){return{type:"button",label:"",icon:"fa fa-search",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"broadcast",args:{eventName:"broadcast_toggle_fields_filter"}}]}}}}async function ot(e,t,a){a=a||{};var r,i,l=[];for(r of t)b.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],r.type)||(delete r.defaultValue,delete r.required,delete r.is_wide,delete r.readonly,delete r.hidden,delete r.omit,(i=await it(r,t,a))&&l.push(i));b.map(l,"name"),a.enableSearchableFieldsVisibleOn&&l.forEach(function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`});return{title:"",type:"form",name:"listview-filter-form",id:"listview_filter_form_"+e.name,mode:"normal",wrapWithPanel:!1,className:"sm:grid sm:gap-2 sm:grid-cols-4 mb-2",data:{"&":"${filterFormValues || {}}",...a.initData},body:l,onEvent:{broadcastSearchableFieldsChange:{actions:[{actionType:"custom",script:`
712
- const data = event.data;
713
- const listViewId = data.listViewId;
714
- const searchableFields = data.fields;
715
- const preSearchableFields = data.__super.__super.fields;
716
- const removedFields = _.difference(preSearchableFields, searchableFields);
717
- const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
718
- let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
719
- if(localListViewProps){
720
- // 当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。
721
- localListViewProps = JSON.parse(localListViewProps);
722
- let removedKeys = [];
723
- _.each(localListViewProps, function(n,k){
724
- // __searchable__开头的不在searchableFields范围则清除其值
725
- let isRemoved = !!removedFields.find(function(fieldName){
726
- return new RegExp("__searchable__.*" + fieldName + "$").test(k);
727
- });
728
- if(isRemoved){
729
- removedKeys.push(k);
730
- }
731
- });
732
- const removedValues = {};
733
- removedKeys.forEach(function(key){
734
- delete localListViewProps[key];
735
- removedValues[key] = "";
736
- });
737
- doAction({
738
- actionType: 'setValue',
739
- args: {
740
- value: removedValues
741
- }
742
- });
743
- localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
744
- }
745
- `}]}}}}async function nt(e,t,a){a=a||{};t=await ot(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a));return{type:"service",data:{},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:`
722
+ `);l={type:k("select",t),joinValues:!1,extractValue:!0,source:i,autoComplete:i,searchable:!0};let o=e.defaultValue;return!g.has(e,"defaultValue")||g.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(g.isString(o)&&o.startsWith("{{")&&(o="$"+o.substring(1,o.length-1)),l.value=o),e.multiple&&(l.multiple=!0,l.extractValue=!0),t&&(l.tpl=await w(e,a)),l}async function Ze(e,t,a,r){e=await l(e,t,a,r);return{method:"post",url:m(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Xe(e,t,a){var r,i;return t?{type:k("picker",t),tpl:ee(e,a)}:!e.reference_to||g.isString(e.reference_to)||t?((r=await Ye(e))?(i=await V(r.objectName),"space_users"===r.objectName?Qe:1==i.enable_enhanced_lookup&&g.isEmpty(e.depend_on)?We:Ge):Ge)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function Qe(e,t,a){return Ke(e,t,a)}const et=["created","created_by","modified","modified_by"];function tt(t,e){var a=Object.assign({subFields:[]},t),e=g.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function at(t,e){var a=Object.assign({subFields:[]},t),e=g.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function rt(e){const t=e.data_type||"text",a=[];return g.each(e.options,e=>{switch(t){case"number":a.push({label:e.label,value:Number(e.value)});break;case"text":a.push({label:e.label,value:String(e.value)});break;case"boolean":a.push({label:e.label,value:"false"!==e.value})}}),a}async function O(a,r,i){if(!g.includes(et,a.name)||1==i.showSystemFields){var l,s,o={name:i.fieldNamePrefix?""+i.fieldNamePrefix+a.name:a.name,label:a.label,labelRemark:a.inlineHelpText,required:(g.has(i,"required")?i:a).required};let t={};switch(a.type){case"text":t.type=k("text",r);break;case"textarea":t.type=k("textarea",r),t.tpl=`<b><%=data.${a.name}%></b>`;break;case"html":t=(s=a,r?{type:"html",name:s.name}:{type:"input-rich-text",name:s.name});break;case"markdown":t=(s=a,r?{type:"markdown",name:s.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:s.name,language:"markdown"},{type:"markdown",name:s.name,options:{linkify:!0,html:!0,breaks:!0}}]});break;case"select":t={type:k("select",r),joinValues:!1,options:rt(a),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:r?y(a):null};let e=a.defaultValue;!g.has(a,"defaultValue")||g.isString(a.defaultValue)&&a.defaultValue.startsWith("{")||(g.isString(e)&&e.startsWith("{{")&&(e="$"+e.substring(1,e.length-1)),l=a.data_type||"text",null!=e&&("text"===l?t.value=String(e):"number"===l?t.value=Number(e):"boolean"===l&&(t.value="false"!==e))),a.multiple&&(t.multiple=!0,t.extractValue=!0);break;case"boolean":t={type:k("checkbox",r),tpl:r?te(a):null};break;case"input-date-range":t={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:r?p(a):null,joinValues:!1};break;case"date":t={type:k("date",r),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:r?p(a):null};break;case"input-datetime-range":t={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:r?f(a):null,utc:!0,joinValues:!1};break;case"datetime":t={type:k("datetime",r),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:r?f(a):null,utc:!0};break;case"input-time-range":t={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:r?f(a):null,joinValues:!1};break;case"time":t={type:k("time",r),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:r?f(a):null};break;case"currency":case"number":t=r?{type:"static-tpl",tpl:Q(a)}:{type:k("number",r),min:a.min,max:a.max,precision:a.scale};break;case"input-array":t=Object.assign({},a,o);break;case"input-range":t={type:"input-range",min:a.min,max:a.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":t={type:k("number",r),min:a.min,max:a.max,precision:a.scale};break;case"password":t={type:k("password",r),tpl:r?ae(a):null};break;case"lookup":case"master_detail":t=await Xe(a,r,i);break;case"autonumber":r&&(t={type:"static-text"});break;case"url":t={type:k("url",r)};break;case"email":t={type:k("email",r)};break;case"avatar":case"image":case"file":t=Be(a,r);break;case"formula":case"summary":r&&(t.type=k(a.data_type,r));break;case"code":t={type:"editor",language:a.language,value:a.defaultValue||""};break;case"toggle":t={type:"switch",name:a.name,label:a.label,width:a.width,toggled:a.toggled,disabled:r};break;case"grid":t={type:"input-table",strictMode:!1,affixHeader:!1,editable:!r,addable:!r,removable:!r,draggable:!r,columns:[]};for(const c of a.subFields){var n=c.name.replace(a.name+".$.","").replace(a.name+".",""),d=await O(Object.assign({},c,{name:n}),r,i);d&&(delete d.name,delete d.label,t.columns.push({name:n,label:c.label,quickEdit:!r&&d}))}}return g.isEmpty(t)?void 0:(a.is_wide||"group"===t.type?t.className="col-span-2 m-1":t.className="m-1",r&&(t.className=t.className+" md:border-b"),r&&(t.quickEdit=!1),a.visible_on&&(a.visible_on.startsWith("{{")?t.visibleOn=""+a.visible_on.substring(2,a.visible_on.length-2).replace(/formData./g,"data."):t.visibleOn=""+a.visible_on.replace(/formData./g,"data.")),"group"===t.type?(t.body[0]=Object.assign({},o,t.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:a.name}),t):Object.assign({},o,t,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:a.name}))}}async function it(e,t,a){var r=a.filterLoopCount||0;let i=e,l=("grid"===i.type?i=await at(e,t):"object"===e.type&&(i=await tt(e,t)),"__searchable__");if(i.name.indexOf(".")<0){e=b.cloneDeep(i),t=(b.includes(["textarea","html","code","autonumber"],i.type)&&(e.type="text"),"number"!==i.type&&"currency"!==i.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,l+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,l+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,l+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,l+="between__"),"users"===i.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,await O(e,!1,Object.assign({},a,{fieldNamePrefix:l,required:!1,showSystemFields:!0,filterVisible:r<5})));if(t)return t}}var lt=Object.freeze({__proto__:null,OMIT_FIELDS:et,getBaseFields:function(e){let t="m-1";return[{name:"createdInfo",label:"创建人",type:"static",labelClassName:"text-left",className:t=e?""+t:t,tpl:`<div><a href='${v.getObjectDetailPath({formFactor:r,appId:"admin",objectName:"users",recordId:"${created_by._id}"})}'>\${_display.created_by.label}</a>\${_display.created}</div>`},{name:"modifiedInfo",label:"修改人",type:"static",labelClassName:"text-left",className:t,tpl:`<div><a href='${v.getObjectDetailPath({formFactor:a,appId:"admin",objectName:"users",recordId:"${modified_by._id}"})}'>\${_display.modified_by.label}</a>\${_display.modified}</div>`}];var a,r},getAmisFieldType:function(e){switch(e.type){case"text":return"text";case"textarea":return"textarea";case"html":return"html";case"markdown":return"markdown";case"select":return"select";case"boolean":return"checkbox";case"date":return"date";case"datetime":return"datetime";case"number":case"currency":case"percent":return"number";case"password":return"password";case"lookup":return"select";case"master_detail":return"picker";case"autonumber":return"text";case"url":return"url";case"email":return"email";case"image":return"image";case"formula":case"summary":break;case"grid":return"table";default:console.log("convertData default",e.type)}},getObjectFieldSubFields:tt,getGridFieldSubFields:at,getPermissionFields:function(e,t){const a=[],r=[];return g.each(e.fields,(e,t)=>{g.has(e,"name")||(e.name=t),r.push(e)}),g.each(g.sortBy(r,"sort_no"),function(e){e.hidden||a.push(Object.assign({},e,{permission:{allowEdit:!0}}))}),a},getSelectFieldOptions:rt,convertSFieldToAmisField:O,getFieldSearchable:it,getAmisStaticFieldType:k});async function st(e){return{type:"button",label:"",icon:"fa fa-search",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"broadcast",args:{eventName:"broadcast_toggle_fields_filter"}}]}}}}async function ot(e,t,a){a=a||{};var r,i,l=[];for(r of t)b.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],r.type)||(delete r.defaultValue,delete r.required,delete r.is_wide,delete r.readonly,delete r.hidden,delete r.omit,(i=await it(r,t,a))&&l.push(i));return b.map(l,"name"),a.enableSearchableFieldsVisibleOn&&l.forEach(function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`}),{title:"",type:"form",name:"listview-filter-form",id:"listview_filter_form_"+e.name,mode:"normal",wrapWithPanel:!1,className:"sm:grid sm:gap-2 sm:grid-cols-4 mb-2",data:{"&":"${filterFormValues || {}}",...a.initData},body:l}}async function nt(e,t,a){a=a||{};t=await ot(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a));return{type:"service",name:"service_listview_filter_form",data:{},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:`
746
723
  const objectName = data.objectName;
747
724
  const isLookup = data.isLookup;
748
725
  const listViewId = data.listViewId;
@@ -806,7 +783,15 @@
806
783
  var listView = scope.parent.parent.parent.getComponents().find(function(n){
807
784
  return n.props.type === "crud";
808
785
  });
809
- listView.handleFilterSubmit(filterFormValues);
786
+ const removedValues = {};
787
+ // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中
788
+ // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中
789
+ for(var k in filterFormValues){
790
+ if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){
791
+ removedValues[k] = "";
792
+ }
793
+ }
794
+ listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
810
795
  `}]}}},{type:"button",label:"设置搜索项",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:"设置搜索项",body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:null,requestAdaptor:"",adaptor:""},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:"确认",onEvent:{click:{actions:[{actionType:"custom",script:`
811
796
  const data = context.props.data;
812
797
  const listName = data.listName;
@@ -815,6 +800,7 @@
815
800
  const listViewId = data.listViewId;
816
801
  const value = data.fields;
817
802
  const scope = event.context.scoped;
803
+ // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form
818
804
  const filterForm = scope.parent.parent.getComponents().find(function(n){
819
805
  return n.props.type === "form";
820
806
  });
@@ -830,7 +816,74 @@
830
816
  searchableFieldsStoreKey += listViewId;
831
817
  }
832
818
  localStorage.setItem(searchableFieldsStoreKey, value);
833
- `},{actionType:"broadcast",eventName:"broadcastSearchableFieldsChange",args:{eventName:"broadcastSearchableFieldsChange"},data:{fields:"${event.data.fields}"}},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:"border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap "+(!a.isLookup&&"mt-2"),visibleOn:"this.showFieldsFilter"},className:"bg-white"}}const dt={startDateExpr:"start",endDateExpr:"end",allDayExpr:"is_all_day",textExpr:"name"};async function ct(t,e,a){var r=t.permissions,i=(a=a||{},(e=Object.assign({},dt,b.omitBy(e,b.isNil))).title||[e.startDateExpr,e.endDateExpr,e.allDayExpr,e.textExpr]);let l=[],s=(b.each(i,function(e){t.fields[e]&&l.push(t.fields[e])}),t.fields[e.allDayExpr]&&l.push(t.fields[e.allDayExpr]),a.sort||(i=a.sortField,a.sortOrder,i&&0),e.currentView);if(s)switch(s){case"day":s="timeGridDay";break;case"week":s="timeGridWeek";break;case"month":s="dayGridMonth";break;case"agenda":s="timeGridDay"}else s="timeGridWeek";a.calendarOptions=e;var o,n,i=await async function(e,t,a){var r=(a=a||{}).calendarOptions;const i=[];let{globalFilter:l,filter:s,sort:o,top:n,setDataToComponentId:d=""}=a;n=n||200,s=(s=u.default.isArray(s)?u.default.map(s,function(e){return e.operation?[e.field,e.operation,e.value]:e}):s)||[],u.default.each(t,function(e){e.searchable&&i.push(e.name)});var a=e.idFieldName||"_id",c=e.key_field||"_id";return(e=await Me(e,null,t,{alias:"rows",limit:n,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",e.data.$self="$$",e.data.filter="$filter",e.data.pageSize=n||10,e.requestAdaptor=`
819
+
820
+ // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。
821
+ const searchableFields = data.fields;
822
+ let preSearchableFields = data.__super.fields;
823
+ if(typeof preSearchableFields === "string"){
824
+ preSearchableFields = preSearchableFields.split(",");
825
+ }
826
+ const removedFields = _.difference(preSearchableFields, searchableFields);
827
+
828
+ // const getClosestAmisComponentByType = function (scope, type, name) {
829
+ // // 递归children找到listview-filter-form
830
+ // let re = scope.getComponents().find(function (n) {
831
+ // return n.props.type === type && n.props.name === name;
832
+ // });
833
+ // if (re) {
834
+ // return re;
835
+ // }
836
+ // else {
837
+ // if (scope.children && scope.children.length) {
838
+ // for (let i = 0; i < scope.children.length; i++) {
839
+ // re = getClosestAmisComponentByType(scope.children[i], type, name);
840
+ // if (re) {
841
+ // break;
842
+ // }
843
+ // }
844
+ // return re;
845
+ // }
846
+
847
+ // }
848
+ // }
849
+ // // 这里第二层form才是真正要提交到crud过滤条件的form
850
+ // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");
851
+
852
+ const filterFormValues = filterForm.getValues();
853
+ let removedKeys = [];
854
+ _.each(filterFormValues, function(n,k){
855
+ // __searchable__开头的不在searchableFields范围则清除其值
856
+ let isRemoved = !!removedFields.find(function(fieldName){
857
+ return new RegExp("__searchable__.*" + fieldName + "$").test(k);
858
+ });
859
+ if(isRemoved){
860
+ removedKeys.push(k);
861
+ }
862
+ });
863
+ const removedValues = {};
864
+ removedKeys.forEach(function(key){
865
+ removedValues[key] = "";
866
+ });
867
+ filterForm.setValues(removedValues);//这里使用filterInnerForm也可以
868
+
869
+ if(isLookup){
870
+ return;
871
+ }
872
+
873
+ // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值
874
+ const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
875
+ let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
876
+ if(localListViewProps){
877
+ localListViewProps = JSON.parse(localListViewProps);
878
+ // const removedValues = {};
879
+ removedKeys.forEach(function(key){
880
+ delete localListViewProps[key];
881
+ // removedValues[key] = "";
882
+ });
883
+ localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
884
+ }
885
+ // ===END===
886
+ `},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:"border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap "+(!a.isLookup&&"mt-2"),visibleOn:"this.showFieldsFilter"},className:"bg-white"}}const dt={startDateExpr:"start",endDateExpr:"end",allDayExpr:"is_all_day",textExpr:"name"};async function ct(t,e,a){var r=t.permissions,i=(a=a||{},(e=Object.assign({},dt,b.omitBy(e,b.isNil))).title||[e.startDateExpr,e.endDateExpr,e.allDayExpr,e.textExpr]);let l=[],s=(b.each(i,function(e){t.fields[e]&&l.push(t.fields[e])}),t.fields[e.allDayExpr]&&l.push(t.fields[e.allDayExpr]),a.sort||(i=a.sortField,a.sortOrder,i&&0),e.currentView);if(s)switch(s){case"day":s="timeGridDay";break;case"week":s="timeGridWeek";break;case"month":s="dayGridMonth";break;case"agenda":s="timeGridDay"}else s="timeGridWeek";a.calendarOptions=e;var o,n,i=await async function(e,t,a){var r=(a=a||{}).calendarOptions;const i=[];let{globalFilter:l,filter:s,sort:o,top:n,setDataToComponentId:d=""}=a;n=n||200,s=(s=u.default.isArray(s)?u.default.map(s,function(e){return e.operation?[e.field,e.operation,e.value]:e}):s)||[],u.default.each(t,function(e){e.searchable&&i.push(e.name)});var a=e.idFieldName||"_id",c=e.key_field||"_id";return(e=await Me(e,null,t,{alias:"rows",limit:n,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",e.data.$self="$$",e.data.filter="$filter",e.data.pageSize=n||10,e.requestAdaptor=`
834
887
  let selfData = JSON.parse(JSON.stringify(api.data.$self));
835
888
  ${l?`var filters = ${JSON.stringify(l)};`:"var filters = [];"}
836
889
  if(_.isEmpty(filters)){
@@ -1042,7 +1095,7 @@
1042
1095
  "actions": []
1043
1096
  }
1044
1097
  });
1045
- `}]},eventAdd:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventAdd'); console.log(event);"}]},eventChange:{weight:0,actions:[{actionType:"ajax",args:{api:n}},{actionType:"toast",expression:"!event.data.editable",args:{msgType:"error",msg:"您没有编辑该记录的权限!",position:"top-center"}},{actionType:"ajax",expression:"event.data.editable",args:{api:d,messages:{success:t.label+"修改成功",failed:t.label+"修改失败!"}}}]},eventRemove:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventRemove'); console.log(event);"}]},eventsSet:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventsSet'); console.log(event);"}]}}});return p}const pt=(e,t,a)=>{e=e.replace(/\./g,"_");a=(e=>{const t=["_id"];return e.push("record_permissions"),b.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)}),""+t.join(" ")})(a);let r="";t=[`id: "${t}"`];return`{record:${e}__findOne${r=0<t.length?`(${t.join(",")})`:r}{${a}}}`},ut=async(e,t,a)=>{return(await s("/graphql",{method:"post",body:JSON.stringify({query:pt(e,t,a)})})).data.record};let I={},mt;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=I),I=window.UI_SCHEMA_CACHE);const ft=(e,t)=>{I[e]=t},yt=e=>b.cloneDeep(I[e]),bt=e=>b.has(I,e);function ht(e,t){let a=[];return a="SMALL"===t?b.isEmpty(e.mobile_columns)?b.slice(e.columns,0,4):e.mobile_columns:e.columns}function D(e){let r="";return e&&e.sort&&e.sort.length&&b.each(e.sort,function(e,t){var a;b.isArray(e)?(a=e[0]+" "+(e[1]||""),a=0<t?","+a:a,r+=a):(a=e.field_name+" "+e.order,a=0<t?","+a:a,r+=a)}),r}function _t(t){if(t){var a=Y();let e=t.filters;return"mine"===t.filter_scope&&(u.default.isEmpty(e)?e=[["owner","=",a]]:e.push(["owner","=",a])),e}}async function V(t,e){if(t){if(!bt(t)||e){let a=null;try{if(!(a=mt?await mt(t,e):await s(`/service/api/@${t.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;ft(t,a),b.each(a.list_views,(e,t)=>{e.name=t,b.has(e,"columns")||(e.columns=a.list_views.all.columns)})}catch(e){console.error("getUISchema",t,e),ft(t,null)}}return yt(t)}}async function E(e,t){return(await V(e))?.fields[t]}async function gt(e,t){e=await V(e);return{uiSchema:e,amisSchema:await Te(e,t)}}async function A(e,t,a,r={}){var i=await V(t),l=b.find(i.list_views,(e,t)=>t===(a=a||t)||e._id===a);if(!l)return{uiSchema:i};if(l.enable_amis_schema&&l.amis_schema){const m=b.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema;return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:m}}var s=ht(l,r.formFactor),o=D(l),n=_t(l);if("calendar"===l.type){const m={type:"steedos-object-calendar",objectApiName:t,filters:n,sort:o,...l.options};return{uiSchema:i,isCalendar:!0,amisSchema:m}}var d=r.defaults||{};!d.headerSchema&&r.showHeader&&(d.headerSchema=await F(i)),r.showHeader||(d.headerSchema=null);try{var c,p=location.pathname+"/crud/"+r.listViewId,u=localStorage.getItem(p);u&&(u=JSON.parse(u),c={},u.orderBy&&(c.orderBy=u.orderBy),u.orderDir&&(c.orderDir=u.orderDir),u.perPage&&(c.defaultParams={perPage:u.perPage}),d.listSchema=b.defaultsDeep({},c,d.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d;const m={type:"steedos-object-table",objectApiName:t,columns:s,extraColumns:l.extra_columns,filters:n,sort:o,ctx:r};return{uiSchema:i,amisSchema:m}}async function vt(e,t,a,r={}){const i=await V(t);let l=r.sort;l||(o=r.sortField,n=r.sortOrder,o&&(l=o+" "+n||"asc"));let s=[];b.each(a,function(e){b.isString(e)&&i.fields[e]?s.push(i.fields[e]):b.isObject(e)&&i.fields[e.field]&&s.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))});var o=r.extraColumns,n=(o&&b.each(o,function(e){b.isString(e)?s.push({extra:!0,name:e}):b.isObject(e)&&s.push({extra:!0,name:e.field})}),await S(i,s,{tabId:t,appId:e,objectName:t,...r,filter:r.filters,sort:l,buttons:await $(i,r)}));return{uiSchema:i,amisSchema:n}}const wt=(e,t,a,r)=>{a=b.find(a.fields,e=>r===e?.name);return b.isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]}};async function $t(t,r,a,i){var e=await V(r),l=[],s=[].concat(e.related_lists||[]);if(b.isEmpty(s))for(const m of[].concat(e.details||[])){var o,n,d=m.split("."),c=await V(d[0]);c&&(((o=await E(d[0],d[1]))._reference_to||o.reference_to&&!b.isString(o.reference_to))&&d[1],d[1],n=(o=await A(0,d[0],"all",{formFactor:i,buttons:await $(c,{isMobile:!1})})).amisSchema,c=await N(c),n.headerSchema=c,n.headerToolbar=[],n.columnsTogglable=!1,delete n.ctx,o.amisSchema={type:"service",className:"b-a m-b",data:{masterObjectName:r,masterRecordId:"${recordId}",relatedKey:d[1],objectName:d[0],listViewId:`amis-\${appId}-${d[0]}-listview`},body:[{...n,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[d[1]]:wt(r,a,o.uiSchema,d[1])}}}]},l.push({masterObjectName:r,object_name:d[0],foreign_key:d[1],schema:o}))}else for(const f of s){var p=f.related_field_fullname.split(".");let e=null;var u=await E(p[0],p[1]);if(u){e=u._reference_to||u.reference_to&&!b.isString(u.reference_to)?[[p[1]+"/o","=",r],[p[1]+"/ids","=",a]]:[""+p[1],"=",a];const y=await V(p[0]);if(y){let a=[];b.forEach(f.field_names,t=>{var e=b.find(y.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:r,object_name:p[0],foreign_key:p[1],schema:{uiSchema:y,amisSchema:await S(y,a,{tabId:r,appId:t,objectName:p[0],formFactor:i,globalFilter:e,buttons:await $(y,{isMobile:!1})})}})}}}return l}const T={};async function Ft(e,t,a){return{type:"picker",label:"人员",name:t,id:a.id,modalMode:"dialog",joinValues:!1,source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}',$term:"$term",$self:"$$"},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 = [\"name\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [[\"_id\", \"=\", selfData.value]];\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 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 "},pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["switch-per-page","pagination"],defaultParams:{perPage:50},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"_id",label:"ID",type:"text",toggled:!1},{name:"name",label:"姓名",sortable:!0,searchable:!0,type:"text"},{name:"email",label:"邮件",sortable:!0,type:"text",searchable:!0},{name:"mobile",label:"手机",type:"text",sortable:!0,searchable:!0}],syncLocation:!1,keepItemSelectionOnPageChange:!0},labelField:"name",valueField:"_id",size:"lg",extractValue:!0,className:"m-0",labelClassName:"text-left"}}const Nt=["last_year","this_year","next_year","last_quarter","this_quarter","next_quarter","last_month","this_month","next_month","last_week","this_week","next_week","yestday","today","tomorrow","last_7_days","last_30_days","last_60_days","last_90_days","last_120_days","next_7_days","next_30_days","next_60_days","next_90_days","next_120_days"],St={equal:"=",not_equal:"!=",less:"<",less_or_equal:"<=",greater:">",greater_or_equal:">=",between:"between",not_between:"not_between",is_empty:"is_empty",is_not_empty:"is_not_empty",select_equals:"=",select_not_equals:"!=",select_any_in:"in",select_not_any_in:"<>",like:"contains",not_like:"notcontains",starts_with:"startswith",ends_with:"endswith"},kt=e=>_.has(e,"conjunction"),jt=e=>{const a=[],{conjunction:r,children:t}=e;return r&&t&&t.forEach(e=>{var t;0<a.length&&a.push(r),kt(e)?(t=jt(e))&&0<t.length&&a.push(t):(t=xt(e))&&a.push(t)}),a},xt=e=>{var t,{left:e,op:a,right:r}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=r?[e.field,St[a],r]:void 0},Ot=t=>{var e;if(3===t.length)return"between"===(e=u.default.findKey(St,e=>e===t[1]))&&u.default.includes(Nt,t[2])?{left:{type:"field",field:t[0]},op:e+":"+t[2]}:{left:{type:"field",field:t[0]},op:e,right:t[2]};console.warn("无效的filter:"+JSON.stringify(t))},It=e=>!u.default.isArray(e)&&u.default.isObject(e)?[e.field,e.operation,e.value]:e,Dt=e=>{e=It(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach(e=>{"or"===(e=It(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push(Ot(e)):t.children.push(Dt(e))}),t};const Vt=e=>{const a=[];return b.each(e.options.split("\n"),e=>{var t=e.split(":");2==t.length?a.push({label:t[0],value:t[1]}):a.push({label:e,value:e})}),a},Et=(e,t)=>{const a={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none",disabled:"readonly"===e.permission};switch(e.type){case"input":e.is_textarea?a.type="textarea":a.type="input-text";break;case"number":a.type="input-number";break;case"date":a.type="input-date";break;case"dateTime":a.type="input-datetime";break;case"checkbox":a.type="checkbox";break;case"email":a.type="input-email",a.validations={isEmail:!0};break;case"url":a.type="input-url",a.validations={isUrl:!0};break;case"password":a.type="input-password",a.showCounter=!0;break;case"select":a.type="select",a.options=Vt(e);break;case"user":case"group":a.type="input-text";break;case"radio":a.type="radios",a.options=Vt(e);break;case"multiSelect":a.type="checkboxes",a.options=Vt(e);break;case"odata":var r=e.formula.substr(1,e.formula.length-2);a.type="select",a.multiple=e.is_multiselect,a.labelField=r,a.valueField="$$",a.source={url:b.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};break;case"html":a.type="html";break;case"table":a.type="input-table",a.addable="readonly"!=e.permission,a.editable=a.addable,a.copyable=a.addable,a.columns=[],b.each(e.sfields,e=>{"hidden"!=e.type&&a.columns.push(Et(e,!0))});break;case"section":a.type="input-text"}return a},At=a=>{const r=[];return b.each(a,e=>{var t;"table"!=e.type&&r.push({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",body:[{type:"tpl",tpl:`<div style='font-size:20px'>${e.name}</div>`}]}),"section"!=e.type&&r.push((e=e,t=a.length,{background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[Et(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}))}),r},Tt=a=>{const t=[],r=[];let i=[];return b.each(a.fields,(e,t)=>{e.is_wide?(0!=i.length&&r.push(i),"table"==e.type&&r.push([Object.assign({},e,{type:"section"})]),(i=[]).push(e),r.push(i),i=[]):(i.push(e),2!=i.length&&t!==a.fields.length-1||(r.push(i),i=[]))}),b.each(r,e=>{t.push({background:"#F7F7F7",tds:At(e)})}),t};function Ct(e){var i=[];return e.charCodeAt(0)===".".charCodeAt(0)&&i.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),function(e,t,a,r){return a?e=r.replace(/\\(\\)?/g,"$1"):t&&(e=t.trim()),i.push(e),""}),i}var C=function(){return(C=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function qt(t,e){void 0===e&&(e=!0);var a=t&&t.__super?Object.create(t.__super,{__super:{value:t.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return e&&t&&Object.keys(t).forEach(function(e){return a[e]=t[e]}),a}function Pt(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}e.Field=lt,e.absoluteUrl=function(e){return""+o()+e},e.amisRender=(e,t,a={},r={},i)=>{var l=amisRequire("amis/embed"),{router:i,assets:s}=i;return J(s),l.embed(e,t,a,Object.assign(z(i),r))},e.amisRootClick=(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},e.cloneObject=qt,e.conditionsToFilters=e=>jt(e),e.createObject=function(e,t,a){var r=(e=e&&Object.isFrozen(e)?qt(e):e)?Object.create(e,C(C({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&Pt(t)&&Object.keys(t).forEach(function(e){return r[e]=t[e]}),r},e.defaultsDeep=c,e.deleteVariable=function(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{for(var a=Ct(t),t=a.pop();a.length;){var r=a.shift();if(!L.default(e[r])){if(e[r])throw new Error("目标路径不是纯对象,不能修改");break}e=e[r]=C({},e[r])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}},e.execute=Se,e.executeButton=ke,e.extendObject=function(e,t,a){var r=qt(e,a=void 0===a?!0:a);return t&&Object.keys(t).forEach(function(e){return r[e]=t[e]}),r},e.fetchAPI=s,e.filtersToConditions=e=>Dt(e),e.getAmisObjectRelatedList=$t,e.getApp=async function(e){return await s(`/service/api/apps/${e}/menus`)},e.getApps=async function(){return await s("/service/api/apps/menus")},e.getAuthToken=H,e.getAuthorization=K,e.getButton=async(e,t,a)=>{var r=await V(e);if(r){var i=await h(r,a),i=u.default.find(i,e=>e.name===t);if(i)return"standard_edit"==i.name?{label:i.label,name:i.name,on:i.on,...await n.getStandardEdit(r,a)}:"cms_files"!=e&&"standard_new"==i.name?{label:i.label,name:i.name,on:i.on,...await n.getStandardNew(r,a)}:"standard_delete"==i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardDelete(r,a)}:r.hasImportTemplates&&"standard_import_data"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardImportData(r,a)}:"standard_open_view"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardOpenView(r,a)}:"standard_delete_many"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardDeleteMany(r,a)}:i}},e.getButtonVisible=(t,e)=>{if(t._visible&&(u.default.startsWith(u.default.trim(t._visible),"function")?(window.eval("var fun = "+t._visible),t.visible=fun):ye(t._visible)&&(t.visible=e=>{be(t._visible,e.record,"#",{now:new Date},e.userSession)})),!u.default.isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},e.getButtonVisibleOn=d,e.getButtons=h,e.getCalendarSchema=async function(e,t,a,r={}){var i=await V(t);return{uiSchema:i,amisSchema:await ct(i,a,{tabId:t,appId:e,objectName:t,...r})}},e.getDefaultRenderData=function(){var e=a();return{context:{rootUrl:o(),userId:e.userId,tenantId:e.spaceId,authToken:e.authToken,user:e},global:{userId:e.userId,spaceId:e.spaceId,user:e,now:new Date}}},e.getEnv=e=>T[e],e.getEnvs=()=>T,e.getEvn=z,e.getField=E,e.getFileSrc=function(e){return o()+"/api/files/files/"+e},e.getFlowFormSchema=e=>{return{type:"page",body:[{type:"service",data:{beijing:"20",tianjing:"19"},body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div style='font-size:20px'>${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},(e=e,{type:"table-view",trs:Tt(e),id:"u:047f3669468b"})],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}},e.getFormPageInitSchema=async function(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await gt(e,{recordId:"${recordId}"})).amisSchema]}},e.getFormSchema=gt,e.getImageSrc=function(e){return o()+"/api/files/images/"+e},e.getListPageInitSchema=async function(e,t,a){return{type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0}]}},e.getListSchema=A,e.getListViewButtons=we,e.getListViewColumns=ht,e.getListViewFilter=_t,e.getListViewItemButtons=$,e.getListViewSort=D,e.getListviewInitSchema=async function(t,a,r){r=r||{};var i=await V(t),l=b.find(i.list_views,(e,t)=>t===a);let s={};if(l){var o=ht(l,r.formFactor),l=D(l),n=r.defaults||{};n.headerSchema||(i=await F(i),n.headerSchema=i),r.defaults=n;let e=r.setDataToComponentId;e=e||"service_listview_"+t;i=await vt(null,t,o,{sort:l,...r,setDataToComponentId:e});delete(s=i.amisSchema).data.$master,delete s.data._id,delete s.data.recordPermissions,delete s.data.uiSchema}return s},e.getNotifications=async()=>{var e=a(),e=`
1098
+ `}]},eventAdd:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventAdd'); console.log(event);"}]},eventChange:{weight:0,actions:[{actionType:"ajax",args:{api:n}},{actionType:"toast",expression:"!event.data.editable",args:{msgType:"error",msg:"您没有编辑该记录的权限!",position:"top-center"}},{actionType:"ajax",expression:"event.data.editable",args:{api:d,messages:{success:t.label+"修改成功",failed:t.label+"修改失败!"}}}]},eventRemove:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventRemove'); console.log(event);"}]},eventsSet:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventsSet'); console.log(event);"}]}}});return p}const pt=(e,t,a)=>{e=e.replace(/\./g,"_");a=(e=>{const t=["_id"];return e.push("record_permissions"),b.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)}),""+t.join(" ")})(a);let r="";t=[`id: "${t}"`];return`{record:${e}__findOne${r=0<t.length?`(${t.join(",")})`:r}{${a}}}`},ut=async(e,t,a)=>{return(await s("/graphql",{method:"post",body:JSON.stringify({query:pt(e,t,a)})})).data.record};let I={},mt;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=I),I=window.UI_SCHEMA_CACHE);const ft=(e,t)=>{I[e]=t},yt=e=>b.cloneDeep(I[e]),bt=e=>b.has(I,e);function ht(e,t){let a=[];return a="SMALL"===t?b.isEmpty(e.mobile_columns)?b.slice(e.columns,0,4):e.mobile_columns:e.columns}function D(e){let r="";return e&&e.sort&&e.sort.length&&b.each(e.sort,function(e,t){var a;b.isArray(e)?(a=e[0]+" "+(e[1]||""),a=0<t?","+a:a,r+=a):(a=e.field_name+" "+e.order,a=0<t?","+a:a,r+=a)}),r}function _t(t){if(t){var a=Y();let e=t.filters;return"mine"===t.filter_scope&&(u.default.isEmpty(e)?e=[["owner","=",a]]:e.push(["owner","=",a])),e}}async function V(t,e){if(t){if(!bt(t)||e){let a=null;try{if(!(a=mt?await mt(t,e):await s(`/service/api/@${t.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;ft(t,a),b.each(a.list_views,(e,t)=>{e.name=t,b.has(e,"columns")||(e.columns=a.list_views.all.columns)})}catch(e){console.error("getUISchema",t,e),ft(t,null)}}return yt(t)}}async function E(e,t){return(await V(e))?.fields[t]}async function gt(e,t){e=await V(e);return{uiSchema:e,amisSchema:await Te(e,t)}}async function A(e,t,a,r={}){var i=await V(t),l=b.find(i.list_views,(e,t)=>t===(a=a||t)||e._id===a);if(!l)return{uiSchema:i};if(l.enable_amis_schema&&l.amis_schema){const f=b.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema;return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:f}}var s=ht(l,r.formFactor),o=D(l),n=_t(l),d=l&&l._filters;if("calendar"===l.type){const f={type:"steedos-object-calendar",objectApiName:t,filters:n,filtersFunction:d,sort:o,...l.options};return{uiSchema:i,isCalendar:!0,amisSchema:f}}var c=r.defaults||{};!c.headerSchema&&r.showHeader&&(c.headerSchema=await F(i)),r.showHeader||(c.headerSchema=null);try{var p,u=location.pathname+"/crud/"+r.listViewId,m=localStorage.getItem(u);m&&(m=JSON.parse(m),p={},m.orderBy&&(p.orderBy=m.orderBy),m.orderDir&&(p.orderDir=m.orderDir),m.perPage&&(p.defaultParams={perPage:m.perPage}),c.listSchema=b.defaultsDeep({},p,c.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=c;const f={type:"steedos-object-table",objectApiName:t,columns:s,extraColumns:l.extra_columns,filters:n,filtersFunction:d,sort:o,ctx:r};return{uiSchema:i,amisSchema:f}}async function vt(e,t,a,r={}){const i=await V(t);let l=r.sort;l||(o=r.sortField,n=r.sortOrder,o&&(l=o+" "+n||"asc"));let s=[];b.each(a,function(e){b.isString(e)&&i.fields[e]?s.push(i.fields[e]):b.isObject(e)&&i.fields[e.field]&&s.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))});var o=r.extraColumns,n=(o&&b.each(o,function(e){b.isString(e)?s.push({extra:!0,name:e}):b.isObject(e)&&s.push({extra:!0,name:e.field})}),await S(i,s,{tabId:t,appId:e,objectName:t,...r,filter:r.filters,sort:l,buttons:await $(i,r)}));return{uiSchema:i,amisSchema:n}}const wt=(e,t,a,r)=>{a=b.find(a.fields,e=>r===e?.name);return b.isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]}};async function $t(t,r,a,i){var e=await V(r),l=[],s=[].concat(e.related_lists||[]);if(b.isEmpty(s))for(const m of[].concat(e.details||[])){var o,n,d=m.split("."),c=await V(d[0]);c&&(((o=await E(d[0],d[1]))._reference_to||o.reference_to&&!b.isString(o.reference_to))&&d[1],d[1],n=(o=await A(0,d[0],"all",{formFactor:i,buttons:await $(c,{isMobile:!1})})).amisSchema,c=await N(c),n.headerSchema=c,n.headerToolbar=[],n.columnsTogglable=!1,delete n.ctx,o.amisSchema={type:"service",className:"b-a m-b",data:{masterObjectName:r,masterRecordId:"${recordId}",relatedKey:d[1],objectName:d[0],listViewId:`amis-\${appId}-${d[0]}-listview`},body:[{...n,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[d[1]]:wt(r,a,o.uiSchema,d[1])}}}]},l.push({masterObjectName:r,object_name:d[0],foreign_key:d[1],schema:o}))}else for(const f of s){var p=f.related_field_fullname.split(".");let e=null;var u=await E(p[0],p[1]);if(u){e=u._reference_to||u.reference_to&&!b.isString(u.reference_to)?[[p[1]+"/o","=",r],[p[1]+"/ids","=",a]]:[""+p[1],"=",a];const y=await V(p[0]);if(y){let a=[];b.forEach(f.field_names,t=>{var e=b.find(y.fields,e=>e.name===t);e&&a.push(e)}),l.push({masterObjectName:r,object_name:p[0],foreign_key:p[1],schema:{uiSchema:y,amisSchema:await S(y,a,{tabId:r,appId:t,objectName:p[0],formFactor:i,globalFilter:e,buttons:await $(y,{isMobile:!1})})}})}}}return l}const T={};async function Ft(e,t,a){return{type:"picker",label:"人员",name:t,id:a.id,modalMode:"dialog",joinValues:!1,source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}',$term:"$term",$self:"$$"},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 = [\"name\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [[\"_id\", \"=\", selfData.value]];\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 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 "},pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["switch-per-page","pagination"],defaultParams:{perPage:50},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"_id",label:"ID",type:"text",toggled:!1},{name:"name",label:"姓名",sortable:!0,searchable:!0,type:"text"},{name:"email",label:"邮件",sortable:!0,type:"text",searchable:!0},{name:"mobile",label:"手机",type:"text",sortable:!0,searchable:!0}],syncLocation:!1,keepItemSelectionOnPageChange:!0},labelField:"name",valueField:"_id",size:"lg",extractValue:!0,className:"m-0",labelClassName:"text-left"}}const Nt=["last_year","this_year","next_year","last_quarter","this_quarter","next_quarter","last_month","this_month","next_month","last_week","this_week","next_week","yestday","today","tomorrow","last_7_days","last_30_days","last_60_days","last_90_days","last_120_days","next_7_days","next_30_days","next_60_days","next_90_days","next_120_days"],St={equal:"=",not_equal:"!=",less:"<",less_or_equal:"<=",greater:">",greater_or_equal:">=",between:"between",not_between:"not_between",is_empty:"is_empty",is_not_empty:"is_not_empty",select_equals:"=",select_not_equals:"!=",select_any_in:"in",select_not_any_in:"<>",like:"contains",not_like:"notcontains",starts_with:"startswith",ends_with:"endswith"},kt=e=>_.has(e,"conjunction"),jt=e=>{const a=[],{conjunction:r,children:t}=e;return r&&t&&t.forEach(e=>{var t;0<a.length&&a.push(r),kt(e)?(t=jt(e))&&0<t.length&&a.push(t):(t=xt(e))&&a.push(t)}),a},xt=e=>{var t,{left:e,op:a,right:r}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=r?[e.field,St[a],r]:void 0},Ot=t=>{var e;if(3===t.length)return"between"===(e=u.default.findKey(St,e=>e===t[1]))&&u.default.includes(Nt,t[2])?{left:{type:"field",field:t[0]},op:e+":"+t[2]}:{left:{type:"field",field:t[0]},op:e,right:t[2]};console.warn("无效的filter:"+JSON.stringify(t))},It=e=>!u.default.isArray(e)&&u.default.isObject(e)?[e.field,e.operation,e.value]:e,Dt=e=>{e=It(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach(e=>{"or"===(e=It(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push(Ot(e)):t.children.push(Dt(e))}),t};const Vt=e=>{const a=[];return b.each(e.options.split("\n"),e=>{var t=e.split(":");2==t.length?a.push({label:t[0],value:t[1]}):a.push({label:e,value:e})}),a},Et=(e,t)=>{const a={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none",disabled:"readonly"===e.permission};switch(e.type){case"input":e.is_textarea?a.type="textarea":a.type="input-text";break;case"number":a.type="input-number";break;case"date":a.type="input-date";break;case"dateTime":a.type="input-datetime";break;case"checkbox":a.type="checkbox";break;case"email":a.type="input-email",a.validations={isEmail:!0};break;case"url":a.type="input-url",a.validations={isUrl:!0};break;case"password":a.type="input-password",a.showCounter=!0;break;case"select":a.type="select",a.options=Vt(e);break;case"user":case"group":a.type="input-text";break;case"radio":a.type="radios",a.options=Vt(e);break;case"multiSelect":a.type="checkboxes",a.options=Vt(e);break;case"odata":var r=e.formula.substr(1,e.formula.length-2);a.type="select",a.multiple=e.is_multiselect,a.labelField=r,a.valueField="$$",a.source={url:b.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};break;case"html":a.type="html";break;case"table":a.type="input-table",a.addable="readonly"!=e.permission,a.editable=a.addable,a.copyable=a.addable,a.columns=[],b.each(e.sfields,e=>{"hidden"!=e.type&&a.columns.push(Et(e,!0))});break;case"section":a.type="input-text"}return a},At=a=>{const r=[];return b.each(a,e=>{var t;"table"!=e.type&&r.push({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",body:[{type:"tpl",tpl:`<div style='font-size:20px'>${e.name}</div>`}]}),"section"!=e.type&&r.push((e=e,t=a.length,{background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[Et(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}))}),r},Tt=a=>{const t=[],r=[];let i=[];return b.each(a.fields,(e,t)=>{e.is_wide?(0!=i.length&&r.push(i),"table"==e.type&&r.push([Object.assign({},e,{type:"section"})]),(i=[]).push(e),r.push(i),i=[]):(i.push(e),2!=i.length&&t!==a.fields.length-1||(r.push(i),i=[]))}),b.each(r,e=>{t.push({background:"#F7F7F7",tds:At(e)})}),t};function Ct(e){var i=[];return e.charCodeAt(0)===".".charCodeAt(0)&&i.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),function(e,t,a,r){return a?e=r.replace(/\\(\\)?/g,"$1"):t&&(e=t.trim()),i.push(e),""}),i}var C=function(){return(C=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function qt(t,e){void 0===e&&(e=!0);var a=t&&t.__super?Object.create(t.__super,{__super:{value:t.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return e&&t&&Object.keys(t).forEach(function(e){return a[e]=t[e]}),a}function Pt(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}e.Field=lt,e.absoluteUrl=function(e){return""+o()+e},e.amisRender=(e,t,a={},r={},i)=>{var l=amisRequire("amis/embed"),{router:i,assets:s}=i;return J(s),l.embed(e,t,a,Object.assign(z(i),r))},e.amisRootClick=(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},e.cloneObject=qt,e.conditionsToFilters=e=>jt(e),e.createObject=function(e,t,a){var r=(e=e&&Object.isFrozen(e)?qt(e):e)?Object.create(e,C(C({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&Pt(t)&&Object.keys(t).forEach(function(e){return r[e]=t[e]}),r},e.defaultsDeep=c,e.deleteVariable=function(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{for(var a=Ct(t),t=a.pop();a.length;){var r=a.shift();if(!L.default(e[r])){if(e[r])throw new Error("目标路径不是纯对象,不能修改");break}e=e[r]=C({},e[r])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}},e.execute=Se,e.executeButton=ke,e.extendObject=function(e,t,a){var r=qt(e,a=void 0===a?!0:a);return t&&Object.keys(t).forEach(function(e){return r[e]=t[e]}),r},e.fetchAPI=s,e.filtersToConditions=e=>Dt(e),e.getAmisObjectRelatedList=$t,e.getApp=async function(e){return await s(`/service/api/apps/${e}/menus`)},e.getApps=async function(){return await s("/service/api/apps/menus")},e.getAuthToken=H,e.getAuthorization=K,e.getButton=async(e,t,a)=>{var r=await V(e);if(r){var i=await h(r,a),i=u.default.find(i,e=>e.name===t);if(i)return"standard_edit"==i.name?{label:i.label,name:i.name,on:i.on,...await n.getStandardEdit(r,a)}:"cms_files"!=e&&"standard_new"==i.name?{label:i.label,name:i.name,on:i.on,...await n.getStandardNew(r,a)}:"standard_delete"==i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardDelete(r,a)}:r.hasImportTemplates&&"standard_import_data"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardImportData(r,a)}:"standard_open_view"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardOpenView(r,a)}:"standard_delete_many"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await n.getStandardDeleteMany(r,a)}:i}},e.getButtonVisible=(t,e)=>{if(t._visible&&(u.default.startsWith(u.default.trim(t._visible),"function")?(window.eval("var fun = "+t._visible),t.visible=fun):ye(t._visible)&&(t.visible=e=>{be(t._visible,e.record,"#",{now:new Date},e.userSession)})),!u.default.isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},e.getButtonVisibleOn=d,e.getButtons=h,e.getCalendarSchema=async function(e,t,a,r={}){var i=await V(t);return{uiSchema:i,amisSchema:await ct(i,a,{tabId:t,appId:e,objectName:t,...r})}},e.getDefaultRenderData=function(){var e=a();return{context:{rootUrl:o(),userId:e.userId,tenantId:e.spaceId,authToken:e.authToken,user:e},global:{userId:e.userId,spaceId:e.spaceId,user:e,now:new Date}}},e.getEnv=e=>T[e],e.getEnvs=()=>T,e.getEvn=z,e.getField=E,e.getFileSrc=function(e){return o()+"/api/files/files/"+e},e.getFlowFormSchema=e=>{return{type:"page",body:[{type:"service",data:{beijing:"20",tianjing:"19"},body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div style='font-size:20px'>${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},(e=e,{type:"table-view",trs:Tt(e),id:"u:047f3669468b"})],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}},e.getFormPageInitSchema=async function(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await gt(e,{recordId:"${recordId}"})).amisSchema]}},e.getFormSchema=gt,e.getImageSrc=function(e){return o()+"/api/files/images/"+e},e.getListPageInitSchema=async function(e,t,a){return{type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0}]}},e.getListSchema=A,e.getListViewButtons=we,e.getListViewColumns=ht,e.getListViewFilter=_t,e.getListViewItemButtons=$,e.getListViewSort=D,e.getListviewInitSchema=async function(t,a,r){r=r||{};var i=await V(t),l=b.find(i.list_views,(e,t)=>t===a);let s={};if(l){var o=ht(l,r.formFactor),l=D(l),n=r.defaults||{};n.headerSchema||(i=await F(i),n.headerSchema=i),r.defaults=n;let e=r.setDataToComponentId;e=e||"service_listview_"+t;i=await vt(null,t,o,{sort:l,...r,setDataToComponentId:e});delete(s=i.amisSchema).data.$master,delete s.data._id,delete s.data.recordPermissions,delete s.data.uiSchema}return s},e.getNotifications=async()=>{var e=a(),e=`
1046
1099
  {
1047
1100
  notifications(filters: ["owner","=","${e.userId}"], sort: "created desc,name", top : 10){
1048
1101
  _id,name,body,related_to,related_name,url,owner,is_read,from,created