@steedos/standard-object-database 2.6.1-beta.6 → 2.6.2-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.
Files changed (57) hide show
  1. package/main/default/client/coordtransform.client.js +153 -0
  2. package/main/default/client/object_fields.client.js +149 -7
  3. package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +21 -0
  4. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +21 -0
  5. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +33 -2
  6. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +38 -4
  7. package/main/default/objectTranslations/object_layouts.en/object_layouts.en.objectTranslation.yml +9 -0
  8. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +9 -0
  9. package/main/default/objectTranslations/object_listviews.en/object_listviews.en.objectTranslation.yml +29 -1
  10. package/main/default/objectTranslations/object_listviews.zh-CN/object_listviews.zh-CN.objectTranslation.yml +27 -1
  11. package/main/default/objectTranslations/object_triggers.en/object_triggers.en.objectTranslation.yml +22 -1
  12. package/main/default/objectTranslations/object_triggers.zh-CN/object_triggers.zh-CN.objectTranslation.yml +22 -1
  13. package/main/default/objectTranslations/object_validation_rules.en/object_validation_rules.en.objectTranslation.yml +2 -0
  14. package/main/default/objectTranslations/object_validation_rules.zh-CN/object_validation_rules.zh-CN.objectTranslation.yml +2 -0
  15. package/main/default/objectTranslations/objects.en/objects.en.objectTranslation.yml +2 -0
  16. package/main/default/objectTranslations/objects.zh-CN/objects.zh-CN.objectTranslation.yml +2 -0
  17. package/main/default/objects/1.objects.observe.object.js +4 -1
  18. package/main/default/objects/16.permission_tabs.observe.object.js +44 -0
  19. package/main/default/objects/7.object_actions.observe.object.js +7 -1
  20. package/main/default/objects/object_actions.action.js +35 -4
  21. package/main/default/objects/object_actions.object.js +4 -2
  22. package/main/default/objects/object_actions.object.yml +73 -29
  23. package/main/default/objects/object_fields.object.js +33 -19
  24. package/main/default/objects/object_fields.object.yml +128 -54
  25. package/main/default/objects/object_layouts.action.js +4 -4
  26. package/main/default/objects/object_layouts.object.yml +28 -2
  27. package/main/default/objects/object_listviews.action.js +1 -1
  28. package/main/default/objects/object_listviews.object.js +3 -3
  29. package/main/default/objects/object_listviews.object.yml +67 -16
  30. package/main/default/objects/object_triggers.object.yml +13 -4
  31. package/main/default/objects/object_validation_rules.object.yml +10 -0
  32. package/main/default/objects/objects/buttons/custom.button.js +48 -0
  33. package/main/default/objects/objects/buttons/custom.button.yml +6 -0
  34. package/main/default/objects/objects.action.js +26 -3
  35. package/main/default/objects/objects.core.js +17 -1
  36. package/main/default/objects/objects.object.js +3 -2
  37. package/main/default/objects/objects.object.yml +28 -2
  38. package/main/default/objects/objects.tree.js +3 -2
  39. package/main/default/pages/design_field_layout.page.amis.json +418 -0
  40. package/main/default/pages/design_field_layout.page.yml +7 -0
  41. package/main/default/pages/object_detail.page.amis.json +6 -6
  42. package/main/default/pages/object_fields_form.page.amis.json +35 -0
  43. package/main/default/pages/object_fields_form.page.yml +12 -0
  44. package/main/default/pages/object_form.page.amis.json +31 -0
  45. package/main/default/pages/object_form.page.yml +12 -0
  46. package/main/default/routes/amis_button_design.router.js +19 -3
  47. package/main/default/routes/amis_listview_design.router.js +18 -4
  48. package/main/default/services/suggestions.service.js +4 -5
  49. package/main/default/triggers/object_actions.trigger.js +6 -2
  50. package/main/default/triggers/object_fields.trigger.js +67 -10
  51. package/main/default/triggers/object_listviews.trigger.js +27 -5
  52. package/main/default/triggers/objects.trigger.js +40 -29
  53. package/package.json +2 -2
  54. package/package.service.js +132 -3
  55. package/src/triggers/index.js +11 -0
  56. package/src/triggers/object_fields_trigger_create_index.js +58 -0
  57. package/main/default/objects/object_layouts/buttons/standard_edit.button.yml +0 -44
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Created by Wandergis on 2015/7/8.
3
+ * 提供了百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)、和 WGS-84 坐标系之间的转换
4
+ */
5
+ // UMD 魔法代码
6
+ // if the module has no dependencies, the above pattern can be simplified to
7
+ (function (root, factory) {
8
+ if (typeof define === 'function' && define.amd) {
9
+ // AMD. Register as an anonymous module.
10
+ define([], factory);
11
+ } else if (typeof module === 'object' && module.exports) {
12
+ // Node. Does not work with strict CommonJS, but
13
+ // only CommonJS-like environments that support module.exports,
14
+ // like Node.
15
+ module.exports = factory();
16
+ } else {
17
+ // Browser globals (root is window)
18
+ root.coordtransform = factory();
19
+ }
20
+ }(window, function () {
21
+ // 定义一些常量
22
+ var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
23
+ var PI = 3.1415926535897932384626;
24
+ var a = 6378245.0;
25
+ var ee = 0.00669342162296594323;
26
+ /**
27
+ * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02) 的转换
28
+ * 即 百度 转 谷歌、高德
29
+ * @param bd_lng
30
+ * @param bd_lat
31
+ * @returns {*[]}
32
+ */
33
+ var bd09togcj02 = function bd09togcj02(bd_lng, bd_lat) {
34
+ var bd_lng = +bd_lng;
35
+ var bd_lat = +bd_lat;
36
+ var x = bd_lng - 0.0065;
37
+ var y = bd_lat - 0.006;
38
+ var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_PI);
39
+ var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_PI);
40
+ var gg_lng = z * Math.cos(theta);
41
+ var gg_lat = z * Math.sin(theta);
42
+ return [gg_lng, gg_lat]
43
+ };
44
+
45
+ /**
46
+ * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
47
+ * 即 谷歌、高德 转 百度
48
+ * @param lng
49
+ * @param lat
50
+ * @returns {*[]}
51
+ */
52
+ var gcj02tobd09 = function gcj02tobd09(lng, lat) {
53
+ var lat = +lat;
54
+ var lng = +lng;
55
+ var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
56
+ var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
57
+ var bd_lng = z * Math.cos(theta) + 0.0065;
58
+ var bd_lat = z * Math.sin(theta) + 0.006;
59
+ return [bd_lng, bd_lat]
60
+ };
61
+
62
+ /**
63
+ * WGS-84 转 GCJ-02
64
+ * @param lng
65
+ * @param lat
66
+ * @returns {*[]}
67
+ */
68
+ var wgs84togcj02 = function wgs84togcj02(lng, lat) {
69
+ var lat = +lat;
70
+ var lng = +lng;
71
+ if (out_of_china(lng, lat)) {
72
+ return [lng, lat]
73
+ } else {
74
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
75
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
76
+ var radlat = lat / 180.0 * PI;
77
+ var magic = Math.sin(radlat);
78
+ magic = 1 - ee * magic * magic;
79
+ var sqrtmagic = Math.sqrt(magic);
80
+ dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
81
+ dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
82
+ var mglat = lat + dlat;
83
+ var mglng = lng + dlng;
84
+ return [mglng, mglat]
85
+ }
86
+ };
87
+
88
+ /**
89
+ * GCJ-02 转换为 WGS-84
90
+ * @param lng
91
+ * @param lat
92
+ * @returns {*[]}
93
+ */
94
+ var gcj02towgs84 = function gcj02towgs84(lng, lat) {
95
+ var lat = +lat;
96
+ var lng = +lng;
97
+ if (out_of_china(lng, lat)) {
98
+ return [lng, lat]
99
+ } else {
100
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
101
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
102
+ var radlat = lat / 180.0 * PI;
103
+ var magic = Math.sin(radlat);
104
+ magic = 1 - ee * magic * magic;
105
+ var sqrtmagic = Math.sqrt(magic);
106
+ dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
107
+ dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
108
+ var mglat = lat + dlat;
109
+ var mglng = lng + dlng;
110
+ return [lng * 2 - mglng, lat * 2 - mglat]
111
+ }
112
+ };
113
+
114
+ var transformlat = function transformlat(lng, lat) {
115
+ var lat = +lat;
116
+ var lng = +lng;
117
+ var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
118
+ ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
119
+ ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
120
+ ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
121
+ return ret
122
+ };
123
+
124
+ var transformlng = function transformlng(lng, lat) {
125
+ var lat = +lat;
126
+ var lng = +lng;
127
+ var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
128
+ ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
129
+ ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
130
+ ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
131
+ return ret
132
+ };
133
+
134
+ /**
135
+ * 判断是否在国内,不在国内则不做偏移
136
+ * @param lng
137
+ * @param lat
138
+ * @returns {boolean}
139
+ */
140
+ var out_of_china = function out_of_china(lng, lat) {
141
+ var lat = +lat;
142
+ var lng = +lng;
143
+ // 纬度 3.86~53.55, 经度 73.66~135.05
144
+ return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
145
+ };
146
+
147
+ return {
148
+ bd09togcj02: bd09togcj02,
149
+ gcj02tobd09: gcj02tobd09,
150
+ wgs84togcj02: wgs84togcj02,
151
+ gcj02towgs84: gcj02towgs84
152
+ }
153
+ }));
@@ -1,12 +1,154 @@
1
- /*
2
- * @Author: baozhoutao@steedos.com
3
- * @Date: 2022-08-05 14:17:44
4
- * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2023-06-09 14:42:12
6
- * @Description:
7
- */
8
1
  Steedos.ObjectFieldManager = {};
9
2
 
3
+ // Steedos.ObjectFieldManager.__lastDoc = null;
4
+
5
+ // const baseFieldsName = [{ "name": "object", "required": true }, { "name": "label", "required": true }, {name: '_name', required: true}, { "name": "type", "required": true }, { "name": "defaultValue" }, { "name": "group" }, { "name": "sort_no" }, { "name": "is_name" }, { "name": "required" }, { "name": "is_wide" }, { "name": "readonly" }, { "name": "hidden" }, { "name": "omit" }, { "name": "index" }, { "name": "sortable" }, { "name": "searchable" }, { "name": "filterable" }, {"name":"inlineHelpText"},{"name":"description"}];
6
+
7
+ // function getFieldsByType(doc, type, dataType) {
8
+ // let fields = [];
9
+ // if(dataType){
10
+ // fields = fields.concat(getFieldsByType(doc, dataType))
11
+ // }
12
+ // switch (type) {
13
+ // case 'textarea':{
14
+ // fields.push({ name: 'rows', required: true });
15
+ // break;
16
+ // }
17
+ // case 'select':{
18
+ // fields.push({ name: 'options', required: true });
19
+ // fields.push({ name: 'options.$', required: true });
20
+ // fields.push({ name: 'options.$.label', required: true });
21
+ // fields.push({ name: 'options.$.value', required: true });
22
+ // fields.push({ name: 'options.$.color', required: false });
23
+ // fields.push({ name: 'options.$.description', required: false });
24
+ // fields.push({ name: 'multiple'});
25
+ // break;
26
+ // }
27
+ // case 'number':{
28
+ // fields.push({ name: 'precision', required: true });
29
+ // fields.push({ name: 'scale', required: true });
30
+ // break;
31
+ // }
32
+ // case 'currency':{
33
+ // fields.push({ name: 'precision', required: true });
34
+ // fields.push({ name: 'scale', required: true });
35
+ // break;
36
+ // }
37
+ // case 'percent':{
38
+ // fields.push({ name: 'precision', required: true });
39
+ // fields.push({ name: 'scale', required: true });
40
+ // break;
41
+ // }
42
+ // case 'lookup': {
43
+ // fields.push({ name: 'reference_to'});
44
+ // fields.push({ name: 'filtersFunction'});
45
+ // fields.push({ name: 'optionsFunction'});
46
+ // fields.push({ name: 'multiple'});
47
+ // break;
48
+ // }
49
+ // case 'master_detail': {
50
+ // fields.push({ name: 'reference_to'});
51
+ // fields.push({ name: 'filtersFunction'});
52
+ // fields.push({ name: 'optionsFunction'});
53
+ // fields.push({ name: 'write_requires_master_read'});
54
+ // break;
55
+ // }
56
+ // case 'autonumber': {
57
+ // fields.push({ name: 'formula', required: true });
58
+ // break;
59
+ // }
60
+ // case 'formula': {
61
+ // fields.push({ name: 'formula', required: true });
62
+ // fields.push({ name: 'data_type', required: true });
63
+ // fields.push({ name: 'formula_blank_value', required: true });
64
+ // break;
65
+ // }
66
+ // case 'summary': {
67
+ // fields.push({ name: 'summary_object', required: true });
68
+ // fields.push({ name: 'summary_type', required: true });
69
+ // if(doc.summary_type != 'count'){
70
+ // fields.push({ name: 'summary_field', required: true });
71
+ // }
72
+ // // fields.push({ name: 'data_type', required: true });
73
+ // fields.push({ name: 'precision', required: true });
74
+ // fields.push({ name: 'scale', required: true });
75
+ // fields.push({ name: 'summary_filters' });
76
+ // fields.push({ name: 'summary_filters.$' });
77
+ // fields.push({ name: 'summary_filters.$.field' });
78
+ // fields.push({ name: 'summary_filters.$.operation' });
79
+ // fields.push({ name: 'summary_filters.$.value' });
80
+ // break;
81
+ // }
82
+ // case 'image': {
83
+ // // fields.push({ name: 'multiple'}); image多选时,单个字段编辑窗口样式异常,暂时不支持
84
+ // break;
85
+ // }
86
+ // case 'url': {
87
+ // fields.push({ name: 'show_as_qr'});
88
+ // break;
89
+ // }
90
+ // default:
91
+ // break;
92
+ // }
93
+ // return fields;
94
+ // }
95
+ // Meteor.startup(function(){
96
+ // $('body').on('hidden.bs.modal', '#afModal', function(){
97
+ // Steedos.ObjectFieldManager.__lastDoc = null;
98
+ // });
99
+ // });
100
+
101
+ // Steedos.ObjectFieldManager.changeSchema = function (doc, schema, when) {
102
+ // var __lastDoc = Steedos.ObjectFieldManager.__lastDoc;
103
+ // var noChange = doc.type && __lastDoc && __lastDoc._id == doc._id && __lastDoc.type == doc.type && __lastDoc.data_type == doc.data_type;
104
+ // if(noChange && doc.type == "summary" && __lastDoc.summary_type != doc.summary_type){
105
+ // // 当字段类型为汇总时,汇总类型如果有变更,有可能“要聚合的字段”属性不一定必填,所以这里强制重新计算Schema
106
+ // noChange = false;
107
+ // }
108
+ // if(noChange){
109
+ // return false;
110
+ // }else{
111
+ // Steedos.ObjectFieldManager.__lastDoc = doc;
112
+ // }
113
+
114
+ // var clone = require('clone');
115
+ // var fields = clone(Creator.getObject("object_fields").fields);
116
+ // var showFields = baseFieldsName.concat(getFieldsByType(doc, doc.type, doc.data_type));
117
+ // if(when === 'view'){
118
+ // showFields.push({ "name": "name" })
119
+ // }else if(when === 'edit' && false){
120
+ // showFields.push({name: '_name', required: true})
121
+ // }
122
+ // var objectName = doc.object;
123
+ // if(_.isObject(objectName)){
124
+ // objectName = objectName.name
125
+ // }
126
+ // var _object = Creator.getObject(objectName);
127
+ // if(!_object){
128
+ // var _objects = Steedos.authRequest(`/api/v4/objects`, { type: 'get', async: false, data: { $filter: "name eq '"+objectName+"'" } });
129
+ // _object = _objects && _objects.value && _objects.value.length > 0 ? _objects.value[0] : null;
130
+ // }
131
+ // // 外部数据源对象必须启用后,才可正常显示对象字段属性
132
+ // if(_object && (_object.database_name || _object.datasource)){
133
+ // showFields.push({"name":"column_name"})
134
+ // showFields.push({"name":"primary"})
135
+ // showFields.push({"name":"generated"})
136
+ // }
137
+ // _.map(fields, function(field, fname){
138
+ // var showField = _.find(showFields, function(item){
139
+ // return item && item.name === fname;
140
+ // })
141
+ // if(showField){
142
+ // Object.assign(field, showField)
143
+ // }else{
144
+ // Object.assign(field, {omit: true, hidden: true})
145
+ // }
146
+ // })
147
+
148
+ // var objectSchema = Creator.getObjectSchema({fields: fields});
149
+ // Object.assign(schema, new SimpleSchema(objectSchema))
150
+ // }
151
+
10
152
  Steedos.ObjectFieldManager.getSummaryFiltersOperation = function(field_type) {
11
153
  var operations, optionals;
12
154
  optionals = {
@@ -29,6 +29,25 @@ fields:
29
29
  label: 'On'
30
30
  help:
31
31
  description:
32
+ options:
33
+ - label: Display in the top right corner of the list
34
+ value: list
35
+ icon: contact_list
36
+ - label: Displayed in the top right corner of the record viewing page and in the drop-down menu for each item in the list view
37
+ value: record
38
+ icon: contact_list
39
+ - label: Displayed in the "More" dropdown menu in the upper right corner of the record viewing page, as well as in the dropdown menu for each item in the list view
40
+ value: record_more
41
+ icon: lead_list
42
+ - label: Display in the drop-down menu for each item in the list view
43
+ value: list_item
44
+ icon: action_list_component
45
+ - label: Displayed in the upper right corner of the record viewing page
46
+ value: record_only
47
+ icon: contract
48
+ - label: Displayed in the "More" drop-down menu in the upper right corner of the record viewing page
49
+ value: record_only_more
50
+ icon: lead_list
32
51
  type:
33
52
  label: Type
34
53
  options:
@@ -46,6 +65,8 @@ fields:
46
65
  listviews:
47
66
  all:
48
67
  label: All
68
+ customize:
69
+ label: Customize
49
70
  CustomLabels:
50
71
  _object_actions_none_todo: >-
51
72
  The action instance is not configured, please configure it in the code.<a
@@ -26,6 +26,25 @@ fields:
26
26
  label: 显示位置
27
27
  help:
28
28
  description:
29
+ options:
30
+ - label: 显示在列表右上角
31
+ value: list
32
+ icon: contact_list
33
+ - label: 显示在记录查看页右上角,以及列表视图中每项的下拉菜单中
34
+ value: record
35
+ icon: contact_list
36
+ - label: 显示在记录查看页右上角的“更多”下拉菜单中,以及列表视图中每项的下拉菜单中
37
+ value: record_more
38
+ icon: lead_list
39
+ - label: 显示在列表视图中每项的下拉菜单中
40
+ value: list_item
41
+ icon: action_list_component
42
+ - label: 显示在记录查看页右上角
43
+ value: record_only
44
+ icon: contract
45
+ - label: 显示在记录查看页右上角的“更多”下拉菜单中
46
+ value: record_only_more
47
+ icon: lead_list
29
48
  type:
30
49
  label: 类型
31
50
  options:
@@ -43,6 +62,8 @@ fields:
43
62
  listviews:
44
63
  all:
45
64
  label: 所有
65
+ customize:
66
+ label: 自定义
46
67
  CustomLabels:
47
68
  _object_actions_none_todo: >-
48
69
  未配置操作按钮实例,请在代码中配置。<a target='_blank'
@@ -33,6 +33,8 @@ fields:
33
33
  value: html
34
34
  - label: Code
35
35
  value: code
36
+ - label: Markdown
37
+ value: markdown
36
38
  - label: Select
37
39
  value: select
38
40
  - label: Checkbox
@@ -63,6 +65,8 @@ fields:
63
65
  value: url
64
66
  - label: Email
65
67
  value: email
68
+ - label: Location
69
+ value: location
66
70
  - label: Image
67
71
  value: image
68
72
  - label: File
@@ -84,6 +88,10 @@ fields:
84
88
  label: Group
85
89
  help:
86
90
  description:
91
+ coordinatesType:
92
+ label: Coordinates Type
93
+ help:
94
+ description:
87
95
  reference_to:
88
96
  label: Reference to
89
97
  help:
@@ -92,6 +100,10 @@ fields:
92
100
  label: Dependent Fields
93
101
  help: If the value of the dependent field changes, the option value of the current field will also change accordingly。
94
102
  description:
103
+ create:
104
+ label: Show New Button
105
+ help:
106
+ description:
95
107
  reference_to_field:
96
108
  label: Reference to field
97
109
  help: The value of the associated object saved to the current object field; For example, after object A is associated with object B, when A1 record is associated with B1 record, B1 record will be stored by default_ Save the ID in the A1 record. If the foreign key field is modified, the 'foreign key field' will be replaced_ Store the ID in the A1 record.
@@ -232,6 +244,10 @@ fields:
232
244
  label: Value
233
245
  help:
234
246
  description:
247
+ summary_depend_on:
248
+ label: Recalculate Summary Depend On
249
+ help: Which fields of the child table are dependent on when the summary is performed. When the values of these fields change, a recalculation of the summary field values of the primary table records is triggered.
250
+ description:
235
251
  column_name:
236
252
  label: Database column name
237
253
  help: Only supports relational databases.
@@ -283,14 +299,18 @@ fields:
283
299
  description:
284
300
  index:
285
301
  label: Is Index Field
286
- help:
302
+ help: The Creation Is Executed Once A Day By Default And The Existing Indexes Are Not Repeatedly Created.
303
+ description:
304
+ unique:
305
+ label: Unique Index
306
+ help: The Creation Is Executed Once A Day By Default And The Existing Indexes Are Not Repeatedly Created.
287
307
  description:
288
308
  sortable:
289
309
  label: Sortable
290
310
  help:
291
311
  description:
292
312
  searchable:
293
- label: Searchable
313
+ label: Enable full-text search
294
314
  help:
295
315
  description:
296
316
  filterable:
@@ -325,12 +345,23 @@ fields:
325
345
  permission to create, edit, or delete child records. This setting is more
326
346
  restrictive than true, and is the default value.
327
347
  description:
348
+ amis:
349
+ label: Amis Attribute
350
+ help:
351
+ description:
352
+ enable_enhanced_lookup:
353
+ label: Enable Enhanced Lookup
354
+ help:
355
+ description:
328
356
  groups:
329
357
  external_data_source: External data source
330
358
  advanced: Advanced
359
+ ui: UI
331
360
  listviews:
332
361
  all:
333
362
  label: All
363
+ customize:
364
+ label: Customize
334
365
  actions:
335
366
  recomputeFormulaValues:
336
367
  label: Recompute Formula Values
@@ -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:
@@ -30,6 +34,8 @@ fields:
30
34
  value: html
31
35
  - label: 代码
32
36
  value: code
37
+ - label: Markdown
38
+ value: markdown
33
39
  - label: 选择框
34
40
  value: select
35
41
  - label: 复选框
@@ -60,6 +66,8 @@ fields:
60
66
  value: url
61
67
  - label: 邮件地址
62
68
  value: email
69
+ - label: 地理位置
70
+ value: location
63
71
  - label: 图片
64
72
  value: image
65
73
  - label: 附件
@@ -77,6 +85,10 @@ fields:
77
85
  label: 字段分组
78
86
  help:
79
87
  description:
88
+ coordinatesType:
89
+ label: 坐标类型
90
+ help:
91
+ description:
80
92
  reference_to:
81
93
  label: 引用对象
82
94
  help:
@@ -85,6 +97,10 @@ fields:
85
97
  label: 依赖的字段
86
98
  help: 联动字段;例如:A是B依赖的字段,当A字段值发生改变,B字段选项值会随之改变。
87
99
  description:
100
+ create:
101
+ label: 是否显示新建按钮
102
+ help:
103
+ description:
88
104
  reference_to_field:
89
105
  label: 外键字段
90
106
  help: 关联的对象保存到当前对象字段的值;例如:A对象关联B对象后,当A1记录关联了B1记录,默认会存B1记录的_id存到A1记录中。如果修改了外键字段后,会将“外键字段”替换_id存储到A1记录中。
@@ -212,6 +228,10 @@ fields:
212
228
  label: 值
213
229
  help:
214
230
  description:
231
+ summary_depend_on:
232
+ label: 汇总依赖的字段
233
+ help: 汇总时依赖了子表的哪些字段,当这些字段值变更时会触发重算主表记录的汇总字段值
234
+ description:
215
235
  column_name:
216
236
  label: 数据库字段名
217
237
  help: 仅支持关系型数据库
@@ -263,18 +283,22 @@ fields:
263
283
  description:
264
284
  index:
265
285
  label: 创建索引
266
- help:
286
+ help: 默认每天凌晨执行一次创建,已有的索引不重复创建。
287
+ description:
288
+ unique:
289
+ label: 创建唯一索引
290
+ help: 默认每天凌晨执行一次创建,已有的索引不重复创建。
267
291
  description:
268
292
  sortable:
269
293
  label: 可排序
270
294
  help:
271
295
  description:
272
296
  searchable:
273
- label: 可搜索
297
+ label: 启用列表页快速搜索
274
298
  help:
275
299
  description:
276
300
  filterable:
277
- label: 过滤器默认字段
301
+ label: 列表页过滤器默认字段
278
302
  help:
279
303
  description:
280
304
  show_as_qr:
@@ -283,7 +307,7 @@ fields:
283
307
  description:
284
308
  visible_on:
285
309
  label: 字段显示公式
286
- help:
310
+ help: <a href='https://docs.steedos.com/zh-CN/no-code/customize/fields/field-attributes#%E5%AD%97%E6%AE%B5%E6%98%BE%E7%A4%BA%E5%85%AC%E5%BC%8F' target='_blank'>查看帮助</a>
287
311
  description:
288
312
  inlineHelpText:
289
313
  label: 提示文本
@@ -298,12 +322,22 @@ fields:
298
322
  help: >-
299
323
  设置主记录上创建、编辑或删除子记录所需的最低访问级别。此字段仅适用于·主表/子表·字段类型。勾选表示允许具有'读取'访问权限的用户创建、编辑或删除子记录。反之表示允许具有'读取/写入'访问权限的用户创建、编辑或删除子记录的权限。
300
324
  description:
325
+ amis:
326
+ label: Amis 属性
327
+ help: <a href='https://docs.steedos.com/zh-CN/no-code/customize/fields/field-attributes/#amis-%E5%B1%9E%E6%80%A7' target='_blank'>查看帮助</a>
328
+ enable_enhanced_lookup:
329
+ label: 启用弹出窗口查找模式
330
+ help:
331
+ description:
301
332
  groups:
302
333
  external_data_source: 外部数据源
303
334
  advanced: 高级
335
+ ui: 界面布局
304
336
  listviews:
305
337
  all:
306
338
  label: 所有
339
+ customize:
340
+ label: 自定义
307
341
  actions:
308
342
  recomputeFormulaValues:
309
343
  label: 重算公式值
@@ -60,7 +60,16 @@ fields:
60
60
  listviews:
61
61
  all:
62
62
  label: All
63
+ customize:
64
+ label: Customize
65
+ groups:
66
+ general_information: General Information
67
+ buttons: Buttons
68
+ fields: Fields
69
+ related_lists: Related Lists
63
70
  actions:
71
+ createDefaultRecordView:
72
+ label: Create Default Page Layout
64
73
  customize:
65
74
  label: Customize
66
75
  CustomLabels:
@@ -106,7 +106,16 @@ fields:
106
106
  listviews:
107
107
  all:
108
108
  label: 所有
109
+ customize:
110
+ label: 自定义
111
+ groups:
112
+ general_information: 基本信息
113
+ buttons: 按钮
114
+ fields: 字段
115
+ related_lists: 子表
109
116
  actions:
117
+ createDefaultRecordView:
118
+ label: 创建默认页面布局
110
119
  customize:
111
120
  label: 自定义
112
121
  CustomLabels:
@@ -61,7 +61,7 @@ fields:
61
61
  value: infinite
62
62
  description:
63
63
  columns:
64
- label: Columns
64
+ label: PC Columns
65
65
  help:
66
66
  description:
67
67
  columns.$:
@@ -125,6 +125,15 @@ fields:
125
125
  label: Value
126
126
  help:
127
127
  description:
128
+ crud_mode:
129
+ label: Crud Mode
130
+ help:
131
+ options:
132
+ - label: Table
133
+ value: table
134
+ - label: Cards
135
+ value: cards
136
+ description:
128
137
  filter_logic:
129
138
  label: Logic
130
139
  help:
@@ -153,11 +162,30 @@ fields:
153
162
  label: Field
154
163
  help:
155
164
  description:
165
+ is_enable:
166
+ label: Enable
167
+ help:
168
+ description:
169
+ requestAdaptor:
170
+ label: Request Adaptor
171
+ help: "Function signature: (api)=>api, the data is in api.data, and after modification, the api object is returned."
172
+ description:
173
+ adaptor:
174
+ label: Adaptor
175
+ help: "Function signature: (payload, response, api)=>payload"
176
+ description:
156
177
  groups:
157
178
  advanced: Advanced
179
+ show_columns: Show Columns
180
+ sort: Sort
181
+ filters: Filters
182
+ search_term: Search Term
183
+ data_interface: Data Interface
158
184
  listviews:
159
185
  all:
160
186
  label: All List View
187
+ customize:
188
+ label: Customize
161
189
  actions:
162
190
  customize:
163
191
  label: Customize