@steedos-widgets/amis-object 1.0.0-beta.30 → 1.0.0

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.
@@ -1,1665 +1,2 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var _$1 = require('lodash');
7
- var antd = require('antd');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- function _interopNamespace(e) {
12
- if (e && e.__esModule) return e;
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
23
- });
24
- }
25
- n["default"] = e;
26
- return Object.freeze(n);
27
- }
28
-
29
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
- var _$1__namespace = /*#__PURE__*/_interopNamespace(_$1);
31
- var _$1__default = /*#__PURE__*/_interopDefaultLegacy(_$1);
32
-
33
- /******************************************************************************
34
- Copyright (c) Microsoft Corporation.
35
-
36
- Permission to use, copy, modify, and/or distribute this software for any
37
- purpose with or without fee is hereby granted.
38
-
39
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
40
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
41
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
42
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
43
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
44
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
45
- PERFORMANCE OF THIS SOFTWARE.
46
- ***************************************************************************** */
47
-
48
- var __assign$1 = function() {
49
- __assign$1 = Object.assign || function __assign(t) {
50
- for (var s, i = 1, n = arguments.length; i < n; i++) {
51
- s = arguments[i];
52
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
53
- }
54
- return t;
55
- };
56
- return __assign$1.apply(this, arguments);
57
- };
58
-
59
- function __awaiter(thisArg, _arguments, P, generator) {
60
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
61
- return new (P || (P = Promise))(function (resolve, reject) {
62
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
63
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
64
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
65
- step((generator = generator.apply(thisArg, _arguments || [])).next());
66
- });
67
- }
68
-
69
- function __generator(thisArg, body) {
70
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
71
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
72
- function verb(n) { return function (v) { return step([n, v]); }; }
73
- function step(op) {
74
- if (f) throw new TypeError("Generator is already executing.");
75
- while (_) try {
76
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
77
- if (y = 0, t) op = [op[0] & 2, t.value];
78
- switch (op[0]) {
79
- case 0: case 1: t = op; break;
80
- case 4: _.label++; return { value: op[1], done: false };
81
- case 5: _.label++; y = op[1]; op = [0]; continue;
82
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
83
- default:
84
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
85
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
86
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
87
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
88
- if (t[2]) _.ops.pop();
89
- _.trys.pop(); continue;
90
- }
91
- op = body.call(thisArg, _);
92
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
93
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
94
- }
95
- }
96
-
97
- function __values(o) {
98
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
99
- if (m) return m.call(o);
100
- if (o && typeof o.length === "number") return {
101
- next: function () {
102
- if (o && i >= o.length) o = void 0;
103
- return { value: o && o[i++], done: !o };
104
- }
105
- };
106
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
107
- }
108
-
109
- function __read(o, n) {
110
- var m = typeof Symbol === "function" && o[Symbol.iterator];
111
- if (!m) return o;
112
- var i = m.call(o), r, ar = [], e;
113
- try {
114
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
115
- }
116
- catch (error) { e = { error: error }; }
117
- finally {
118
- try {
119
- if (r && !r.done && (m = i["return"])) m.call(i);
120
- }
121
- finally { if (e) throw e.error; }
122
- }
123
- return ar;
124
- }
125
-
126
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
127
-
128
- /** Detect free variable `global` from Node.js. */
129
-
130
- var freeGlobal$1 = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
131
-
132
- var _freeGlobal = freeGlobal$1;
133
-
134
- var freeGlobal = _freeGlobal;
135
-
136
- /** Detect free variable `self`. */
137
- var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
138
-
139
- /** Used as a reference to the global object. */
140
- var root$1 = freeGlobal || freeSelf || Function('return this')();
141
-
142
- var _root = root$1;
143
-
144
- var root = _root;
145
-
146
- /** Built-in value references. */
147
- var Symbol$3 = root.Symbol;
148
-
149
- var _Symbol = Symbol$3;
150
-
151
- var Symbol$2 = _Symbol;
152
-
153
- /** Used for built-in method references. */
154
- var objectProto$2 = Object.prototype;
155
-
156
- /** Used to check objects for own properties. */
157
- var hasOwnProperty$1 = objectProto$2.hasOwnProperty;
158
-
159
- /**
160
- * Used to resolve the
161
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
162
- * of values.
163
- */
164
- var nativeObjectToString$1 = objectProto$2.toString;
165
-
166
- /** Built-in value references. */
167
- var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : undefined;
168
-
169
- /**
170
- * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
171
- *
172
- * @private
173
- * @param {*} value The value to query.
174
- * @returns {string} Returns the raw `toStringTag`.
175
- */
176
- function getRawTag$1(value) {
177
- var isOwn = hasOwnProperty$1.call(value, symToStringTag$1),
178
- tag = value[symToStringTag$1];
179
-
180
- try {
181
- value[symToStringTag$1] = undefined;
182
- var unmasked = true;
183
- } catch (e) {}
184
-
185
- var result = nativeObjectToString$1.call(value);
186
- if (unmasked) {
187
- if (isOwn) {
188
- value[symToStringTag$1] = tag;
189
- } else {
190
- delete value[symToStringTag$1];
191
- }
192
- }
193
- return result;
194
- }
195
-
196
- var _getRawTag = getRawTag$1;
197
-
198
- /** Used for built-in method references. */
199
-
200
- var objectProto$1 = Object.prototype;
201
-
202
- /**
203
- * Used to resolve the
204
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
205
- * of values.
206
- */
207
- var nativeObjectToString = objectProto$1.toString;
208
-
209
- /**
210
- * Converts `value` to a string using `Object.prototype.toString`.
211
- *
212
- * @private
213
- * @param {*} value The value to convert.
214
- * @returns {string} Returns the converted string.
215
- */
216
- function objectToString$1(value) {
217
- return nativeObjectToString.call(value);
218
- }
219
-
220
- var _objectToString = objectToString$1;
221
-
222
- var Symbol$1 = _Symbol,
223
- getRawTag = _getRawTag,
224
- objectToString = _objectToString;
225
-
226
- /** `Object#toString` result references. */
227
- var nullTag = '[object Null]',
228
- undefinedTag = '[object Undefined]';
229
-
230
- /** Built-in value references. */
231
- var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
232
-
233
- /**
234
- * The base implementation of `getTag` without fallbacks for buggy environments.
235
- *
236
- * @private
237
- * @param {*} value The value to query.
238
- * @returns {string} Returns the `toStringTag`.
239
- */
240
- function baseGetTag$1(value) {
241
- if (value == null) {
242
- return value === undefined ? undefinedTag : nullTag;
243
- }
244
- return (symToStringTag && symToStringTag in Object(value))
245
- ? getRawTag(value)
246
- : objectToString(value);
247
- }
248
-
249
- var _baseGetTag = baseGetTag$1;
250
-
251
- /**
252
- * Creates a unary function that invokes `func` with its argument transformed.
253
- *
254
- * @private
255
- * @param {Function} func The function to wrap.
256
- * @param {Function} transform The argument transform.
257
- * @returns {Function} Returns the new function.
258
- */
259
-
260
- function overArg$1(func, transform) {
261
- return function(arg) {
262
- return func(transform(arg));
263
- };
264
- }
265
-
266
- var _overArg = overArg$1;
267
-
268
- var overArg = _overArg;
269
-
270
- /** Built-in value references. */
271
- var getPrototype$1 = overArg(Object.getPrototypeOf, Object);
272
-
273
- var _getPrototype = getPrototype$1;
274
-
275
- /**
276
- * Checks if `value` is object-like. A value is object-like if it's not `null`
277
- * and has a `typeof` result of "object".
278
- *
279
- * @static
280
- * @memberOf _
281
- * @since 4.0.0
282
- * @category Lang
283
- * @param {*} value The value to check.
284
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
285
- * @example
286
- *
287
- * _.isObjectLike({});
288
- * // => true
289
- *
290
- * _.isObjectLike([1, 2, 3]);
291
- * // => true
292
- *
293
- * _.isObjectLike(_.noop);
294
- * // => false
295
- *
296
- * _.isObjectLike(null);
297
- * // => false
298
- */
299
-
300
- function isObjectLike$1(value) {
301
- return value != null && typeof value == 'object';
302
- }
303
-
304
- var isObjectLike_1 = isObjectLike$1;
305
-
306
- var baseGetTag = _baseGetTag,
307
- getPrototype = _getPrototype,
308
- isObjectLike = isObjectLike_1;
309
-
310
- /** `Object#toString` result references. */
311
- var objectTag = '[object Object]';
312
-
313
- /** Used for built-in method references. */
314
- var funcProto = Function.prototype,
315
- objectProto = Object.prototype;
316
-
317
- /** Used to resolve the decompiled source of functions. */
318
- var funcToString = funcProto.toString;
319
-
320
- /** Used to check objects for own properties. */
321
- var hasOwnProperty = objectProto.hasOwnProperty;
322
-
323
- /** Used to infer the `Object` constructor. */
324
- var objectCtorString = funcToString.call(Object);
325
-
326
- /**
327
- * Checks if `value` is a plain object, that is, an object created by the
328
- * `Object` constructor or one with a `[[Prototype]]` of `null`.
329
- *
330
- * @static
331
- * @memberOf _
332
- * @since 0.8.0
333
- * @category Lang
334
- * @param {*} value The value to check.
335
- * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
336
- * @example
337
- *
338
- * function Foo() {
339
- * this.a = 1;
340
- * }
341
- *
342
- * _.isPlainObject(new Foo);
343
- * // => false
344
- *
345
- * _.isPlainObject([1, 2, 3]);
346
- * // => false
347
- *
348
- * _.isPlainObject({ 'x': 0, 'y': 0 });
349
- * // => true
350
- *
351
- * _.isPlainObject(Object.create(null));
352
- * // => true
353
- */
354
- function isPlainObject(value) {
355
- if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
356
- return false;
357
- }
358
- var proto = getPrototype(value);
359
- if (proto === null) {
360
- return true;
361
- }
362
- var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
363
- return typeof Ctor == 'function' && Ctor instanceof Ctor &&
364
- funcToString.call(Ctor) == objectCtorString;
365
- }
366
-
367
- var isPlainObject_1 = isPlainObject;
368
-
369
- const RegisterRenders=[],normalizeLink=(e,t=window.location)=>{(e=e||"")&&"#"===e[0]?e=t.pathname+t.search+e:e&&"?"===e[0]&&(e=t.pathname+e);var a=e.indexOf("?"),i=e.indexOf("#");let r=~a?e.substring(0,a):~i?e.substring(0,i):e;a=~a?e.substring(a,~i?i:void 0):"",e=~i?e.substring(i):t.hash;if(r){if("/"!=r[0]&&!/^https?\:\/\//.test(r)){var l,o=t.pathname.split("/");for(o.pop();l=/^\.\.?\//.exec(r);)"../"===l[0]&&o.pop(),r=r.substring(l[0].length);r=o.concat(r).join("/");}}else r=t.pathname;return r+a+e},amisRootClick=(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href));},getEvn=a=>({theme:"antd",notify:(e,t)=>{t.props?.schema.tpl?SteedosUI.message[e](t.props?.schema.tpl):"string"==typeof t?SteedosUI.message[e](t):console.warn("notify",e,t);},confirm:a=>new Promise((e,t)=>SteedosUI.Modal.confirm({title:a,onOk:()=>{e(!0);},okText:"确认",cancelText:"取消"})),jumpTo:(e,t)=>{if("goBack"===e)return window.history.back();e=normalizeLink(e),t&&"url"===t.actionType?!1===t.blank?a.push(e):window.open(e):t&&e&&t.target?window.open(e,t.target):/^https?:\/\//.test(e)?window.location.replace(e):a.push(e);}}),registerRenders=e=>{if(!_$1.isEmpty(e)&&_$1.isArray(e)){var t=amisRequire("amis");const a={renderer:t.Renderer,formitem:t.FormItem,options:t.OptionsControl};let o=amisRequire("react");_$1.each(e,t=>{if(!_$1.find(RegisterRenders,e=>e===t.componentName)){let l=Builder.components.find(e=>e.name===t.componentName),e=l.class;"amisSchema"===t.componentType&&(e=t=>{var{body:e,render:a}=t;const[i,r]=o.useState(null);return o.useEffect(()=>{var e=l.class(t);e&&e.then&&"function"==typeof e.then?e.then(e=>{r(e);}):r(e);},[]),o.createElement(o.Fragment,null,o.createElement(o.Fragment,null,i&&a?a("body",i):""),o.createElement(o.Fragment,null,a?a("body",e):""))}),a[t.usage]?(a[t.usage]({test:new RegExp("(^|/)"+t.type),type:t.type,weight:t.weight,autoVar:!0})(e),console.info("注册了一个自定义amis组件:",{type:t.type,weight:t.weight,component:e,framework:t.framework,usage:t.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${t.usage}自定义组件类型。`),RegisterRenders.push(t.componentName);}});}},amisRender=(e,t,a={},i={},r)=>{var l=amisRequire("amis/embed"),{router:r,assets:o}=r;return registerRenders(o),l.embed(e,t,a,Object.assign(getEvn(r),i))},STEEDOS_AUTH={},getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings,setSteedosAuth=e=>{Object.assign(STEEDOS_AUTH,e);};async function fetchAPI(e,t={credentials:"include"}){var a={"Content-Type":"application/json"},i=getAuthorization(),i=(i&&(a.Authorization=i),t.headers=Object.assign({},a,t.headers),t.credentials="include",await fetch(""+getRootUrl()+e,t));if(401===i.status)throw new Error(401);a=await i.json();if(a.errors)throw console.error(a.errors),new Error("Failed to fetch API");return a}function getFileSrc(e){return getRootUrl()+"/api/files/files/"+e}function getImageSrc(e){return getRootUrl()+"/api/files/images/"+e}function getTenantId(){try{let e=getBuilderContext().tenantId;var t;return (window.location.search&&!e&&(t=new URLSearchParams(window.location.search),e=t.get("X-Space-Id")),e)?e: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=[];for(const l of _$1__namespace.isArray(e)?e:_$1__namespace.values(e))l.name.indexOf(".")<0&&(!t||"lookup"!=l.type&&"master_detail"!=l.type?a.push(l.alias?l.alias+":"+l.name:l.name):(a.push(""+l.name),i.push(""+l.name)),_$1.includes(["time","date","datetime","boolean","number","currency"],l.type)&&a.push(""+l.name),_$1.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary"],l.type)&&i.push(""+l.name));return i=_$1__namespace.uniq(i),a=_$1__namespace.uniq(a),0<i.length?`${a.join(",")},_display:_ui{${i.join(",")}}`:""+a.join(" ")}function getRecordPermissionsTemplate(){return `
370
- recordPermissions: _permissions{
371
- allowCreate,
372
- allowCreateFiles,
373
- allowDelete,
374
- allowDeleteFiles,
375
- allowEdit,
376
- allowEditFiles,
377
- allowRead,
378
- allowReadFiles,
379
- disabled_actions,
380
- disabled_list_views,
381
- field_permissions,
382
- modifyAllFiles,
383
- modifyAllRecords,
384
- modifyAssignCompanysRecords,
385
- modifyCompanyRecords,
386
- uneditable_fields,
387
- unreadable_fields,
388
- unrelated_objects,
389
- viewAllFiles,
390
- viewAllRecords,
391
- viewAssignCompanysRecords,
392
- viewCompanyRecords,
393
- }
394
- `}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)}, ${getRecordPermissionsTemplate()}}}`}}function getSaveQuery(e,t,a,i){return {objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"}}function getScriptForReadonlyFields(e){var t=[];return e.forEach(e=>{e.readonly&&t.push(`delete formData.${e.name};`);}),t.join("\r\n")}function getScriptForRemoveUrlPrefixForImgFields(e){let t=[],a={};return e.forEach(e=>{_$1.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple});}),t.length?`
395
- let imgFieldsKeys = ${JSON.stringify(t)};
396
- let imgFields = ${JSON.stringify(a)};
397
- imgFieldsKeys.forEach((item)=>{
398
- let imgFieldValue = formData[item];
399
- if(imgFieldValue && imgFieldValue.length){
400
- // 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。
401
- if(imgFields[item].multiple){
402
- if(imgFieldValue instanceof Array){
403
- formData[item] = imgFieldValue.map((value)=>{
404
- let itemValue = value?.split('/');
405
- return itemValue[itemValue.length - 1];
406
- });
407
- }
408
- }else{
409
- let imgValue = imgFieldValue.split('/');
410
- formData[item] = imgValue[imgValue.length - 1];
411
- }
412
- }
413
- })
414
- `:""}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?`
415
- let fileFieldsKeys = ${JSON.stringify(t)};
416
- let fileFields = ${JSON.stringify(a)};
417
- fileFieldsKeys.forEach((item)=>{
418
- let fileFieldValue = formData[item];
419
- if(fileFieldValue){
420
- // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。
421
- if(fileFields[item].multiple){
422
- if(fileFieldValue instanceof Array && fileFieldValue.length){
423
- formData[item] = fileFieldValue.map((value)=>{
424
- if(typeof value === 'object'){
425
- return value.value;
426
- }else{
427
- return value;
428
- }
429
- });
430
- }
431
- }else{
432
- formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;
433
- }
434
- }
435
- })
436
- `:""}function getSaveDataTpl(e){return `
437
- const formData = api.data.$;
438
- for (key in formData){
439
- // image、select等字段清空值后保存的空字符串转换为null。
440
- if(formData[key] === ''){
441
- formData[key] = null;
442
- }
443
- }
444
- const objectName = api.data.objectName;
445
- const fieldsName = Object.keys(formData);
446
- delete formData.created;
447
- delete formData.created_by;
448
- delete formData.modified;
449
- delete formData.modified_by;
450
- delete formData._display;
451
- ${getScriptForReadonlyFields(e)}
452
- ${getScriptForRemoveUrlPrefixForImgFields(e)}
453
- ${getScriptForSimplifiedValueForFileFields(e)}
454
- let query = \`mutation{record: \${objectName}__insert(doc: {__saveData}){_id}}\`;
455
- if(formData.recordId && formData.recordId !='new'){
456
- query = \`mutation{record: \${objectName}__update(id: "\${formData._id}", doc: {__saveData}){_id}}\`;
457
- };
458
- delete formData._id;
459
- let __saveData = JSON.stringify(JSON.stringify(formData));
460
- `}function getSaveRequestAdaptor(e){return `
461
- ${getSaveDataTpl(e)}
462
- api.data = {query: query.replace('{__saveData}', __saveData)};
463
- return api;
464
- `}async function getFindQuery(e,t,a,i){var r=i.limit||10;let l=`(top: ${r})`,o=(t&&(l=`(filters:["_id", "=", "${t}"], top: ${r})`),"data");i&&(i.alias&&(o=i.alias),i.filters&&(l=`(filters:${i.filters})`),i.queryOptions&&(l=`(${i.queryOptions})`));t="",e.enable_tree&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"parent")&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"children")&&(t=",parent,children"),r="";return "cms_files"===e.name&&(r=",versions"),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${l}{${await getFieldsTemplate(a,i.expand)}${t}${r}},count:${e.name}__count(filters:{__filters})}`}}function getApi$2(e){if(!e)return "${context.rootUrl}/graphql"}const Router={getAppPath({appId:e}){return "/app/"+e},getPagePath(){},getObjectListViewPath({appId:e,objectName:t,listViewName:a}){return `/app/${e}/${t}/grid/`+a},getObjectDetailPath({appId:e,objectName:t,recordId:a,listViewName:i}){return "instances"===t?`/workflow/space/\${context.tenantId}/${i}/`+a:`/app/${e}/${t}/view/`+a},getObjectRelatedViewPath({appId:e,masterObjectName:t,masterRecordId:a,objectName:i,foreignKey:r}){return `/app/${e}/${t}/${a}/${i}/grid?related_field_name=`+r}};function getNumberTpl(e){return `<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return `<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return `<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return `<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return `<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return `<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return (await getUISchema(e.reference_to)).NAME_FIELD_KEY||"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({...t,formFactor:t.formFactor,appId:t.appId,objectName:t.objectName,recordId:`\${${t.idFieldName}}`})}">\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){var i;return _.isString(e.reference_to)||!e.reference_to?e.multiple?(i=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`
465
- <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${i}"><%=item.label%></a> <% }); %><% } %>
466
- `):`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:`\${_display.${e.name}.objectName}`,recordId:`\${_display.${e.name}.value}`})}">\${_display.${e.name}.label}</a>`:(i=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`
467
- <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${i}"><%=item.label%></a> <% }); %><% } %>
468
- `)}async function getLookupTpl(e,t){var a,i;return e.reference_to?(a=await getRefObjectNameFieldName(e),e.multiple?(i=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`
469
- <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${i}"><%=item.${a}%></a> <% }); %><% } %>
470
- `):`<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}) { %>
471
- <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">
472
- <span ><%=data._display.${e.name}%></span>
473
- </span>
474
- <% } %>`}function getPasswordTpl(e){return `<% if (data.${e.name}) { %>
475
- <span>······</span>
476
- <% } %>`}async 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"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return getRelatedFieldTpl(e,t);case"number":case"currency":return getNumberTpl(e);case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}const API_CACHE=100;function getReadonlyFormAdaptor(e){let a="";var t=_$1__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 _$1__namespace.each(t,function(e){var t;_$1__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._optionsFunction&&(a+=`var ${e.name}Options = eval(${e._optionsFunction})(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;`);}),`
477
- if(payload.data.data){
478
- var data = payload.data.data[0];
479
- try{
480
- ${a}
481
- ${getScriptForAddUrlPrefixForImgFields(e)}
482
- ${getScriptForRewriteValueForFileFields(e)}
483
- }catch(e){
484
- console.error(e)
485
- }
486
- payload.data = data;
487
- window.postMessage(Object.assign({type: "record.loaded"}, {record: data}), "*")
488
- }
489
- if(payload.errors){
490
- payload.status = 2;
491
- payload.msg = payload.errors[0].message;
492
- }
493
- return payload;
494
- `}async function getReadonlyFormInitApi(e,t,a,i){return {method:"post",url:getApi$2()+"?rf="+(new Date).getTime(),cache:API_CACHE,adaptor:getReadonlyFormAdaptor(a),data:await getFindOneQuery$1(e,t,a,i),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getScriptForAddUrlPrefixForImgFields(e){let t=[],a={};return e.forEach(e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,type:e.type,multiple:e.multiple});}),t.length?`
495
- // image字段值添加URL前缀
496
- let imgFieldsKeys = ${JSON.stringify(t)};
497
- let imgFields = ${JSON.stringify(a)};
498
- imgFieldsKeys.forEach((item)=>{
499
- let imgFieldValue = data[item];
500
- let imgFieldDisplayValue = data._display && data._display[item];
501
- if(imgFieldValue && imgFieldValue.length){
502
- let fieldProps = imgFields[item];
503
- if(fieldProps.multiple){
504
- if(imgFieldDisplayValue instanceof Array){
505
- data[item] = imgFieldDisplayValue.map((i)=>{ return i.url });
506
- }
507
- }else{
508
- data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;
509
- }
510
- }
511
- })
512
- `:""}function getScriptForRewriteValueForFileFields(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?`
513
- // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件
514
- let fileFieldsKeys = ${JSON.stringify(t)};
515
- let fileFields = ${JSON.stringify(a)};
516
- fileFieldsKeys.forEach((item)=>{
517
- let fileFieldValue = data[item];
518
- let fileFieldDisplayValue = data._display && data._display[item];
519
- if(fileFieldValue && fileFieldValue.length){
520
- if(fileFields[item].multiple){
521
- if(fileFieldDisplayValue instanceof Array){
522
- data[item] = fileFieldDisplayValue.map((item, index)=>{
523
- return {
524
- value: fileFieldValue[index],
525
- name: item.name,
526
- url: item.url + "?download=true",
527
- state: "uploaded"
528
- }
529
- });
530
- }
531
- }else{
532
- data[item] = {
533
- value: fileFieldValue,
534
- name: fileFieldDisplayValue.name,
535
- url: fileFieldDisplayValue.url + "?download=true",
536
- state: "uploaded"
537
- };
538
- }
539
- }
540
- })
541
- `:""}async function getEditFormInitApi(e,t,a){return {method:"post",url:getApi$2(),sendOn:"!!this.recordId",cache:API_CACHE,adaptor:`
542
- if(payload.data.data){
543
- var data = payload.data.data[0];
544
- if(data){
545
- ${getScriptForAddUrlPrefixForImgFields(a)}
546
- ${getScriptForRewriteValueForFileFields(a)}
547
- //初始化接口返回的字段移除字段值为null的字段
548
- for (key in data){
549
- if(data[key] === null){
550
- delete data[key];
551
- }
552
- }
553
- };
554
- payload.data = data;
555
- delete payload.extensions;
556
- }
557
- return payload;
558
- `,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:`
559
- if(payload.errors){
560
- payload.status = 2;
561
- payload.msg = payload.errors[0].message;
562
- }
563
- return payload;
564
- `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getBatchDelete(e){return {method:"post",url:getApi$2(),requestAdaptor:`
565
- var ids = api.data.ids.split(",");
566
- var deleteArray = [];
567
- ids.forEach((id,index)=>{
568
- deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);
569
- })
570
- api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
571
- return api;
572
- `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let i=[];return i.length=0,_$1__namespace.forEach(e.fields,(e,t)=>{_$1__namespace.has(e,"name")||(e.name=t);}),_$1__namespace.forEach(_$1__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)=>{e=_$1__namespace.filter(e,{group:a});if(e.length!=_$1__namespace.filter(e,["hidden",!0]).length){var r,l=[];for(const o of e){let e=o;"grid"===o.type?e=await getGridFieldSubFields(o,t):"object"===o.type&&(e=await getObjectFieldSubFields(o,t)),e.name.indexOf(".")<0&&((r=await convertSFieldToAmisField(e,e.readonly,i))&&l.push(r));}return {type:"fieldSet",title:a,collapsable:!0,body:l}}},getSections=async(e,t,a)=>{var i=getFieldSchemaArray(t),r=[];for(const o in _$1__namespace.groupBy(i,"group")){var l=await getSection(e,i,o,a);0<l.body.length&&r.push(l);}return r};async function getFormBody(e,t,a){return getSections(e,t,a)}async function getListBody(e,t){var a=[];for(const r of e){var i=await getFieldTpl(r,t);let e=i?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled});}return {type:"hbox",columns:a}}function getDefaultParams$1(e){return {perPage:e.top||10}}async function getListSchema$1(e,t){e=(await getListBody(e,t)).columns;return {mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}async function getCardSchema(e,t){let a=null;var i=_.find(e,e=>e.name===t.labelFieldName),i=(i&&(a=await getFieldTpl(i,t)),await getListBody(_.filter(e,e=>e.name!=t.labelFieldName),t));return {mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...i.columns]}}}const defaultsDeep=(...e)=>{let t={};return _$1.toArray(e).reverse().forEach(e=>{_$1.mergeWith(t,e,(e,t)=>_$1.isArray(t)?t:void 0);}),t};function getBulkActions(e){return [{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:getBatchDelete(e.name)}]}function getHeaderToolbar(e,t){return "SMALL"===t?["bulkActions",{type:"reload",align:"right"},{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]:["filter-toggler","bulkActions",{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]}function getToolbar(){return []}function footerToolbar(){return ["statistics","pagination"]}async function getObjectList(e,t,a){var i=getBulkActions(e),i={toolbar:getToolbar(),footerToolbar:footerToolbar(),headerToolbar:getHeaderToolbar(e,a.formFactor),bulkActions:0!=a.bulkActions&&i,bodyClassName:""};let r=null;var l="listview_"+e.name,o=(r="SMALL"===a.formFactor?(delete i.bulkActions,delete i.headerToolbar,delete i.footerToolbar,o=await getCardSchema(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},o,{type:"crud",primaryField:"_id",id:l,name:l,keepItemSelectionOnPageChange:!1,api:await getTableApi(e,t,a),hiddenOn:a.tableHiddenOn},i)):(delete(o=await getTableSchema$1(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},o,{type:"crud",primaryField:"_id",affixHeader:!1,id:l,name:l,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a),hiddenOn:a.tableHiddenOn},i)),a.defaults);if(o){t=o.listSchema||{},i=(r=defaultsDeep({},t,r),o.headerSchema),a=o.footerSchema;if(i||a){let e=[r];i&&(_$1__default["default"].isArray(i)?e=_$1__default["default"].union(i,e):e.unshift(i)),a&&(_$1__default["default"].isArray(a)?e=_$1__default["default"].union(e,a):e.push(a)),r=e;}}return {type:"service",className:"mb-2",id:"service_"+l,name:"page",data:{$master:"$$",objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:r}}const getGlobalData$1=e=>{var t=getSteedosAuth();return {mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function getObjectForm(e,t){var{recordId:a,formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,defaults:l}=t,o=_$1__default["default"].values(e.fields),l=l&&l.formSchema||{},i={type:"service",className:"p-0",name:"page_edit_"+a,api:await getEditFormInitApi(e,a,o),initApi:null,initFetch:null,body:[defaultsDeep({},l,{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,o),initFetch:"new"!=a,body:await getFormBody(o,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:'const { recordId, listViewId } = context.props.data;\ndoAction({\n componentId: `detail_${recordId}`,\n actionType: "reload",\n expression: `!${listViewId}`\n})\n\n\n\n\n'}]}}})]};return l.id&&(i.id="service-"+l.id),i}async function getObjectDetail(e,t,a){var{formFactor:i,layout:i="SMALL"===i?"normal":"horizontal",labelAlign:r,formInitProps:l}=a,o=_$1__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,o,l),body:[{type:"form",mode:i,labelAlign:r,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(_$1.map(o,e=>(e.readonly=!0,e)),e,Object.assign({},a,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}}]}}}}var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,a){return t?_$1__namespace.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":_$1__namespace.includes(AmisFormInputs,e)?"input-"+e:e}const getFileTableName=e=>{switch(e.type){case"avatar":return "avatars";case"image":return "images";case"file":return "files"}},getAmisFieldType=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{var t=e.type,a=getAmisFieldType(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`
573
- <% let fileData = data.${e.name}; if (fileData) { %>
574
- <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>
575
- <% fileData.forEach(function(item) { %>
576
- <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a>
577
- <% });} %>`}:void 0},getAmisFileEditSchema=e=>{var t=getFileTableName(e),t={type:getAmisFieldType(e,!1),useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/"+t,data:{$:"$$",context:"${context}"},adaptor:`
578
- const { context } = api.body;
579
- var rootUrl = context.rootUrl + "/api/files/${t}/";
580
- payload = {
581
- status: response.status == 200 ? 0 : response.status,
582
- msg: response.statusText,
583
- data: {
584
- value: payload._id,
585
- name: payload.original.name,
586
- url: rootUrl + payload._id,
587
- }
588
- }
589
- return payload;
590
- `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},getAmisFileSchema=(e,t)=>(t?getAmisFileReadonlySchema:getAmisFileEditSchema)(e);async function getTableColumns(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(r)});else {var i=await getFieldTpl(r,t);let e="text";i?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:i,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null});}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${r.label}"%>`,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}function getDefaultParams(e){return {perPage:e.top||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),t=_$1.isBoolean(t)?t.toString():t)return t.trim().startsWith("function")?t+"(objectName, _id, recordPermissions, data)":t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}async function getTableOperation(e){e=e.buttons;const t=[];if(_$1.each(e,e=>{_$1.isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"antd-Button--default"});}),!(t.length<1))return {type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomLeft",id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`
591
- payload.recordPermissions = payload;
592
- return payload;
593
- `}}]}}async function getTableSchema$1(e,t){e=await getTableColumns(e,t=t||{});return e.push(await getTableOperation(t)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams(t),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1}}async function getTableApi(e,t,a){const i=[];let{globalFilter:r,filter:l,sort:o,top:n,setDataToComponentId:s=""}=a;l=(l=_$1__namespace.isArray(l)?_$1__namespace.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e}):l)||[],_$1__namespace.each(t,function(e){e.searchable&&i.push(e.name);});const d={},c=[];t.forEach(e=>{_$1__namespace.includes(["image","avatar","file"],e.type)&&(c.push(e.name),d[e.name]={name:e.name,type:e.type,multiple:e.multiple});});a=e.key_field||"_id",t=await getApi$1(e,null,t,{alias:"rows",limit: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=`
594
- let selfData = JSON.parse(JSON.stringify(api.data.$self));
595
- try{
596
- // TODO: 不应该直接在这里取localStorage,应该从外面传入
597
- const listViewId = api.data.listViewId;
598
- const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
599
- let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
600
- if(localListViewProps){
601
- localListViewProps = JSON.parse(localListViewProps);
602
- selfData = Object.assign({}, localListViewProps, selfData);
603
- if(!api.data.filter){
604
- api.data.filter = localListViewProps.filter;
605
- }
606
- if(!api.data.loaded){
607
- // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1
608
- // 所以会把localSearchableFilter中已经存过的页码覆盖
609
- // 如果是第一次加载组件始终让翻页页码从本地存储中取值
610
- api.data.pageNo = localListViewProps.page || 1;
611
- }
612
- }
613
- }
614
- catch(ex){
615
- console.error("本地存储中crud参数解析异常:", ex);
616
- }
617
- ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}
618
- if(_.isEmpty(filters)){
619
- filters = api.data.filter || [${JSON.stringify(l)}];
620
- }else{
621
- filters = [filters, 'and', api.data.filter || [${JSON.stringify(l)}]]
622
- }
623
- var pageSize = api.data.pageSize || 10;
624
- var pageNo = api.data.pageNo || 1;
625
- var skip = (pageNo - 1) * pageSize;
626
- var orderBy = api.data.orderBy || '';
627
- var orderDir = api.data.orderDir || '';
628
- var sort = orderBy + ' ' + orderDir;
629
- sort = orderBy ? sort : "${o}";
630
- var allowSearchFields = ${JSON.stringify(i)};
631
- if(api.data.$term){
632
- filters = [["name", "contains", "'+ api.data.$term +'"]];
633
- }else if(selfData.op === 'loadOptions' && selfData.value){
634
- filters = [["${a.name}", "=", selfData.value]];
635
- }
636
- var searchableFilter = [];
637
- _.each(selfData, (value, key)=>{
638
- if(!_.isEmpty(value) || _.isBoolean(value)){
639
- if(_.startsWith(key, '__searchable__between__')){
640
- searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])
641
- }else if(_.startsWith(key, '__searchable__')){
642
- if(_.isString(value)){
643
- searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])
644
- }else{
645
- searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])
646
- }
647
- }
648
- }
649
- });
650
-
651
- if(searchableFilter.length > 0){
652
- if(filters.length > 0 ){
653
- filters = [filters, 'and', searchableFilter];
654
- }else{
655
- filters = searchableFilter;
656
- }
657
- }
658
-
659
- if(allowSearchFields){
660
- allowSearchFields.forEach(function(key){
661
- const keyValue = selfData[key];
662
- if(_.isString(keyValue)){
663
- filters.push([key, "contains", keyValue]);
664
- }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){
665
- filters.push([key, "=", keyValue]);
666
- }
667
- })
668
- }
669
-
670
- if(selfData.__keywords && allowSearchFields){
671
- const keywordsFilters = [];
672
- allowSearchFields.forEach(function(key, index){
673
- const keyValue = selfData.__keywords;
674
- if(keyValue){
675
- keywordsFilters.push([key, "contains", keyValue]);
676
- if(index < allowSearchFields.length - 1){
677
- keywordsFilters.push('or');
678
- }
679
- }
680
- })
681
- filters.push(keywordsFilters);
682
- }
683
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
684
- return api;
685
- `,t.adaptor=`
686
- const enable_tree = ${e.enable_tree};
687
- if(!enable_tree){
688
- _.each(payload.data.rows, function(item, index){
689
- item._index = index + 1;
690
- })
691
- }
692
- window.postMessage(Object.assign({type: "listview.loaded"}), "*");
693
- let fileFields = ${JSON.stringify(d)};
694
- _.each(payload.data.rows, function(item, index){
695
- _.each(fileFields , (field, key)=>{
696
- if(item[key] && item._display && item._display [key]){
697
- let value = item._display[key];
698
- if(!_.isArray(value)){
699
- value = [value]
700
- };
701
- if(field.type === 'file'){
702
- item[key] = value
703
- }else{
704
- item[key] = _.map(value, 'url')
705
- }
706
- }
707
- })
708
- })
709
-
710
- if(enable_tree){
711
- const records = payload.data.rows;
712
- const treeRecords = [];
713
- const getChildren = (records, childrenIds)=>{
714
- if(!childrenIds){
715
- return;
716
- }
717
- const children = _.filter(records, (record)=>{
718
- return _.includes(childrenIds, record._id)
719
- });
720
- _.each(children, (item)=>{
721
- if(item.children){
722
- item.children = getChildren(records, item.children)
723
- }
724
- })
725
- return children;
726
- }
727
-
728
- _.each(records, (record)=>{
729
- if(!record.parent){
730
- treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));
731
- }
732
- });
733
- payload.data.rows = treeRecords;
734
- }
735
-
736
-
737
- try{
738
- // TODO: 不应该直接在这里取localStorage,应该从外面传入
739
- const listViewId = api.data.listViewId;
740
- const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
741
- /**
742
- * localListViewProps规范来自crud请求api中api.data.$self参数值的。
743
- * 比如:{"perPage":20,"page":1,"__searchable__name":"7","__searchable__between__n1__c":[null,null],"filter":[["name","contains","a"]]}
744
- * __searchable__...:顶部放大镜搜索条件
745
- * filter:右侧过滤器
746
- * perPage:每页条数
747
- * page:当前页码
748
- * orderBy:排序字段
749
- * orderDir:排序方向
750
- */
751
- let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
752
- let selfData = JSON.parse(JSON.stringify(api.data.$self));
753
- if(localListViewProps){
754
- localListViewProps = JSON.parse(localListViewProps);
755
- selfData = Object.assign({}, localListViewProps, selfData, { filter: api.data.filter });
756
- if(!api.data.loaded){
757
- // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1
758
- // 所以会把localSearchableFilter中已经存过的页码覆盖
759
- // 如果是第一次加载组件始终让翻页页码从本地存储中取值
760
- selfData.page = localListViewProps.page || 1;
761
- }
762
- }
763
- delete selfData.context;
764
- delete selfData.global;
765
- localStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));
766
- // 返回页码到UI界面
767
- payload.data.page= selfData.page;
768
- }
769
- catch(ex){
770
- console.error("本地存储中crud参数解析异常:", ex);
771
- }
772
- // 标记加载过,后续优先从本地存储中加载相关参数
773
- payload.data.loaded= true;
774
-
775
- const setDataToComponentId = "${s}";
776
- if(setDataToComponentId){
777
- SteedosUI.getRef(api.body.$self.scopeId).getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})
778
- }
779
-
780
- return payload;
781
- `,t}async function getApi$1(e,t,a,i){e=await getFindQuery(e,t,a,i);return {method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSource(e){var t=await getFindQuery({name:"organizations"},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"}),a=(t.query=t.query.replace(/,count\:.+/,"}"),await getFindQuery({name:"organizations"},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"})),a=(a.query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await getFindQuery({name:"space_users"},null,[{name:"user"},{name:"name"}],{alias:"defaultValueOptions",filters:"{__options_filters}"})),a=(a.query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),t.$value="$"+e.name,`
782
- var filters = [['parent', '=', null]];
783
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
784
- var defaultValue = api.data.$value;
785
- var optionsFiltersOp = "${e.multiple?"in":"="}";
786
- var optionsFilters = [["user", optionsFiltersOp, []]];
787
- if (defaultValue) {
788
- optionsFilters = [["user", optionsFiltersOp, defaultValue]];
789
- }
790
- api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
791
- return api;
792
- `);return {method:"post",url:getApi$2()+"?_id=${_id}",requestAdaptor:a,adaptor:`
793
- const data = payload.data;
794
- data.children = data.children.map(function (child) {
795
- // child.defer = !!(child.children && child.children.length);
796
- child.defer = true;
797
- delete child.children;
798
- return child;
799
- });
800
- data.leftOptions = data.leftOptions.map(function (leftOption) {
801
- leftOption.defer = !!(leftOption.children && leftOption.children.length);
802
- delete leftOption.children;
803
- return leftOption;
804
- });
805
- var defaultValueOptions = data.defaultValueOptions;
806
- data.children = _.union(data.children, defaultValueOptions);
807
- delete data.defaultValueOptions;
808
- payload.data = { options: [data] };
809
- return payload;
810
- `,data:t,sendOn:"!!this._id || !!!this."+e.name,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e){var t=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",filters:"{__filters}"});let a=e.filters;"function"==typeof(a="string"==typeof a?(a=new Function("return "+a))():a)&&(a=a(e)),t.query=t.query.replace(/,count\:.+/,"}"),t.query=t.query.replace("{_id}","{{__fields}}");e=`
811
- var dep = api.query.dep;
812
- var ref = api.query.ref;
813
- var term = api.query.term;
814
- var filters;
815
- var objectName;
816
- var fields;
817
- if (dep) {
818
- objectName = "organizations";
819
- fields = "value:_id,label:name,children";
820
- filters = [['parent', '=', dep]];
821
- }
822
- else if (ref) {
823
- objectName = "space_users";
824
- // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次
825
- fields = "user,name,value:user,label:name";
826
- filters = [['user_accepted', '=', true]];
827
- var defaultFilters = ${a&&JSON.stringify(a)};
828
- if(defaultFilters){
829
- filters.push(defaultFilters);
830
- }
831
- filters.push(['organizations_parents', '=', ref]);
832
- }
833
- api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters));
834
- return api;
835
- `;return {method:"post",url:getApi$2()+"?ref=${ref}&dep=${value}",requestAdaptor:e,adaptor:`
836
- if (api.query.dep) {
837
- // 展开组织时才需要根据children值设置defer属性
838
- const data = payload.data;
839
- data.options = data.options.map(function (option) {
840
- option.defer = !!(option.children && option.children.length);
841
- delete option.children;
842
- return option;
843
- });
844
- payload.data = data;
845
- }
846
- return payload;
847
- `,data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSearchApi(e){var t=await getFindQuery({name:"space_users"},null,[{name:"user"},{name:"name"},{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",filters:"{__filters}"}),e=(t.query=t.query.replace(/,count\:.+/,"}"),e.filters),e=`
848
- var term = api.query.term;
849
- var filters;
850
- if (term) {
851
- filters = [['user_accepted', '=', true]];
852
- var defaultFilters = ${e&&JSON.stringify(e)};
853
- if(defaultFilters){
854
- filters.push(defaultFilters);
855
- }
856
- var fieldsForSearch = ["name", "username", "email", "mobile"];
857
- var termFilters = [];
858
- fieldsForSearch.forEach(function (field) {
859
- termFilters.push([field, 'contains', term]);
860
- termFilters.push("or");
861
- });
862
- termFilters.pop();
863
- filters.push(termFilters);
864
- }
865
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
866
- return api;
867
- `;return {method:"post",url:getApi$2()+"?term=${term}",requestAdaptor:e,data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSelectUserSchema(e,t,a){if(!e)return {};a=a||{};var i={type:getAmisStaticFieldType("select",t)};return t?i.tpl=await getLookupTpl(e,a):(Object.assign(i,{labelField:"name",valueField:"user",multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",joinValues:!1,extractValue:!0,clearable:!0,source:await getSource(e),deferApi:await getDeferApi(e),searchApi:await getSearchApi(e)}),!_.has(e,"defaultValue")||_.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(i.value=e.defaultValue),"boolean"!=typeof i.searchable&&(i.searchable=!0),(t=e.onEvent)&&(i.onEvent=t)),i}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 o=await getReferenceTo(i);if(o){const s=await getUISchema(o.objectName),d=[];let e=0;const c=[],p=[];var n=_$1__namespace.find(s.list_views,(e,t)=>"all"===t);n&&n.columns?_$1__namespace.each(n.columns,function(e){_$1__namespace.isString(e)&&s.fields[e]?p.push(s.fields[e]):_$1__namespace.isObject(e)&&s.fields[e.field]&&p.push(Object.assign({},s.fields[e.field],{width:e.width,wrap:e.wrap}));}):_$1__namespace.each(s.fields,(e,t)=>{"_id"==t||e.hidden||(_$1__namespace.has(e,"name")||(e.name=t),p.push(e));}),_$1__namespace.each(_$1__namespace.sortBy(p,"sort_no"),function(t){e<5&&(_$1__namespace.find(d,function(e){return e.name===t.name})||(e++,d.push(t),t.searchable&&c.push(t.name)));});const m={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};_$1__namespace.each(d,e=>{e.hidden||(m[e.name]=e);});n=await getApi(s,null,m,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});n.data.$term="$term",n.data.$self="$$",n.requestAdaptor=`
868
- const selfData = JSON.parse(JSON.stringify(api.data.$self));
869
- var filters = [];
870
- var pageSize = api.data.pageSize || 10;
871
- var pageNo = api.data.pageNo || 1;
872
- var skip = (pageNo - 1) * pageSize;
873
- var orderBy = api.data.orderBy || '';
874
- var orderDir = api.data.orderDir || '';
875
- var sort = orderBy + ' ' + orderDir;
876
- var allowSearchFields = ${JSON.stringify(c)};
877
- if(api.data.$term){
878
- filters = [["name", "contains", "'+ api.data.$term +'"]];
879
- }else if(selfData.op === 'loadOptions' && selfData.value){
880
- if(selfData.value?.indexOf(',') > 0){
881
- filters = [["${o.valueField.name}", "=", selfData.value.split(',')]];
882
- }else{
883
- filters = [["${o.valueField.name}", "=", selfData.value]];
884
- }
885
- }
886
- if(allowSearchFields){
887
- allowSearchFields.forEach(function(key){
888
- const keyValue = selfData[key];
889
- if(keyValue){
890
- filters.push([key, "contains", keyValue]);
891
- }
892
- })
893
- }
894
-
895
- const filtersFunction = ${i._filtersFunction};
896
-
897
- if(filtersFunction){
898
- const _filters = filtersFunction(filters, api.data.$self.__super.__super);
899
- if(_filters && _filters.length > 0){
900
- filters.push(_filters);
901
- }
902
- }
903
-
904
- api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
905
- return api;
906
- `,n.adaptor=`
907
- const enable_tree = ${s.enable_tree};
908
- if(enable_tree){
909
- const records = payload.data.rows;
910
- const treeRecords = [];
911
- const getChildren = (records, childrenIds)=>{
912
- if(!childrenIds){
913
- return;
914
- }
915
- const children = _.filter(records, (record)=>{
916
- return _.includes(childrenIds, record._id)
917
- });
918
- _.each(children, (item)=>{
919
- if(item.children){
920
- item.children = getChildren(records, item.children)
921
- }
922
- })
923
- return children;
924
- }
925
-
926
- _.each(records, (record)=>{
927
- if(!record.parent){
928
- treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));
929
- }
930
- });
931
- payload.data.rows = treeRecords;
932
- }
933
- return payload;
934
- `;let t=20,a=(s.paging&&!1===s.paging.enabled&&(t=1e3),null);a="SMALL"===l.formFactor?await getListSchema$1(d,{top:t,...l,actions:!1}):await getTableSchema$1(d,{labelFieldName:s.NAME_FIELD_KEY,top:t,...l});o={type:getAmisStaticFieldType("picker",r),labelField:o.labelField.name,valueField:o.valueField.name,modalMode:"dialog",source:n,size:"lg",pickerSchema:a,joinValues:!1,extractValue:!0};return i.multiple&&(o.multiple=!0,o.extractValue=!0),r&&(o.tpl=await getLookupTpl(i,l)),o}}async function lookupToAmisSelect(e,t,a){var i=await getReferenceTo(e);let r;(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"),_$1__namespace.each(e.depend_on,function(e){r.data[e]="$"+e;}),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor=`
935
- var filters = '[]';
936
- var top = 10;
937
- if(api.data.$term){
938
- filters = '["name", "contains", "'+ api.data.$term +'"]';
939
- }else if(api.data.$value){
940
- filters = '["_id", "=", "'+ api.data.$value +'"]';
941
- }
942
- api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);
943
- return api;
944
- `,i&&i.labelField.name,i&&i.valueField.name,e._optionsFunction&&(r.adaptor=`
945
- payload.data.options = eval(${e._optionsFunction})(api.data);
946
- return payload;
947
- `);i={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,autoComplete:r};return !_$1__namespace.has(e,"defaultValue")||_$1__namespace.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(i.value=e.defaultValue),e.multiple&&(i.multiple=!0,i.extractValue=!0),t&&(i.tpl=await getLookupTpl(e,a)),i}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,r;return t?{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,a)}:!e.reference_to||_$1__namespace.isString(e.reference_to)||t?((i=await getReferenceTo(e))?(r=await getUISchema(i.objectName),"space_users"===i.objectName?lookupToAmisSelectUser:1==r.enable_enhanced_lookup?lookupToAmisPicker:lookupToAmisSelect):lookupToAmisSelect)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function lookupToAmisSelectUser(e,t,a){return getSelectUserSchema(e,t,a)}const OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(t,e){var a=Object.assign({subFields:[]},t),e=_$1__namespace.filter(e,function(e){return e.name.startsWith(t.name+".")});return a.subFields=e,a}function getGridFieldSubFields(t,e){var a=Object.assign({subFields:[]},t),e=_$1__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 _$1__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){if(!_$1__namespace.includes(OMIT_FIELDS,r.name)||1==e.showSystemFields){var t,a={name:e.fieldNamePrefix?""+e.fieldNamePrefix+r.name:r.name,label:r.label,labelRemark:r.inlineHelpText,required:(_$1__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},!_$1__namespace.has(r,"defaultValue")||_$1__namespace.isString(r.defaultValue)&&r.defaultValue.startsWith("{")||(t=r.data_type||"text",null!=r.defaultValue&&("text"===t?i.value=String(r.defaultValue):"number"===t?i.value=Number(r.defaultValue):"boolean"===t&&(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"currency":case"number":i=l?{type:"static-tpl",tpl:getNumberTpl(r)}:{type:getAmisStaticFieldType("number",l),min:r.min,max:r.max,precision:r.scale};break;case"input-array":i=Object.assign({},r,a);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":l&&(i={type:"static-text"});break;case"url":i={type:getAmisStaticFieldType("url",l)};break;case"email":i={type:getAmisStaticFieldType("email",l)};break;case"avatar":case"image":case"file":i=getAmisFileSchema(r,l);break;case"formula":case"summary":l&&(i.type=getAmisStaticFieldType(r.data_type,l));break;case"code":i={type:"editor",language:r.language,value:r.defaultValue||""};break;case"toggle":i={type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:l};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!l,addable:!l,removable:!l,draggable:!l,columns:[]},_$1__namespace.each(r.subFields,function(e){var t=e.name.replace(r.name+".$.","").replace(r.name+".",""),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 _$1__namespace.isEmpty(i)?void 0:(r.is_wide?i.className="col-span-2 m-1":i.className="m-1",l&&(i.className=i.className+" md:border-b"),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({},a,i,{clearValueOnHidden:!0,fieldName:r.name}))}}async function getFieldSearchable(e,t,a){let i=e,r=("grid"===i.type?i=await getGridFieldSubFields(e,t):"object"===e.type&&(i=await getObjectFieldSubFields(e,t)),"__searchable__");if(i.name.indexOf(".")<0){e=_$1.cloneDeep(i),t=(_$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,await convertSFieldToAmisField(e,!1,Object.assign({},a,{fieldNamePrefix:r,required:!1,showSystemFields:!0})));if(t)return t}}async function getObjectFieldsFilterButtonSchema(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:"setValue",args:{value:{showFieldsFilter:"${!showFieldsFilter}"}},componentId:"service_"+("listview_"+e.name)}]}}}}async function getObjectFieldsFilterFormSchema(e,t,a){a=a||{};var i,r,l=[];for(i of t)_$1.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],i.type)||(delete i.defaultValue,delete i.required,delete i.is_wide,delete i.readonly,delete i.hidden,delete i.omit,(r=await getFieldSearchable(i,t,{}))&&l.push(r));_$1.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:`
948
- const data = event.data;
949
- const listViewId = data.listViewId;
950
- const searchableFields = data.fields;
951
- const preSearchableFields = data.__super.__super.fields;
952
- const removedFields = _.difference(preSearchableFields, searchableFields);
953
- const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;
954
- let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
955
- if(localListViewProps){
956
- localListViewProps = JSON.parse(localListViewProps);
957
- let removedKeys = [];
958
- _.each(localListViewProps, function(n,k){
959
- // __searchable__开头的不在searchableFields范围则清除其值
960
- let isRemoved = !!removedFields.find(function(fieldName){
961
- return new RegExp("__searchable__.*" + fieldName + "$").test(k);
962
- });
963
- if(isRemoved){
964
- removedKeys.push(k);
965
- }
966
- });
967
- const removedValues = {};
968
- removedKeys.forEach(function(key){
969
- delete localListViewProps[key];
970
- removedValues[key] = "";
971
- });
972
- doAction({
973
- actionType: 'setValue',
974
- args: {
975
- value: removedValues
976
- }
977
- });
978
- localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
979
- }
980
- `}]}}}}async function getObjectFieldsFilterBarSchema(e,t,a){a=a||{};t=await getObjectFieldsFilterFormSchema(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a));return {type:"service",data:{listViewId:"${listViewId}"},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:`
981
- const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId ;
982
- let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);
983
- if(!defaultSearchableFields && data.uiSchema){
984
- let listView = data.uiSchema.list_views[data.listName];
985
- defaultSearchableFields = listView && listView.searchable_fields;
986
- if(defaultSearchableFields && defaultSearchableFields.length){
987
- defaultSearchableFields = _.map(defaultSearchableFields, 'field');
988
- }
989
- }
990
- if(_.isEmpty(defaultSearchableFields) && data.uiSchema){
991
- defaultSearchableFields = _.map(
992
- _.filter(_.values(data.uiSchema.fields), (field) => {
993
- return field.searchable;
994
- }),
995
- "name"
996
- );
997
- }
998
- setData({ filterFormSearchableFields: defaultSearchableFields });
999
-
1000
- const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;
1001
- let localListViewProps = localStorage.getItem(listViewPropsStoreKey);
1002
- if(localListViewProps){
1003
- localListViewProps = JSON.parse(localListViewProps);
1004
- let filterFormValues = _.pickBy(localListViewProps, function(n,k){
1005
- return /^__searchable__/g.test(k);
1006
- });
1007
- if(!_.isEmpty(filterFormValues)){
1008
- setData({ filterFormValues });
1009
- }
1010
- }
1011
- `},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"slds-filters__body p-0"},{type:"wrapper",body:{type:"wrapper",body:[{type:"button",label:"搜索",icon:"fa fa-search",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",onEvent:{click:{actions:[{actionType:"custom",script:`
1012
- const appId = event.data.appId;
1013
- const objectName = event.data.objectName;
1014
- const scopeId = event.data.scopeId;
1015
- const scope = SteedosUI.getRef(scopeId);
1016
- var filterForm = scope.getComponentById("listview_filter_form_" + objectName);
1017
- var filterFormValues = filterForm.getValues();
1018
- var listView = scope.getComponentById("listview_" + objectName);
1019
- listView.handleFilterSubmit(filterFormValues);
1020
- `}]}}},{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:`
1021
- const data = context.props.data;
1022
- const listName = data.listName;
1023
- const objectName = data.objectName;
1024
- const value = data.fields;
1025
- doAction({
1026
- actionType: 'setValue',
1027
- args: {
1028
- value: { filterFormSearchableFields: value }
1029
- },
1030
- componentId: "service_listview_filter_form_" + objectName,
1031
- });
1032
- const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId;
1033
- localStorage.setItem(searchableFieldsStoreKey, value);
1034
- `},{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}",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 slds-grid slds-grid_vertical slds-nowrap"},visibleOn:"this.showFieldsFilter",className:"px-1 py-1 bg-white b-b"}}function resetLocalListViewPropsWithSearchableFields(e,t){"string"==typeof t&&(t=t.split(","));e=location.pathname+"/crud/"+e;let a=localStorage.getItem(e);if(a){var i,r=[];for(i in a=JSON.parse(a))new RegExp("__searchable__.*").test(i)&&!t.find(function(e){return new RegExp("__searchable__.*"+e+"$").test(i)})&&r.push(i);r.forEach(function(e){delete a[e];}),localStorage.setItem(e,JSON.stringify(a));}}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?_$1.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,o;if(void 0===e&&(e={}),o=getParentPath(a),o=getValueByPath(e,o)||{},"string"!=typeof t)return t;l=t.substring(2,t.length-2),r=`
1035
- 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(o));try{return Function(r)()}catch(e){return console.log(e,t,a),t}};async function getPage({type:e,pageId:t,appId:a,objectName:i="",recordId:r,formFactor:l="LARGE"}){e=await fetchAPI(`/api/pageSchema/${e}?app=${a}&objectApiName=${i=i||""}&recordId=${r=r||""}&pageId=${t=t||""}&formFactor=`+l);if(e&&e.schema)return e}const getSchema$4=async(e,t)=>{e="新建 "+e.label;let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"",id:"u:f8ad8ddf153a",mode:"edit",layout:"horizontal"};t=await getPage({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor});return {type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$","&":"${defaultData}",objectName:"${objectName}",context:"${context}",listViewId:"${listViewId}"},title:e,bodyClassName:"",body:[a=t?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:0b96577db93c",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}},getSchema$3=async(e,t)=>{e="编辑 "+e.label;let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d2b0c083c38f",mode:"edit"};t=await getPage({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor});return {type:"service",body:[{type:"button",label:"编辑",id:"u:standard_edit",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:e,bodyClassName:"",body:[a=t?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:ee95697baa4f",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"",id:"u:3c5cbc0429bb"}},getSchema$2=e=>({type:"service",className:"p-0",body:[{type:"button",label:"删除",confirmText:"确定要删除此项目?",onEvent:{click:{actions:[{args:{api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",recordId:"${recordId}",objectName:"${objectName}"},requestAdaptor:"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \"${recordId}\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`
1036
- if(payload.errors){
1037
- payload.status = 2;
1038
- payload.msg = payload.errors[0].message;
1039
- }
1040
- return payload;
1041
- `},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"},{componentId:"",args:{url:"/app/${app_id}/${objectName}/grid/all",blank:!1},actionType:"link",expression:"!!!listViewId"},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"}]}}}],regions:["body"]}),getSchema$1=e=>({type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:"导入数据",body:[{type:"form",mode:"edit",persistData:!1,promptPageLeave:!0,name:"form_edit_data_import",debug:!1,title:"",submitText:"",api:{method:"post",url:"${context.rootUrl}/graphql",data:{objectName:"queue_import_history",$:"$$"},requestAdaptor:"\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n delete formData.success_count;\ndelete formData.failure_count;\ndelete formData.total_count;\ndelete formData.start_time;\ndelete formData.end_time;\ndelete formData.state;\ndelete formData.error;\ndelete formData.created;\ndelete formData.created_by;\ndelete formData.modified;\ndelete formData.modified_by;\n \n \n let fileFieldsKeys = [\"file\"];\n let fileFields = {\"file\":{\"name\":\"file\"}};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n \n let query = `mutation{record: ${objectName}__insert(doc: {__saveData}){_id}}`;\n if(formData.recordId && formData.recordId !='new'){\n query = `mutation{record: ${objectName}__update(id: \"${formData._id}\", doc: {__saveData}){_id}}`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n ",responseData:{recordId:"${record._id}"},adaptor:"console.log('payload', payload)\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},dataType:"json"},initFetch:!0,body:[{type:"fieldSet",title:"通用",collapsable:!0,body:[{name:"object_name",label:"导入对象",required:!1,type:"select",joinValues:!1,extractValue:!0,autoComplete:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:"{options:objects(filters: {__filters}, top: {__top}){_id label:label value:name},count:objects__count(filters:{__filters})}",$term:"$term",$value:"$object_name.name",$:"$$",rfield:"${object_name}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n "},className:"m-1",labelClassName:"text-left",clearValueOnHidden:!1,id:"u:04295fee3896",multiple:!1,hidden:!0},{name:"queue_import",label:"数据导入",required:!0,type:"picker",labelField:"description",valueField:"_id",modalMode:"dialog",source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:queue_import(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,description,object_name,encoding,template_url,_display:_ui{object_name,encoding}},count:queue_import__count(filters:{__filters})}',$term:"$term",$self:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",adaptor:"\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n "},size:"lg",pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:20},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"description",label:"导入描述",type:"tpl",tpl:'<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',className:"whitespace-nowrap",html:null},{name:"object_name",label:"导入对象",type:"tpl",tpl:'<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',className:"whitespace-nowrap",html:null},{name:"encoding",label:"字符代码",type:"tpl",tpl:"<div>${_display.encoding}</div>",className:"whitespace-nowrap",html:null},{name:"template_url",label:"导入模板",type:"markdown",className:"whitespace-nowrap",html:!0},null],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,autoFillHeight:!1},joinValues:!1,extractValue:!0,className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,id:"u:401df27113e0"},{name:"file",label:"Excel文件",required:!0,type:"input-file",className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/files",data:{$:"$$",context:"${context}"},adaptor:'\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/files/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n ',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},id:"u:0213f2cc365b"}],id:"u:4899c260d667"}],panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form",label:"对象表单",objectApiName:"queue_import_history",id:"u:e4ef598eed61",onEvent:{submitSucc:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/data/initiateImport",method:"post",data:{eventData:"${event.data}"},dataType:"json",requestAdaptor:"\napi.data = {\n importObjectHistoryId: api.body.eventData.result.data.recordId\n}\nreturn api;",adaptor:"payload.status = payload.status === 'success' ? 0 : payload.status;\nconsole.log(\"payload ssss==>\", payload)\nreturn payload;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已开始导入...",failed:"导入失败"}},actionType:"ajax",expression:"event.data.result"}]}},closeDialogOnSubmit:!0}],id:"u:dc05498d3bd4",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}},level:"default"}],regions:["body"],className:"p-0",id:"u:bd2f9c4e986f"}),getSchema$5=e=>({type:"service",className:"p-0",body:[{type:"button",label:"查看",className:"border-none",onEvent:{click:{actions:[{componentId:"",args:{blank:!1,url:"/app/${app_id}/${objectName}/view/${_id}"},actionType:"link"}]}},id:"u:ef35c9ae1d19"}],regions:["body"]}),StandardButtons={getStandardNew:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$4(e,t)}),getStandardEdit:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$3(e,t)}),getStandardDelete:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$2(e)}),getStandardDeleteMany:async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=SteedosUI?.getRef(`amis-${e}-${t}-listview`).getComponentById("listview_"+a.name);console.log("listViewRef",e),_.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0]);}}),getStandardImportData:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$1()}),getStandardOpenView:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$5()})},getGlobalData=()=>({now:new Date});function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),t=_$1__default["default"].isBoolean(t)?t.toString():t)return t.trim().startsWith("function")?t+`.apply({
1042
- object: uiSchema
1043
- }, [objectName, _id, recordPermissions, data])`:t;if("amis_button"===e.type){e=e.amis_schema;if(e&&e.body&&0<e.body.length)return e.body[0].visibleOn}}const getButtonVisible=(t,e)=>{if(t._visible&&(_$1__default["default"].startsWith(_$1__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);})),!_$1__default["default"].isFunction(t.visible))return t.visible;try{return t.visible(e)}catch(e){}},standardButtonsTodo={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);_$1__default["default"].isEmpty(a.props.store.toJSON().selectedItems)?a.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):a.handleBulkAction(a.props.store.toJSON().selectedItems,[],{},a.props.bulkActions[0]);}},getButtons=(t,a)=>{const i=t.permissions&&t.permissions.disabled_actions;let e=_$1__default["default"].sortBy(_$1__default["default"].values(t.actions),"sort");return _$1__default["default"].has(t,"allow_customActions")&&(e=_$1__default["default"].filter(e,e=>_$1__default["default"].include(t.allow_customActions,e.name))),_$1__default["default"].has(t,"exclude_actions")&&(e=_$1__default["default"].filter(e,e=>!_$1__default["default"].include(t.exclude_actions,e.name))),_$1__default["default"].each(e,e=>{e.objectName=t.name,a.isMobile&&-1<["record","record_only"].indexOf(e.on)&&"standard_edit"!=e.name&&("record_only"==e.on?e.on="record_only_more":e.on="record_more");}),a.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(t.name)&&_$1__default["default"].map(e,e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record");}),_$1__default["default"].filter(e,e=>_$1__default["default"].indexOf(i,e.name)<0&&"standard_query"!=e.name)},getListViewButtons=(e,t)=>{e=getButtons(e,t);return _$1__default["default"].filter(e,e=>"list"==e.on)},getObjectDetailButtons=(e,t)=>{e=getButtons(e,t),t=_$1__default["default"].filter(e,e=>"record"==e.on||"record_only"==e.on);return _$1__default["default"].sortBy(t,"sort")},getObjectDetailMoreButtons=(e,t)=>{e=getButtons(e,t),t=_$1__default["default"].filter(e,e=>"record_more"==e.on||"record_only_more"==e.on);return _$1__default["default"].sortBy(t,"sort")},getListViewItemButtons=async(e,t)=>{e=getButtons(e,t);return _$1__default["default"].filter(e,e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on)},getObjectRelatedListButtons=async(e,t)=>{e=getButtons(e,t);return _$1__default["default"].filter(e,e=>"list"==e.on)},getButton=async(e,t,a)=>{var i=await getUISchema(e);if(i){var r=await getButtons(i,a),r=_$1__default["default"].find(r,e=>e.name===t);if(r)return "standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardEdit(i,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await StandardButtons.getStandardNew(i,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardDelete(i,a)}:i.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardImportData(i,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardOpenView(i,a)}:"standard_delete_many"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await StandardButtons.getStandardDeleteMany(i,a)}:r}},execute=(e,t)=>{if(e.todo)return _$1__default["default"].isString(e.todo)&&_$1__default["default"].startsWith(_$1__default["default"].trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),_$1__default["default"].isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},executeButton=execute;function getObjectListHeaderFirstLine(a,e,t){var{icon:i,label:r}=a;const l=[];_$1.each(a.list_views,(e,t)=>{l.push({type:"button",label:e.label,actionType:"link",link:`/app/\${appId}/${a.name}/grid/`+t});});var o=getListViewButtons(a,{}),o=_$1.map(o,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),n=(a.permissions?.allowDelete&&o.push({type:"button",label:"删除",className:"antd-Button antd-Button--default antd-Button--size-default",onEvent:{click:{actions:[{actionType:"custom",script:`
1044
- const data = event.data;
1045
- const listViewId = data.listViewId;
1046
- const uiSchema = data.uiSchema;
1047
- const scopeId = data.scopeId;
1048
- BuilderAmisObject.AmisLib.standardButtonsTodo.standard_delete_many.call({
1049
- listViewId,
1050
- uiSchema,
1051
- scopeId
1052
- })
1053
- `}]}}}),new RegExp("_","g"));return {type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon slds-icon_container slds-icon-standard-${i&&i.replace(n,"-")} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}},{type:"dropdown-button",className:"leading-none",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",size:"sm",hideCaret:!0,btnClassName:"bg-transparent border-none text-base font-bold p-0 text-black leading-5",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:o,md:"auto"}],align:"between"}}async function getObjectListHeader(t,e,a){a=a||{};var i="listview_"+t.name,r=getObjectListHeaderFirstLine(t),i={type:"grid",align:"between",columns:[{body:[{type:"tpl",tpl:"${$count} 个项目",visibleOn:"this.$count >= 0",inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:14},id:"u:1661f8471235"}],md:"auto",valign:"middle"},{body:[await getObjectFieldsFilterButtonSchema(t),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:i,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:""};let l=[r,i];a.onlyFirstLine?l=[r]:a.onlySecordLine&&(l=[i]);r=[{type:"wrapper",body:l,className:"p-4 border-b sm:rounded bg-gray-100"}],i=_$1.keys(t.fields),i=_$1.sortBy(_$1.compact(_$1.map(i,e=>t.fields[e])),"sort_no"),i=await getObjectFieldsFilterBarSchema(t,i,{isListviewInit:a.isListviewInit});return r.push(i),r}async function getObjectRecordDetailHeader(e,t){var{name:a,label:i,icon:r}=e,l=getObjectDetailButtons(e,{}),o=getObjectDetailMoreButtons(e,{recordId:t,objectName:a}),l=_$1.map(l,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),o=_$1.map(o,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e)})),o=(l.push({type:"steedos-dropdown-button",label:"",buttons:o,className:"slds-icon ml-1 border-gray-200 rounded-none"}),new RegExp("_","g")),o=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(o,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:l,md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{}}];return {type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()},objectName:a,_id:t,recordPermissions:e.permissions,uiSchema:e},body:o}}async function getObjectRecordDetailRelatedListHeader(e){var{icon:t,label:a}=e,e=await getObjectRelatedListButtons(e,{}),e=_$1.map(e,e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:`button_${e.name} border-gray-200 inline-block ml-1`})),i=new RegExp("_","g");return {type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${t&&t.replace(i,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${t}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${a}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:e,md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}async function getObjectRelatedListHeader(e,t,a){}const getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),_$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="";t=[`id: "${t}"`];return `{record:${e}__findOne${i=0<t.length?`(${t.join(",")})`:i}{${a}}}`},getRecord=async(e,t,a)=>{return (await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,a)})})).data.record},getRelatedsCount=async(t,e)=>{const a=[];_$1.each(e,e=>{a.push(`${e.object_name}: ${e.object_name}__count(filters: [["${e.foreign_key}","=","${t}"]])`);});e=`
1054
- {
1055
- ${a.join(",")}
1056
- }
1057
- `;return (await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getRecordPermissions=async(e,t)=>{return await fetchAPI(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"})};let UI_SCHEMA_CACHE={},UISchemaFunction;const setUISchemaFunction=function(e){UISchemaFunction=e;},setUISchemaCache=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE),(e,t)=>{UI_SCHEMA_CACHE[e]=t;}),getUISchemaCache=e=>_$1.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>_$1.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){return "SMALL"===t?_$1.isEmpty(e.mobile_columns)?_$1.slice(e.columns,0,4):e.mobile_columns:e.columns}function getListViewSort(e){let i="";return e&&e.sort&&e.sort.length&&_$1.each(e.sort,function(e,t){var a;_$1.isArray(e)?(a=e[0]+" "+(e[1]||""),a=0<t?","+a:a,i+=a):(a=e.field_name+" "+e.order,a=0<t?","+a:a,i+=a);}),i}async function getUISchema(t,e){if(t){if(!hasUISchemaCache(t)||e){let a=null;try{if(!(a=UISchemaFunction?await UISchemaFunction(t,e):await fetchAPI(`/service/api/@${t.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;setUISchemaCache(t,a),_$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={}){var r=await getUISchema(t),l=_$1.find(r.list_views,(e,t)=>t===(a=a||t));if(!l)return {uiSchema:r};if(l.enable_amis_schema&&l.amis_schema){const m=_$1.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema;return {uiSchema:r,isCustomAmisSchema:!0,amisSchema:m}}var o=getListViewColumns(l,i.formFactor),n=getListViewSort(l),s=i.defaults||{};!s.headerSchema&&i.showHeader&&(s.headerSchema=await getObjectListHeader(r)),i.showHeader||(s.headerSchema=null);try{var d,c=location.pathname+"/crud/"+i.listViewId,p=localStorage.getItem(c);p&&(p=JSON.parse(p),d={},p.orderBy&&(d.orderBy=p.orderBy),p.orderDir&&(d.orderDir=p.orderDir),p.perPage&&(d.defaultParams={perPage:p.perPage}),s.listSchema=_$1.defaultsDeep({},d,s.listSchema||{}));}catch(e){console.error("本地存储中crud参数解析异常:",e);}i.defaults=s;const m={type:"steedos-object-table",objectApiName:t,columns:o,extraColumns:l.extra_columns,filters:l.filters,sort:n,ctx:i};return {uiSchema:r,amisSchema:m}}async function getTableSchema(e,t,a,i={}){const r=await getUISchema(t);let l=i.sort;l||(n=i.sortField,s=i.sortOrder,n&&(l=n+" "+s||"asc"));let o=[];_$1.each(a,function(e){_$1.isString(e)&&r.fields[e]?o.push(r.fields[e]):_$1.isObject(e)&&r.fields[e.field]&&o.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}));});var n=i.extraColumns,s=(n&&_$1.each(n,function(e){_$1.isString(e)?o.push({extra:!0,name:e}):_$1.isObject(e)&&o.push({extra:!0,name:e.field});}),await getObjectList(r,o,{tabId:t,appId:e,objectName:t,...i,filter:i.filters,sort:l,buttons:await getListViewItemButtons(r,i)}));return {uiSchema:r,amisSchema:s}}async function getRecordDetailHeaderSchema(e,t){e=await getUISchema(e);return {uiSchema:e,amisSchema:await getObjectRecordDetailHeader(e,t)}}async function getRecordDetailSchema(e,t){e=await getUISchema(e);return {uiSchema:e,amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${e?.NAME_FIELD_KEY||"name"}}`}}]}}},{type:"tabs",tabs:[{title:"详细",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"},{title:"相关",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}],id:"u:a649e4094a12"}]}}}async function getObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],o=[].concat(e.related_lists||[]);if(_$1.isEmpty(o))for(const m of [].concat(e.details||[])){var n=m.split("."),s=await getUISchema(n[0]);if(s){let e=null;var d=await getField(n[0],n[1]);e=d._reference_to||d.reference_to&&!_$1.isString(d.reference_to)?[[n[1]+"/o","=",i],[n[1]+"/ids","=",a]]:[""+n[1],"=",a],l.push({masterObjectName:i,object_name:n[0],foreign_key:n[1],schema:await getListSchema(t,n[0],"all",{globalFilter:e,formFactor:r,buttons:await getListViewItemButtons(s,{isMobile:!1})})});}}else for(const u of o){var c=u.related_field_fullname.split(".");let e=null;var p=await getField(c[0],c[1]);if(p){e=p._reference_to||p.reference_to&&!_$1.isString(p.reference_to)?[[c[1]+"/o","=",i],[c[1]+"/ids","=",a]]:[""+c[1],"=",a];const f=await getUISchema(c[0]);if(f){let a=[];_$1.forEach(u.field_names,t=>{var e=_$1.find(f.fields,e=>e.name===t);e&&a.push(e);}),l.push({masterObjectName:i,object_name:c[0],foreign_key:c[1],schema:{uiSchema:f,amisSchema:await getObjectList(f,a,{tabId:i,appId:t,objectName:c[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(f,{isMobile:!1})})}});}}}return l}async function getObjectRelated({appName:e,masterObjectName:t,objectName:a,relatedFieldName:i,recordId:r,formFactor:l}){let o=null;var n=await getField(a,i),n=(o=n._reference_to||n.reference_to&&!_$1.isString(n.reference_to)?[[i+"/o","=",t],[i+"/ids","=",r]]:[""+i,"=",r],await getUISchema(t));return {masterObjectName:t,object_name:a,foreign_key:i,schema:await getListSchema(e,a,"all",{globalFilter:o,formFactor:l}),record:await getRecord(t,r,[n.NAME_FIELD_KEY]),masterObjectUISchema:n}}async function getSearchableFieldsFilterSchema(e,t,a){return getObjectFieldsFilterFormSchema(e,t,a)}const getRelatedFieldValue=(e,t,a,i)=>{a=_$1.find(a.fields,e=>i===e?.name);return _$1.isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]}};async function getAmisObjectRelatedList(t,i,a,r){var e=await getUISchema(i),l=[],o=[].concat(e.related_lists||[]);if(_$1.isEmpty(o))for(const u of [].concat(e.details||[])){var n,s,d=u.split("."),c=await getUISchema(d[0]);c&&(((n=await getField(d[0],d[1]))._reference_to||n.reference_to&&!_$1.isString(n.reference_to))&&d[1],d[1],s=(n=await getListSchema(t,d[0],"all",{formFactor:r,buttons:await getListViewItemButtons(c,{isMobile:!1})})).amisSchema,c=await getObjectRecordDetailRelatedListHeader(c),s.headerSchema=c,s.headerToolbar=[],s.columnsTogglable=!1,s.globalFilter=s.filters,delete s.ctx,n.amisSchema={type:"service",data:{masterObjectName:i,masterRecordId:"${recordId}",relatedKey:d[1],objectName:d[0],listViewId:`amis-\${appId}-${d[0]}-listview`},body:[{...s,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[d[1]]:getRelatedFieldValue(i,a,n.uiSchema,d[1])}}}]},l.push({masterObjectName:i,object_name:d[0],foreign_key:d[1],schema:n}));}else for(const f of o){var p=f.related_field_fullname.split(".");let e=null;var m=await getField(p[0],p[1]);if(m){e=m._reference_to||m.reference_to&&!_$1.isString(m.reference_to)?[[p[1]+"/o","=",i],[p[1]+"/ids","=",a]]:[""+p[1],"=",a];const g=await getUISchema(p[0]);if(g){let a=[];_$1.forEach(f.field_names,t=>{var e=_$1.find(g.fields,e=>e.name===t);e&&a.push(e);}),l.push({masterObjectName:i,object_name:p[0],foreign_key:p[1],schema:{uiSchema:g,amisSchema:await getObjectList(g,a,{tabId:i,appId:t,objectName:p[0],formFactor:r,globalFilter:e,buttons:await getListViewItemButtons(g,{isMobile:!1})})}});}}}return l}async function getRecordDetailRelatedListSchema(t,e,a,i,r,l,o){var n=await getUISchema(a),{list_views:s,fields:d}=n,s=_$1.keys(s)[0];let c=null;d=await getField(a,i=i||_$1.findKey(d,function(e){return -1<["lookup","master_detail"].indexOf(e.type)&&e.reference_to===t}));let p=e;d.reference_to_field&&"_id"!=d.reference_to_field&&(e=await getRecord(t,e,[d.reference_to_field]),p=e[d.reference_to_field]),c=d._reference_to||d.reference_to&&!_$1.isString(d.reference_to)?[[i+"/o","=",t],[i+"/ids","=",p]]:[""+i,"=",p];e=await getObjectRecordDetailRelatedListHeader(n),d="steedos-record-related-list-"+a,s=(await getListSchema(null,a,s,{globalFilter:c,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:e},showHeader:!0,top:r,setDataToComponentId:d,tableHiddenOn:l?"this.$count === 0":null,appId:o})).amisSchema;return {uiSchema:n,amisSchema:{type:"service",id:d,className:"steedos-record-related-list bg-white mb-1 border",data:{masterObjectName:t,masterRecordId:"${recordId}",relatedKey:i,objectName:a,listViewId:`amis-\${appId}-${a}-listview`},body:[{...s,data:{relatedKey:i,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[i]:getRelatedFieldValue(t,p,n,i)}}}]}}}async function getFormPageInitSchema(e){return {type:"page",bodyClassName:"",regions:["body"],body:[(await getFormSchema(e,{recordId:"${recordId}"})).amisSchema]}}async function getListPageInitSchema(e,t,a){var i=await getUISchema(e),i=(_$1.first(_$1.keys(i.list_views)),await getObjectListHeader(i));return {type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:i}]}}async function getRecordPageInitSchema(e){var t=await getAmisObjectRelatedList(null,e,"${recordId}",null),a=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.name}"}}]}}}],i={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"},t=_$1.map(t,e=>e.schema.amisSchema);return t.length&&i.tabs.push({title:"相关",body:t}),a.push(i),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:a}}async function getListviewInitSchema(e,a,t){t=t||{};var i,r,l=await getUISchema(e),o=_$1.find(l.list_views,(e,t)=>t===a);let n={};return o&&(i=getListViewColumns(o,t.formFactor),o=getListViewSort(o),(r=t.defaults||{}).headerSchema||(l=await getObjectListHeader(l,a,{onlySecordLine:!0,isListviewInit:!0}),r.headerSchema=l),t.defaults=r,l=await getTableSchema(null,e,i,{sort:o,...t}),n=l.amisSchema),n}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}const getNotifications=async()=>{var e=getSteedosAuth(),e=`
1058
- {
1059
- notifications(filters: ["owner","=","${e.userId}"], sort: "created desc,name", top : 10){
1060
- _id,name,body,related_to,related_name,url,owner,is_read,from,created
1061
- },
1062
- unReadCount: notifications__count(filters: [["owner","=","${e.userId}"], ["is_read", "!=", true]])
1063
- }
1064
- `;return (await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},markReadAll=async()=>fetchAPI("/api/v4/notifications/all/markReadAll",{method:"POST"}),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;async function getSpaceUsersPickerAmisSchema(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"}}async function getSpaceUsersPickerSchema(e,t){var a=await getUISchema("space_users");return {uiSchema:a,amisSchema:await getSpaceUsersPickerAmisSchema(a,e,t)}}const DATE_DATETIME_BETWEEN_VALUES=["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"],opMaps={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"},isGroup=e=>_.has(e,"conjunction"),conditionGroupToFilters=e=>{const a=[],{conjunction:i,children:t}=e;return i&&t&&t.forEach(e=>{var t;0<a.length&&a.push(i),isGroup(e)?(t=conditionGroupToFilters(e))&&0<t.length&&a.push(t):(t=conditionItemToFilters(e))&&a.push(t);}),a},conditionItemToFilters=e=>{var t,{left:e,op:a,right:i}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=i?[e.field,opMaps[a],i]:void 0},filterToConditionItem=t=>{var e;if(3===t.length)return "between"===(e=_$1__default["default"].findKey(opMaps,e=>e===t[1]))&&_$1__default["default"].includes(DATE_DATETIME_BETWEEN_VALUES,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));},filterObjectToArray=e=>!_$1__default["default"].isArray(e)&&_$1__default["default"].isObject(e)?[e.field,e.operation,e.value]:e,filtersToConditionGroup=e=>{e=filterObjectToArray(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach(e=>{"or"===(e=filterObjectToArray(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push(filterToConditionItem(e)):t.children.push(filtersToConditionGroup(e));}),t},conditionsToFilters=e=>conditionGroupToFilters(e),filtersToConditions=e=>filtersToConditionGroup(e),getSelectOptions=e=>{const a=[];return _$1.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},getTdInputTpl=(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=getSelectOptions(e);break;case"user":case"group":a.type="input-text";break;case"radio":a.type="radios",a.options=getSelectOptions(e);break;case"multiSelect":a.type="checkboxes",a.options=getSelectOptions(e);break;case"odata":var i=e.formula.substr(1,e.formula.length-2);a.type="select",a.multiple=e.is_multiselect,a.labelField=i,a.valueField="$$",a.source={url:_$1.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=[],_$1.each(e.sfields,e=>{"hidden"!=e.type&&a.columns.push(getTdInputTpl(e,!0));});break;case"section":a.type="input-text";}return a},getTdField=(e,t)=>({background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[getTdInputTpl(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}),getTdTitle=e=>({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>`}]}),getTds=t=>{const a=[];return _$1.each(t,e=>{"table"!=e.type&&a.push(getTdTitle(e)),"section"!=e.type&&a.push(getTdField(e,t.length));}),a},getFormTrs=a=>{const t=[],i=[];let r=[];return _$1.each(a.fields,(e,t)=>{e.is_wide?(0!=r.length&&i.push(r),"table"==e.type&&i.push([Object.assign({},e,{type:"section"})]),(r=[]).push(e),i.push(r),r=[]):(r.push(e),2!=r.length&&t!==a.fields.length-1||(i.push(r),r=[]));}),_$1.each(i,e=>{t.push({background:"#F7F7F7",tds:getTds(e)});}),t},getFormTableView=e=>({type:"table-view",trs:getFormTrs(e),id:"u:047f3669468b"}),getFlowFormSchema=e=>({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"}},getFormTableView(e)],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}),registerRemoteAssets=async t=>{if(t&&0<t.length){let e=t;_$1.isString(e)&&(e=e.split(",")),await Builder.registerRemoteAssets(e);t=_$1.filter(Builder.registry["meta-components"],function(e){return e.componentName&&e.amis?.render});return _$1.map(t,e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render}))}return []};var __assign=function(){return (__assign=Object.assign||function(e){for(var t,a=1,i=arguments.length;a<i;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},keyToPath=function(e){var r=[];return e.charCodeAt(0)===".".charCodeAt(0)&&r.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),function(e,t,a,i){return a?e=i.replace(/\\(\\)?/g,"$1"):t&&(e=t.trim()),r.push(e),""}),r};function createObject(e,t,a){var i=(e=e&&Object.isFrozen(e)?cloneObject(e):e)?Object.create(e,__assign(__assign({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&isObject(t)&&Object.keys(t).forEach(function(e){return i[e]=t[e]}),i}function cloneObject(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 extendObject(e,t,a){var i=cloneObject(e,a=void 0===a?!0:a);return t&&Object.keys(t).forEach(function(e){return i[e]=t[e]}),i}function isObject(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}function setVariable(e,t,a,i){if(t in(e=e||{}))e[t]=a;else {for(var r=!1!==i?keyToPath(t):[t],i=r.pop();r.length;){var l=r.shift();e=isPlainObject_1(e[l])?e[l]=__assign({},e[l]):(Array.isArray(e[l])?e[l]=e[l].concat():(e[l],e[l]={}),e[l]);}e[i]=a;}}function deleteVariable(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else {for(var a=keyToPath(t),t=a.pop();a.length;){var i=a.shift();if(!isPlainObject_1(e[i])){if(e[i])throw new Error("目标路径不是纯对象,不能修改");break}e=e[i]=__assign({},e[i]);}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t];}}
1065
-
1066
- var index_esm = /*#__PURE__*/Object.freeze({
1067
- __proto__: null,
1068
- absoluteUrl: absoluteUrl,
1069
- amisRender: amisRender,
1070
- amisRootClick: amisRootClick,
1071
- cloneObject: cloneObject,
1072
- conditionsToFilters: conditionsToFilters,
1073
- createObject: createObject,
1074
- defaultsDeep: defaultsDeep,
1075
- deleteVariable: deleteVariable,
1076
- execute: execute,
1077
- executeButton: executeButton,
1078
- extendObject: extendObject,
1079
- fetchAPI: fetchAPI,
1080
- filtersToConditions: filtersToConditions,
1081
- getAmisObjectRelatedList: getAmisObjectRelatedList,
1082
- getApp: getApp,
1083
- getApps: getApps,
1084
- getAuthToken: getAuthToken,
1085
- getAuthorization: getAuthorization,
1086
- getButton: getButton,
1087
- getButtonVisible: getButtonVisible,
1088
- getButtonVisibleOn: getButtonVisibleOn,
1089
- getButtons: getButtons,
1090
- getEnv: getEnv,
1091
- getEnvs: getEnvs,
1092
- getEvn: getEvn,
1093
- getField: getField,
1094
- getFileSrc: getFileSrc,
1095
- getFlowFormSchema: getFlowFormSchema,
1096
- getFormPageInitSchema: getFormPageInitSchema,
1097
- getFormSchema: getFormSchema,
1098
- getImageSrc: getImageSrc,
1099
- getListPageInitSchema: getListPageInitSchema,
1100
- getListSchema: getListSchema,
1101
- getListViewButtons: getListViewButtons,
1102
- getListViewColumns: getListViewColumns,
1103
- getListViewItemButtons: getListViewItemButtons,
1104
- getListViewSort: getListViewSort,
1105
- getListviewInitSchema: getListviewInitSchema,
1106
- getNotifications: getNotifications,
1107
- getObjectDetailButtons: getObjectDetailButtons,
1108
- getObjectDetailMoreButtons: getObjectDetailMoreButtons,
1109
- getObjectFieldsFilterBarSchema: getObjectFieldsFilterBarSchema,
1110
- getObjectFieldsFilterButtonSchema: getObjectFieldsFilterButtonSchema,
1111
- getObjectFieldsFilterFormSchema: getObjectFieldsFilterFormSchema,
1112
- getObjectListHeader: getObjectListHeader,
1113
- getObjectListHeaderFirstLine: getObjectListHeaderFirstLine,
1114
- getObjectRecordDetailHeader: getObjectRecordDetailHeader,
1115
- getObjectRecordDetailRelatedListHeader: getObjectRecordDetailRelatedListHeader,
1116
- getObjectRelated: getObjectRelated,
1117
- getObjectRelatedList: getObjectRelatedList,
1118
- getObjectRelatedListButtons: getObjectRelatedListButtons,
1119
- getObjectRelatedListHeader: getObjectRelatedListHeader,
1120
- getPage: getPage,
1121
- getRecord: getRecord,
1122
- getRecordDetailHeaderSchema: getRecordDetailHeaderSchema,
1123
- getRecordDetailRelatedListSchema: getRecordDetailRelatedListSchema,
1124
- getRecordDetailSchema: getRecordDetailSchema,
1125
- getRecordPageInitSchema: getRecordPageInitSchema,
1126
- getRecordPermissions: getRecordPermissions,
1127
- getRelatedFieldValue: getRelatedFieldValue,
1128
- getRelatedsCount: getRelatedsCount,
1129
- getRootUrl: getRootUrl,
1130
- getSearchableFieldsFilterSchema: getSearchableFieldsFilterSchema,
1131
- getSelectUserSchema: getSelectUserSchema,
1132
- getSpaceUsersPickerAmisSchema: getSpaceUsersPickerAmisSchema,
1133
- getSpaceUsersPickerSchema: getSpaceUsersPickerSchema,
1134
- getSteedosAuth: getSteedosAuth,
1135
- getTableSchema: getTableSchema,
1136
- getTenantId: getTenantId,
1137
- getUISchema: getUISchema,
1138
- getViewSchema: getViewSchema,
1139
- isExpression: isExpression,
1140
- isObject: isObject,
1141
- lookupToAmis: lookupToAmis,
1142
- lookupToAmisPicker: lookupToAmisPicker,
1143
- lookupToAmisSelect: lookupToAmisSelect,
1144
- lookupToAmisSelectUser: lookupToAmisSelectUser,
1145
- markReadAll: markReadAll,
1146
- parseSingleExpression: parseSingleExpression,
1147
- registerRemoteAssets: registerRemoteAssets,
1148
- registerRenders: registerRenders,
1149
- resetLocalListViewPropsWithSearchableFields: resetLocalListViewPropsWithSearchableFields,
1150
- setEnv: setEnv,
1151
- setEnvs: setEnvs,
1152
- setRootUrl: setRootUrl,
1153
- setSteedosAuth: setSteedosAuth,
1154
- setUISchemaFunction: setUISchemaFunction,
1155
- setVariable: setVariable,
1156
- standardButtonsTodo: standardButtonsTodo
1157
- });
1158
-
1159
- var getSchema = function (field, value, ctx) { return __awaiter(void 0, void 0, void 0, function () {
1160
- var refTo, leftName, options, refTo_1, refTo_1_1, item, refObject_1, e_1_1, refObject, rightSchema;
1161
- var e_1, _a;
1162
- return __generator(this, function (_b) {
1163
- switch (_b.label) {
1164
- case 0:
1165
- refTo = field.reference_to;
1166
- leftName = "".concat(field.name, "__left");
1167
- options = [];
1168
- _b.label = 1;
1169
- case 1:
1170
- _b.trys.push([1, 6, 7, 8]);
1171
- refTo_1 = __values(refTo), refTo_1_1 = refTo_1.next();
1172
- _b.label = 2;
1173
- case 2:
1174
- if (!!refTo_1_1.done) return [3 /*break*/, 5];
1175
- item = refTo_1_1.value;
1176
- return [4 /*yield*/, getUISchema(item, false)];
1177
- case 3:
1178
- refObject_1 = _b.sent();
1179
- options.push({
1180
- label: refObject_1.label,
1181
- value: item,
1182
- icon: refObject_1.icon
1183
- });
1184
- _b.label = 4;
1185
- case 4:
1186
- refTo_1_1 = refTo_1.next();
1187
- return [3 /*break*/, 2];
1188
- case 5: return [3 /*break*/, 8];
1189
- case 6:
1190
- e_1_1 = _b.sent();
1191
- e_1 = { error: e_1_1 };
1192
- return [3 /*break*/, 8];
1193
- case 7:
1194
- try {
1195
- if (refTo_1_1 && !refTo_1_1.done && (_a = refTo_1.return)) _a.call(refTo_1);
1196
- }
1197
- finally { if (e_1) throw e_1.error; }
1198
- return [7 /*endfinally*/];
1199
- case 8:
1200
- if (!value || !value.o) {
1201
- value = {
1202
- o: options[0].value,
1203
- ids: []
1204
- };
1205
- }
1206
- return [4 /*yield*/, getUISchema(value.o, false)];
1207
- case 9:
1208
- refObject = _b.sent();
1209
- rightSchema = null;
1210
- if (!(refObject.enable_enhanced_lookup == true)) return [3 /*break*/, 11];
1211
- return [4 /*yield*/, lookupToAmisPicker(Object.assign({}, field, { reference_to: value.o }), false, ctx)];
1212
- case 10:
1213
- rightSchema = _b.sent();
1214
- return [3 /*break*/, 13];
1215
- case 11: return [4 /*yield*/, lookupToAmisSelect(Object.assign({}, field, { reference_to: value.o }), false, ctx)];
1216
- case 12:
1217
- rightSchema = _b.sent();
1218
- _b.label = 13;
1219
- case 13: return [2 /*return*/, {
1220
- "type": "input-group",
1221
- "label": false,
1222
- "body": [
1223
- {
1224
- "type": "select",
1225
- "name": leftName,
1226
- "options": options,
1227
- "value": "".concat(value.o)
1228
- },
1229
- Object.assign({}, rightSchema, {
1230
- name: "".concat(field.name, "__right"),
1231
- id: "right:".concat(field.name),
1232
- "inputClassName": "w-full",
1233
- "value": "".concat(value.ids)
1234
- })
1235
- ]
1236
- }];
1237
- }
1238
- });
1239
- }); };
1240
- var AmisObjectFieldLookup = function (props) {
1241
- var field = props.field; props.readonly; var ctx = props.ctx, amisDispatchEvent = props.dispatchEvent, render = props.render; props.renderFormItems; var onChange = props.onChange, data = props.data, formItemValue = props.formItemValue;
1242
- var _b = __read(React.useState(), 2), schema = _b[0], setSchema = _b[1];
1243
- var _c = __read(React.useState(formItemValue), 2), value = _c[0], setValue = _c[1];
1244
- React.useEffect(function () {
1245
- setValue(formItemValue);
1246
- }, [formItemValue]);
1247
- React.useEffect(function () {
1248
- getSchema(field, value, ctx).then(function (result) {
1249
- setSchema(result);
1250
- });
1251
- }, [value]);
1252
- var handleChange = function (values, fieldName) { return __awaiter(void 0, void 0, void 0, function () {
1253
- var fieldValue, rendererEvent;
1254
- return __generator(this, function (_a) {
1255
- switch (_a.label) {
1256
- case 0:
1257
- fieldValue = Object.assign({
1258
- o: fieldName.endsWith("_left") ? values : value === null || value === void 0 ? void 0 : value.o,
1259
- ids: fieldName.endsWith("_right") ? values : value === null || value === void 0 ? void 0 : value.ids
1260
- });
1261
- if (fieldName.endsWith("_left")) {
1262
- fieldValue.ids = [];
1263
- }
1264
- if (_$1.isString(fieldValue.ids)) {
1265
- fieldValue.ids = _$1.compact(fieldValue.ids.split(','));
1266
- }
1267
- return [4 /*yield*/, amisDispatchEvent('change', createObject(data, {
1268
- fieldValue: fieldValue
1269
- }))];
1270
- case 1:
1271
- rendererEvent = _a.sent();
1272
- if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
1273
- return [2 /*return*/];
1274
- }
1275
- return [2 /*return*/, onChange(fieldValue)];
1276
- }
1277
- });
1278
- }); };
1279
- return (React__default["default"].createElement("div", { className: 'amis-object-field-lookup' }, schema ? (React__default["default"].createElement("div", { className: "container" }, render('body', schema, {
1280
- // 这里的信息会作为 props 传递给子组件,一般情况下都不需要这个
1281
- onChange: handleChange
1282
- }))) : null));
1283
- };
1284
-
1285
- var AmisObjectButton = function (props) {
1286
- var objectName = props.objectName, name = props.name, data = props.data, render = props.render, className = props.className, listViewId = props.listViewId;
1287
- var _a = __read(React.useState(), 2), button = _a[0], setButton = _a[1];
1288
- var _b = __read(React.useState(), 2), uiSchema = _b[0], setUiSchema = _b[1];
1289
- //TODO 处理上下文参数
1290
- var appId = data.appId;
1291
- var formFactor = data.formFactor;
1292
- React.useEffect(function () {
1293
- if (objectName) {
1294
- getUISchema(objectName, false).then(function (uiSchema) {
1295
- getButton(objectName, name, {
1296
- objectName: objectName,
1297
- recordId: data._id,
1298
- appId: appId,
1299
- uiSchema: uiSchema,
1300
- formFactor: formFactor,
1301
- router: null,
1302
- listViewId: data.listViewId,
1303
- props: {
1304
- className: "antd-Button antd-Button--link"
1305
- }
1306
- }).then(function (result) {
1307
- setButton(result);
1308
- setUiSchema(uiSchema);
1309
- });
1310
- });
1311
- }
1312
- }, [objectName, name]);
1313
- var buttonClick = function () {
1314
- var dataComponentId = data.dataComponentId;
1315
- //Object.assign({}, data , {scope: (window as any).SteedosUI.getRef(dataComponentId)})
1316
- return executeButton(button, {
1317
- objectName: objectName,
1318
- listViewId: listViewId || data.listViewId,
1319
- uiSchema: uiSchema,
1320
- record: data,
1321
- recordId: data._id,
1322
- appId: appId,
1323
- formFactor: formFactor,
1324
- scope: window.SteedosUI.getRef(dataComponentId)
1325
- });
1326
- };
1327
- if (!button) {
1328
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
1329
- React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", className: "animate-spin w-4 h-4" },
1330
- React__default["default"].createElement("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99" }))));
1331
- }
1332
- if (button.type === "amis_button") {
1333
- var amisSchema = button.amis_schema;
1334
- var schema = _$1.isString(amisSchema) ? JSON.parse(amisSchema) : amisSchema;
1335
- if (schema && schema.body.length > 0) {
1336
- delete schema.body[0]['visibleOn'];
1337
- }
1338
- // if(className){
1339
- // schema.className = schema.className + ' ' + className;
1340
- // }
1341
- var renderData = Object.assign(data, { recordId: data._id, objectName: objectName, listViewId: data.listViewId, app_id: appId, className: className });
1342
- if (schema) {
1343
- schema.data = _$1.defaultsDeep({}, schema.data, renderData);
1344
- }
1345
- return (React__default["default"].createElement(React__default["default"].Fragment, null, button && amisSchema ? (React__default["default"].createElement(React__default["default"].Fragment, null, render('body', schema, {
1346
- // 这里的信息会作为 props 传递给子组件,一般情况下都不需要这个,
1347
- data: renderData,
1348
- onChange: function () {
1349
- console.log("change....");
1350
- }
1351
- }))) : null));
1352
- }
1353
- else {
1354
- return (React__default["default"].createElement("button", { onClick: buttonClick, className: "antd-Button antd-Button--default antd-Button--size-default ".concat(className ? className : '') }, button.label));
1355
- }
1356
- };
1357
-
1358
- var getMenu = function (render, buttons, props) {
1359
- return React__default["default"].createElement(antd.Menu, { items: _$1.map(buttons, function (button) {
1360
- button.className = button.className;
1361
- return {
1362
- key: button.name,
1363
- className: 'p-0 min-w-32',
1364
- label: (React__default["default"].createElement(React__default["default"].Fragment, null, render('body', button, props)))
1365
- };
1366
- }) });
1367
- };
1368
- var SteedosDropdownButton = function (props) {
1369
- var data = props.data, render = props.render, className = props.className, buttons = props.buttons, placement = props.placement, onOpenApi = props.onOpenApi; props.store; var env = props.env;
1370
- var _a = __read(React.useState(React__default["default"].createElement(React__default["default"].Fragment, null)), 2), menu = _a[0], setMenu = _a[1];
1371
- var onOpenChange = function (open) {
1372
- if (open) {
1373
- if (onOpenApi) {
1374
- try {
1375
- env.fetcher(onOpenApi, createObject(data, {})).then(function (result) {
1376
- var openData = (result === null || result === void 0 ? void 0 : result.hasOwnProperty('ok')) ? result.data : result;
1377
- setMenu(getMenu(render, buttons, {
1378
- data: createObject(data, _$1.defaultsDeep(openData, data))
1379
- }));
1380
- }).catch(function (e) {
1381
- console.error(e);
1382
- });
1383
- }
1384
- catch (error) {
1385
- console.error(error);
1386
- }
1387
- }
1388
- else {
1389
- setMenu(getMenu(render, buttons, {
1390
- data: data
1391
- }));
1392
- }
1393
- }
1394
- };
1395
- return (React__default["default"].createElement(antd.Dropdown, { overlay: menu, trigger: ['click'], onOpenChange: onOpenChange, placement: placement },
1396
- React__default["default"].createElement("button", { className: "slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(className ? className : '') },
1397
- React__default["default"].createElement("svg", { fill: "none", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
1398
- React__default["default"].createElement("path", { d: "m7 10 5 5 5-5z", fill: "currentColor" })))));
1399
- };
1400
-
1401
- var AmisObjectForm = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1402
- var $schema, recordId, mode, layout, labelAlign, appId, objectApiName, schemaKeys, formSchema, defaults, options;
1403
- return __generator(this, function (_a) {
1404
- switch (_a.label) {
1405
- case 0:
1406
- $schema = props.$schema, recordId = props.recordId, mode = props.mode, layout = props.layout, labelAlign = props.labelAlign, appId = props.appId;
1407
- objectApiName = props.objectApiName || "space_users";
1408
- schemaKeys = _$1.difference(_$1.keys($schema), ["type", "mode", "layout"]);
1409
- formSchema = _$1.pick(props, schemaKeys);
1410
- defaults = {
1411
- formSchema: formSchema
1412
- };
1413
- options = {
1414
- recordId: recordId,
1415
- mode: mode,
1416
- layout: layout === 'vertical' ? 'normal' : layout,
1417
- labelAlign: labelAlign,
1418
- defaults: defaults,
1419
- appId: appId
1420
- };
1421
- if (!(mode === 'edit')) return [3 /*break*/, 2];
1422
- return [4 /*yield*/, getFormSchema(objectApiName, options)];
1423
- case 1: return [2 /*return*/, (_a.sent()).amisSchema];
1424
- case 2:
1425
- // formInitProps
1426
- if (!recordId) {
1427
- options.formInitProps = {
1428
- queryOptions: "top: 1"
1429
- };
1430
- }
1431
- return [4 /*yield*/, getViewSchema(objectApiName, recordId, options)];
1432
- case 3: return [2 /*return*/, (_a.sent()).amisSchema];
1433
- }
1434
- });
1435
- }); };
1436
-
1437
- var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1438
- var $schema, top, showHeader, headerSchema, ctx, data, defaultData, className, tableClassName, urlListNameMatchs, urlListName, listName, defaults, objectApiName, schemaKeys, listSchema, setDataToComponentId, amisSchemaData, listViewId, schema, amisSchema, uiSchema, body, firstLineSchema, serviceData;
1439
- return __generator(this, function (_a) {
1440
- switch (_a.label) {
1441
- case 0:
1442
- $schema = props.$schema, top = props.top, showHeader = props.showHeader, headerSchema = props.headerSchema, ctx = props.ctx, data = props.data, defaultData = props.defaultData, className = props.className, tableClassName = props.tableClassName;
1443
- urlListNameMatchs = location.pathname.match(/grid\/(\w+)/);
1444
- urlListName = urlListNameMatchs && urlListNameMatchs[1];
1445
- listName = urlListName || props.listName;
1446
- defaults = {};
1447
- objectApiName = props.objectApiName || "space_users";
1448
- if (!(ctx && ctx.defaults)) {
1449
- schemaKeys = _$1.difference(_$1.keys($schema), ["type", "showHeader", "id"]);
1450
- listSchema = _$1.pick(props, schemaKeys);
1451
- // className不传入crud组件,crud单独识别tableClassName属性
1452
- listSchema.className = tableClassName;
1453
- defaults = {
1454
- listSchema: listSchema
1455
- };
1456
- }
1457
- // 支持通过直接定义headerSchema属性来定制表头,而不一定要通过ctx.defaults.headerSchema传入
1458
- if (headerSchema) {
1459
- defaults.headerSchema = headerSchema;
1460
- }
1461
- setDataToComponentId = ctx && ctx.setDataToComponentId;
1462
- if (!setDataToComponentId) {
1463
- setDataToComponentId = "service_listview_".concat(objectApiName);
1464
- }
1465
- amisSchemaData = Object.assign({}, data, defaultData);
1466
- listViewId = (ctx === null || ctx === void 0 ? void 0 : ctx.listViewId) || amisSchemaData.listViewId;
1467
- return [4 /*yield*/, getListSchema(amisSchemaData.appId, objectApiName, listName, __assign$1(__assign$1({ top: top, showHeader: showHeader, defaults: defaults }, ctx), { listViewId: listViewId, setDataToComponentId: setDataToComponentId }))];
1468
- case 1:
1469
- schema = (_a.sent());
1470
- amisSchema = schema.amisSchema;
1471
- uiSchema = schema.uiSchema;
1472
- body = [amisSchema];
1473
- if (schema.isCustomAmisSchema) {
1474
- firstLineSchema = getObjectListHeaderFirstLine(uiSchema);
1475
- body.unshift(firstLineSchema);
1476
- }
1477
- serviceData = Object.assign({}, amisSchema.data, amisSchemaData, { listName: listName, uiSchema: uiSchema });
1478
- return [2 /*return*/, {
1479
- "type": "service",
1480
- "body": body,
1481
- "className": "p-0 sm:border bg-white sm:shadow sm:rounded border-slate-300 ".concat(className),
1482
- "data": serviceData
1483
- }];
1484
- }
1485
- });
1486
- }); };
1487
-
1488
- var AmisObjectTable = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1489
- var $schema, filters, amisCondition, top, headerSchema, globalFilter, sortField, sortOrder, extraColumns, ctx, data, defaultData, columns, defaults, objectApiName, schemaKeys, listSchema, setDataToComponentId, amisFilters, tableFilters, amisSchemaData, amisSchema;
1490
- return __generator(this, function (_a) {
1491
- switch (_a.label) {
1492
- case 0:
1493
- $schema = props.$schema, filters = props.filters, amisCondition = props.amisCondition, top = props.top, headerSchema = props.headerSchema, globalFilter = props.globalFilter, sortField = props.sortField, sortOrder = props.sortOrder, extraColumns = props.extraColumns, ctx = props.ctx, data = props.data, defaultData = props.defaultData;
1494
- columns = props.columns || [];
1495
- defaults = {};
1496
- objectApiName = props.objectApiName || "space_users";
1497
- if (!(ctx && ctx.defaults)) {
1498
- schemaKeys = _$1.difference(_$1.keys($schema), ["type", "objectApiName", "columns", "extraColumns", "id"]);
1499
- listSchema = _$1.pick(props, schemaKeys);
1500
- defaults = {
1501
- listSchema: listSchema
1502
- };
1503
- }
1504
- // 支持通过直接定义headerSchema属性来定制表头,而不一定要通过ctx.defaults.headerSchema传入
1505
- if (headerSchema) {
1506
- defaults.headerSchema = headerSchema;
1507
- }
1508
- setDataToComponentId = ctx && ctx.setDataToComponentId;
1509
- if (!setDataToComponentId) {
1510
- setDataToComponentId = "service_listview_".concat(objectApiName);
1511
- }
1512
- amisFilters = amisCondition && conditionsToFilters(amisCondition);
1513
- tableFilters = filters || amisFilters;
1514
- amisSchemaData = Object.assign({}, data, defaultData);
1515
- return [4 /*yield*/, getTableSchema(amisSchemaData.appId, objectApiName, columns, __assign$1(__assign$1({ filters: tableFilters, top: top, sortField: sortField, sortOrder: sortOrder, extraColumns: extraColumns, globalFilter: globalFilter, defaults: defaults }, ctx), { setDataToComponentId: setDataToComponentId }))];
1516
- case 1:
1517
- amisSchema = (_a.sent()).amisSchema;
1518
- amisSchema.data = Object.assign({}, amisSchema.data, amisSchemaData);
1519
- return [2 /*return*/, amisSchema];
1520
- }
1521
- });
1522
- }); };
1523
-
1524
- var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1525
- var recordId, onEvent, objectApiName, schema;
1526
- return __generator(this, function (_a) {
1527
- switch (_a.label) {
1528
- case 0:
1529
- props.$schema, recordId = props.recordId, onEvent = props.onEvent;
1530
- objectApiName = props.objectApiName || "space_users";
1531
- return [4 /*yield*/, getRecordDetailHeaderSchema(objectApiName, recordId)];
1532
- case 1:
1533
- schema = (_a.sent()).amisSchema;
1534
- return [2 /*return*/, Object.assign({}, schema, { onEvent: onEvent })];
1535
- }
1536
- });
1537
- }); };
1538
-
1539
- /*
1540
- * @Author: baozhoutao@steedos.com
1541
- * @Date: 2022-12-08 10:32:17
1542
- * @LastEditors: baozhoutao@steedos.com
1543
- * @LastEditTime: 2022-12-08 14:59:02
1544
- * @Description:
1545
- */
1546
- var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1547
- var appId, _a, objectApiName, onEvent, schema;
1548
- return __generator(this, function (_b) {
1549
- switch (_b.label) {
1550
- case 0:
1551
- props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, onEvent = props.onEvent;
1552
- return [4 /*yield*/, getRecordDetailSchema(objectApiName, appId)];
1553
- case 1:
1554
- schema = (_b.sent()).amisSchema;
1555
- return [2 /*return*/, Object.assign({}, schema, { onEvent: onEvent })];
1556
- }
1557
- });
1558
- }); };
1559
-
1560
- var AmisRecordDetailRelatedList = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1561
- var objectApiName, recordId, relatedObjectApiName, relatedKey, top, hiddenEmptyTable, appId, schema;
1562
- return __generator(this, function (_a) {
1563
- switch (_a.label) {
1564
- case 0:
1565
- objectApiName = props.objectApiName, recordId = props.recordId, relatedObjectApiName = props.relatedObjectApiName, props.data, relatedKey = props.relatedKey, top = props.top, hiddenEmptyTable = props.hiddenEmptyTable, appId = props.appId;
1566
- if (!objectApiName || !relatedObjectApiName) {
1567
- return [2 /*return*/, {
1568
- "type": "alert",
1569
- "body": "缺少父级对象或相关列表对象",
1570
- "level": "warning",
1571
- "showIcon": true,
1572
- "className": "mb-3"
1573
- }];
1574
- }
1575
- return [4 /*yield*/, getRecordDetailRelatedListSchema(objectApiName, recordId, relatedObjectApiName, relatedKey, top, hiddenEmptyTable, appId)];
1576
- case 1:
1577
- schema = (_a.sent()).amisSchema;
1578
- return [2 /*return*/, schema];
1579
- }
1580
- });
1581
- }); };
1582
-
1583
- var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1584
- var objectApiName, recordId, appId, formFactor, _a, top, relatedLists;
1585
- return __generator(this, function (_b) {
1586
- switch (_b.label) {
1587
- case 0:
1588
- objectApiName = props.objectApiName, recordId = props.recordId, appId = props.appId, props.data, formFactor = props.formFactor, _a = props.top, top = _a === void 0 ? 5 : _a;
1589
- if (!objectApiName) {
1590
- return [2 /*return*/, {
1591
- "type": "alert",
1592
- "body": "缺少父级对象",
1593
- "level": "warning",
1594
- "showIcon": true,
1595
- "className": "mb-3"
1596
- }];
1597
- }
1598
- return [4 /*yield*/, getObjectRelatedList(appId, objectApiName, recordId, formFactor)];
1599
- case 1:
1600
- relatedLists = _b.sent();
1601
- return [2 /*return*/, {
1602
- type: 'service',
1603
- body: _$1.map(relatedLists, function (item) {
1604
- return {
1605
- type: 'steedos-object-related-listview',
1606
- objectApiName: objectApiName,
1607
- recordId: recordId,
1608
- relatedObjectApiName: item.object_name,
1609
- foreign_key: item.foreign_key,
1610
- relatedKey: item.foreign_key,
1611
- top: top,
1612
- hiddenEmptyTable: true,
1613
- appId: appId,
1614
- };
1615
- })
1616
- }];
1617
- }
1618
- });
1619
- }); };
1620
-
1621
- var AmisSelectUser = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1622
- var $schema, amisSchema;
1623
- return __generator(this, function (_a) {
1624
- switch (_a.label) {
1625
- case 0:
1626
- console.log("AmisSelectUser props", props);
1627
- $schema = props.$schema, props.data;
1628
- return [4 /*yield*/, getSelectUserSchema({
1629
- name: $schema.name,
1630
- multiple: $schema.multiple,
1631
- searchable: $schema.searchable,
1632
- onEvent: $schema.onEvent,
1633
- filters: $schema.filters
1634
- }, false, {})];
1635
- case 1:
1636
- amisSchema = _a.sent();
1637
- amisSchema.name = $schema.name;
1638
- // 不可以写label因为设计器中会显示两次
1639
- // amisSchema.label = $schema.label;
1640
- return [2 /*return*/, amisSchema];
1641
- }
1642
- });
1643
- }); };
1644
-
1645
- var AmisProvider = function (props) { return __awaiter(void 0, void 0, void 0, function () {
1646
- return __generator(this, function (_a) {
1647
- console.log("AmisProvider props", props);
1648
- return [2 /*return*/, {}];
1649
- });
1650
- }); };
1651
-
1652
- exports.AmisLib = index_esm;
1653
- exports.AmisObjectButton = AmisObjectButton;
1654
- exports.AmisObjectFieldLookup = AmisObjectFieldLookup;
1655
- exports.AmisObjectForm = AmisObjectForm;
1656
- exports.AmisObjectListView = AmisObjectListView;
1657
- exports.AmisObjectTable = AmisObjectTable;
1658
- exports.AmisProvider = AmisProvider;
1659
- exports.AmisRecordDetail = AmisRecordDetail;
1660
- exports.AmisRecordDetailHeader = AmisRecordDetailHeader;
1661
- exports.AmisRecordDetailRelatedList = AmisRecordDetailRelatedList;
1662
- exports.AmisRecordDetailRelatedLists = AmisRecordDetailRelatedLists;
1663
- exports.AmisSelectUser = AmisSelectUser;
1664
- exports.SteedosDropdownButton = SteedosDropdownButton;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("lodash"),a=require("antd");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var i=n(e),l=r(t),o=n(t),s=function(){return s=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function d(e,t,a,n){return new(a||(a=Promise))((function(r,i){function l(e){try{s(n.next(e))}catch(e){i(e)}}function o(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(l,o)}s((n=n.apply(e,t||[])).next())}))}function c(e,t){var a,n,r,i,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,n&&(r=2&i[0]?n.return:i[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,i[1])).done)return r;switch(n=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,n=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){l.label=i[1];break}if(6===i[0]&&l.label<r[1]){l.label=r[1],r=i;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(i);break}r[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],n=0}finally{a=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,o])}}}function u(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,r,i=a.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)l.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return l}var p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},m="object"==typeof p&&p&&p.Object===Object&&p,f="object"==typeof self&&self&&self.Object===Object&&self,b=(m||f||Function("return this")()).Symbol,y=b,h=Object.prototype,g=h.hasOwnProperty,v=h.toString,w=y?y.toStringTag:void 0;var $=function(e){var t=g.call(e,w),a=e[w];try{e[w]=void 0;var n=!0}catch(e){}var r=v.call(e);return n&&(t?e[w]=a:delete e[w]),r},N=Object.prototype.toString;var S=$,F=function(e){return N.call(e)},j=b?b.toStringTag:void 0;var O=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":j&&j in Object(e)?S(e):F(e)};var x=function(e,t){return function(a){return e(t(a))}}(Object.getPrototypeOf,Object);var I=O,k=x,V=function(e){return null!=e&&"object"==typeof e},D=Function.prototype,A=Object.prototype,E=D.toString,T=A.hasOwnProperty,P=E.call(Object);var q=function(e){if(!V(e)||"[object Object]"!=I(e))return!1;var t=k(e);if(null===t)return!0;var a=T.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&E.call(a)==P};const C=[],B=e=>({theme:"antd",notify:(e,t)=>{t.props?.schema.tpl?SteedosUI.message[e](t.props?.schema.tpl):"string"==typeof t?SteedosUI.message[e](t):console.warn("notify",e,t)},confirm:e=>new Promise(((t,a)=>SteedosUI.Modal.confirm({title:e,onOk:()=>{t(!0)},okText:"确认",cancelText:"取消"}))),jumpTo:(t,a)=>{if("goBack"===t)return window.history.back();t=((e,t=window.location)=>{(e=e||"")&&"#"===e[0]?e=t.pathname+t.search+e:e&&"?"===e[0]&&(e=t.pathname+e);var a=e.indexOf("?"),n=e.indexOf("#");let r=~a?e.substring(0,a):~n?e.substring(0,n):e;if(a=~a?e.substring(a,~n?n:void 0):"",e=~n?e.substring(n):t.hash,r){if("/"!=r[0]&&!/^https?\:\/\//.test(r)){var i,l=t.pathname.split("/");for(l.pop();i=/^\.\.?\//.exec(r);)"../"===i[0]&&l.pop(),r=r.substring(i[0].length);r=l.concat(r).join("/")}}else r=t.pathname;return r+a+e})(t),a&&"url"===a.actionType?!1===a.blank?e.push(t):window.open(t):a&&t&&a.target?window.open(t,a.target):/^https?:\/\//.test(t)?window.location.replace(t):e.push(t)}}),L=e=>{if(!t.isEmpty(e)&&t.isArray(e)){var a=amisRequire("amis");const n={renderer:a.Renderer,formitem:a.FormItem,options:a.OptionsControl};let r=amisRequire("react");t.each(e,(e=>{if(!t.find(C,(t=>t===e.componentName))){let t=Builder.components.find((t=>t.name===e.componentName)),a=t.class;"amisSchema"===e.componentType&&(a=e=>{var{body:a,render:n}=e;const[i,l]=r.useState(null);return r.useEffect((()=>{var a=t.class(e);a&&a.then&&"function"==typeof a.then?a.then((e=>{l(e)})):l(a)}),[]),r.createElement(r.Fragment,null,r.createElement(r.Fragment,null,i&&n?n("body",i):""),r.createElement(r.Fragment,null,n?n("body",a):""))}),n[e.usage]?(n[e.usage]({test:new RegExp("(^|/)"+e.type),type:e.type,weight:e.weight,autoVar:!0})(a),console.info("注册了一个自定义amis组件:",{type:e.type,weight:e.weight,component:a,framework:e.framework,usage:e.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${e.usage}自定义组件类型。`),C.push(e.componentName)}}))}},R={},z=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings;async function J(e,t={credentials:"include"}){var a,n={"Content-Type":"application/json"};if(401===(a=((a=M())&&(n.Authorization=a),t.headers=Object.assign({},n,t.headers),t.credentials="include",await fetch(""+K()+e,t))).status)throw new Error(401);if((n=await a.json()).errors)throw console.error(n.errors),new Error("Failed to fetch API");return n}function U(){try{let e=z().tenantId;return window.location.search&&!e&&(e=new URLSearchParams(window.location.search).get("X-Space-Id")),e||null}catch(e){console.error(e)}}function H(){try{var e=z().authToken;return e||null}catch(e){console.error(e)}}function M(){try{var e=z(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function K(e){return z().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}const Y=()=>t.cloneDeep(R);async function W(e,a){0!=a&&(a=!0);let n=["_id"],r=[];for(const i of l.isArray(e)?e:l.values(e))i.name.indexOf(".")<0&&(!a||"lookup"!=i.type&&"master_detail"!=i.type?n.push(i.alias?i.alias+":"+i.name:i.name):(n.push(""+i.name),r.push(""+i.name)),t.includes(["time","date","datetime","boolean","number","currency"],i.type)&&n.push(""+i.name),t.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary"],i.type)&&r.push(""+i.name));return r=l.uniq(r),n=l.uniq(n),0<r.length?`${n.join(",")},_display:_ui{${r.join(",")}}`:""+n.join(" ")}async function Z(e,t,a,n){let r="",i=(t&&(r=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return n&&(n.alias&&(i=n.alias),n.filters&&(r=`(filters:${n.filters})`),n.queryOptions&&(r=`(${n.queryOptions})`)),{query:`{${i}:${e.name}${r}{${await W(a)}, \n recordPermissions: _permissions{\n allowCreate,\n allowCreateFiles,\n allowDelete,\n allowDeleteFiles,\n allowEdit,\n allowEditFiles,\n allowRead,\n allowReadFiles,\n disabled_actions,\n disabled_list_views,\n field_permissions,\n modifyAllFiles,\n modifyAllRecords,\n modifyAssignCompanysRecords,\n modifyCompanyRecords,\n uneditable_fields,\n unreadable_fields,\n unrelated_objects,\n viewAllFiles,\n viewAllRecords,\n viewAssignCompanysRecords,\n viewCompanyRecords,\n }\n }}`}}function G(e){return`\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n ${function(e){var t=[];return e.forEach((e=>{e.readonly&&t.push(`delete formData.${e.name};`)})),t.join("\r\n")}(e)}\n ${function(e){let a=[],n={};return e.forEach((e=>{t.includes(["image","avatar"],e.type)&&(a.push(e.name),n[e.name]={name:e.name,multiple:e.multiple})})),a.length?`\n let imgFieldsKeys = ${JSON.stringify(a)};\n let imgFields = ${JSON.stringify(n)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = formData[item];\n if(imgFieldValue && imgFieldValue.length){\n // 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。\n if(imgFields[item].multiple){\n if(imgFieldValue instanceof Array){\n formData[item] = imgFieldValue.map((value)=>{ \n let itemValue = value?.split('/');\n return itemValue[itemValue.length - 1];\n });\n }\n }else{\n let imgValue = imgFieldValue.split('/');\n formData[item] = imgValue[imgValue.length - 1];\n }\n }\n })\n `:""}(e)}\n ${function(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?`\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n `:""}(e)}\n let query = \`mutation{record: \${objectName}__insert(doc: {__saveData}){_id}}\`;\n if(formData.recordId && formData.recordId !='new'){\n query = \`mutation{record: \${objectName}__update(id: "\${formData._id}", doc: {__saveData}){_id}}\`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `}function X(e){return`\n ${G(e)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n `}async function Q(e,t,a,n){var r=n.limit||10;let i=`(top: ${r})`,o=(t&&(i=`(filters:["_id", "=", "${t}"], top: ${r})`),"data");return n&&(n.alias&&(o=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`)),t="",e.enable_tree&&l.includes(l.keys(e.fields),"parent")&&l.includes(l.keys(e.fields),"children")&&(t=",parent,children"),r="","cms_files"===e.name&&(r=",versions"),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${i}{${await W(a,n.expand)}${t}${r}},count:${e.name}__count(filters:{__filters})}`}}function ee(e){if(!e)return"${context.rootUrl}/graphql"}const te={getAppPath:({appId:e})=>"/app/"+e,getPagePath(){},getObjectListViewPath:({appId:e,objectName:t,listViewName:a})=>`/app/${e}/${t}/grid/`+a,getObjectDetailPath:({appId:e,objectName:t,recordId:a,listViewName:n})=>"instances"===t?`/workflow/space/\${context.tenantId}/${n}/`+a:`/app/${e}/${t}/view/`+a,getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:r})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+r};function ae(e){return`<div>\${_display.${e.name}}</div>`}function ne(e){return`<div>\${_display.${e.name}}</div>`}function re(e){return`<div>\${_display.${e.name}}</div>`}function ie(e){return`<div>\${_display.${e.name}}</div>`}function le(e,t){var a;return _.isString(e.reference_to)||!e.reference_to?e.multiple?(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:`\${_display.${e.name}.objectName}`,recordId:`\${_display.${e.name}.value}`})}">\${_display.${e.name}.label}</a>`:(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `)}async function oe(e,t){var a,n;return e.reference_to?(a=await async function(e){return(await Rt(e.reference_to)).NAME_FIELD_KEY||"name"}(e),e.multiple?(n=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${n}"><%=item.${a}%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):ie(e)}function se(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%=data._display.${e.name}%></span>\n </span>\n <% } %>`}function de(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function ce(e,t){if(e.is_name||e.name===t.labelFieldName)return function(e,t){return"cms_files"===t.objectName?`<a href="\${context.rootUrl}/api/files/files/\${versions[0]}?download=true">\${${e.name}}</a>`:`<a href="${te.getObjectDetailPath({...t,formFactor:t.formFactor,appId:t.appId,objectName:t.objectName,recordId:`\${${t.idFieldName}}`})}">\${${e.name}}</a>`}(e,t);switch(e.type){case"password":return de(e);case"boolean":return se(e);case"select":return ie(e);case"time":case"formula":case"summary":case"filesize":return function(e){return`<div>\${_display.${e.name}}</div>`}(e);case"date":return ne(e);case"datetime":return re(e);case"lookup":case"master_detail":return le(e,t);case"number":case"currency":return ae(e)}}function ue(e){let t="";var a=l.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 l.each(a,(function(e){var a;l.includes(Ze,e.name)||(e.name,e.options?(a=JSON.stringify({options:e.options}),t+=`var ${e.name}Options= (${a}).options;`):e.optionsFunction?t+=`var ${e.name}Options = eval(${e.optionsFunction.toString()})(api.data);`:e._optionsFunction&&(t+=`var ${e.name}Options = eval(${e._optionsFunction})(api.data);`),e.multiple?t+=`data.${e.name}__label = _.map(_.filter(${e.name}Options, function(option){return _.includes(data.${e.name}, option.value)}), 'label');`:t=(t+=`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;`)})),`\n if(payload.data.data){\n var data = payload.data.data[0];\n try{\n ${t}\n ${me(e)}\n ${fe(e)}\n }catch(e){\n console.error(e)\n }\n payload.data = data;\n window.postMessage(Object.assign({type: "record.loaded"}, {record: data}), "*")\n }\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n`}async function pe(e,t,a,n){return{method:"post",url:ee()+"?rf="+(new Date).getTime(),cache:100,adaptor:ue(a),data:await Z(e,t,a,n),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function me(e){let t=[],a={};return e.forEach((e=>{l.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),t.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(t)};\n let imgFields = ${JSON.stringify(a)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ return i.url });\n }\n }else{\n data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;\n }\n }\n })\n `:""}function fe(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?`\n // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = data[item];\n let fileFieldDisplayValue = data._display && data._display[item];\n if(fileFieldValue && fileFieldValue.length){\n if(fileFields[item].multiple){\n if(fileFieldDisplayValue instanceof Array){\n data[item] = fileFieldDisplayValue.map((item, index)=>{ \n return {\n value: fileFieldValue[index],\n name: item.name,\n url: item.url + "?download=true",\n state: "uploaded"\n }\n });\n }\n }else{\n data[item] = {\n value: fileFieldValue,\n name: fileFieldDisplayValue.name,\n url: fileFieldDisplayValue.url + "?download=true",\n state: "uploaded"\n };\n }\n }\n })\n `:""}async function be(e,t,a){return{method:"post",url:ee(),sendOn:"!!this.recordId",cache:100,adaptor:`\n if(payload.data.data){\n var data = payload.data.data[0];\n if(data){\n ${me(a)}\n ${fe(a)}\n //初始化接口返回的字段移除字段值为null的字段\n for (key in data){\n if(data[key] === null){\n delete data[key];\n }\n }\n };\n payload.data = data;\n delete payload.extensions;\n }\n return payload;\n `,data:await Z(e,t,a),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function ye(e,t,a,n){return{method:"post",url:ee(),data:{objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"},requestAdaptor:X(a),responseData:{recordId:"${record._id}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function he(e){return{method:"post",url:ee(),requestAdaptor:`\n var ids = api.data.ids.split(",");\n var deleteArray = [];\n ids.forEach((id,index)=>{\n deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);\n })\n api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};\n return api;\n `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const ge=async(e,t,a,n)=>{if((t=l.filter(t,{group:a})).length!=l.filter(t,["hidden",!0]).length){var r,i=[];for(const a of t){let t=a;"grid"===a.type?t=await Xe(a,e):"object"===a.type&&(t=await Ge(a,e)),t.name.indexOf(".")<0&&(r=await et(t,t.readonly,n))&&i.push(r)}return{type:"fieldSet",title:a,collapsable:!0,body:i}}},_e=async(e,t,a)=>{var n=(e=>{let t=[];return t.length=0,l.forEach(e.fields,((e,t)=>{l.has(e,"name")||(e.name=t)})),l.forEach(l.sortBy(e.fields,"sort_no"),(e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var a=e.name,n=/\w+\.\w+/.test(a);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),n||e.hidden||t.push(Object.assign({name:a},e,{permission:{allowEdit:!0}}))})),t})(t),r=[];for(const t in l.groupBy(n,"group")){var i=await ge(e,n,t,a);0<i.body.length&&r.push(i)}return r};async function ve(e,t,a){return _e(e,t,a)}async function we(e,t){var a=[];for(const r of e){var n=await ce(r,t);let e=n?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled})}return{type:"hbox",columns:a}}function $e(e){return{perPage:e.top||e.perPage||10}}const Ne=(...e)=>{let a={};return t.toArray(e).reverse().forEach((e=>{t.mergeWith(a,e,((e,a)=>t.isArray(a)?a:void 0))})),a};function Se(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}]}async function Fe(e,t,a){var n=function(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:he(e.name)}]}(e);n={toolbar:[],footerToolbar:["statistics","pagination"],headerToolbar:Se(0,a.formFactor),bulkActions:0!=a.bulkActions&&n,bodyClassName:""};let r=null;var i="listview_"+e.name,l=(r="SMALL"===a.formFactor?(delete n.bulkActions,delete n.headerToolbar,delete n.footerToolbar,l=await async function(e,t){let a=null;var n=_.find(e,(e=>e.name===t.labelFieldName));return n&&(a=await ce(n,t)),n=await we(_.filter(e,(e=>e.name!=t.labelFieldName)),t),{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:$e(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...n.columns]}}}(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},l,{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!1,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},n)):(delete(l=await Ce(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},l,{type:"crud",primaryField:"_id",affixHeader:!1,id:i,name:i,keepItemSelectionOnPageChange:!0,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},n)),a.defaults);if(l&&(t=l.listSchema||{},r=Ne({},t,r),n=l.headerSchema,a=l.footerSchema,n||a)){let e=[r];n&&(o.default.isArray(n)?e=o.default.union(n,e):e.unshift(n)),a&&(o.default.isArray(a)?e=o.default.union(e,a):e.push(a)),r=e}return{type:"service",className:"mb-2",id:"service_"+i,name:"page",data:{$master:"$$",objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:r}}const je=e=>{var t=Y();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function Oe(e,t){var{recordId:a,formFactor:n,layout:n=("SMALL"===n?"normal":"horizontal"),labelAlign:r,defaults:i}=t,l=o.default.values(e.fields),i=i&&i.formSchema||{},n={type:"service",className:"p-0",name:"page_edit_"+a,api:await be(e,a,l),initApi:null,initFetch:null,body:[Ne({},i,{type:"form",mode:n,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await ye(0,0,l),initFetch:"new"!=a,body:await ve(l,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:'const { recordId, listViewId } = context.props.data;\ndoAction({\n componentId: `detail_${recordId}`,\n actionType: "reload",\n expression: `!${listViewId}`\n})\n\n\n\n\n'}]}}})]};return i.id&&(n.id="service-"+i.id),n}async function xe(e,a,n){var{formFactor:r,layout:r=("SMALL"===r?"normal":"horizontal"),labelAlign:i,formInitProps:l}=n,s=o.default.values(e.fields);return{type:"service",name:"page_readonly_"+a,id:"detail_"+a,data:{global:je("read"),context:{rootUrl:K(),tenantId:U(),authToken:H()}},api:await pe(e,a,s,l),body:[{type:"form",mode:r,labelAlign:i,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+a,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await ve(t.map(s,(e=>(e.readonly=!0,e))),e,Object.assign({},n,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}}]}}}}var Ie={newRecordMode:"modal",editRecordMode:"modal",perPage:20};const ke=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function Ve(e,t,a){return t?l.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":l.includes(ke,e)?"input-"+e:e}const De=(e,t)=>Ve("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),Ae=e=>{var t=e.type,a=De(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`\n <% let fileData = data.${e.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`}:void 0},Ee=e=>{var t=(e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}})(e);t={type:De(e,!1),useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/"+t,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},Te=(e,t)=>(t?Ae:Ee)(e);function Pe(e){return{perPage:e.top||e.perPage||Ie.perPage}}function qe(e){let a=e.visible;return e._visible&&(a=e._visible),(a=t.isBoolean(a)?a.toString():a)?a.trim().startsWith("function")?a+"(objectName, _id, recordPermissions, data)":a:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}async function Ce(e,a){return(e=await async function(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...Ae(r)});else{var n=await ce(r,t);let e="text";n?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${r.label}"%>`,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}(e,a=a||{})).push(await async function(e){e=e.buttons;const a=[];if(t.each(e,(e=>{t.isBoolean(e.visible)&&(e.visible=e.visible.toString()),a.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:qe(e),className:"antd-Button--default"})})),!(a.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:a,placement:"bottomLeft",id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload.recordPermissions = payload;\n return payload;\n "}}]}}(a)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:Pe(a),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${a.labelFieldName}}`,autoFillHeight:!1}}async function Be(e,t,a){const n=[];let{globalFilter:r,filter:i,sort:o,top:s,setDataToComponentId:d=""}=a;i=(i=l.isArray(i)?l.map(i,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):i)||[],l.each(t,(function(e){e.searchable&&n.push(e.name)}));const c={},u=[];return t.forEach((e=>{l.includes(["image","avatar","file"],e.type)&&(u.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),a=e.key_field||"_id",t=await async function(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}(e,null,t,{alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'}),t.data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.data.listViewId="${listViewId}",t.requestAdaptor=`\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData);\n if(!api.data.filter){\n api.data.filter = localListViewProps.filter;\n }\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}\n if(_.isEmpty(filters)){\n filters = api.data.filter || [${JSON.stringify(i)}];\n }else{\n filters = [filters, 'and', api.data.filter || [${JSON.stringify(i)}]]\n }\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${o}";\n var allowSearchFields = ${JSON.stringify(n)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [["${a.name}", "=", selfData.value]];\n }\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, "contains", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, "=", keyValue]);\n }\n })\n }\n\n if(selfData.__keywords && allowSearchFields){\n const keywordsFilters = [];\n allowSearchFields.forEach(function(key, index){\n const keyValue = selfData.__keywords;\n if(keyValue){\n keywordsFilters.push([key, "contains", keyValue]);\n if(index < allowSearchFields.length - 1){\n keywordsFilters.push('or');\n }\n }\n })\n filters.push(keywordsFilters);\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 `,t.adaptor=`\n const enable_tree = ${e.enable_tree};\n if(!enable_tree){\n _.each(payload.data.rows, function(item, index){\n item._index = index + 1;\n })\n }\n window.postMessage(Object.assign({type: "listview.loaded"}), "*");\n let fileFields = ${JSON.stringify(c)};\n _.each(payload.data.rows, function(item, index){\n _.each(fileFields , (field, key)=>{\n if(item[key] && item._display && item._display [key]){\n let value = item._display[key];\n if(!_.isArray(value)){\n value = [value]\n };\n if(field.type === 'file'){\n item[key] = value\n }else{\n item[key] = _.map(value, 'url')\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n\n\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n /**\n * localListViewProps规范来自crud请求api中api.data.$self参数值的。\n * 比如:{"perPage":20,"page":1,"__searchable__name":"7","__searchable__between__n1__c":[null,null],"filter":[["name","contains","a"]]}\n * __searchable__...:顶部放大镜搜索条件\n * filter:右侧过滤器\n * perPage:每页条数\n * page:当前页码\n * orderBy:排序字段\n * orderDir:排序方向\n */\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.data.filter });\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n localStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));\n // 返回页码到UI界面\n payload.data.page= selfData.page;\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n // 标记加载过,后续优先从本地存储中加载相关参数\n payload.data.loaded= true;\n\n const setDataToComponentId = "${d}";\n if(setDataToComponentId){\n SteedosUI.getRef(api.body.$self.scopeId).getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n }\n\n return payload;\n `,t}async function Le(e){var t=await Q({name:"organizations"},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"}),a=((a=((a=(t.query=t.query.replace(/,count\:.+/,"}"),await Q({name:"organizations"},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await Q({name:"space_users"},null,[{name:"user"},{name:"name"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),t.$value="$"+e.name,`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["user", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["user", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `);return{method:"post",url:ee()+"?_id=${_id}",requestAdaptor:a,adaptor:"\n const data = payload.data;\n data.children = data.children.map(function (child) { \n // child.defer = !!(child.children && child.children.length);\n child.defer = true;\n delete child.children;\n return child;\n });\n data.leftOptions = data.leftOptions.map(function (leftOption) {\n leftOption.defer = !!(leftOption.children && leftOption.children.length);\n delete leftOption.children;\n return leftOption;\n });\n var defaultValueOptions = data.defaultValueOptions;\n data.children = _.union(data.children, defaultValueOptions);\n delete data.defaultValueOptions;\n payload.data = { options: [data] };\n return payload;\n ",data:t,sendOn:"!!this._id || !!!this."+e.name,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Re(e){var t=await Q({name:"{__object_name}"},null,[],{alias:"options",filters:"{__filters}"});let a=e.filters;return"function"==typeof(a="string"==typeof a?(a=new Function("return "+a))():a)&&(a=a(e)),t.query=t.query.replace(/,count\:.+/,"}"),t.query=t.query.replace("{_id}","{{__fields}}"),e=`\n var dep = api.query.dep;\n var ref = api.query.ref;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n if (dep) {\n objectName = "organizations";\n fields = "value:_id,label:name,children";\n filters = [['parent', '=', dep]];\n }\n else if (ref) { \n objectName = "space_users";\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n fields = "user,name,value:user,label:name";\n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${a&&JSON.stringify(a)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `,{method:"post",url:ee()+"?ref=${ref}&dep=${value}",requestAdaptor:e,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function ze(e){var t=await Q({name:"space_users"},null,[{name:"user"},{name:"name"},{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",filters:"{__filters}"});e=`\n var term = api.query.term;\n var filters;\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${(e=(t.query=t.query.replace(/,count\:.+/,"}"),e.filters))&&JSON.stringify(e)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n var fieldsForSearch = ["name", "username", "email", "mobile"];\n var termFilters = [];\n fieldsForSearch.forEach(function (field) {\n termFilters.push([field, 'contains', term]);\n termFilters.push("or");\n });\n termFilters.pop();\n filters.push(termFilters);\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `;return{method:"post",url:ee()+"?term=${term}",requestAdaptor:e,data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Je(e,t,a){if(!e)return{};a=a||{};var n={type:Ve("select",t)};return t?n.tpl=await oe(e,a):(Object.assign(n,{labelField:"name",valueField:"user",multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",joinValues:!1,extractValue:!0,clearable:!0,source:await Le(e),deferApi:await Re(e),searchApi:await ze(e)}),!_.has(e,"defaultValue")||_.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const Ue=async e=>{let t=e.reference_to;if(t){"users"===t&&(t="space_users",e.reference_to_field="user");var a=await Rt(t);let n=null,r=e.reference_to_field;return r=r||a.idFieldName||"_id",n="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:a.fields[r]||{name:r},{objectName:t,valueField:n,labelField:a.fields[a.NAME_FIELD_KEY||"name"]}}};async function He(e,t,a){var n=await Ue(e);if(n){const i=await Rt(n.objectName),o=[];let s=0;const d=[],c=[];var r=l.find(i.list_views,((e,t)=>"all"===t));r&&r.columns?l.each(r.columns,(function(e){l.isString(e)&&i.fields[e]?c.push(i.fields[e]):l.isObject(e)&&i.fields[e.field]&&c.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))})):l.each(i.fields,((e,t)=>{"_id"==t||e.hidden||(l.has(e,"name")||(e.name=t),c.push(e))})),l.each(l.sortBy(c,"sort_no"),(function(e){s<5&&(l.find(o,(function(t){return t.name===e.name}))||(s++,o.push(e),e.searchable&&d.push(e.name)))}));const u={[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField};l.each(o,(e=>{e.hidden||(u[e.name]=e)})),(r=await Ke(i,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",r.data.$self="$$",r.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 = ${JSON.stringify(d)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${n.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${n.valueField.name}", "=", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n const filtersFunction = ${e._filtersFunction};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,r.adaptor=`\n const enable_tree = ${i.enable_tree};\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `;let p=20,m=(i.paging&&!1===i.paging.enabled&&(p=1e3),null);return m="SMALL"===a.formFactor?await async function(e,t){return e=(await we(e,t)).columns,{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:$e(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}(o,{top:p,...a,actions:!1}):await Ce(o,{labelFieldName:i.NAME_FIELD_KEY,top:p,...a}),n={type:Ve("picker",t),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:r,size:"lg",pickerSchema:m,joinValues:!1,extractValue:!0},e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}}async function Me(e,t,a){var n=await Ue(e);let r;return(r=n?await Ke({name:n.objectName},null,{[n.labelField.name]:Object.assign({},n.labelField,{alias:"label"}),[n.valueField.name]:Object.assign({},n.valueField,{alias:"value"})},{expand:!1,alias:"options",queryOptions:"filters: {__filters}, top: {__top}"}):{method:"post",url:ee(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}}).data.$term="$term",r.data.$value=`$${e.name}.`+(n?n.valueField.name:"_id"),l.each(e.depend_on,(function(e){r.data[e]="$"+e})),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor="\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n ",n&&n.labelField.name,n&&n.valueField.name,e._optionsFunction&&(r.adaptor=`\n payload.data.options = eval(${e._optionsFunction})(api.data);\n return payload;\n `),n={type:Ve("select",t),joinValues:!1,extractValue:!0,autoComplete:r},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}async function Ke(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Ye(e,t,a){var n,r;return t?{type:Ve("picker",t),tpl:le(e,a)}:!e.reference_to||l.isString(e.reference_to)||t?((n=await Ue(e))?(r=await Rt(n.objectName),"space_users"===n.objectName?We:1==r.enable_enhanced_lookup?He:Me):Me)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function We(e,t,a){return Je(e,t,a)}const Ze=["created","created_by","modified","modified_by"];function Ge(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Xe(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Qe(e){const t=e.data_type||"text",a=[];return l.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 et(e,t,a){if(!l.includes(Ze,e.name)||1==a.showSystemFields){var n,r={name:a.fieldNamePrefix?""+a.fieldNamePrefix+e.name:e.name,label:e.label,labelRemark:e.inlineHelpText,required:(l.has(a,"required")?a:e).required};let i={};switch(e.type){case"text":i.type=Ve("text",t);break;case"textarea":i.type=Ve("textarea",t),i.tpl=`<b><%=data.${e.name}%></b>`;break;case"html":i={type:"editor",language:"html",value:e.defaultValue||""};break;case"select":i={type:Ve("select",t),joinValues:!1,options:Qe(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:t?ie(e):null},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n=e.data_type||"text",null!=e.defaultValue&&("text"===n?i.value=String(e.defaultValue):"number"===n?i.value=Number(e.defaultValue):"boolean"===n&&(i.value="false"!==e.defaultValue))),e.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:Ve("checkbox",t),option:e.inlineHelpText,tpl:t?se(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):null};break;case"date":i={type:Ve("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):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:t?re(e):null,utc:!0};break;case"datetime":i={type:Ve("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:t?re(e):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:t?re(e):null};break;case"time":i={type:Ve("time",t),inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?re(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:ae(e)}:{type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,r);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i={type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:Ve("password",t),tpl:t?de(e):null};break;case"lookup":case"master_detail":i=await Ye(e,t,a);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:Ve("url",t)};break;case"email":i={type:Ve("email",t)};break;case"avatar":case"image":case"file":i=Te(e,t);break;case"formula":case"summary":t&&(i.type=Ve(e.data_type,t));break;case"code":i={type:"editor",language:e.language,value:e.defaultValue||""};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]},l.each(e.subFields,(function(a){var n=a.name.replace(e.name+".$.","").replace(e.name+".",""),r=et(Object.assign({},a,{name:n}),t);r&&(delete r.name,delete r.label,i.columns.push({name:n,label:a.label,quickEdit:!t&&r}))}))}return l.isEmpty(i)?void 0:(e.is_wide?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=i.className+" md:border-b"),i.labelClassName="text-left",t&&(i.quickEdit=!1),e.visible_on&&(i.visibleOn="$"+e.visible_on.substring(1,e.visible_on.length-1).replace(/formData./g,"")),Object.assign({},r,i,{clearValueOnHidden:!0,fieldName:e.name}))}}async function tt(e,a,n){let r=e,i=("grid"===r.type?r=await Xe(e,a):"object"===e.type&&(r=await Ge(e,a)),"__searchable__");if(r.name.indexOf(".")<0&&(e=t.cloneDeep(r),t.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),"number"!==r.type&&"currency"!==r.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,i+="between__"),"date"===r.type&&(e.type="input-date-range",e.is_wide=!0,i+="between__"),"datetime"===r.type&&(e.type="input-datetime-range",e.is_wide=!0,i+="between__"),"time"===r.type&&(e.type="input-time-range",e.is_wide=!0,i+="between__"),"users"===r.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,a=await et(e,!1,Object.assign({},n,{fieldNamePrefix:i,required:!1,showSystemFields:!0}))))return a}async function at(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:"setValue",args:{value:{showFieldsFilter:"${!showFieldsFilter}"}},componentId:"service_listview_"+e.name}]}}}}async function nt(e,a,n){n=n||{};var r,i,l=[];for(r of a)t.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 tt(r,a,{}))&&l.push(i));return t.map(l,"name"),n.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 || {}}",...n.initData},body:l,onEvent:{broadcastSearchableFieldsChange:{actions:[{actionType:"custom",script:'\n const data = event.data;\n const listViewId = data.listViewId;\n const searchableFields = data.fields;\n const preSearchableFields = data.__super.__super.fields;\n const removedFields = _.difference(preSearchableFields, searchableFields);\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let removedKeys = [];\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n delete localListViewProps[key];\n removedValues[key] = "";\n });\n doAction({\n actionType: \'setValue\',\n args: {\n value: removedValues\n }\n });\n localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n '}]}}}}async function rt(e,t,a){return a=a||{},t=await nt(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a)),{type:"service",data:{listViewId:"${listViewId}"},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:'\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId ;\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(!defaultSearchableFields && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n defaultSearchableFields = listView && listView.searchable_fields;\n if(defaultSearchableFields && defaultSearchableFields.length){\n defaultSearchableFields = _.map(defaultSearchableFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.filter(_.values(data.uiSchema.fields), (field) => {\n return field.searchable;\n }),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n\n const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ filterFormValues });\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"slds-filters__body p-0"},{type:"wrapper",body:{type:"wrapper",body:[{type:"button",label:"搜索",icon:"fa fa-search",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",onEvent:{click:{actions:[{actionType:"custom",script:'\n const appId = event.data.appId;\n const objectName = event.data.objectName;\n const scopeId = event.data.scopeId;\n const scope = SteedosUI.getRef(scopeId);\n var filterForm = scope.getComponentById("listview_filter_form_" + objectName);\n var filterFormValues = filterForm.getValues();\n var listView = scope.getComponentById("listview_" + objectName);\n listView.handleFilterSubmit(filterFormValues);\n '}]}}},{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:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const value = data.fields;\n doAction({\n actionType: \'setValue\',\n args: {\n value: { filterFormSearchableFields: value }\n },\n componentId: "service_listview_filter_form_" + objectName,\n });\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId;\n localStorage.setItem(searchableFieldsStoreKey, value);\n '},{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}",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 slds-grid slds-grid_vertical slds-nowrap"},visibleOn:"this.showFieldsFilter",className:"px-1 py-1 bg-white b-b"}}const it=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},lt=function(e,a,n,r,i={}){var l,o;if(void 0===a&&(a={}),o=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(n),o=function(e,a){return"#"!==a&&a?"string"==typeof a?t.get(e,a):void console.error("path has to be a string"):e||{}}(a,o)||{},"string"!=typeof e)return e;l=e.substring(2,e.length-2),i=`\n var $user=${JSON.stringify(i)}; return `+l.replace(/\bformData\b/g,JSON.stringify(a).replace(/\bglobal\b/g,"__G_L_O_B_A_L__")).replace(/\bglobal\b/g,JSON.stringify(r)).replace(new RegExp("\\b__G_L_O_B_A_L__\\b","g"),"global").replace(/rootValue/g,JSON.stringify(o));try{return Function(i)()}catch(a){return console.log(a,e,n),e}};async function ot({type:e,pageId:t,appId:a,objectName:n="",recordId:r,formFactor:i="LARGE"}){if((e=await J(`/api/pageSchema/${e}?app=${a}&objectApiName=${n=n||""}&recordId=${r=r||""}&pageId=${t=t||""}&formFactor=`+i))&&e.schema)return e}const st=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"",id:"u:f8ad8ddf153a",mode:"edit",layout:"horizontal"};return{type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$","&":"${defaultData}",objectName:"${objectName}",context:"${context}",listViewId:"${listViewId}"},title:e="新建 "+e.label,bodyClassName:"",body:[a=(t=await ot({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:0b96577db93c",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}},dt=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d2b0c083c38f",mode:"edit"};return{type:"service",body:[{type:"button",label:"编辑",id:"u:standard_edit",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:e="编辑 "+e.label,bodyClassName:"",body:[a=(t=await ot({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:ee95697baa4f",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"",id:"u:3c5cbc0429bb"}},ct=e=>({type:"service",className:"p-0",body:[{type:"button",label:"删除",confirmText:"确定要删除此项目?",onEvent:{click:{actions:[{args:{api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",recordId:"${recordId}",objectName:"${objectName}"},requestAdaptor:"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \"${recordId}\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"},{componentId:"",args:{url:"/app/${app_id}/${objectName}/grid/all",blank:!1},actionType:"link",expression:"!!!listViewId"},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"}]}}}],regions:["body"]}),ut=async(e,t)=>({type:"amis_button",amis_schema:await st(e,t)}),pt=async(e,t)=>({type:"amis_button",amis_schema:await dt(e,t)}),mt=async(e,t)=>({type:"amis_button",amis_schema:await ct(e)}),ft=async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=(this.scope||SteedosUI?.getRef(`amis-${e}-${t}-listview`)).getComponentById("listview_"+a.name);console.log("listViewRef",e),_.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0])}}),bt=async(e,t)=>({type:"amis_button",amis_schema:await{type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:"导入数据",body:[{type:"form",mode:"edit",persistData:!1,promptPageLeave:!0,name:"form_edit_data_import",debug:!1,title:"",submitText:"",api:{method:"post",url:"${context.rootUrl}/graphql",data:{objectName:"queue_import_history",$:"$$"},requestAdaptor:"\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n delete formData.success_count;\ndelete formData.failure_count;\ndelete formData.total_count;\ndelete formData.start_time;\ndelete formData.end_time;\ndelete formData.state;\ndelete formData.error;\ndelete formData.created;\ndelete formData.created_by;\ndelete formData.modified;\ndelete formData.modified_by;\n \n \n let fileFieldsKeys = [\"file\"];\n let fileFields = {\"file\":{\"name\":\"file\"}};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n \n let query = `mutation{record: ${objectName}__insert(doc: {__saveData}){_id}}`;\n if(formData.recordId && formData.recordId !='new'){\n query = `mutation{record: ${objectName}__update(id: \"${formData._id}\", doc: {__saveData}){_id}}`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n ",responseData:{recordId:"${record._id}"},adaptor:"console.log('payload', payload)\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},dataType:"json"},initFetch:!0,body:[{type:"fieldSet",title:"通用",collapsable:!0,body:[{name:"object_name",label:"导入对象",required:!1,type:"select",joinValues:!1,extractValue:!0,autoComplete:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:"{options:objects(filters: {__filters}, top: {__top}){_id label:label value:name},count:objects__count(filters:{__filters})}",$term:"$term",$value:"$object_name.name",$:"$$",rfield:"${object_name}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n "},className:"m-1",labelClassName:"text-left",clearValueOnHidden:!1,id:"u:04295fee3896",multiple:!1,hidden:!0},{name:"queue_import",label:"数据导入",required:!0,type:"picker",labelField:"description",valueField:"_id",modalMode:"dialog",source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:queue_import(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,description,object_name,encoding,template_url,_display:_ui{object_name,encoding}},count:queue_import__count(filters:{__filters})}',$term:"$term",$self:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n var allowSearchFields = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\n }\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, \"contains\", keyValue]);\n }\n })\n }\n\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n ",adaptor:"\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n "},size:"lg",pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:20},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"description",label:"导入描述",type:"tpl",tpl:'<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',className:"whitespace-nowrap",html:null},{name:"object_name",label:"导入对象",type:"tpl",tpl:'<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',className:"whitespace-nowrap",html:null},{name:"encoding",label:"字符代码",type:"tpl",tpl:"<div>${_display.encoding}</div>",className:"whitespace-nowrap",html:null},{name:"template_url",label:"导入模板",type:"markdown",className:"whitespace-nowrap",html:!0},null],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,autoFillHeight:!1},joinValues:!1,extractValue:!0,className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,id:"u:401df27113e0"},{name:"file",label:"Excel文件",required:!0,type:"input-file",className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/files",data:{$:"$$",context:"${context}"},adaptor:'\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/files/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n ',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},id:"u:0213f2cc365b"}],id:"u:4899c260d667"}],panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form",label:"对象表单",objectApiName:"queue_import_history",id:"u:e4ef598eed61",onEvent:{submitSucc:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/data/initiateImport",method:"post",data:{eventData:"${event.data}"},dataType:"json",requestAdaptor:"\napi.data = {\n importObjectHistoryId: api.body.eventData.result.data.recordId\n}\nreturn api;",adaptor:"payload.status = payload.status === 'success' ? 0 : payload.status;\nconsole.log(\"payload ssss==>\", payload)\nreturn payload;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已开始导入...",failed:"导入失败"}},actionType:"ajax",expression:"event.data.result"}]}},closeDialogOnSubmit:!0}],id:"u:dc05498d3bd4",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}},level:"default"}],regions:["body"],className:"p-0",id:"u:bd2f9c4e986f"}}),yt=async(e,t)=>({type:"amis_button",amis_schema:await{type:"service",className:"p-0",body:[{type:"button",label:"查看",className:"border-none",onEvent:{click:{actions:[{componentId:"",args:{blank:!1,url:"/app/${app_id}/${objectName}/view/${_id}"},actionType:"link"}]}},id:"u:ef35c9ae1d19"}],regions:["body"]}});function ht(e){let t=e.visible;return e._visible&&(t=e._visible),(t=o.default.isBoolean(t)?t.toString():t)?t.trim().startsWith("function")?t+".apply({\n object: uiSchema\n }, [objectName, _id, recordPermissions, data])":t:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}const gt={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);o.default.isEmpty(a.props.store.toJSON().selectedItems)?a.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):a.handleBulkAction(a.props.store.toJSON().selectedItems,[],{},a.props.bulkActions[0])}},_t=(e,t)=>{const a=e.permissions&&e.permissions.disabled_actions;let n=o.default.sortBy(o.default.values(e.actions),"sort");return o.default.has(e,"allow_customActions")&&(n=o.default.filter(n,(t=>o.default.include(e.allow_customActions,t.name)))),o.default.has(e,"exclude_actions")&&(n=o.default.filter(n,(t=>!o.default.include(e.exclude_actions,t.name)))),o.default.each(n,(a=>{a.objectName=e.name,t.isMobile&&-1<["record","record_only"].indexOf(a.on)&&"standard_edit"!=a.name&&("record_only"==a.on?a.on="record_only_more":a.on="record_more")})),t.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(e.name)&&o.default.map(n,(e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")})),o.default.filter(n,(e=>o.default.indexOf(a,e.name)<0&&"standard_query"!=e.name))},vt=(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),wt=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record"==e.on||"record_only"==e.on)),o.default.sortBy(t,"sort")),$t=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record_more"==e.on||"record_only_more"==e.on)),o.default.sortBy(t,"sort")),Nt=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on))),St=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),Ft=async(e,t,a)=>{var n=await Rt(e);if(n){var r=await _t(n,a);r=o.default.find(r,(e=>e.name===t));if(r)return"standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await pt(n,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await ut(n,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await mt(n,a)}:n.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await bt(n,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await yt(n,a)}:"standard_delete_many"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await ft(n,a)}:r}},jt=(e,t)=>{if(e.todo)return o.default.isString(e.todo)&&o.default.startsWith(o.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),o.default.isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},Ot=jt;function xt(e,a,n){var{icon:r,label:i}=e;const l=[];t.each(e.list_views,((t,a)=>{l.push({type:"button",label:t.label,actionType:"link",link:`/app/\${appId}/${e.name}/grid/`+a})}));var o=vt(e,{}),s=(o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(s,"-")} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",className:"text-md leading-none text-black"},{type:"dropdown-button",className:"",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",size:"sm",hideCaret:!0,btnClassName:"bg-transparent border-none text-xl font-bold p-0 text-black leading-none",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:o},md:"auto"}],align:"between"}}async function It(e,t,a){var n="listview_"+e.name;return{type:"grid",align:"between",columns:[{body:[{type:"tpl",tpl:"${$count} 个项目",visibleOn:"this.$count >= 0",inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:14},id:"u:1661f8471235"}],md:"auto",valign:"middle"},{body:[await at(e),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:n,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:""}}async function kt(e,a,n){var r=t.keys(e.fields);r=t.sortBy(t.compact(t.map(r,(t=>e.fields[t]))),"sort_no");return await rt(e,r,{isListviewInit:n.isListviewInit})}async function Vt(e,t,a){a=a||{};var n=xt(e),r=await It(e);let i=[n,r],l="sm:rounded-tl sm:rounded-tr";return a.onlyFirstLine?i=[n]:a.onlySecordLine&&(l="",i=[r]),n=[{type:"wrapper",body:i,className:`border-b bg-gray-100 ${l} `+(a.onlySecordLine&&"pt-0")}],r=await kt(e,0,a),n.push(r),n}async function Dt(e,a){var{name:n,label:r,icon:i}=e,l=wt(e,{}),o=$t(e,{recordId:a,objectName:n});l=t.map(l,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e)}))),l.push({type:"steedos-dropdown-button",label:"",buttons:o,className:"slds-icon ml-1 border-gray-200 rounded-none"}),o=new RegExp("_","g"),o=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${i&&i.replace(o,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:{type:"flex",items:l},md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{}}];return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:K(),tenantId:U(),authToken:H()},objectName:n,_id:a,recordPermissions:e.permissions,uiSchema:e},body:o}}async function At(e){var{icon:a,label:n}=e,r=(e=await St(e,{}),e=t.map(e,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${a&&a.replace(r,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${a}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${n}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:e},md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}const Et=(e,a,n)=>{e=e.replace(/\./g,"_"),n=(e=>{const a=["_id"];return e.push("record_permissions"),t.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),a.push(""+e)})),""+a.join(" ")})(n);let r="";return`{record:${e}__findOne${r=0<(a=[`id: "${a}"`]).length?`(${a.join(",")})`:r}{${n}}}`},Tt=async(e,t,a)=>(await J("/graphql",{method:"post",body:JSON.stringify({query:Et(e,t,a)})})).data.record;let Pt,qt={};const Ct=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=qt),qt=window.UI_SCHEMA_CACHE),(e,t)=>{qt[e]=t});function Bt(e,a){return"SMALL"===a?t.isEmpty(e.mobile_columns)?t.slice(e.columns,0,4):e.mobile_columns:e.columns}function Lt(e){let a="";return e&&e.sort&&e.sort.length&&t.each(e.sort,(function(e,n){var r;t.isArray(e)?(r=e[0]+" "+(e[1]||""),a+=r=0<n?","+r:r):(r=e.field_name+" "+e.order,a+=r=0<n?","+r:r)})),a}async function Rt(e,a){if(e){if(!(e=>t.has(qt,e))(e)||a){let n=null;try{if(!(n=Pt?await Pt(e,a):await J(`/service/api/@${e.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;Ct(e,n),t.each(n.list_views,((e,a)=>{e.name=a,t.has(e,"columns")||(e.columns=n.list_views.all.columns)}))}catch(a){console.error("getUISchema",e,a),Ct(e,null)}}return(e=>t.cloneDeep(qt[e]))(e)}}async function zt(e,t){return(await Rt(e))?.fields[t]}async function Jt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Oe(e,t)}}async function Ut(e,t,a){return{uiSchema:e=await Rt(e),amisSchema:await xe(e,t,a)}}async function Ht(e,a,n,r={}){var i=await Rt(a),l=t.find(i.list_views,((e,t)=>t===(n=n||t)));if(!l)return{uiSchema:i};if(l.enable_amis_schema&&l.amis_schema){return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:t.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema}}var o=Bt(l,r.formFactor),s=Lt(l),d=r.defaults||{};!d.headerSchema&&r.showHeader&&(d.headerSchema=await Vt(i)),r.showHeader||(d.headerSchema=null);try{var c,u=location.pathname+"/crud/"+r.listViewId,p=localStorage.getItem(u);p&&(p=JSON.parse(p),c={},p.orderBy&&(c.orderBy=p.orderBy),p.orderDir&&(c.orderDir=p.orderDir),p.perPage&&(c.defaultParams={perPage:p.perPage}),d.listSchema=t.defaultsDeep({},c,d.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d;return{uiSchema:i,amisSchema:{type:"steedos-object-table",objectApiName:a,columns:o,extraColumns:l.extra_columns,filters:l.filters,sort:s,ctx:r}}}async function Mt(e,a,n,r={}){const i=await Rt(a);let l=r.sort;l||(s=r.sortField,d=r.sortOrder,s&&(l=s+" "+d||"asc"));let o=[];t.each(n,(function(e){t.isString(e)&&i.fields[e]?o.push(i.fields[e]):t.isObject(e)&&i.fields[e.field]&&o.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))}));var s=r.extraColumns,d=(s&&t.each(s,(function(e){t.isString(e)?o.push({extra:!0,name:e}):t.isObject(e)&&o.push({extra:!0,name:e.field})})),await Fe(i,o,{tabId:a,appId:e,objectName:a,...r,filter:r.filters,sort:l,buttons:await Nt(i,r)}));return{uiSchema:i,amisSchema:d}}async function Kt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Dt(e,t)}}async function Yt(e,t){return{uiSchema:e=await Rt(e),amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${e?.NAME_FIELD_KEY||"name"}}`}}]}}},{type:"tabs",tabs:[{title:"详细",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"},{title:"相关",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}],id:"u:a649e4094a12"}]}}}async function Wt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s=o.split("."),d=await Rt(s[0]);if(d){let i=null;var c=await zt(s[0],s[1]);i=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[s[1]+"/o","=",a],[s[1]+"/ids","=",n]]:[""+s[1],"=",n],l.push({masterObjectName:a,object_name:s[0],foreign_key:s[1],schema:await Ht(e,s[0],"all",{globalFilter:i,formFactor:r,buttons:await Nt(d,{isMobile:!1})})})}}else for(const i of o){var u=i.related_field_fullname.split(".");let o=null;var p=await zt(u[0],u[1]);if(p){o=p._reference_to||p.reference_to&&!t.isString(p.reference_to)?[[u[1]+"/o","=",a],[u[1]+"/ids","=",n]]:[""+u[1],"=",n];const s=await Rt(u[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:u[0],foreign_key:u[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:u[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}const Zt=(e,a,n,r)=>(n=t.find(n.fields,(e=>r===e?.name)),t.isString(n.reference_to)?n.multiple?[a]:a:{o:e,ids:[a]});async function Gt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s,d,c=o.split("."),u=await Rt(c[0]);u&&(((s=await zt(c[0],c[1]))._reference_to||s.reference_to&&!t.isString(s.reference_to))&&c[1],c[1],d=(s=await Ht(e,c[0],"all",{formFactor:r,buttons:await Nt(u,{isMobile:!1})})).amisSchema,u=await At(u),d.headerSchema=u,d.headerToolbar=[],d.columnsTogglable=!1,d.globalFilter=d.filters,delete d.ctx,s.amisSchema={type:"service",data:{masterObjectName:a,masterRecordId:"${recordId}",relatedKey:c[1],objectName:c[0],listViewId:`amis-\${appId}-${c[0]}-listview`},body:[{...d,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[c[1]]:Zt(a,n,s.uiSchema,c[1])}}}]},l.push({masterObjectName:a,object_name:c[0],foreign_key:c[1],schema:s}))}else for(const i of o){var p=i.related_field_fullname.split(".");let o=null;var m=await zt(p[0],p[1]);if(m){o=m._reference_to||m.reference_to&&!t.isString(m.reference_to)?[[p[1]+"/o","=",a],[p[1]+"/ids","=",n]]:[""+p[1],"=",n];const s=await Rt(p[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:p[0],foreign_key:p[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:p[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}async function Xt(e,a,n,r,i,l,o){var s=await Rt(n),{list_views:d,fields:c}=s,d=t.keys(d)[0];let u=null;c=await zt(n,r=r||t.findKey(c,(function(t){return-1<["lookup","master_detail"].indexOf(t.type)&&t.reference_to===e})));let p=a;return c.reference_to_field&&"_id"!=c.reference_to_field&&(p=(a=await Tt(e,a,[c.reference_to_field]))[c.reference_to_field]),u=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[r+"/o","=",e],[r+"/ids","=",p]]:[""+r,"=",p],a=await At(s),c="steedos-record-related-list-"+n,d=(await Ht(null,n,d,{globalFilter:u,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:a},showHeader:!0,top:i,setDataToComponentId:c,tableHiddenOn:l?"this.$count === 0":null,appId:o})).amisSchema,{uiSchema:s,amisSchema:{type:"service",id:c,className:"steedos-record-related-list bg-white mb-1 border",data:{masterObjectName:e,masterRecordId:"${recordId}",relatedKey:r,objectName:n,listViewId:`amis-\${appId}-${n}-listview`},body:[{...d,data:{relatedKey:r,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[r]:Zt(e,p,s,r)}}}]}}}const Qt={};async function ea(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 ta=["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"],aa={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"},na=e=>{const t=[],{conjunction:a,children:n}=e;return a&&n&&n.forEach((e=>{var n;0<t.length&&t.push(a),(e=>_.has(e,"conjunction"))(e)?(n=na(e))&&0<n.length&&t.push(n):(n=ra(e))&&t.push(n)})),t},ra=e=>{var t,{left:e,op:a,right:n}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=n?[e.field,aa[a],n]:void 0},ia=e=>!o.default.isArray(e)&&o.default.isObject(e)?[e.field,e.operation,e.value]:e,la=e=>{e=ia(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach((e=>{"or"===(e=ia(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push((e=>{var t;if(3===e.length)return"between"===(t=o.default.findKey(aa,(t=>t===e[1])))&&o.default.includes(ta,e[2])?{left:{type:"field",field:e[0]},op:t+":"+e[2]}:{left:{type:"field",field:e[0]},op:t,right:e[2]};console.warn("无效的filter:"+JSON.stringify(e))})(e)):t.children.push(la(e))})),t},oa=e=>na(e),sa=e=>{const a=[];return t.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},da=(e,a)=>{const n={label:!0===a&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none",disabled:"readonly"===e.permission};switch(e.type){case"input":e.is_textarea?n.type="textarea":n.type="input-text";break;case"number":n.type="input-number";break;case"date":n.type="input-date";break;case"dateTime":n.type="input-datetime";break;case"checkbox":n.type="checkbox";break;case"email":n.type="input-email",n.validations={isEmail:!0};break;case"url":n.type="input-url",n.validations={isUrl:!0};break;case"password":n.type="input-password",n.showCounter=!0;break;case"select":n.type="select",n.options=sa(e);break;case"user":case"group":case"section":n.type="input-text";break;case"radio":n.type="radios",n.options=sa(e);break;case"multiSelect":n.type="checkboxes",n.options=sa(e);break;case"odata":var r=e.formula.substr(1,e.formula.length-2);n.type="select",n.multiple=e.is_multiselect,n.labelField=r,n.valueField="$$",n.source={url:t.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};break;case"html":n.type="html";break;case"table":n.type="input-table",n.addable="readonly"!=e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[],t.each(e.sfields,(e=>{"hidden"!=e.type&&n.columns.push(da(e,!0))}))}return n},ca=e=>{const a=[];return t.each(e,(t=>{"table"!=t.type&&a.push((e=>({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>`}]}))(t)),"section"!=t.type&&a.push(((e,t)=>({background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[da(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}))(t,e.length))})),a},ua=e=>{const a=[],n=[];let r=[];return t.each(e.fields,((t,a)=>{t.is_wide?(0!=r.length&&n.push(r),"table"==t.type&&n.push([Object.assign({},t,{type:"section"})]),(r=[]).push(t),n.push(r),r=[]):(r.push(t),2!=r.length&&a!==e.fields.length-1||(n.push(r),r=[]))})),t.each(n,(e=>{a.push({background:"#F7F7F7",tds:ca(e)})})),a},pa=e=>({type:"table-view",trs:ua(e),id:"u:047f3669468b"});var ma=function(){return(ma=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},fa=function(e){var t=[];return e.charCodeAt(0)===".".charCodeAt(0)&&t.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),(function(e,a,n,r){return n?e=r.replace(/\\(\\)?/g,"$1"):a&&(e=a.trim()),t.push(e),""})),t};function ba(e,t,a){var n=(e=e&&Object.isFrozen(e)?ya(e):e)?Object.create(e,ma(ma({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&ha(t)&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function ya(e,t){void 0===t&&(t=!0);var a=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return a[t]=e[t]})),a}function ha(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}var ga=Object.freeze({__proto__:null,absoluteUrl:function(e){return""+K()+e},amisRender:(e,t,a={},n={},r)=>{var i=amisRequire("amis/embed"),{router:r,assets:l}=r;return L(l),i.embed(e,t,a,Object.assign(B(r),n))},amisRootClick:(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},cloneObject:ya,conditionsToFilters:oa,createObject:ba,defaultsDeep:Ne,deleteVariable:function(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{var a=fa(t);for(t=a.pop();a.length;){var n=a.shift();if(!q(e[n])){if(e[n])throw new Error("目标路径不是纯对象,不能修改");break}e=e[n]=ma({},e[n])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}},execute:jt,executeButton:Ot,extendObject:function(e,t,a){var n=ya(e,a=void 0===a||a);return t&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n},fetchAPI:J,filtersToConditions:e=>la(e),getAmisObjectRelatedList:Gt,getApp:async function(e){return await J(`/service/api/apps/${e}/menus`)},getApps:async function(){return await J("/service/api/apps/menus")},getAuthToken:H,getAuthorization:M,getButton:Ft,getButtonVisible:(e,t)=>{if(e._visible&&(o.default.startsWith(o.default.trim(e._visible),"function")?(window.eval("var fun = "+e._visible),e.visible=fun):it(e._visible)&&(e.visible=t=>{lt(e._visible,t.record,"#",{now:new Date},t.userSession)})),!o.default.isFunction(e.visible))return e.visible;try{return e.visible(t)}catch(t){}},getButtonVisibleOn:ht,getButtons:_t,getEnv:e=>Qt[e],getEnvs:()=>Qt,getEvn:B,getField:zt,getFileSrc:function(e){return K()+"/api/files/files/"+e},getFlowFormSchema:e=>({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"}},pa(e)],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}),getFormPageInitSchema:async function(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await Jt(e,{recordId:"${recordId}"})).amisSchema]}},getFormSchema:Jt,getImageSrc:function(e){return K()+"/api/files/images/"+e},getListPageInitSchema:async function(e,a,n){var r=await Rt(e);return{type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:await Vt(r,t.first(t.keys(r.list_views)))}]}},getListSchema:Ht,getListViewButtons:vt,getListViewColumns:Bt,getListViewItemButtons:Nt,getListViewSort:Lt,getListviewInitSchema:async function(e,a,n){n=n||{};var r,i,l=await Rt(e),o=t.find(l.list_views,((e,t)=>t===a));let s={};return o&&(r=Bt(o,n.formFactor),o=Lt(o),(i=n.defaults||{}).headerSchema||(l=await Vt(l,0,{onlySecordLine:!0,isListviewInit:!0}),i.headerSchema=l),n.defaults=i,s=(l=await Mt(null,e,r,{sort:o,...n})).amisSchema),s},getNotifications:async()=>{var e=`\n {\n notifications(filters: ["owner","=","${(e=Y()).userId}"], sort: "created desc,name", top : 10){\n _id,name,body,related_to,related_name,url,owner,is_read,from,created\n },\n unReadCount: notifications__count(filters: [["owner","=","${e.userId}"], ["is_read", "!=", true]])\n }\n `;return(await J("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getObjectDetailButtons:wt,getObjectDetailMoreButtons:$t,getObjectFieldsFilterBarSchema:rt,getObjectFieldsFilterButtonSchema:at,getObjectFieldsFilterFormSchema:nt,getObjectListHeader:Vt,getObjectListHeaderFieldsFilterBar:kt,getObjectListHeaderFirstLine:xt,getObjectListHeaderSecordLine:It,getObjectRecordDetailHeader:Dt,getObjectRecordDetailRelatedListHeader:At,getObjectRelated:async function({appName:e,masterObjectName:a,objectName:n,relatedFieldName:r,recordId:i,formFactor:l}){let o=null;var s=(o=(s=await zt(n,r))._reference_to||s.reference_to&&!t.isString(s.reference_to)?[[r+"/o","=",a],[r+"/ids","=",i]]:[""+r,"=",i],await Rt(a));return{masterObjectName:a,object_name:n,foreign_key:r,schema:await Ht(e,n,"all",{globalFilter:o,formFactor:l}),record:await Tt(a,i,[s.NAME_FIELD_KEY]),masterObjectUISchema:s}},getObjectRelatedList:Wt,getObjectRelatedListButtons:St,getObjectRelatedListHeader:async function(e,t,a){},getPage:ot,getRecord:Tt,getRecordDetailHeaderSchema:Kt,getRecordDetailRelatedListSchema:Xt,getRecordDetailSchema:Yt,getRecordPageInitSchema:async function(e){var a=await Gt(null,e,"${recordId}",null),n=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.name}"}}]}}}],r={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"};return a=t.map(a,(e=>e.schema.amisSchema)),a.length&&r.tabs.push({title:"相关",body:a}),n.push(r),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:n}},getRecordPermissions:async(e,t)=>await J(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"}),getRelatedFieldValue:Zt,getRelatedsCount:async(e,a)=>{const n=[];return t.each(a,(t=>{n.push(`${t.object_name}: ${t.object_name}__count(filters: [["${t.foreign_key}","=","${e}"]])`)})),a=`\n {\n ${n.join(",")}\n }\n `,(await J("/graphql",{method:"POST",body:JSON.stringify({query:a})})).data},getRootUrl:K,getSearchableFieldsFilterSchema:async function(e,t,a){return nt(e,t,a)},getSelectUserSchema:Je,getSpaceUsersPickerAmisSchema:ea,getSpaceUsersPickerSchema:async function(e,t){var a=await Rt("space_users");return{uiSchema:a,amisSchema:await ea(0,e,t)}},getSteedosAuth:Y,getTableSchema:Mt,getTenantId:U,getUISchema:Rt,getViewSchema:Ut,isExpression:it,isObject:ha,lookupToAmis:Ye,lookupToAmisPicker:He,lookupToAmisSelect:Me,lookupToAmisSelectUser:We,markReadAll:async()=>J("/api/v4/notifications/all/markReadAll",{method:"POST"}),parseSingleExpression:lt,registerRemoteAssets:async e=>{if(e&&0<e.length){let a=e;return t.isString(a)&&(a=a.split(",")),await Builder.registerRemoteAssets(a),e=t.filter(Builder.registry["meta-components"],(function(e){return e.componentName&&e.amis?.render})),t.map(e,(e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render})))}return[]},registerRenders:L,resetLocalListViewPropsWithSearchableFields:function(e,t){"string"==typeof t&&(t=t.split(",")),e=location.pathname+"/crud/"+e;let a=localStorage.getItem(e);if(a){var n,r=[];for(n in a=JSON.parse(a))new RegExp("__searchable__.*").test(n)&&!t.find((function(e){return new RegExp("__searchable__.*"+e+"$").test(n)}))&&r.push(n);r.forEach((function(e){delete a[e]})),localStorage.setItem(e,JSON.stringify(a))}},setEnv:(e,t)=>{Qt[e]=t},setEnvs:e=>{t.map(e,((e,t)=>{Qt[t]=e}))},setRootUrl:function(e){t.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)},setSteedosAuth:e=>{Object.assign(R,e)},setUISchemaFunction:function(e){Pt=e},setVariable:function(e,t,a,n){if(t in(e=e||{}))e[t]=a;else{var r=!1!==n?fa(t):[t];for(n=r.pop();r.length;){var i=r.shift();e=q(e[i])?e[i]=ma({},e[i]):(Array.isArray(e[i])?e[i]=e[i].concat():(e[i],e[i]={}),e[i])}e[n]=a}},standardButtonsTodo:gt}),_a=function(e,t,a){return d(void 0,void 0,void 0,(function(){var n,r,i,l,o,s,d,u,p,m,f,b;return c(this,(function(c){switch(c.label){case 0:n=e.reference_to,r="".concat(e.name,"__left"),i=[],c.label=1;case 1:c.trys.push([1,6,7,8]),l=function(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),o=l.next(),c.label=2;case 2:return o.done?[3,5]:[4,Rt(s=o.value,!1)];case 3:d=c.sent(),i.push({label:d.label,value:s,icon:d.icon}),c.label=4;case 4:return o=l.next(),[3,2];case 5:return[3,8];case 6:return u=c.sent(),f={error:u},[3,8];case 7:try{o&&!o.done&&(b=l.return)&&b.call(l)}finally{if(f)throw f.error}return[7];case 8:return t&&t.o||(t={o:i[0].value,ids:[]}),[4,Rt(t.o,!1)];case 9:return p=c.sent(),m=null,1!=p.enable_enhanced_lookup?[3,11]:[4,He(Object.assign({},e,{reference_to:t.o}),!1,a)];case 10:return m=c.sent(),[3,13];case 11:return[4,Me(Object.assign({},e,{reference_to:t.o}),!1,a)];case 12:m=c.sent(),c.label=13;case 13:return[2,{type:"input-group",label:!1,body:[{type:"select",name:r,options:i,value:"".concat(t.o)},Object.assign({},m,{name:"".concat(e.name,"__right"),id:"right:".concat(e.name),inputClassName:"w-full",value:"".concat(t.ids)})]}]}}))}))},va=function(e,n,r){return i.default.createElement(a.Menu,{items:t.map(n,(function(t){return t.className=t.className,{key:t.name,className:"p-0 min-w-32",label:i.default.createElement(i.default.Fragment,null,e("body",t,r))}}))})};exports.AmisLib=ga,exports.AmisObjectButton=function(a){var n=a.objectName,r=a.name,l=a.data,o=a.render,s=a.className,d=a.listViewId,c=u(e.useState(),2),p=c[0],m=c[1],f=u(e.useState(),2),b=f[0],y=f[1],h=l.appId,g=l.formFactor;e.useEffect((function(){n&&Rt(n,!1).then((function(e){Ft(n,r,{objectName:n,recordId:l._id,appId:h,uiSchema:e,formFactor:g,router:null,listViewId:l.listViewId,props:{className:"antd-Button antd-Button--link"}}).then((function(t){m(t),y(e)}))}))}),[n,r]);if(!p)return i.default.createElement(i.default.Fragment,null,i.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",className:"animate-spin w-4 h-4"},i.default.createElement("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"})));if("amis_button"===p.type){var _=p.amis_schema,v=t.isString(_)?JSON.parse(_):_;v&&v.body.length>0&&delete v.body[0].visibleOn;var w=Object.assign(l,{recordId:l._id,objectName:n,listViewId:l.listViewId,app_id:h,className:s});return v&&(v.data=t.defaultsDeep({},v.data,w)),i.default.createElement(i.default.Fragment,null,p&&_?i.default.createElement(i.default.Fragment,null,o("body",v,{data:w,onChange:function(){console.log("change....")}})):null)}return i.default.createElement("button",{onClick:function(){var e=l.dataComponentId;return Ot(p,{objectName:n,listViewId:d||l.listViewId,uiSchema:b,record:l,recordId:l._id,appId:h,formFactor:g,scope:window.SteedosUI.getRef(e)})},className:"antd-Button antd-Button--default antd-Button--size-default ".concat(s||"")},p.label)},exports.AmisObjectFieldLookup=function(a){var n=a.field;a.readonly;var r=a.ctx,l=a.dispatchEvent,o=a.render;a.renderFormItems;var s=a.onChange,p=a.data,m=a.formItemValue,f=u(e.useState(),2),b=f[0],y=f[1],h=u(e.useState(m),2),g=h[0],_=h[1];e.useEffect((function(){_(m)}),[m]),e.useEffect((function(){_a(n,g,r).then((function(e){y(e)}))}),[g]);return i.default.createElement("div",{className:"amis-object-field-lookup"},b?i.default.createElement("div",{className:"container"},o("body",b,{onChange:function(e,a){return d(void 0,void 0,void 0,(function(){var n,r;return c(this,(function(i){switch(i.label){case 0:return n=Object.assign({o:a.endsWith("_left")?e:null==g?void 0:g.o,ids:a.endsWith("_right")?e:null==g?void 0:g.ids}),a.endsWith("_left")&&(n.ids=[]),t.isString(n.ids)&&(n.ids=t.compact(n.ids.split(","))),[4,l("change",ba(p,{fieldValue:n}))];case 1:return(null==(r=i.sent())?void 0:r.prevented)?[2]:[2,s(n)]}}))}))}})):null)},exports.AmisObjectForm=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s,d,u,p;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.recordId,r=e.mode,i=e.layout,l=e.labelAlign,o=e.appId,s=e.objectApiName||"space_users",d=t.difference(t.keys(a),["type","mode","layout"]),u=t.pick(e,d),p={recordId:n,mode:r,layout:"vertical"===i?"normal":i,labelAlign:l,defaults:{formSchema:u},appId:o},"edit"!==r?[3,2]:[4,Jt(s,p)];case 1:case 3:return[2,c.sent().amisSchema];case 2:return n||(p.formInitProps={queryOptions:"top: 1"}),[4,Ut(s,n,p)]}}))}))},exports.AmisObjectListView=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F,j,O,x,I,k;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.top,r=e.perPage,i=e.showHeader,l=e.headerSchema,o=e.ctx,d=e.data,u=e.defaultData,p=e.className,m=void 0===p?"":p,f=e.tableClassName,b=location.pathname.match(/grid\/(\w+)/),y=b&&b[1],h=y||e.listName,g={},_=e.objectApiName||"space_users",o&&o.defaults||(v=t.difference(t.keys(a),["type","showHeader","id"]),(w=t.pick(e,v)).className=f,g={listSchema:w}),l&&(g.headerSchema=l),($=o&&o.setDataToComponentId)||($="service_listview_".concat(_)),N=Object.assign({},d,u),S=(null==o?void 0:o.listViewId)||N.listViewId,[4,Ht(N.appId,_,h,s(s({top:n,perPage:r,showHeader:i,defaults:g},o),{listViewId:S,setDataToComponentId:$}))];case 1:return F=c.sent(),j=F.amisSchema,O=F.uiSchema,x=[j],F.isCustomAmisSchema&&(I=xt(O),x.unshift({type:"wrapper",body:[I],className:"bg-gray-100 pb-0 sm:rounded-tl sm:rounded-tr"})),k=Object.assign({},j.data,N,{listName:h,uiSchema:O}),[2,{type:"service",body:x,className:"steedos-listview p-0 sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid\t".concat(m),data:k}]}}))}))},exports.AmisObjectTable=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.filters,r=e.amisCondition,i=e.top,l=e.headerSchema,o=e.globalFilter,d=e.sortField,u=e.sortOrder,p=e.extraColumns,m=e.ctx,f=e.data,b=e.defaultData,y=e.columns||[],h={},g=e.objectApiName||"space_users",m&&m.defaults||(_=t.difference(t.keys(a),["type","objectApiName","columns","extraColumns","id"]),v=t.pick(e,_),h={listSchema:v}),l&&(h.headerSchema=l),(w=m&&m.setDataToComponentId)||(w="service_listview_".concat(g)),$=r&&oa(r),N=n||$,[4,Mt((S=Object.assign({},f,b)).appId,g,y,s(s({filters:N,top:i,sortField:d,sortOrder:u,extraColumns:p,globalFilter:o,defaults:h},m),{setDataToComponentId:w}))];case 1:return(F=c.sent().amisSchema).data=Object.assign({},F.data,S),[2,F]}}))}))},exports.AmisProvider=function(e){return d(void 0,void 0,void 0,(function(){return c(this,(function(t){return console.log("AmisProvider props",e),[2,{}]}))}))},exports.AmisRecordDetail=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i;return c(this,(function(l){switch(l.label){case 0:return e.$schema,t=e.appId,a=e.objectApiName,n=void 0===a?"space_users":a,r=e.onEvent,[4,Yt(n,t)];case 1:return i=l.sent().amisSchema,[2,Object.assign({},i,{onEvent:r})]}}))}))},exports.AmisRecordDetailHeader=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n;return c(this,(function(r){switch(r.label){case 0:return e.$schema,t=e.recordId,a=e.onEvent,[4,Kt(e.objectApiName||"space_users",t)];case 1:return n=r.sent().amisSchema,[2,Object.assign({},n,{onEvent:a})]}}))}))},exports.AmisRecordDetailRelatedList=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i,l,o;return c(this,(function(s){switch(s.label){case 0:return t=e.objectApiName,a=e.recordId,n=e.relatedObjectApiName,e.data,r=e.relatedKey,i=e.top,l=e.hiddenEmptyTable,o=e.appId,t&&n?[4,Xt(t,a,n,r,i,l,o)]:[2,{type:"alert",body:"缺少父级对象或相关列表对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return[2,s.sent().amisSchema]}}))}))},exports.AmisRecordDetailRelatedLists=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s;return c(this,(function(d){switch(d.label){case 0:return a=e.objectApiName,n=e.recordId,r=e.appId,e.data,i=e.formFactor,l=e.top,o=void 0===l?5:l,a?[4,Wt(r,a,n,i)]:[2,{type:"alert",body:"缺少父级对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return s=d.sent(),[2,{type:"service",body:t.map(s,(function(e){return{type:"steedos-object-related-listview",objectApiName:a,recordId:n,relatedObjectApiName:e.object_name,foreign_key:e.foreign_key,relatedKey:e.foreign_key,top:o,hiddenEmptyTable:!0,appId:r}}))}]}}))}))},exports.AmisSelectUser=function(e){return d(void 0,void 0,void 0,(function(){var t,a;return c(this,(function(n){switch(n.label){case 0:return console.log("AmisSelectUser props",e),t=e.$schema,e.data,[4,Je({name:t.name,multiple:t.multiple,searchable:t.searchable,onEvent:t.onEvent,filters:t.filters},!1,{})];case 1:return(a=n.sent()).name=t.name,[2,a]}}))}))},exports.SteedosDropdownButton=function(n){var r=n.data,l=n.render,o=n.className,s=n.buttons,d=n.placement,c=n.onOpenApi;n.store;var p=n.env,m=u(e.useState(i.default.createElement(i.default.Fragment,null)),2),f=m[0],b=m[1];return i.default.createElement(a.Dropdown,{overlay:f,trigger:["click"],onOpenChange:function(e){if(e)if(c)try{p.fetcher(c,ba(r,{})).then((function(e){var a=(null==e?void 0:e.hasOwnProperty("ok"))?e.data:e;b(va(l,s,{data:ba(r,t.defaultsDeep(a,r))}))})).catch((function(e){console.error(e)}))}catch(e){console.error(e)}else b(va(l,s,{data:r}))},placement:d},i.default.createElement("button",{className:"slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(o||"")},i.default.createElement("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},i.default.createElement("path",{d:"m7 10 5 5 5-5z",fill:"currentColor"}))))};
1665
2
  //# sourceMappingURL=amis-object.cjs.js.map