@steedos/standard-object-database 2.5.18-beta.1 → 2.5.18-beta.2

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.
@@ -6,6 +6,10 @@ fields:
6
6
  label: 所属对象
7
7
  help:
8
8
  description:
9
+ is_system:
10
+ label: 系统
11
+ help:
12
+ description:
9
13
  label:
10
14
  label: 显示名称
11
15
  help:
@@ -816,6 +816,7 @@ list_views:
816
816
  - object
817
817
  - sort_no
818
818
  - modified
819
+ - is_system
819
820
  sort:
820
821
  - field_name: sort_no
821
822
  order: asc
@@ -830,6 +831,7 @@ list_views:
830
831
  - object
831
832
  - sort_no
832
833
  - modified
834
+ - is_system
833
835
  label: 自定义
834
836
  filters:
835
837
  - ["is_system","<>",true]
@@ -60,7 +60,7 @@
60
60
  "actions": [
61
61
  {
62
62
  "actionType": "custom",
63
- "script": "//整理分组数据\nlet setting_groups = event.data.setting_groups;\nif (!_.find(setting_groups, { is_default: true })) {\n setting_groups.unshift({\n \"id\": \"未分组\",\n \"group_name\": \"未分组\",\n \"visible_on\": \"\",\n \"is_default\": true\n })\n}\nsetting_groups.forEach(function (group) {\n if (group.is_default) {\n group.group_name = \"未分组\";\n group.visible_on = \"\";\n }\n if (!group.id) {\n group.id = group.group_name;\n }\n})\n\n//整理字段与分组关系的数据\nconst fieldForGroup = {};\nlet oldGroup = event.data.fieldForGroup;\nsetting_groups.forEach(function (group) {\n if (_.has(oldGroup, group.id)) {\n fieldForGroup[group.id] = oldGroup[group.id];\n oldGroup = _.omit(oldGroup, group.id);\n } else {\n fieldForGroup[group.id] = [];\n }\n})\nif (oldGroup && !_.isEmpty(oldGroup)) {\n _.forEach(oldGroup, function (value, key) {\n fieldForGroup[\"未分组\"] = _.unionBy(fieldForGroup[\"未分组\"], value);\n });\n}\nconsole.log(\"setting_groups,fieldForGroup===>\", setting_groups, fieldForGroup);\n\ndoAction({\n actionType: 'setValue',\n componentId: 'service_field_design',\n args: {\n value: {\n groups: setting_groups,\n fieldForGroup\n }\n }\n});"
63
+ "script": "//整理分组数据\nlet setting_groups = event.data.setting_groups;\nif (!_.find(setting_groups, { is_default: true })) {\n setting_groups.unshift({\n \"id\": \"未分组\",\n \"group_name\": \"未分组\",\n \"visible_on\": \"\",\n \"is_default\": true\n })\n}\nsetting_groups.forEach(function (group) {\n if (group.is_default) {\n group.group_name = \"未分组\";\n group.visible_on = \"\";\n }\n if (!group.id) {\n group.id = group.group_name;\n }\n})\n\n//整理字段与分组关系的数据\nconst fieldForGroup = {};\nlet oldGroup = _.cloneDeep(event.data.fieldForGroup);\nsetting_groups.forEach(function (group) {\n if (_.has(oldGroup, group.id)) {\n fieldForGroup[group.id] = oldGroup[group.id];\n oldGroup = _.omit(oldGroup, group.id);\n } else {\n fieldForGroup[group.id] = [];\n }\n})\nif (oldGroup && !_.isEmpty(oldGroup)) {\n _.forEach(oldGroup, function (value, key) {\n fieldForGroup[\"未分组\"] = _.unionBy(fieldForGroup[\"未分组\"], value);\n });\n}\nconsole.log(\"setting_groups,fieldForGroup===>\", setting_groups, fieldForGroup);\n\ndoAction({\n actionType: 'setValue',\n componentId: 'service_field_design',\n args: {\n value: {\n groups: setting_groups,\n fieldForGroup\n }\n }\n});"
64
64
  }
65
65
  ]
66
66
  }
@@ -211,7 +211,7 @@
211
211
  "actions": [
212
212
  {
213
213
  "actionType": "custom",
214
- "script": "const newGroups = _.keys(event.data.value);\nconst lastGroups = _.map(context.props.data.groups, 'group_name');\nif (newGroups != lastGroups) {\n doAction({\n actionType: 'setValue',\n componentId: 'service_field_design',\n args: {\n value: {\n groups: field_groups = _.sortBy(context.props.data.groups, function (group) { return _.findIndex(newGroups, function (group_name) { return group.group_name === group_name; }); })\n }\n }\n });\n}\n"
214
+ "script": "const newGroups = _.keys(event.data.value);\nconst lastGroups = _.map(context.props.data.groups, 'group_name');\nif (newGroups != lastGroups) {\n doAction({\n actionType: 'setValue',\n componentId: 'service_field_design',\n args: {\n value: {\n fieldForGroup: event.data.value, groups: field_groups = _.sortBy(context.props.data.groups, function (group) { return _.findIndex(newGroups, function (group_name) { return group.group_name === group_name; }); })\n }\n }\n });\n}\n"
215
215
  }
216
216
  ]
217
217
  }
@@ -10,6 +10,13 @@
10
10
  "enableTabs": true,
11
11
  "mode": "edit",
12
12
  "layout": "normal",
13
+ "fieldsExtend": {
14
+ "type": {
15
+ "amis": {
16
+ "searchable": true
17
+ }
18
+ }
19
+ },
13
20
  "apiRequestAdaptor": "api.data.query = api.data.query.replace('object_fields__update', 'object_fields__upsert')",
14
21
  "submitSuccActions": [
15
22
  {
@@ -222,7 +222,7 @@ module.exports = {
222
222
  if(!objectName && filters._id && filters._id.indexOf(".") > -1){
223
223
  objectName = filters._id.split('.')[0];
224
224
  }
225
- if(objectName){
225
+ if(objectName){
226
226
  let fields = await InternalData.getObjectFields(objectName, this.userId, filters.name ? true : false);
227
227
  if(fields){
228
228
  _.each(fields, (field)=>{
@@ -232,6 +232,20 @@ module.exports = {
232
232
  this.data.values = objectql.getSteedosSchema().metadataDriver.find(this.data.values, this.query, this.spaceId);
233
233
  }
234
234
  }
235
+
236
+ const dbSystemField = _.find(this.data.values, (field)=>{return field.is_system && field._id && field._id.indexOf('.') == -1})
237
+ if(dbSystemField){
238
+ const obj = await InternalData.getObject(dbSystemField.object, this.userId)
239
+ if(obj){
240
+ this.data.values = _.map(this.data.values, (item)=>{
241
+ if(item.is_system){
242
+ return Object.assign(item, _.find(obj.fields, (field)=>{return field.name === item.name}))
243
+ }else{
244
+ return item;
245
+ }
246
+ })
247
+ }
248
+ }
235
249
  },
236
250
  beforeFind: async function(){
237
251
  const { query } = this;
@@ -327,7 +341,12 @@ module.exports = {
327
341
  }
328
342
  if(["parent","children"].indexOf(dbDoc._name) > -1){
329
343
  let isImportField = false;
330
- if(doc._name !== dbDoc._name || doc.type !== dbDoc.type || doc.object !== dbDoc.object || doc.reference_to !== dbDoc.reference_to || !!doc.multiple !== !!dbDoc.multiple || ("children" === dbDoc._name && doc.omit !== true)){
344
+ if((doc._name != undefined && doc._name !== dbDoc._name) ||
345
+ (doc.type != undefined && doc.type !== dbDoc.type) ||
346
+ (doc.object != undefined && doc.object !== dbDoc.object) ||
347
+ (doc.reference_to != undefined && doc.reference_to !== dbDoc.reference_to) ||
348
+ (doc.multiple != undefined && !!doc.multiple !== !!dbDoc.multiple) ||
349
+ (doc.omit != undefined && ("children" === dbDoc._name && doc.omit !== true))){
331
350
  isImportField = true;
332
351
  }
333
352
  if(isImportField){
@@ -362,7 +381,7 @@ module.exports = {
362
381
  // !!!暂不允许修改字段类型
363
382
  if (_.has(doc, 'type')) {
364
383
  const newFieldType = doc.type;
365
- if (newFieldType && (latestDoc.type != newFieldType)) {
384
+ if (latestDoc.type && newFieldType && (latestDoc.type != newFieldType)) {
366
385
  throw new Error('禁止修改字段类型。');
367
386
  }
368
387
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.5.18-beta.1",
3
+ "version": "2.5.18-beta.2",
4
4
  "main": "package.service.js",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -15,5 +15,5 @@
15
15
  },
16
16
  "repository": {},
17
17
  "license": "MIT",
18
- "gitHead": "c4ba4e73e2182af6a1b825988b5d325c4af918ff"
18
+ "gitHead": "0f48957d39df17d699a5177f473401362a9916bf"
19
19
  }
@@ -2,7 +2,7 @@
2
2
  * @Author: sunhaolin@hotoa.com
3
3
  * @Date: 1985-10-26 16:15:00
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2023-10-30 17:18:36
5
+ * @LastEditTime: 2023-10-31 10:25:17
6
6
  * @Description:
7
7
  */
8
8
  "use strict";
@@ -57,6 +57,10 @@ module.exports = {
57
57
  }
58
58
 
59
59
  delete data.space;
60
+
61
+ if(data.is_system){
62
+ data = _.pick(data, ['label', 'icon', 'enable_files', 'enable_tasks', 'enable_notes', 'enable_events', 'enable_workflow', 'enable_instances', 'enable_inline_edit', 'enable_tree', 'enable_enhanced_lookup', 'description', 'is_deleted'])
63
+ }
60
64
 
61
65
  const object = await this.getObject('objects');
62
66
  const dbRecord = await object.directFind({filters: ['_id','=',id]});
@@ -98,6 +102,10 @@ module.exports = {
98
102
  data = JSON.parse(JSON.stringify(doc));
99
103
  }
100
104
  delete data.space;
105
+
106
+ if(data.is_system){
107
+ data = _.pick(data, ['label', 'defaultValue', 'group', 'rows', 'sort_no', 'is_wide', 'index', 'sortable', 'searchable', 'filterable', 'visible_on', 'inlineHelpText', 'description', 'amis'])
108
+ }
101
109
 
102
110
  const object = await this.getObject('object_fields');
103
111
  if(id.indexOf('.') > 0){
@@ -119,7 +127,8 @@ module.exports = {
119
127
  created_by: userSession.userId,
120
128
  modified_by: userSession.userId,
121
129
  company_id: userSession.company_id,
122
- company_ids: userSession.company_ids
130
+ company_ids: userSession.company_ids,
131
+ is_system: true
123
132
  }));
124
133
  id = newId;
125
134
  }