@steedos/standard-object-database 2.6.1-beta.7 → 2.6.2-beta.3

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 (54) hide show
  1. package/main/default/client/coordtransform.client.js +153 -0
  2. package/main/default/client/object_fields.client.js +150 -44
  3. package/main/default/objectTranslations/object_actions.en/object_actions.en.objectTranslation.yml +2 -0
  4. package/main/default/objectTranslations/object_actions.zh-CN/object_actions.zh-CN.objectTranslation.yml +2 -0
  5. package/main/default/objectTranslations/object_fields.en/object_fields.en.objectTranslation.yml +27 -2
  6. package/main/default/objectTranslations/object_fields.zh-CN/object_fields.zh-CN.objectTranslation.yml +32 -4
  7. package/main/default/objectTranslations/object_layouts.en/object_layouts.en.objectTranslation.yml +2 -0
  8. package/main/default/objectTranslations/object_layouts.zh-CN/object_layouts.zh-CN.objectTranslation.yml +2 -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 +7 -1
  12. package/main/default/objectTranslations/object_triggers.zh-CN/object_triggers.zh-CN.objectTranslation.yml +8 -2
  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/objects/1.objects.observe.object.js +4 -1
  16. package/main/default/objects/7.object_actions.observe.object.js +7 -1
  17. package/main/default/objects/object_actions.action.js +34 -3
  18. package/main/default/objects/object_actions.object.js +4 -2
  19. package/main/default/objects/object_actions.object.yml +26 -1
  20. package/main/default/objects/object_fields.object.js +33 -19
  21. package/main/default/objects/object_fields.object.yml +129 -83
  22. package/main/default/objects/object_layouts.action.js +4 -4
  23. package/main/default/objects/object_layouts.object.yml +16 -2
  24. package/main/default/objects/object_listviews.object.yml +67 -16
  25. package/main/default/objects/object_triggers.object.yml +13 -4
  26. package/main/default/objects/object_validation_rules.object.yml +10 -0
  27. package/main/default/objects/objects/buttons/custom.button.js +48 -0
  28. package/main/default/objects/objects/buttons/custom.button.yml +6 -0
  29. package/main/default/objects/objects.action.js +26 -3
  30. package/main/default/objects/objects.core.js +17 -1
  31. package/main/default/objects/objects.object.js +3 -2
  32. package/main/default/objects/objects.object.yml +28 -2
  33. package/main/default/objects/objects.tree.js +3 -2
  34. package/main/default/pages/design_field_layout.page.amis.json +418 -0
  35. package/main/default/pages/design_field_layout.page.yml +7 -0
  36. package/main/default/pages/object_detail.page.amis.json +6 -6
  37. package/main/default/pages/object_fields_form.page.amis.json +35 -0
  38. package/main/default/pages/{object_fields.page.yml → object_fields_form.page.yml} +5 -5
  39. package/main/default/pages/object_form.page.amis.json +31 -0
  40. package/main/default/pages/object_form.page.yml +12 -0
  41. package/main/default/routes/amis_button_design.router.js +11 -2
  42. package/main/default/routes/amis_listview_design.router.js +11 -2
  43. package/main/default/services/suggestions.service.js +4 -5
  44. package/main/default/triggers/object_actions.trigger.js +6 -2
  45. package/main/default/triggers/object_fields.trigger.js +67 -10
  46. package/main/default/triggers/object_listviews.trigger.js +11 -4
  47. package/main/default/triggers/objects.trigger.js +4 -26
  48. package/package.json +2 -2
  49. package/package.service.js +132 -3
  50. package/src/triggers/index.js +11 -0
  51. package/src/triggers/object_fields_trigger_create_index.js +58 -0
  52. package/main/default/objects/object_layouts/buttons/standard_edit.button.yml +0 -44
  53. package/main/default/pages/object_fields.page.amis.json +0 -42
  54. package/main/default/services/object_fields.service.js +0 -242
@@ -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: liaodaxue
5
- * @LastEditTime: 2023-07-24 13:57:51
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 = {
@@ -67,40 +209,4 @@ Steedos.ObjectFieldManager.getSummaryFiltersOperation = function(field_type) {
67
209
  operations.push(optionals.equal, optionals.unequal);
68
210
  }
69
211
  return operations;
70
- };
71
-
72
- (function () {
73
- try {
74
- var styleCss = $(`<style>
75
- .defaultValue_field div:first-child{
76
- flex-grow: 1;
77
- }
78
- .defaultValue_field .defaultValue_field_formula{
79
- // margin: 4px;
80
- }
81
- .defaultValue_field .defaultValue_field_formula .antd-Form-label{
82
- visibility: hidden;
83
- }
84
-
85
- .defaultValue_field .defaultValue_field_formula_visible{
86
- flex-grow: 1;
87
- }
88
- .defaultValue_field .defaultValue_field_formula_visible .antd-Form-label .antd-TplField{
89
- visibility: visible;
90
- }
91
- .defaultValue_field .defaultValue_field_hidden{
92
- display: none;
93
- }
94
- .defaultValue_field .defaultValue_field_formula_hidden{
95
- flex-grow: 0;
96
- }
97
- .defaultValue_field .defaultValue_field_formula_hidden .antd-FormulaPicker-input{
98
- display: none;
99
- }
100
-
101
- </style>`);
102
- $("head").append(styleCss);
103
- } catch (error) {
104
- console.log(error);
105
- }
106
- })();
212
+ };
@@ -65,6 +65,8 @@ fields:
65
65
  listviews:
66
66
  all:
67
67
  label: All
68
+ customize:
69
+ label: Customize
68
70
  CustomLabels:
69
71
  _object_actions_none_todo: >-
70
72
  The action instance is not configured, please configure it in the code.<a
@@ -62,6 +62,8 @@ fields:
62
62
  listviews:
63
63
  all:
64
64
  label: 所有
65
+ customize:
66
+ label: 自定义
65
67
  CustomLabels:
66
68
  _object_actions_none_todo: >-
67
69
  未配置操作按钮实例,请在代码中配置。<a target='_blank'
@@ -65,6 +65,8 @@ fields:
65
65
  value: url
66
66
  - label: Email
67
67
  value: email
68
+ - label: Location
69
+ value: location
68
70
  - label: Image
69
71
  value: image
70
72
  - label: File
@@ -86,6 +88,10 @@ fields:
86
88
  label: Group
87
89
  help:
88
90
  description:
91
+ coordinatesType:
92
+ label: Coordinates Type
93
+ help:
94
+ description:
89
95
  reference_to:
90
96
  label: Reference to
91
97
  help:
@@ -94,6 +100,10 @@ fields:
94
100
  label: Dependent Fields
95
101
  help: If the value of the dependent field changes, the option value of the current field will also change accordingly。
96
102
  description:
103
+ create:
104
+ label: Show New Button
105
+ help:
106
+ description:
97
107
  reference_to_field:
98
108
  label: Reference to field
99
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.
@@ -234,6 +244,10 @@ fields:
234
244
  label: Value
235
245
  help:
236
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:
237
251
  column_name:
238
252
  label: Database column name
239
253
  help: Only supports relational databases.
@@ -285,14 +299,18 @@ fields:
285
299
  description:
286
300
  index:
287
301
  label: Is Index Field
288
- 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.
289
307
  description:
290
308
  sortable:
291
309
  label: Sortable
292
310
  help:
293
311
  description:
294
312
  searchable:
295
- label: Searchable
313
+ label: Enable full-text search
296
314
  help:
297
315
  description:
298
316
  filterable:
@@ -331,12 +349,19 @@ fields:
331
349
  label: Amis Attribute
332
350
  help:
333
351
  description:
352
+ enable_enhanced_lookup:
353
+ label: Enable Enhanced Lookup
354
+ help:
355
+ description:
334
356
  groups:
335
357
  external_data_source: External data source
336
358
  advanced: Advanced
359
+ ui: UI
337
360
  listviews:
338
361
  all:
339
362
  label: All
363
+ customize:
364
+ label: Customize
340
365
  actions:
341
366
  recomputeFormulaValues:
342
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:
@@ -62,6 +66,8 @@ fields:
62
66
  value: url
63
67
  - label: 邮件地址
64
68
  value: email
69
+ - label: 地理位置
70
+ value: location
65
71
  - label: 图片
66
72
  value: image
67
73
  - label: 附件
@@ -79,6 +85,10 @@ fields:
79
85
  label: 字段分组
80
86
  help:
81
87
  description:
88
+ coordinatesType:
89
+ label: 坐标类型
90
+ help:
91
+ description:
82
92
  reference_to:
83
93
  label: 引用对象
84
94
  help:
@@ -87,6 +97,10 @@ fields:
87
97
  label: 依赖的字段
88
98
  help: 联动字段;例如:A是B依赖的字段,当A字段值发生改变,B字段选项值会随之改变。
89
99
  description:
100
+ create:
101
+ label: 是否显示新建按钮
102
+ help:
103
+ description:
90
104
  reference_to_field:
91
105
  label: 外键字段
92
106
  help: 关联的对象保存到当前对象字段的值;例如:A对象关联B对象后,当A1记录关联了B1记录,默认会存B1记录的_id存到A1记录中。如果修改了外键字段后,会将“外键字段”替换_id存储到A1记录中。
@@ -214,6 +228,10 @@ fields:
214
228
  label: 值
215
229
  help:
216
230
  description:
231
+ summary_depend_on:
232
+ label: 汇总依赖的字段
233
+ help: 汇总时依赖了子表的哪些字段,当这些字段值变更时会触发重算主表记录的汇总字段值
234
+ description:
217
235
  column_name:
218
236
  label: 数据库字段名
219
237
  help: 仅支持关系型数据库
@@ -265,18 +283,22 @@ fields:
265
283
  description:
266
284
  index:
267
285
  label: 创建索引
268
- help:
286
+ help: 默认每天凌晨执行一次创建,已有的索引不重复创建。
287
+ description:
288
+ unique:
289
+ label: 创建唯一索引
290
+ help: 默认每天凌晨执行一次创建,已有的索引不重复创建。
269
291
  description:
270
292
  sortable:
271
293
  label: 可排序
272
294
  help:
273
295
  description:
274
296
  searchable:
275
- label: 可搜索
297
+ label: 启用列表页快速搜索
276
298
  help:
277
299
  description:
278
300
  filterable:
279
- label: 过滤器默认字段
301
+ label: 列表页过滤器默认字段
280
302
  help:
281
303
  description:
282
304
  show_as_qr:
@@ -285,7 +307,7 @@ fields:
285
307
  description:
286
308
  visible_on:
287
309
  label: 字段显示公式
288
- 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>
289
311
  description:
290
312
  inlineHelpText:
291
313
  label: 提示文本
@@ -302,14 +324,20 @@ fields:
302
324
  description:
303
325
  amis:
304
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: 启用弹出窗口查找模式
305
330
  help:
306
331
  description:
307
332
  groups:
308
333
  external_data_source: 外部数据源
309
334
  advanced: 高级
335
+ ui: 界面布局
310
336
  listviews:
311
337
  all:
312
338
  label: 所有
339
+ customize:
340
+ label: 自定义
313
341
  actions:
314
342
  recomputeFormulaValues:
315
343
  label: 重算公式值
@@ -60,6 +60,8 @@ fields:
60
60
  listviews:
61
61
  all:
62
62
  label: All
63
+ customize:
64
+ label: Customize
63
65
  groups:
64
66
  general_information: General Information
65
67
  buttons: Buttons
@@ -106,6 +106,8 @@ fields:
106
106
  listviews:
107
107
  all:
108
108
  label: 所有
109
+ customize:
110
+ label: 自定义
109
111
  groups:
110
112
  general_information: 基本信息
111
113
  buttons: 按钮
@@ -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
@@ -52,7 +52,7 @@ fields:
52
52
  value: infinite
53
53
  description:
54
54
  columns:
55
- label: 显示的列
55
+ label: 电脑端显示的列
56
56
  help:
57
57
  description:
58
58
  columns.$:
@@ -146,15 +146,41 @@ fields:
146
146
  description:
147
147
  sort_no:
148
148
  label: 排序号
149
+ is_enable:
150
+ label: 启用
151
+ crud_mode:
152
+ label: 显示模式
153
+ help:
154
+ options:
155
+ - label: 表格
156
+ value: table
157
+ - label: 卡片
158
+ value: cards
159
+ description:
149
160
  enable_amis_schema:
150
161
  label: 使用 amis自定义列表
151
162
  amis_schema:
152
163
  label: Amis Schema
164
+ requestAdaptor:
165
+ label: 发送适配器
166
+ help: "函数签名:(api) => api, 数据在 api.data 中,修改后返回 api 对象。"
167
+ description:
168
+ adaptor:
169
+ label: 接收适配器
170
+ help: "函数签名: (payload, response, api) => payload"
171
+ description:
153
172
  groups:
154
173
  advanced: 高级
174
+ show_columns: 显示列
175
+ sort: 排序
176
+ filters: 过滤
177
+ search_term: 搜索项
178
+ data_interface: 数据接口
155
179
  listviews:
156
180
  all:
157
181
  label: 全部
182
+ customize:
183
+ label: 自定义
158
184
  actions:
159
185
  customize:
160
186
  label: 自定义