@steedos/service-plugin-amis 2.6.1-beta.7 → 2.6.2-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -121,20 +121,34 @@ module.exports = {
121
121
  const fieldsOptions = await this.getObjectFieldsOptions(ctx);
122
122
  const userSession = ctx.meta.user;
123
123
  const lng = userSession.language || "zh-CN";
124
+ const objectName = ctx.params.objectName;
125
+ const object = await objectql.getSteedosSchema().getObject(objectName);
126
+ const objectConfig = object.toConfig();
127
+ const fields = objectConfig.fields;
128
+
129
+ // image、file、lookup、master_detail、select 不参与排序
130
+ let ascChildren = [];
131
+ _.forEach(fieldsOptions, (opt)=>{
132
+ if(["image","file","lookup","master_detail","select"].indexOf(fields[opt.value].type)<0){
133
+ ascChildren.push({label: `${opt.label}(${steedosI18n.t('asc', {}, lng)})`, value: `${opt.value}:asc`})
134
+ }
135
+ })
136
+ let descChildren = [];
137
+ _.forEach(fieldsOptions, (opt)=>{
138
+ if(["image","file","lookup","master_detail","select"].indexOf(fields[opt.value].type)<0){
139
+ descChildren.push({label: `${opt.label}(${steedosI18n.t('desc', {}, lng)})`, value: `${opt.value}:desc`})
140
+ }
141
+ })
124
142
  const options = [
125
143
  {
126
144
  label: steedosI18n.t('asc', {}, lng),
127
145
  searchable: true,
128
- children: _.map(fieldsOptions, (opt)=>{
129
- return {label: `${opt.label}(${steedosI18n.t('asc', {}, lng)})`, value: `${opt.value}:asc`}
130
- })
146
+ children: ascChildren
131
147
  },
132
148
  {
133
149
  label: steedosI18n.t('desc', {}, lng),
134
150
  searchable: true,
135
- children: _.map(fieldsOptions, (opt)=>{
136
- return {label: `${opt.label}(${steedosI18n.t('desc', {}, lng)})`, value: `${opt.value}:desc`}
137
- })
151
+ children: descChildren
138
152
  }
139
153
  ];
140
154
 
@@ -180,7 +194,7 @@ module.exports = {
180
194
  const lng = userSession.language || 'zh-CN';
181
195
  const spaceId = userSession.spaceId;
182
196
  const allMetadataObjects = await objectql.getSteedosSchema().getAllObject();
183
- const allObjects = _.map(clone(allMetadataObjects), 'metadata');
197
+ const allObjects = _.map(allMetadataObjects, 'metadata');
184
198
  const query = {
185
199
  filters: [ ['name', '<>', ExcludeObjectNames]], //['hidden', '!=', true] ,
186
200
  projection: {
@@ -189,7 +203,14 @@ module.exports = {
189
203
  }
190
204
  };
191
205
 
192
- const objects = objectql.getSteedosSchema().metadataDriver.find(allObjects, query, spaceId);
206
+ const objects = _.map(_.filter(allObjects, (obj)=>{
207
+ return !_.includes(ExcludeObjectNames, obj.name)
208
+ }), (obj)=>{
209
+ return {
210
+ name: obj.name,
211
+ label: obj.label
212
+ }
213
+ })
193
214
 
194
215
  _.each(objects, (object)=>{
195
216
  if(object && object.name){
@@ -236,7 +257,7 @@ module.exports = {
236
257
 
237
258
  let output = [];
238
259
  output = _.uniq(_.compact(_.map(_.sortBy(fieldsArr, "sort_no"), (field)=>{
239
- if((include_hide || !field.hidden) && !_.includes(["grid", "object", "[Object]", "[object]", "Object", "markdown", "html"], field.type)){
260
+ if((include_hide || !field.hidden) && !_.includes(["grid", "object", "[Object]", "[object]", "Object", "markdown"], field.type)){
240
261
  // 隐藏的字段 和 字段类型 判断
241
262
  return {
242
263
  value: field.name,
@@ -342,7 +363,7 @@ module.exports = {
342
363
  })
343
364
  let relatedOptions = [];
344
365
  relatedOptions = _.uniq(_.compact(_.map(_.sortBy(fieldsArr, "sort_no"), (field) => {
345
- if ((!field.hidden) && !_.includes(["grid", "object", "[Object]", "[object]", "Object", "markdown", "html"], field.type)) {
366
+ if ((!field.hidden) && !_.includes(["grid", "object", "[Object]", "[object]", "Object", "markdown"], field.type)) {
346
367
  return {
347
368
  'value': field.name,
348
369
  'label': field.label || field.name
@@ -378,6 +399,10 @@ module.exports = {
378
399
  const userSession = ctx.meta.user;
379
400
  const lng = userSession.language || 'zh-CN';
380
401
  const objectName = ctx.params.objectName;
402
+ let {showHiddenField = false} = ctx.params;
403
+ if(showHiddenField=='true'){
404
+ showHiddenField = true;
405
+ }
381
406
  const objectConfig = await objectql.getSteedosSchema().getObject(objectName).toConfig();
382
407
  steedosI18n.translationObject(lng, objectConfig.name, objectConfig);
383
408
 
@@ -391,7 +416,7 @@ module.exports = {
391
416
 
392
417
  const fieldsArr = [];
393
418
  _.each(objectConfig.fields , (field, field_name)=>{
394
- if (field.hidden) return;
419
+ if (showHiddenField != true && field.hidden) return;
395
420
  if (ExcludeFieldNames.includes(field_name)) return;
396
421
  if(!_.has(field, "name")){
397
422
  field.name = field_name
@@ -567,7 +592,7 @@ module.exports = {
567
592
  const objectTabs = await objectql.getObject('tabs').find({filters: [['type', '=', "object"]]});
568
593
  const tabObjects = _.map(objectTabs, "object");
569
594
  const allMetadataObjects = await objectql.getSteedosSchema().getAllObject();
570
- const allObjects = _.map(clone(allMetadataObjects), 'metadata');
595
+ const allObjects = _.map(allMetadataObjects, 'metadata');
571
596
  const query = {
572
597
  filters: [['hidden', '!=', true], ['name', '<>', tabObjects]],
573
598
  projection: {
@@ -607,7 +632,7 @@ module.exports = {
607
632
  const companyId = userSession.company_id;
608
633
  const companyIds = userSession.company_ids;
609
634
  const allMetadataObjects = await objectql.getSteedosSchema().getAllObject();
610
- const allObjects = _.map(clone(allMetadataObjects), 'metadata');
635
+ const allObjects = _.map(allMetadataObjects, 'metadata');
611
636
  const query = {
612
637
  filters: [['name', 'in', selectedObjects]], //['hidden', '!=', true] ,
613
638
  projection: {
@@ -21,18 +21,15 @@ const getFormPageInitSchema = function (objectApiName) {
21
21
  "label": "对象表单",
22
22
  "objectApiName": objectApiName,
23
23
  "recordId": "${recordId}",
24
- "className": "sm:border sm:shadow sm:rounded sm:border-gray-300 bg-white p-4",
24
+ "className": "",
25
25
  "id": "u:b3d626885b90",
26
+ "enableTabs": true,
26
27
  "mode": "edit",
27
28
  "layout": "normal"
28
29
  };
29
30
  return {
30
- type: 'page',
31
+ type: 'service',
31
32
  name: getScopeId(objectApiName, "form"),
32
- bodyClassName: '',
33
- regions: [
34
- "body"
35
- ],
36
33
  body: [
37
34
  amisSchema
38
35
  ]
@@ -53,7 +50,7 @@ const getListPageInitSchema = function (objectApiName) {
53
50
  "objectApiName": objectApiName,
54
51
  "columnsTogglable": false,
55
52
  "showHeader": true,
56
- className: "sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid"
53
+ className: "sm:border bg-white sm:rounded border-gray-300 border-solid"
57
54
  }]
58
55
  }
59
56
  }
@@ -92,7 +89,7 @@ const getRecordPageInitSchema = async function (objectApiName, userSession) {
92
89
  }
93
90
  const content = {
94
91
  "type": "tabs",
95
- "className": "sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-slate-300 p-4",
92
+ "className": "sm:mt-3 bg-white sm:rounded sm:border border-gray-300 p-4",
96
93
  "tabs": [
97
94
  detailed
98
95
  ]
@@ -13,6 +13,7 @@ CustomLabels:
13
13
  field_set: Set Fields
14
14
  grouping_set: Set Grouping
15
15
  group_name: Name
16
+ visible_on: VisibleOn
16
17
  related_list_name: Related List Name
17
18
  related_list_label: Displayed Title
18
19
  related_list_label_remark: Default to object name
@@ -13,6 +13,7 @@ CustomLabels:
13
13
  field_set: 设置字段
14
14
  grouping_set: 设置分组
15
15
  group_name: 名称
16
+ visible_on: 显示条件
16
17
  related_list_name: 子表名称
17
18
  related_list_label: 显示标题
18
19
  related_list_label_remark: 默认为对象名称
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-plugin-amis",
3
- "version": "2.6.1-beta.7",
3
+ "version": "2.6.2-beta.10",
4
4
  "main": "package.service.js",
5
5
  "scripts": {
6
6
  "build": "yarn build:tailwind-base && yarn build:tailwind",
@@ -13,7 +13,7 @@
13
13
  "publishConfig": {
14
14
  "access": "public"
15
15
  },
16
- "gitHead": "b12f271460ef3686face095e875aa38e8ddc4c7f",
16
+ "gitHead": "afbd1c34d1516e44494b5d5a192bbce80e48af93",
17
17
  "devDependencies": {
18
18
  "tailwindcss": "3.2.4"
19
19
  }
@@ -1,8 +1,18 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2022-05-19 11:38:30
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2023-08-02 15:05:31
6
+ * @Description:
7
+ */
1
8
  "use strict";
2
9
  const project = require('./package.json');
3
10
  const packageName = project.name;
4
11
  const packageLoader = require('@steedos/service-package-loader');
5
12
 
13
+ const path = require('path');
14
+ const fs = require("fs");
15
+
6
16
  /**
7
17
  * @typedef {import('moleculer').Context} Context Moleculer's Context
8
18
  * 软件包服务启动后也需要抛出事件。
@@ -19,7 +29,8 @@ module.exports = {
19
29
  path: __dirname,
20
30
  name: this.name,
21
31
  isPackage: false
22
- }
32
+ },
33
+ loadedPublicClientJS: false,
23
34
  },
24
35
 
25
36
  /**
@@ -38,14 +49,59 @@ module.exports = {
38
49
  * Events
39
50
  */
40
51
  events: {
41
-
52
+ "steedos-server.started": {
53
+ async handler() {
54
+ await this.publicClientJS();
55
+ }
56
+ },
57
+ "space.initialized": {
58
+ async handler() {
59
+ await this.publicClientJS();
60
+ }
61
+ }
42
62
  },
43
63
 
44
64
  /**
45
65
  * Methods
46
66
  */
47
67
  methods: {
48
-
68
+ publicClientJS: {
69
+ handler() {
70
+ let packageInfo = this.settings.packageInfo;
71
+ if (!packageInfo) {
72
+ return;
73
+ }
74
+ const { path : packagePath } = packageInfo;
75
+ let publicPath = path.join(packagePath, 'main', 'default', 'client');
76
+ try {
77
+ if (!fs.existsSync(publicPath) || this.settings.loadedPublicClientJS || typeof WebApp == 'undefined') {
78
+ return;
79
+ }
80
+ } catch (error) {
81
+ return
82
+ }
83
+
84
+ try {
85
+ const express = require('express');
86
+ this.settings.loadedPublicClientJS = true;
87
+ try {
88
+ const router = require('@steedos/router').staticRouter();
89
+ let routerPath = "";
90
+ if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
91
+ routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
92
+ }
93
+ const cacheTime = 86400000 * 1; // one day
94
+ router.use(`${routerPath}/amis-pages/js`, express.static(publicPath, { maxAge: cacheTime }));
95
+ // WebApp.connectHandlers.use(router);
96
+ } catch (error) {
97
+ console.error(error)
98
+ this.settings.loadedPublicClientJS = false;
99
+ }
100
+ } catch (error) {
101
+
102
+ }
103
+ }
104
+ },
49
105
  },
50
106
 
51
107
  /**
@@ -59,7 +115,9 @@ module.exports = {
59
115
  * Service started lifecycle event handler
60
116
  */
61
117
  async started() {
62
-
118
+ this.broker.waitForServices("steedos-server").then(async () => {
119
+ await this.publicClientJS()
120
+ });
63
121
  },
64
122
 
65
123
  /**
@@ -73,6 +73,10 @@
73
73
  grid-column: span 2 / span 2
74
74
  }
75
75
 
76
+ .float-right {
77
+ float: right
78
+ }
79
+
76
80
  .m-1 {
77
81
  margin: 0.25rem
78
82
  }
@@ -81,6 +85,14 @@
81
85
  margin: 0px
82
86
  }
83
87
 
88
+ .-m-8 {
89
+ margin: -2rem
90
+ }
91
+
92
+ .m-auto {
93
+ margin: auto
94
+ }
95
+
84
96
  .mx-4 {
85
97
  margin-left: 1rem;
86
98
  margin-right: 1rem
@@ -96,18 +108,30 @@
96
108
  margin-right: -2.75rem
97
109
  }
98
110
 
99
- .-mt-3 {
100
- margin-top: -0.75rem
101
- }
102
-
103
111
  .mb-4 {
104
112
  margin-bottom: 1rem
105
113
  }
106
114
 
115
+ .mt-2 {
116
+ margin-top: 0.5rem
117
+ }
118
+
119
+ .mr-4 {
120
+ margin-right: 1rem
121
+ }
122
+
123
+ .-mt-3 {
124
+ margin-top: -0.75rem
125
+ }
126
+
107
127
  .mt-3 {
108
128
  margin-top: 0.75rem
109
129
  }
110
130
 
131
+ .mr-7 {
132
+ margin-right: 1.75rem
133
+ }
134
+
111
135
  .mb-0 {
112
136
  margin-bottom: 0px
113
137
  }
@@ -120,6 +144,10 @@
120
144
  display: block
121
145
  }
122
146
 
147
+ .inline-block {
148
+ display: inline-block
149
+ }
150
+
123
151
  .inline {
124
152
  display: inline
125
153
  }
@@ -144,6 +172,10 @@
144
172
  display: none
145
173
  }
146
174
 
175
+ .h-9 {
176
+ height: 2.25rem
177
+ }
178
+
147
179
  .h-full {
148
180
  height: 100%
149
181
  }
@@ -152,6 +184,14 @@
152
184
  height: 0px
153
185
  }
154
186
 
187
+ .h-7 {
188
+ height: 1.75rem
189
+ }
190
+
191
+ .w-9 {
192
+ width: 2.25rem
193
+ }
194
+
155
195
  .w-10 {
156
196
  width: 2.5rem
157
197
  }
@@ -164,6 +204,10 @@
164
204
  width: 100%
165
205
  }
166
206
 
207
+ .w-4\/5 {
208
+ width: 80%
209
+ }
210
+
167
211
  .w-96 {
168
212
  width: 24rem
169
213
  }
@@ -181,6 +225,10 @@
181
225
  min-width: 200px
182
226
  }
183
227
 
228
+ .max-w-4xl {
229
+ max-width: 56rem
230
+ }
231
+
184
232
  .flex-1 {
185
233
  flex: 1 1 0%
186
234
  }
@@ -218,6 +266,10 @@
218
266
  justify-content: center
219
267
  }
220
268
 
269
+ .justify-between {
270
+ justify-content: space-between
271
+ }
272
+
221
273
  .overflow-auto {
222
274
  overflow: auto
223
275
  }
@@ -230,14 +282,26 @@
230
282
  overflow-y: auto
231
283
  }
232
284
 
285
+ .whitespace-nowrap {
286
+ white-space: nowrap
287
+ }
288
+
233
289
  .rounded {
234
290
  border-radius: 0.25rem
235
291
  }
236
292
 
293
+ .rounded-full {
294
+ border-radius: 9999px
295
+ }
296
+
237
297
  .border {
238
298
  border-width: 1px
239
299
  }
240
300
 
301
+ .border-0 {
302
+ border-width: 0px
303
+ }
304
+
241
305
  .border-b {
242
306
  border-bottom-width: 1px
243
307
  }
@@ -250,21 +314,11 @@
250
314
  border-style: solid
251
315
  }
252
316
 
253
- .border-slate-300 {
254
- --tw-border-opacity: 1;
255
- border-color: rgb(203 213 225 / var(--tw-border-opacity))
256
- }
257
-
258
317
  .border-gray-300 {
259
318
  --tw-border-opacity: 1;
260
319
  border-color: rgb(209 213 219 / var(--tw-border-opacity))
261
320
  }
262
321
 
263
- .border-slate-200 {
264
- --tw-border-opacity: 1;
265
- border-color: rgb(226 232 240 / var(--tw-border-opacity))
266
- }
267
-
268
322
  .border-gray-200 {
269
323
  --tw-border-opacity: 1;
270
324
  border-color: rgb(229 231 235 / var(--tw-border-opacity))
@@ -275,11 +329,20 @@
275
329
  background-color: rgb(255 255 255 / var(--tw-bg-opacity))
276
330
  }
277
331
 
332
+ .bg-gray-50 {
333
+ --tw-bg-opacity: 1;
334
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity))
335
+ }
336
+
278
337
  .bg-gray-100 {
279
338
  --tw-bg-opacity: 1;
280
339
  background-color: rgb(243 244 246 / var(--tw-bg-opacity))
281
340
  }
282
341
 
342
+ .bg-none {
343
+ background-image: none
344
+ }
345
+
283
346
  .p-0 {
284
347
  padding: 0px
285
348
  }
@@ -292,6 +355,25 @@
292
355
  padding: 0.5rem
293
356
  }
294
357
 
358
+ .p-1 {
359
+ padding: 0.25rem
360
+ }
361
+
362
+ .px-2 {
363
+ padding-left: 0.5rem;
364
+ padding-right: 0.5rem
365
+ }
366
+
367
+ .py-0\.5 {
368
+ padding-top: 0.125rem;
369
+ padding-bottom: 0.125rem
370
+ }
371
+
372
+ .py-0 {
373
+ padding-top: 0px;
374
+ padding-bottom: 0px
375
+ }
376
+
295
377
  .px-1 {
296
378
  padding-left: 0.25rem;
297
379
  padding-right: 0.25rem
@@ -312,11 +394,6 @@
312
394
  padding-right: 0px
313
395
  }
314
396
 
315
- .py-0 {
316
- padding-top: 0px;
317
- padding-bottom: 0px
318
- }
319
-
320
397
  .py-1 {
321
398
  padding-top: 0.25rem;
322
399
  padding-bottom: 0.25rem
@@ -326,6 +403,10 @@
326
403
  padding-bottom: 0.75rem
327
404
  }
328
405
 
406
+ .pl-10 {
407
+ padding-left: 2.5rem
408
+ }
409
+
329
410
  .text-left {
330
411
  text-align: left
331
412
  }
@@ -342,10 +423,6 @@
342
423
  font-weight: 700
343
424
  }
344
425
 
345
- .lowercase {
346
- text-transform: lowercase
347
- }
348
-
349
426
  .italic {
350
427
  font-style: italic
351
428
  }
@@ -354,6 +431,11 @@
354
431
  line-height: 1
355
432
  }
356
433
 
434
+ .text-gray-600 {
435
+ --tw-text-opacity: 1;
436
+ color: rgb(75 85 99 / var(--tw-text-opacity))
437
+ }
438
+
357
439
  .text-black {
358
440
  --tw-text-opacity: 1;
359
441
  color: rgb(0 0 0 / var(--tw-text-opacity))
@@ -374,6 +456,12 @@
374
456
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
375
457
  }
376
458
 
459
+ .shadow {
460
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
461
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
462
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
463
+ }
464
+
377
465
  .filter {
378
466
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
379
467
  }
@@ -404,14 +492,14 @@
404
492
  margin-top: 0.75rem
405
493
  }
406
494
 
407
- .sm\:rounded-lg {
408
- border-radius: 0.5rem
409
- }
410
-
411
495
  .sm\:rounded {
412
496
  border-radius: 0.25rem
413
497
  }
414
498
 
499
+ .sm\:rounded-lg {
500
+ border-radius: 0.5rem
501
+ }
502
+
415
503
  .sm\:border {
416
504
  border-width: 1px
417
505
  }