@steedos/service-plugin-amis 2.2.21 → 2.2.24

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.
@@ -15,59 +15,63 @@
15
15
  } catch (error) {
16
16
  console.error(error)
17
17
  };
18
-
19
- import('/amis/sdk/sdk.noreact.js').then(() => {
18
+
19
+ import('/unpkg.com/@steedos-ui/amis/dist/amis-sdk.umd.min.js').then(() => {
20
20
 
21
21
  Promise.all([
22
22
  waitForThing(window, 'assetsLoaded'),
23
- waitForThing(window, 'React'),
24
- waitForThing(window, 'Builder'),
25
- waitForThing(window, 'amisRequire'),
23
+ waitForThing(window, 'AmisSDK'),
26
24
  ]).then(()=>{
27
25
 
28
- window.SAmisReners = [];
26
+ const AmisRenderers = [];
29
27
 
30
28
  const amisComps = lodash.filter(Builder.registry['meta-components'], function(item){ return item.componentName && item.amis?.render});
31
29
 
32
- let amisLib = amisRequire('amis');
33
-
34
30
  lodash.each(amisComps,(comp)=>{
35
31
  const Component = Builder.components.find(item => item.name === comp.componentName);
36
- if (Component && !SAmisReners.includes(comp.amis?.render.type)){
32
+ if (Component && !AmisRenderers.includes(comp.amis?.render.type)){
37
33
  try {
38
- SAmisReners.push(comp.amis?.render.type);
39
- amisLib.Renderer(
34
+ AmisRenderers.push(comp.amis?.render.type);
35
+ AmisSDK.amis.Renderer(
40
36
  {
41
37
  type: comp.amis?.render.type,
42
38
  weight: comp.amis?.render.weight,
43
39
  autoVar: true,
44
40
  }
45
41
  )(Component.class);
46
- } catch(e){console.log(e)}
42
+ } catch(e){console.error(e)}
47
43
  }
48
- })
44
+ });
45
+
46
+ const AmisEnv = {
47
+ getModalContainer: ()=>{
48
+ let div = document.querySelector("#amisModalContainer");
49
+ if(!div){
50
+ div = document.createElement('div');
51
+ div.className="amis-scope";
52
+ div.style.height='0px';
53
+ div.id="amisModalContainer";
54
+ document.body.appendChild(div)
55
+ }
56
+ return div;
57
+ },
58
+ theme: 'antd',
59
+ };
49
60
 
50
- // Register amis render
51
- var Amis = function (props) {
52
- var schema = props.schema, data = props.data;
53
- return React.createElement(React.Fragment, null,
54
- React.createElement("div", { id: "amis-root" }),
55
- // amisRequire('amis').render(schema, data, {theme: 'cxd'}))
56
- function () {
57
- setTimeout(function () {
58
- amisRequire('amis/embed').embed('#amis-root', schema, {
59
- data
60
- })
61
- }, 100)
62
- }()
63
- );
61
+ const AmisRender = function (props) {
62
+ const env = props.env;
63
+ const schema = props.schema;
64
+ const data = props.data;
65
+ const name = props.name;
66
+ return (React.createElement("div", { className: "amis-scope" }, AmisSDK.AmisRender(schema, {data, name}, Object.assign({}, AmisEnv, env))));
64
67
  };
65
68
 
66
- Builder.registerComponent(Amis, {
69
+ Builder.registerComponent(AmisRender, {
67
70
  name: 'Amis',
68
71
  inputs: [
69
72
  { name: 'schema', type: 'object' },
70
73
  { name: 'data', type: 'object' },
74
+ { name: 'name', type: 'string' }
71
75
  ]
72
76
  });
73
77
  });
@@ -0,0 +1,128 @@
1
+ /*
2
+ * @Date: 2022-04-19 11:36:12
3
+ * @Description: 提供设计器需要的数据接口
4
+ */
5
+
6
+ const objectql = require("@steedos/objectql");
7
+ const steedosI18n = require("@steedos/i18n");
8
+ const _ = require("underscore");
9
+ const clone = require("clone");
10
+
11
+ const ExcludeObjectNames = [
12
+ 'cfs_instances_filerecord',
13
+ 'cfs_files_filerecord',
14
+ 'cms_files',
15
+ 'chat_messages',
16
+ 'api_keys',
17
+ 'object_webhooks_queue',
18
+ 'users',
19
+ 'cms_posts',
20
+ ];
21
+
22
+
23
+ module.exports = {
24
+ name: "amis-design",
25
+ mixins: [],
26
+ /**
27
+ * Settings
28
+ */
29
+ settings: {
30
+
31
+ },
32
+
33
+ /**
34
+ * Dependencies
35
+ */
36
+ dependencies: [],
37
+
38
+ /**
39
+ * Actions
40
+ */
41
+ actions: {
42
+ getObjects: {
43
+ rest: {
44
+ method: "GET",
45
+ path: "/objects"
46
+ },
47
+ async handler(ctx) {
48
+ return await this.getObjects(ctx);
49
+ }
50
+ }
51
+ },
52
+
53
+ /**
54
+ * Events
55
+ */
56
+ events: {
57
+
58
+ },
59
+
60
+ /**
61
+ * Methods
62
+ */
63
+ methods: {
64
+ getObjects: {
65
+ async handler(ctx) {
66
+ const userSession = ctx.meta.user;
67
+ const lng = userSession.language || 'zh-CN';
68
+ const spaceId = userSession.spaceId;
69
+ const allMetadataObjects = await objectql.getSteedosSchema().getAllObject();
70
+ const allObjects = _.pluck(clone(allMetadataObjects), 'metadata');
71
+
72
+ const query = {
73
+ filters: [ ['hidden', '!=', true] , ['name', '<>', ExcludeObjectNames]],
74
+ projection: {
75
+ name: 1,
76
+ label: 1,
77
+ list_views: 1
78
+ }
79
+ };
80
+
81
+ const objects = objectql.getSteedosSchema().metadataDriver.find(allObjects, query, spaceId);
82
+
83
+ const dbListViews = await objectql.getObject('object_listviews').directFind({filters: [['shared', '!=', false]]})
84
+
85
+ _.each(objects, (object)=>{
86
+ if(object && object.name){
87
+
88
+ steedosI18n.translationObject(lng, object.name, object)
89
+
90
+ if(object.list_views && !_.isEmpty(object.list_views)){
91
+ _.each(object.list_views, (list_view, name)=>{
92
+ list_view.name = name;
93
+ list_view._id = list_view._id || list_view.name;
94
+ list_view.label = list_view.label || list_view.name;
95
+ })
96
+
97
+ object.list_views = objectql.getSteedosSchema().metadataDriver.find(_.values(object.list_views), {
98
+ projection: {
99
+ _id: 1,
100
+ name: 1,
101
+ label: 1
102
+ }
103
+ }, spaceId);
104
+
105
+ }
106
+
107
+ if(_.isEmpty(object.list_views)){
108
+ object.list_views = [];
109
+ }
110
+
111
+ const objectListViews = objectql.getSteedosSchema().metadataDriver.find(dbListViews, {
112
+ filters: [['object_name', '=', object.name], ['shared', '=', true] ],
113
+ fields: "_id, name, label"
114
+ }, spaceId);
115
+
116
+ _.each(object.list_views, (listView)=>{
117
+ if(!_.find(objectListViews, (dbListView)=>{ return dbListView.name === listView.name})){
118
+ objectListViews.push(listView);
119
+ }
120
+ })
121
+ object.list_views = objectListViews;
122
+ }
123
+ })
124
+ return objects;
125
+ }
126
+ }
127
+ }
128
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-plugin-amis",
3
- "version": "2.2.21",
3
+ "version": "2.2.24",
4
4
  "main": "package.service.js",
5
5
  "scripts": {},
6
6
  "license": "MIT",
@@ -8,5 +8,5 @@
8
8
  "publishConfig": {
9
9
  "access": "public"
10
10
  },
11
- "gitHead": "39204e6e65ded584d76363cebfdcbcb061238d38"
11
+ "gitHead": "4650f826343d41eb0ccafabc73c721e24b04f50f"
12
12
  }
@@ -18,6 +18,7 @@ module.exports = {
18
18
  packageInfo: {
19
19
  path: __dirname,
20
20
  name: this.name,
21
+ isPackage: false
21
22
  }
22
23
  },
23
24
 
@@ -1,4 +1,8 @@
1
- @import '/amis/sdk/sdk.css';
1
+ /* @import '/amis/sdk/sdk.css'; */
2
+
3
+ @import '/unpkg.com/amis@1.8.0/lib/themes/default.css';
4
+
5
+ @import '/unpkg.com/amis@1.8.0/lib/themes/antd.css';
2
6
 
3
7
 
4
8
  /* .amis-routes-wrapper{
@@ -6,7 +10,7 @@
6
10
  } */
7
11
 
8
12
  .amis-scope{
9
- background: none;
13
+ background: #ffffff;
10
14
  }
11
15
 
12
16
  .amis-scope svg {