@steedos-widgets/amis-lib 0.0.1
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/README.md +23 -0
- package/dist/amis-lib.umd.js +314 -0
- package/dist/amis-lib.umd.min.js +314 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/index.cjs.js +315 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.esm.js +315 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/types/config/index.d.ts +8 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/lib/amis.d.ts +9 -0
- package/dist/types/lib/apps.d.ts +2 -0
- package/dist/types/lib/buttons.d.ts +11 -0
- package/dist/types/lib/converter/amis/api.d.ts +54 -0
- package/dist/types/lib/converter/amis/fields/index.d.ts +54 -0
- package/dist/types/lib/converter/amis/fields/list.d.ts +43 -0
- package/dist/types/lib/converter/amis/fields/lookup.d.ts +185 -0
- package/dist/types/lib/converter/amis/fields/sections.d.ts +22 -0
- package/dist/types/lib/converter/amis/fields/table.d.ts +34 -0
- package/dist/types/lib/converter/amis/form.d.ts +22 -0
- package/dist/types/lib/converter/amis/graphql.d.ts +22 -0
- package/dist/types/lib/converter/amis/index.d.ts +320 -0
- package/dist/types/lib/converter/amis/tpl.d.ts +11 -0
- package/dist/types/lib/converter/amis/util.d.ts +1 -0
- package/dist/types/lib/expression.d.ts +2 -0
- package/dist/types/lib/notification.d.ts +2 -0
- package/dist/types/lib/objects.d.ts +709 -0
- package/dist/types/lib/page.d.ts +1 -0
- package/dist/types/lib/public.env.d.ts +4 -0
- package/dist/types/lib/record.d.ts +3 -0
- package/dist/types/lib/router.d.ts +52 -0
- package/dist/types/lib/steedos.client.d.ts +13 -0
- package/package.json +62 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _$1=require("lodash");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(a){var i;return a&&a.__esModule?a:(i=Object.create(null),a&&Object.keys(a).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(a,e),Object.defineProperty(i,e,t.get?t:{enumerable:!0,get:function(){return a[e]}}))}),i.default=a,Object.freeze(i))}var ___namespace=_interopNamespace(_$1),___default=_interopDefaultLegacy(_$1);const STEEDOS_AUTH={},getBuilderContext=()=>Builder.settings.context||Builder.settings,setSteedosAuth=e=>{Object.assign(STEEDOS_AUTH,e)};async function fetchAPI(e,t={credentials:"include"}){const a={"Content-Type":"application/json"};var i=getAuthorization();if(!i)throw new Error(401);a.Authorization=i,t.headers=Object.assign({},a,t.headers);const r=await fetch(""+getRootUrl()+e,t);if(401===r.status)throw new Error(401);i=await r.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function getFileSrc(e){return getRootUrl()+"/api/files/files/"+e}function getImageSrc(e){return getRootUrl()+"/api/files/images/"+e}function getTenantId(){try{const t=getBuilderContext().tenantId;var e;return(window.location.search&&!t&&(e=new URLSearchParams(window.location.search),t=e.get("X-Space-Id")),t)?t:null}catch(e){console.error(e)}}function getAuthToken(){try{var e=getBuilderContext().authToken;return e?e:null}catch(e){console.error(e)}}function getAuthorization(){try{var e=getBuilderContext(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function absoluteUrl(e){return""+getRootUrl()+e}function getRootUrl(e){var t=getBuilderContext();return t.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}function setRootUrl(e){_$1.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)}const getSteedosAuth=()=>_$1.cloneDeep(STEEDOS_AUTH);async function getFieldsTemplate(e,t){0!=t&&(t=!0);let a=["_id"],i=[],r=[];for(const n of r=___namespace.isArray(e)?e:___namespace.values(e)){var l;n.name.indexOf(".")<0&&(t&&("lookup"==n.type||"master_detail"==n.type)&&n.reference_to?(l=(await getUISchema(n.reference_to)).NAME_FIELD_KEY||"name",a.push(`${n.name}:${n.name}__expand{_id,${l}${n.reference_to_field?","+n.reference_to_field:""}}`)):a.push(n.alias?n.alias+":"+n.name:n.name),"date"!==n.type&&"datetime"!=n.type&&"boolean"!=n.type||a.push(""+n.name),"date"!==n.type&&"datetime"!=n.type&&"boolean"!=n.type&&"select"!=n.type&&"file"!=n.type||i.push(""+n.name))}return i=___namespace.uniq(i),a=___namespace.uniq(a),0<i.length?`${a.join(",")},_display{${i.join(",")}}`:""+a.join(" ")}async function getFindOneQuery$1(e,t,a,i){let r="",l=(t&&(r=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return i&&(i.alias&&(l=i.alias),i.filters&&(r=`(filters:${i.filters})`),i.queryOptions&&(r=`(${i.queryOptions})`)),{query:`{${l}:${e.name}${r}{${await getFieldsTemplate(a)}}}`}}function getSaveQuery(e,t,a,i){return{objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"}}function getScriptForRemoveUrlPrefixForImgFields(e){let t=[],a={};return e.forEach(e=>{"image"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})}),t.length?`
|
|
2
|
+
let imgFieldsKeys = ${JSON.stringify(t)};
|
|
3
|
+
let imgFields = ${JSON.stringify(a)};
|
|
4
|
+
imgFieldsKeys.forEach((item)=>{
|
|
5
|
+
let imgFieldValue = formData[item];
|
|
6
|
+
if(imgFieldValue && imgFieldValue.length){
|
|
7
|
+
// 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。
|
|
8
|
+
if(imgFields[item].multiple){
|
|
9
|
+
if(imgFieldValue instanceof Array){
|
|
10
|
+
formData[item] = imgFieldValue.map((value)=>{
|
|
11
|
+
let itemValue = value?.split('/');
|
|
12
|
+
return itemValue[itemValue.length - 1];
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}else{
|
|
16
|
+
let imgValue = imgFieldValue.split('/');
|
|
17
|
+
formData[item] = imgValue[imgValue.length - 1];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
`:""}function getScriptForSimplifiedValueForFileFields(e){let t=[],a={};return e.forEach(e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})}),t.length?`
|
|
22
|
+
let fileFieldsKeys = ${JSON.stringify(t)};
|
|
23
|
+
let fileFields = ${JSON.stringify(a)};
|
|
24
|
+
fileFieldsKeys.forEach((item)=>{
|
|
25
|
+
let fileFieldValue = formData[item];
|
|
26
|
+
if(fileFieldValue){
|
|
27
|
+
// 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。
|
|
28
|
+
if(fileFields[item].multiple){
|
|
29
|
+
if(fileFieldValue instanceof Array && fileFieldValue.length){
|
|
30
|
+
formData[item] = fileFieldValue.map((value)=>{
|
|
31
|
+
if(typeof value === 'object'){
|
|
32
|
+
return value.value;
|
|
33
|
+
}else{
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}else{
|
|
39
|
+
formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
`:""}function getSaveDataTpl(e){return`
|
|
44
|
+
const formData = api.data.$;
|
|
45
|
+
for (key in formData){
|
|
46
|
+
// image、select等字段清空值后保存的空字符串转换为null。
|
|
47
|
+
if(formData[key] === ''){
|
|
48
|
+
formData[key] = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const objectName = api.data.objectName;
|
|
52
|
+
const fieldsName = Object.keys(formData);
|
|
53
|
+
delete formData.created;
|
|
54
|
+
delete formData.created_by;
|
|
55
|
+
delete formData.modified;
|
|
56
|
+
delete formData.modified_by;
|
|
57
|
+
delete formData._display;
|
|
58
|
+
${getScriptForRemoveUrlPrefixForImgFields(e)}
|
|
59
|
+
${getScriptForSimplifiedValueForFileFields(e)}
|
|
60
|
+
let query = \`mutation{record: \${objectName}__insert(doc: {__saveData}){_id}}\`;
|
|
61
|
+
if(formData.recordId && formData.recordId !='new'){
|
|
62
|
+
query = \`mutation{record: \${objectName}__update(id: "\${formData._id}", doc: {__saveData}){_id}}\`;
|
|
63
|
+
};
|
|
64
|
+
delete formData._id;
|
|
65
|
+
let __saveData = JSON.stringify(JSON.stringify(formData));
|
|
66
|
+
`}function getSaveRequestAdaptor(e){return`
|
|
67
|
+
${getSaveDataTpl(e)}
|
|
68
|
+
api.data = {query: query.replace('{__saveData}', __saveData)};
|
|
69
|
+
return api;
|
|
70
|
+
`}async function getFindQuery(e,t,a,i){var r=i.limit||10;let l=`(top: ${r})`,n=(t&&(l=`(filters:["_id", "=", "${t}"], top: ${r})`),"data");return i&&(i.alias&&(n=i.alias),i.filters&&(l=`(filters:${i.filters})`),i.queryOptions&&(l=`(${i.queryOptions})`)),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${n}:${e.name}${l}{${await getFieldsTemplate(a,i.expand)}},count:${e.name}__count(filters:{__filters})}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql"}const Router={getAppPath({formFactor:e,appId:t}){return`/${"SMALL"===e?"mapp":"app"}/`+t},getPagePath(){},getObjectListViewPath({formFactor:e,appId:t,objectName:a,listViewName:i}){return`/${"SMALL"===e?"mapp":"app"}/${t}/${a}/grid/`+i},getObjectDetailPath({formFactor:e,appId:t,objectName:a,recordId:i}){return`/${"SMALL"===e?"mapp":"app"}/${t}/${a}/view/`+i},getObjectRelatedViewPath({formFactor:e,appId:t,masterObjectName:a,masterRecordId:i,objectName:r,foreignKey:l}){return`/${"SMALL"===e?"mapp":"app"}/${t}/${a}/${i}/${r}/grid?related_field_name=`+l}};function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getRefObjectNameFieldName(e){return"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getNameTpl(e,t){return"cms_files"===t.objectName?`<a href="\${context.rootUrl}/api/files/files/\${versions[0]}?download=true">\${${e.name}}</a>`:`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,recordId:`\${${t.idFieldName}}`})}">\${${e.name}}</a>`}function getLookupTpl(e,t){var a,i;return e.reference_to?(a=getRefObjectNameFieldName(),e.multiple?(i=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`
|
|
71
|
+
<% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${i}"><%=item.${a}%></a> <% }); %><% } %>
|
|
72
|
+
`):`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):getSelectTpl(e)}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>
|
|
73
|
+
<span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">
|
|
74
|
+
<span class="slds-assistive-text"><%=data._display.${e.name}%></span>
|
|
75
|
+
</span>
|
|
76
|
+
<% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>
|
|
77
|
+
<span>······</span>
|
|
78
|
+
<% } %>`}function getFieldTpl(e,t){if(e.is_name||e.name===t.labelFieldName)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return getLookupTpl(e,t)}}var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};function getTableColumns(e,i){const r=[{name:"_index",type:"text",width:32,placeholder:""}];return ___namespace.each(e,function(t){if(!t.is_name&&t.name!==i.labelFieldName||"cms_files"!==i.objectName){var a=getFieldTpl(t,i);let e=a?"tpl":"text";t.hidden||t.extra||r.push({name:t.name,label:t.label,sortable:t.sortable,width:t.width,type:e,tpl:a,toggled:t.toggled})}else r.push({type:"button",label:`\${${t.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"})}),r}function getDefaultParams$1(e){return{perPage:e.top||config.listView.perPage}}function getTableSchema(e,t){return{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t=t||{}),columns:getTableColumns(e,t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function getTableApi(e,t,a){const i=[];let{globalFilter:r,filter:l}=a;___namespace.isArray(l)&&(l=___namespace.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e})),___namespace.each(t,function(e){e.searchable&&i.push(e.name)});a=e.key_field||"_id";const n=await getApi$1(e,null,t,{alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});return n.data.$term="$term",n.data.$self="$$",n.data.filter="$filter",n.requestAdaptor=`
|
|
79
|
+
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
80
|
+
${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}
|
|
81
|
+
if(_.isEmpty(filters)){
|
|
82
|
+
filters = api.data.filter || [${JSON.stringify(l)}];
|
|
83
|
+
}else{
|
|
84
|
+
filters = [filters, 'and', api.data.filter || [${JSON.stringify(l)}]]
|
|
85
|
+
}
|
|
86
|
+
var pageSize = api.data.pageSize || 10;
|
|
87
|
+
var pageNo = api.data.pageNo || 1;
|
|
88
|
+
var skip = (pageNo - 1) * pageSize;
|
|
89
|
+
var orderBy = api.data.orderBy || '';
|
|
90
|
+
var orderDir = api.data.orderDir || '';
|
|
91
|
+
var sort = orderBy + ' ' + orderDir;
|
|
92
|
+
var allowSearchFields = ${JSON.stringify(i)};
|
|
93
|
+
if(api.data.$term){
|
|
94
|
+
filters = [["name", "contains", "'+ api.data.$term +'"]];
|
|
95
|
+
}else if(selfData.op === 'loadOptions' && selfData.value){
|
|
96
|
+
filters = [["${a.name}", "=", selfData.value]];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var searchableFilter = [];
|
|
100
|
+
_.each(selfData, (value, key)=>{
|
|
101
|
+
if(!_.isEmpty(value) || _.isBoolean(value)){
|
|
102
|
+
if(_.startsWith(key, '__searchable__between__')){
|
|
103
|
+
searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])
|
|
104
|
+
}else if(_.startsWith(key, '__searchable__')){
|
|
105
|
+
if(_.isString(value)){
|
|
106
|
+
searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])
|
|
107
|
+
}else{
|
|
108
|
+
searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
if(searchableFilter.length > 0){
|
|
115
|
+
if(filters.length > 0 ){
|
|
116
|
+
filters = [filters, 'and', searchableFilter];
|
|
117
|
+
}else{
|
|
118
|
+
searchableFilter = filters;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if(allowSearchFields){
|
|
123
|
+
allowSearchFields.forEach(function(key){
|
|
124
|
+
const keyValue = selfData[key];
|
|
125
|
+
if(keyValue){
|
|
126
|
+
filters.push([key, "contains", keyValue]);
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if(selfData.__keywords && allowSearchFields){
|
|
132
|
+
const keywordsFilters = [];
|
|
133
|
+
allowSearchFields.forEach(function(key, index){
|
|
134
|
+
const keyValue = selfData.__keywords;
|
|
135
|
+
if(keyValue){
|
|
136
|
+
keywordsFilters.push([key, "contains", keyValue]);
|
|
137
|
+
if(index < allowSearchFields.length - 1){
|
|
138
|
+
keywordsFilters.push('or');
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
|
+
filters.push(keywordsFilters);
|
|
143
|
+
}
|
|
144
|
+
api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
|
|
145
|
+
return api;
|
|
146
|
+
`,n.adaptor=`
|
|
147
|
+
_.each(payload.data.rows, function(item, index){
|
|
148
|
+
item._index = index + 1;
|
|
149
|
+
})
|
|
150
|
+
window.postMessage(Object.assign({type: "listview.loaded"}), "*")
|
|
151
|
+
return payload;
|
|
152
|
+
`,n}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}"}}}function getListBody(e,i){const r=[];return _.each(e,function(e){var t=getFieldTpl(e,i);let a=t?"tpl":"text";e.hidden||e.extra||r.push({name:e.name,label:e.label,sortable:e.sortable,width:e.width,type:a,tpl:t,toggled:e.toggled})}),{type:"hbox",columns:r}}function getDefaultParams(e){return{perPage:e.top||10}}function getListSchema$1(e,t){return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...getListBody(e,t).columns],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,recordId:"${_id}"})}]}}}function getCardSchema(e,t){let a=null;var i=_.find(e,e=>e.name===t.labelFieldName);return i&&(a=getFieldTpl(i,t)),{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:getDefaultParams(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...getListBody(_.filter(e,e=>e.name!=t.labelFieldName),t).columns]}}}const getReferenceTo=async a=>{let i=a.reference_to;if(i){"users"===i&&(i="space_users",a.reference_to_field="user");var r=await getUISchema(i);let e=null,t=a.reference_to_field;return t=t||r.idFieldName||"_id",e="_id"===t?{name:"_id",label:"ID",type:"text",toggled:!1}:r.fields[t]||{name:t},{objectName:i,valueField:e,labelField:r.fields[r.NAME_FIELD_KEY||"name"]}}};async function lookupToAmisPicker(i,r,l){var n=await getReferenceTo(i);if(n){var o=await getUISchema(n.objectName);const s=[];let e=0;const d=[],c=[],u=(___namespace.each(o.fields,(e,t)=>{"_id"==t||e.hidden||(___namespace.has(e,"name")||(e.name=t),c.push(e))}),___namespace.each(___namespace.sortBy(c,"sort_no"),function(t){e<5&&(___namespace.find(s,function(e){return e.name===t.name})||(e++,s.push(t),t.searchable&&d.push(t.name)))}),{[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField}),p=(___namespace.each(s,e=>{e.hidden||(u[e.name]=e)}),await getApi({name:n.objectName},null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'}));p.data.$term="$term",p.data.$self="$$",p.requestAdaptor=`
|
|
153
|
+
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
154
|
+
var filters = [];
|
|
155
|
+
var pageSize = api.data.pageSize || 10;
|
|
156
|
+
var pageNo = api.data.pageNo || 1;
|
|
157
|
+
var skip = (pageNo - 1) * pageSize;
|
|
158
|
+
var orderBy = api.data.orderBy || '';
|
|
159
|
+
var orderDir = api.data.orderDir || '';
|
|
160
|
+
var sort = orderBy + ' ' + orderDir;
|
|
161
|
+
var allowSearchFields = ${JSON.stringify(d)};
|
|
162
|
+
if(api.data.$term){
|
|
163
|
+
filters = [["name", "contains", "'+ api.data.$term +'"]];
|
|
164
|
+
}else if(selfData.op === 'loadOptions' && selfData.value){
|
|
165
|
+
filters = [["${n.valueField.name}", "=", selfData.value]];
|
|
166
|
+
}
|
|
167
|
+
if(allowSearchFields){
|
|
168
|
+
allowSearchFields.forEach(function(key){
|
|
169
|
+
const keyValue = selfData[key];
|
|
170
|
+
if(keyValue){
|
|
171
|
+
filters.push([key, "contains", keyValue]);
|
|
172
|
+
}
|
|
173
|
+
})
|
|
174
|
+
}
|
|
175
|
+
api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
|
|
176
|
+
return api;
|
|
177
|
+
`;let t=20,a=(o.paging&&!1===o.paging.enabled&&(t=1e3),null);a="SMALL"===l.formFactor?getListSchema$1(s,{top:t,...l,actions:!1}):getTableSchema(s,{top:t,...l});const m={type:getAmisStaticFieldType("picker",r),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:p,size:"lg",pickerSchema:a,joinValues:!1,extractValue:!0};return i.multiple&&(m.multiple=!0,m.extractValue=!0),r&&(m.tpl=getLookupTpl(i,l)),m}}async function lookupToAmisSelect(e,t,a){var i=await getReferenceTo(e);let r,l=((r=i?await getApi({name:i.objectName},null,{[i.labelField.name]:Object.assign({},i.labelField,{alias:"label"}),[i.valueField.name]:Object.assign({},i.valueField,{alias:"value"})},{expand:!1,alias:"options",queryOptions:"filters: {__filters}, top: {__top}"}):{method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}}).data.$term="$term",r.data.$value=`$${e.name}.`+(i?i.valueField.name:"_id"),___namespace.each(e.depend_on,function(e){r.data[e]="$"+e}),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor=`
|
|
178
|
+
var filters = '[]';
|
|
179
|
+
var top = 10;
|
|
180
|
+
if(api.data.$term){
|
|
181
|
+
filters = '["name", "contains", "'+ api.data.$term +'"]';
|
|
182
|
+
}else if(api.data.$value){
|
|
183
|
+
filters = '["_id", "=", "'+ api.data.$value +'"]';
|
|
184
|
+
}
|
|
185
|
+
api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);
|
|
186
|
+
return api;
|
|
187
|
+
`,i?i.labelField.name:""),n=i?i.valueField.name:"";e._optionsFunction&&(r.adaptor=`
|
|
188
|
+
payload.data.options = eval(${e._optionsFunction})(api.data);
|
|
189
|
+
return payload;
|
|
190
|
+
`,l="label",n="value");const o={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,labelField:l,valueField:n,autoComplete:r};return!___namespace.has(e,"defaultValue")||___namespace.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(o.value=e.defaultValue),e.multiple&&(o.multiple=!0,o.extractValue=!0),t&&(o.tpl=getLookupTpl(e,a)),o}async function getApi(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 lookupToAmis(e,t,a){var i=await getReferenceTo(e);return(i&&1==(await getUISchema(i.objectName)).enable_enhanced_lookup?lookupToAmisPicker:lookupToAmisSelect)(e,t,a)}const OMIT_FIELDS=["created","created_by","modified","modified_by"],AmisFormInputs=["text","date","file","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t){return t?___namespace.includes(["text"],e)?"static-"+e:"static":___namespace.includes(AmisFormInputs,e)?"input-"+e:e}function getObjectFieldSubFields(t,e){const a=Object.assign({subFields:[]},t);e=___namespace.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function getGridFieldSubFields(t,e){const a=Object.assign({subFields:[]},t);e=___namespace.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function getSelectFieldOptions(e){const t=e.data_type||"text",a=[];return ___namespace.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 convertSFieldToAmisField(r,l,e){let t=null;if(!___namespace.includes(OMIT_FIELDS,r.name)||1==e.showSystemFields){var a,n={name:e.fieldNamePrefix?""+e.fieldNamePrefix+r.name:r.name,label:r.label,labelRemark:r.inlineHelpText,required:(___namespace.has(e,"required")?e:r).required};let i={};switch(r.type){case"text":i.type=getAmisStaticFieldType("text",l);break;case"textarea":i.type=getAmisStaticFieldType("textarea",l),i.tpl=`<b><%=data.${r.name}%></b>`;break;case"html":i={type:"editor",language:"html",value:r.defaultValue||""};break;case"select":i={type:getAmisStaticFieldType("select",l),joinValues:!1,options:getSelectFieldOptions(r),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:l?getSelectTpl(r):null},!___namespace.has(r,"defaultValue")||___namespace.isString(r.defaultValue)&&r.defaultValue.startsWith("{")||(a=r.data_type||"text",null!=r.defaultValue&&("text"===a?i.value=String(r.defaultValue):"number"===a?i.value=Number(r.defaultValue):"boolean"===a&&(i.value="false"!==r.defaultValue))),r.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:getAmisStaticFieldType("checkbox",l),option:r.inlineHelpText,tpl:l?getSwitchTpl(r):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:l?getDateTpl(r):null};break;case"date":i={type:getAmisStaticFieldType("date",l),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:l?getDateTpl(r):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:l?getDateTimeTpl(r):null,utc:!0};break;case"datetime":i={type:getAmisStaticFieldType("datetime",l),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:l?getDateTimeTpl(r):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:l?getDateTimeTpl(r):null};break;case"time":i={type:getAmisStaticFieldType("time",l),inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:l?getDateTimeTpl(r):null};break;case"number":case"currency":i={type:getAmisStaticFieldType("number",l),min:r.min,max:r.max,precision:r.scale};break;case"input-array":i=Object.assign({},r,n);break;case"input-range":i={type:"input-range",min:r.min,max:r.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i={type:getAmisStaticFieldType("number",l),min:r.min,max:r.max,precision:r.scale};break;case"password":i={type:getAmisStaticFieldType("password",l),tpl:l?getPasswordTpl(r):null};break;case"lookup":case"master_detail":i=await lookupToAmis(r,l,e);break;case"autonumber":break;case"url":i={type:getAmisStaticFieldType("url",l)};break;case"email":i={type:getAmisStaticFieldType("email",l)};break;case"image":t=absoluteUrl("/api/files/images/"),i={type:getAmisStaticFieldType("image",l),receiver:{method:"post",url:"${context.rootUrl}/s3/images",adaptor:`
|
|
191
|
+
var rootUrl = ${JSON.stringify(t)};
|
|
192
|
+
payload = {
|
|
193
|
+
status: response.status == 200 ? 0 : response.status,
|
|
194
|
+
msg: response.statusText,
|
|
195
|
+
data: {
|
|
196
|
+
value: payload._id,
|
|
197
|
+
filename: payload.original.name,
|
|
198
|
+
url: rootUrl + payload._id,
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return payload;
|
|
202
|
+
`,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},r.multiple&&(i.multiple=!0,i.joinValues=!1,i.extractValue=!0);break;case"file":t=absoluteUrl("/api/files/files/"),i={type:getAmisStaticFieldType("file",l),receiver:{method:"post",url:"${context.rootUrl}/s3/files",adaptor:`
|
|
203
|
+
var rootUrl = ${JSON.stringify(t)};
|
|
204
|
+
payload = {
|
|
205
|
+
status: response.status == 200 ? 0 : response.status,
|
|
206
|
+
msg: response.statusText,
|
|
207
|
+
data: {
|
|
208
|
+
value: payload._id,
|
|
209
|
+
name: payload.original.name,
|
|
210
|
+
url: rootUrl + payload._id,
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return payload;
|
|
214
|
+
`,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},r.multiple&&(i.multiple=!0,i.joinValues=!1,i.extractValue=!0);break;case"formula":case"summary":break;case"code":i={type:"editor",language:r.language,value:r.defaultValue||""};break;case"toggle":i={type:"switch"};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!l,addable:!l,removable:!l,draggable:!l,columns:[]},___namespace.each(r.subFields,function(e){var t=e.name.replace(r.name+".$.","").replace(r.name+".","");const a=convertSFieldToAmisField(Object.assign({},e,{name:t}),l);a&&(delete a.name,delete a.label,i.columns.push({name:t,label:e.label,quickEdit:!l&&a}))})}return ___namespace.isEmpty(i)?void 0:(r.is_wide?i.className="col-span-2 m-1":i.className="m-1",l&&(i.className=i.className+" slds-form-element_readonly"),i.labelClassName="text-left",l&&(i.quickEdit=!1),r.visible_on&&(i.visibleOn="$"+r.visible_on.substring(1,r.visible_on.length-1).replace(/formData./g,"")),Object.assign({},n,i))}}async function getFieldSearchable(t,e,a){let i=t,r=("grid"===i.type?i=await getGridFieldSubFields(t,e):"object"===t.type&&(i=await getObjectFieldSubFields(t,e)),"__searchable__");if(i.name.indexOf(".")<0){let e=_$1.cloneDeep(i);_$1.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,r+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,r+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,r+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,r+="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;t=await convertSFieldToAmisField(e,!1,Object.assign({},a,{fieldNamePrefix:r,required:!1,showSystemFields:!0}));if(t)return t}}const API_CACHE=100;function getReadonlyFormAdaptor(e){let a="";e=___namespace.filter(e,function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)});return ___namespace.each(e,function(e){var t;___namespace.includes(OMIT_FIELDS,e.name)||(e.name,e.options?(t=JSON.stringify({options:e.options}),a+=`var ${e.name}Options= (${t}).options;`):e.optionsFunction&&(a+=`var ${e.name}Options = eval(${e.optionsFunction.toString()})(api.data);`),e.multiple?a+=`data.${e.name}__label = _.map(_.filter(${e.name}Options, function(option){return _.includes(data.${e.name}, option.value)}), 'label');`:a=(a+=`var ${e.name}Selected = _.find(${e.name}Options, function(option){return data.${e.name} == option.value});`)+`data.${e.name}__label = ${e.name}Selected ? ${e.name}Selected.label:null;`)}),`
|
|
215
|
+
if(payload.data.data){
|
|
216
|
+
var data = payload.data.data[0];
|
|
217
|
+
${a}
|
|
218
|
+
payload.data = data;
|
|
219
|
+
window.postMessage(Object.assign({type: "record.loaded"}, {record: data}), "*")
|
|
220
|
+
}
|
|
221
|
+
return payload;
|
|
222
|
+
`}async function getReadonlyFormInitApi(e,t,a){return{method:"post",url:getApi$2()+"?rf="+(new Date).getTime(),cache:API_CACHE,adaptor:getReadonlyFormAdaptor(a),data:await getFindOneQuery$1(e,t,a),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getConvertDataScriptStr(e){e=___namespace.filter(e,function(e){return e.name.indexOf(".")<0&&("lookup"==e.type||"master_detail"==e.type)&&e.reference_to});let a="";return ___namespace.each(e,function(e){var t;___namespace.includes(OMIT_FIELDS,e.name)||(t=e.reference_to_field||"_id",e.multiple?a+=`data.${e.name} = _.map(data.${e.name}, '${t}');`:a+=`data.${e.name} = data.${e.name} ? data.${e.name}.${t}:null;`)}),a}function getScriptForAddUrlPrefixForImgFields(e){let t=[],a={};var i=absoluteUrl("/api/files/images/");return e.forEach(e=>{"image"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})}),t.length?`
|
|
223
|
+
// image字段值添加URL前缀
|
|
224
|
+
let imgFieldsKeys = ${JSON.stringify(t)};
|
|
225
|
+
let imgFields = ${JSON.stringify(a)};
|
|
226
|
+
let rootUrl = ${JSON.stringify(i)};
|
|
227
|
+
imgFieldsKeys.forEach((item)=>{
|
|
228
|
+
let imgFieldValue = data[item];
|
|
229
|
+
if(imgFieldValue && imgFieldValue.length){
|
|
230
|
+
if(imgFields[item].multiple){
|
|
231
|
+
if(imgFieldValue instanceof Array){
|
|
232
|
+
data[item] = imgFieldValue.map((value)=>{ return rootUrl + value});
|
|
233
|
+
}
|
|
234
|
+
}else{
|
|
235
|
+
data[item] = rootUrl + imgFieldValue;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
`:""}function getScriptForRewriteValueForFileFields(e){let t=[],a={};var i=absoluteUrl("/api/files/files/");return e.forEach(e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})}),t.length?`
|
|
240
|
+
// file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件
|
|
241
|
+
let fileFieldsKeys = ${JSON.stringify(t)};
|
|
242
|
+
let fileFields = ${JSON.stringify(a)};
|
|
243
|
+
let fileRootUrl = ${JSON.stringify(i)};
|
|
244
|
+
fileFieldsKeys.forEach((item)=>{
|
|
245
|
+
let fileFieldValue = data[item];
|
|
246
|
+
if(fileFieldValue && fileFieldValue.length){
|
|
247
|
+
const fileFieldNames = data._display[item].split(',');
|
|
248
|
+
if(fileFields[item].multiple){
|
|
249
|
+
if(fileFieldValue instanceof Array){
|
|
250
|
+
data[item] = fileFieldValue.map((value, index)=>{
|
|
251
|
+
return {
|
|
252
|
+
value: value,
|
|
253
|
+
name: fileFieldNames[index],
|
|
254
|
+
url: fileRootUrl + value + "?download=true",
|
|
255
|
+
state: "uploaded"
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}else{
|
|
260
|
+
data[item] = {
|
|
261
|
+
value: fileFieldValue,
|
|
262
|
+
name: fileFieldNames[0],
|
|
263
|
+
url: fileRootUrl + fileFieldValue + "?download=true",
|
|
264
|
+
state: "uploaded"
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
})
|
|
269
|
+
`:""}async function getEditFormInitApi(e,t,a){return{method:"post",url:getApi$2(),sendOn:"!!this.recordId",cache:API_CACHE,adaptor:`
|
|
270
|
+
if(payload.data.data){
|
|
271
|
+
var data = payload.data.data[0];
|
|
272
|
+
if(data){
|
|
273
|
+
${getConvertDataScriptStr(a)}
|
|
274
|
+
${getScriptForAddUrlPrefixForImgFields(a)}
|
|
275
|
+
${getScriptForRewriteValueForFileFields(a)}
|
|
276
|
+
//初始化接口返回的字段移除字段值为null的字段
|
|
277
|
+
for (key in data){
|
|
278
|
+
if(data[key] === null){
|
|
279
|
+
delete data[key];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
payload.data = data;
|
|
284
|
+
delete payload.extensions;
|
|
285
|
+
}
|
|
286
|
+
return payload;
|
|
287
|
+
`,data:await getFindOneQuery$1(e,t,a),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getSaveApi(e,t,a,i){return{method:"post",url:getApi$2(),data:getSaveQuery(),requestAdaptor:getSaveRequestAdaptor(a),responseData:{recordId:"${record._id}"},adaptor:`
|
|
288
|
+
return payload;
|
|
289
|
+
`,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getBatchDelete(e){return{method:"post",url:getApi$2(),requestAdaptor:`
|
|
290
|
+
var ids = api.data.ids.split(",");
|
|
291
|
+
var deleteArray = [];
|
|
292
|
+
ids.forEach((id,index)=>{
|
|
293
|
+
deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);
|
|
294
|
+
})
|
|
295
|
+
api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
|
|
296
|
+
return api;
|
|
297
|
+
`,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let i=[];return i.length=0,___namespace.forEach(e.fields,(e,t)=>{___namespace.has(e,"name")||(e.name=t)}),___namespace.forEach(___namespace.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)=>{var r,e=___namespace.filter(e,{group:a});if(e.length!=___namespace.filter(e,["hidden",!0]).length){const 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);const r=[];for(const n in ___namespace.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)}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);const r={toolbar:getToolbar(),footerToolbar:footerToolbar(),headerToolbar:getHeaderToolbar(e,a.formFactor),bulkActions:i,bodyClassName:""};let l=null;i="listview_"+e.name;if("SMALL"===a.formFactor)delete r.bulkActions,delete r.headerToolbar,delete r.footerToolbar,l=Object.assign({},getCardSchema(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!1,api:await getTableApi(e,t,a)},r);else{const n=getTableSchema(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a));delete n.mode,l=Object.assign({},n,{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a)},r)}return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},body:l}}const getGlobalData$1=e=>{var t=getSteedosAuth();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function getObjectForm(e,t){var a=t["recordId"],i=___default.default.values(e.fields);return{type:"page",bodyClassName:"p-0",regions:["body"],name:"page_edit_"+a,data:{global:getGlobalData$1("edit"),recordId:a,objectName:e.name,context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},initApi:null,initFetch:null,body:[{type:"form",mode:"SMALL"===t.formFactor?"normal":"horizontal",persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,i),initApi:await getEditFormInitApi(e,a,i),initFetch:"new"!=a,body:await getFormBody(i,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form"}]}}async function getObjectDetail(e,t,a){var i=___default.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,i),body:[{type:"form",mode:"SMALL"===a.formFactor?"normal":"horizontal",persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(_$1.map(i,e=>{e.readonly=!0}),e,a),className:"steedos-amis-form",actions:[]}]}}const getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),_$1.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="";const r=[`id: "${t}"`];return`{record:${e}__findOne${i=0<r.length?`(${r.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=[];_$1.each(e,e=>{a.push(`${e.object_name}: ${e.object_name}__count(filters: [["${e.foreign_key}","=","${t}"]])`)});e=`
|
|
298
|
+
{
|
|
299
|
+
${a.join(",")}
|
|
300
|
+
}
|
|
301
|
+
`;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"})},UI_SCHEMA_CACHE={},setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>___default.default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.default.has(UI_SCHEMA_CACHE,e),getListViewColumns=(e,t)=>{let a=[];return a="SMALL"===t?_$1.isEmpty(e.mobile_columns)?_$1.slice(e.columns,0,4):e.mobile_columns:e.columns};async function getUISchema(t,e){if(t){if(!hasUISchemaCache(t)||e){var i,e=`/service/api/@${t.replace(/\./g,"_")}/uiSchema`;let a=null;try{a=await fetchAPI(e,{method:"get"}),setUISchemaCache(t,a);for(const r in a.fields)!a.fields||"lookup"!==(i=a.fields[r]).type&&"master_detail"!==i.type||!i.reference_to||await getUISchema(i.reference_to)||delete a.fields[r];_$1.each(a.list_views,(e,t)=>{e.name=t,_$1.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={}){const r=await getUISchema(t);var l=___default.default.find(r.list_views,(e,t)=>t===a);if(!l)return{uiSchema:r};r.fields;const n=[];var o=getListViewColumns(l,i.formFactor),o=(l&&o&&___default.default.each(o,function(e){___default.default.isString(e)&&r.fields[e]?n.push(r.fields[e]):___default.default.isObject(e)&&r.fields[e.field]&&n.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))}),l&&l.extra_columns&&___default.default.each(l.extra_columns,function(e){___default.default.isString(e)?n.push({extra:!0,name:e}):___default.default.isObject(e)&&n.push({extra:!0,name:e.field})}),o=n,await getObjectList(r,o,{tabId:t,appId:e,objectName:t,...i,filter:l.filters}));return{uiSchema:r,amisSchema:o}}async function getObjectRelateds(t,a,i,r){var e=await getUISchema(a);const l=[],n=[].concat(e.details||[]);e.enable_files&&n.push("cms_files.parent");for(const d of n){var o=d.split(".");let e=null;var s=await getField(o[0],o[1]);e=s._reference_to||s.reference_to&&!___default.default.isString(s.reference_to)?[[o[1]+"/o","=",a],[o[1]+"/ids","=",i]]:[""+o[1],"=",i],l.push({masterObjectName:a,object_name:o[0],foreign_key:o[1],schema:await getListSchema(t,o[0],"all",{globalFilter:e,formFactor:r})})}return l}async function getObjectRelated(e,t,a,i,r,l){let n=null;var o=await getField(a,i),o=(n=o._reference_to||o.reference_to&&!___default.default.isString(o.reference_to)?[[i+"/o","=",t],[i+"/ids","=",r]]:[""+i,"=",r],await getUISchema(t,l));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){const t=[];for(var a of e)if(!___default.default.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],a.type)){delete a.defaultValue,delete a.required,delete a.is_wide,delete a.readonly,delete a.hidden,delete a.omit;const i=await getFieldSearchable(a,e,{});i&&(i.className="min-w-[200px] pr-4 max-w-[350px] grow",t.push(i))}return{title:"",type:"form",name:"listview-filter-form",mode:"normal",wrapWithPanel:!1,className:"flex flex-row w-full flex-wrap mb-3",body:t}}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}const globalTag="__G_L_O_B_A_L__",getParentPath=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))},getValueByPath=function(e,t){return"#"!==t&&t?"string"==typeof t?___namespace.get(e,t):void console.error("path has to be a string"):e||{}},isExpression=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},parseSingleExpression=function(t,e,a,i,r={}){var l,n;if(void 0===e&&(e={}),n=getParentPath(a),n=getValueByPath(e,n)||{},"string"!=typeof t)return t;l=t.substring(2,t.length-2),r=`
|
|
302
|
+
var $user=${JSON.stringify(r)}; return `+l.replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,globalTag)).replace(/\bglobal\b/g,JSON.stringify(i)).replace(new RegExp("\\b"+globalTag+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(n));try{return Function(r)()}catch(e){return console.log(e,t,a),t}},getGlobalData=()=>({now:new Date}),isVisible=(t,e)=>{if(t._visible&&(___default.default.startsWith(___default.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.default.isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},standardButtonsTodo={standard_new:(e,t)=>{const{appId:a,listViewId:i,uiSchema:r,formFactor:l,data:n,router:o,options:s={}}=t;t=config.listView.newRecordMode;SteedosUI?.Object.newRecord({onSubmitted:()=>{SteedosUI.getRef(i).getComponentByName("page.listview_"+r.name).handleAction({},{actionType:"reload"})},onCancel:()=>{SteedosUI.getRef(i).getComponentByName("page.listview_"+r.name).handleAction({},{actionType:"reload"})},appId:a,formFactor:l,name:SteedosUI.getRefId({type:t+"-form"}),title:"新建 "+r.label,objectName:r.name,data:n,recordId:"new",type:t,options:s,router:o})},standard_edit:(e,t)=>{var a=config.listView.newRecordMode;const{appId:i,recordId:r,uiSchema:l,formFactor:n,router:o,options:s={}}=t;SteedosUI?.Object.editRecord({appId:i,name:SteedosUI.getRefId({type:a+"-form"}),title:"编辑 "+l.label,objectName:l.name,recordId:r,type:a,options:s,router:o,formFactor:n,onSubmitted:()=>{SteedosUI.getRef(SteedosUI.getRefId({type:"detail",appId:i,name:l.name})).getComponentById("detail_"+r).reload()}})},standard_delete:(e,t)=>{},standard_delete_many:(e,t)=>{var{listViewId:t,uiSchema:a}=t;const i=SteedosUI?.getRef(t).getComponentByName("page.listview_"+a.name);___default.default.isEmpty(i.props.store.toJSON().selectedItems)?i.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):i.handleBulkAction(i.props.store.toJSON().selectedItems,[],{},i.props.bulkActions[0])}},getButtons=(t,a)=>{const i=t.permissions.disabled_actions;let e=___default.default.sortBy(___default.default.values(t.actions),"sort");return ___default.default.has(t,"allow_customActions")&&(e=___default.default.filter(e,e=>___default.default.include(t.allow_customActions,e.name))),___default.default.has(t,"exclude_actions")&&(e=___default.default.filter(e,e=>!___default.default.include(t.exclude_actions,e.name))),___default.default.each(e,e=>{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.default.map(e,e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")}),___default.default.filter(e,e=>___default.default.indexOf(i,e.name)<0)},getListViewButtons=(t,a)=>{var e=getButtons(t,a);const i=___default.default.filter(e,e=>"list"==e.on&&isVisible(e,a)),r=___default.default.find(e,e=>"standard_new"==e.name);return"cms_files"!=t.name&&t.permissions.allowCreate&&r&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")&&i.push({label:r.label,name:r.name,on:r.on,type:r.type,todo:e=>standardButtonsTodo.standard_new.call({},e,{listViewId:a.listViewId,appId:a.app_id,uiSchema:t,formFactor:a.formFactor,router:a.router,data:a.data,options:"SMALL"===a.formFactor?{props:{width:"100%",style:{width:"100%"},bodyStyle:{padding:"0px",paddingTop:"0px"}}}:null})}),i},getObjectDetailButtons=(t,a)=>{var e=getButtons(t,a);const i=___default.default.filter(e,e=>("record"==e.on||"record_only"==e.on)&&isVisible(e,a)),r=___default.default.find(e,e=>"standard_edit"==e.name);return a.permissions?.allowEdit&&r&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")&&i.push({label:r.label,name:r.name,on:r.on,type:r.type,todo:e=>standardButtonsTodo.standard_edit.call({},e,{recordId:a.recordId,appId:a.app_id,uiSchema:t,formFactor:a.formFactor,router:a.router,options:"SMALL"===a.formFactor?{props:{width:"100%",style:{width:"100%"},bodyStyle:{padding:"0px",paddingTop:"0px"}}}:null})}),___default.default.sortBy(i,"sort")},getObjectDetailMoreButtons=(e,t)=>{e=getButtons(e,t);const a=___default.default.filter(e,e=>("record_more"==e.on||"record_only_more"==e.on)&&isVisible(e,t)),i=___default.default.find(e,e=>"standard_delete"==e.name);return t.permissions?.allowDelete&&i&&0<i._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")&&a.push({label:i.label,name:i.name,on:i.on,type:"amis_action",confirmText:"确定要删除此项目?",sort:i.sort,amis_actions:[{args:{api:{method:"post",url:getApi$2(),requestAdaptor:`
|
|
303
|
+
var deleteArray = [];
|
|
304
|
+
deleteArray.push(\`delete:${t.objectName}__delete(id: "${t.recordId}")\`);
|
|
305
|
+
api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
|
|
306
|
+
return api;
|
|
307
|
+
`,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"}]}),___default.default.sortBy(a,"sort")},execute=(e,t)=>{if(e.todo)return ___default.default.isString(e.todo)&&___default.default.startsWith(___default.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),___default.default.isFunction(e.todo)?e.todo.apply({},[t]):void 0},getNotifications=async()=>{var e=getSteedosAuth(),e=`
|
|
308
|
+
{
|
|
309
|
+
notifications(filters: ["owner","=","${e.userId}"], sort: "created desc,name", top : 10){
|
|
310
|
+
_id,name,body,related_to,related_name,url,owner,is_read,from,created
|
|
311
|
+
},
|
|
312
|
+
unReadCount: notifications__count(filters: [["owner","=","${e.userId}"], ["is_read", "!=", true]])
|
|
313
|
+
}
|
|
314
|
+
`;return(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},markReadAll=async()=>fetchAPI("/api/v4/notifications/all/markReadAll",{method:"POST"});async function getPage(e,t,a="",i,r="LARGE"){return await fetchAPI(`/api/pageSchema/app?app=${t}&objectApiName=${a}&recordId=${i}&pageId=${e}&formFactor=`+r)}const PUBLIC_ENV={},setEnv=(e,t)=>{PUBLIC_ENV[e]=t},getEnv=e=>PUBLIC_ENV[e],setEnvs=e=>{_$1.map(e,(e,t)=>{PUBLIC_ENV[t]=e})},getEnvs=()=>PUBLIC_ENV;exports.absoluteUrl=absoluteUrl,exports.execute=execute,exports.fetchAPI=fetchAPI,exports.getApp=getApp,exports.getApps=getApps,exports.getAuthToken=getAuthToken,exports.getAuthorization=getAuthorization,exports.getButtons=getButtons,exports.getEnv=getEnv,exports.getEnvs=getEnvs,exports.getField=getField,exports.getFileSrc=getFileSrc,exports.getFormSchema=getFormSchema,exports.getImageSrc=getImageSrc,exports.getListSchema=getListSchema,exports.getListViewButtons=getListViewButtons,exports.getNotifications=getNotifications,exports.getObjectDetailButtons=getObjectDetailButtons,exports.getObjectDetailMoreButtons=getObjectDetailMoreButtons,exports.getObjectRelated=getObjectRelated,exports.getObjectRelateds=getObjectRelateds,exports.getPage=getPage,exports.getRecord=getRecord,exports.getRecordPermissions=getRecordPermissions,exports.getRelatedsCount=getRelatedsCount,exports.getRootUrl=getRootUrl,exports.getSearchableFieldsFilterSchema=getSearchableFieldsFilterSchema,exports.getSteedosAuth=getSteedosAuth,exports.getTenantId=getTenantId,exports.getUISchema=getUISchema,exports.getViewSchema=getViewSchema,exports.isExpression=isExpression,exports.markReadAll=markReadAll,exports.parseSingleExpression=parseSingleExpression,exports.setEnv=setEnv,exports.setEnvs=setEnvs,exports.setRootUrl=setRootUrl,exports.setSteedosAuth=setSteedosAuth,exports.standardButtonsTodo=standardButtonsTodo;
|
|
315
|
+
//# sourceMappingURL=index.cjs.js.map
|