@byteluck-fe/model-driven-driven 4.38.0-lx0 → 6.1.0-1-beta.1
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.
- package/dist/esm/Builder.js +46 -31
- package/dist/esm/Designer.js +4 -8
- package/dist/esm/Driven.js +2 -1
- package/dist/esm/Store.js +9 -9
- package/dist/esm/constants.js +7 -6
- package/dist/esm/designerUtils.js +8 -3
- package/dist/esm/utils.js +14 -89
- package/dist/index.umd.js +3 -3
- package/dist/types/Builder.d.ts +2 -1
- package/dist/types/Driven.d.ts +2 -0
- package/dist/types/designerUtils.d.ts +0 -1
- package/dist/types/utils.d.ts +1 -15
- package/package.json +6 -6
package/dist/esm/Builder.js
CHANGED
|
@@ -30,6 +30,7 @@ function _define_property(obj, key, value) {
|
|
|
30
30
|
}
|
|
31
31
|
return obj;
|
|
32
32
|
}
|
|
33
|
+
import { getLocaleText } from '@byteluck-fe/locale-message';
|
|
33
34
|
import Designer from './Designer';
|
|
34
35
|
import { CONTROL_TYPE } from '@byteluck-fe/model-driven-shared';
|
|
35
36
|
export var Builder = /*#__PURE__*/ function() {
|
|
@@ -97,39 +98,53 @@ export var Builder = /*#__PURE__*/ function() {
|
|
|
97
98
|
listview.children.push(simpleSearch);
|
|
98
99
|
// @ts-ignore
|
|
99
100
|
listview.children.push(gridTable);
|
|
100
|
-
listview.props.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
listview.props.rowStyle = {
|
|
102
|
+
type: 'rules',
|
|
103
|
+
"interval": {
|
|
104
|
+
"color": ""
|
|
105
|
+
},
|
|
106
|
+
rules: [
|
|
105
107
|
{
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
'
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
108
|
+
id: 'default',
|
|
109
|
+
name: getLocaleText('CMD.approvedDocuments', null, '审批通过单据'),
|
|
110
|
+
color: 'theme',
|
|
111
|
+
filters: [
|
|
112
|
+
{
|
|
113
|
+
ruleId: 1,
|
|
114
|
+
symbol: 'op_equal',
|
|
115
|
+
leftVariableBo: {
|
|
116
|
+
type: 'varchar',
|
|
117
|
+
value: 'process_status',
|
|
118
|
+
name: getLocaleText('CMD.processStatus', null, '流程状态')
|
|
119
|
+
},
|
|
120
|
+
checked: false,
|
|
121
|
+
describe: 'ruleLine',
|
|
122
|
+
type: 'condition',
|
|
123
|
+
rightVariableBo: {
|
|
124
|
+
type: 'custom',
|
|
125
|
+
value: [
|
|
126
|
+
'COMPLETE'
|
|
127
|
+
],
|
|
128
|
+
displayBos: []
|
|
129
|
+
},
|
|
130
|
+
isLowPerformance: false,
|
|
131
|
+
isMoreRelation: false
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"settings": [
|
|
135
|
+
{
|
|
136
|
+
"color": "theme",
|
|
137
|
+
"field_codes": [
|
|
138
|
+
"process_status"
|
|
139
|
+
],
|
|
140
|
+
"type": "fontColor",
|
|
141
|
+
"scope": "col"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
script: "(SpecialMatch(data,sys,'process_status','varchar','op_equal','COMPLETE'))"
|
|
125
145
|
}
|
|
126
146
|
]
|
|
127
|
-
}
|
|
128
|
-
listview.props.rowStyleRulesScript.push({
|
|
129
|
-
id: 'default',
|
|
130
|
-
script: "(params.data['process_status']==='COMPLETE')",
|
|
131
|
-
color: 'theme'
|
|
132
|
-
});
|
|
147
|
+
};
|
|
133
148
|
return listview;
|
|
134
149
|
}
|
|
135
150
|
},
|
|
@@ -157,7 +172,7 @@ export var Builder = /*#__PURE__*/ function() {
|
|
|
157
172
|
var grid = this.designer.createControlInstance(// @ts-ignore
|
|
158
173
|
CONTROL_TYPE.GRID);
|
|
159
174
|
var vueFormItem = this.designer.createControlInstance(// @ts-ignore
|
|
160
|
-
CONTROL_TYPE.
|
|
175
|
+
CONTROL_TYPE.VUE_PAGE);
|
|
161
176
|
// @ts-ignore
|
|
162
177
|
vueFormItem.props.isHideCaption = true;
|
|
163
178
|
// @ts-ignore
|
package/dist/esm/Designer.js
CHANGED
|
@@ -146,7 +146,7 @@ function _is_native_reflect_construct() {
|
|
|
146
146
|
})();
|
|
147
147
|
}
|
|
148
148
|
function _ts_generator(thisArg, body) {
|
|
149
|
-
var f, y, t,
|
|
149
|
+
var f, y, t, _ = {
|
|
150
150
|
label: 0,
|
|
151
151
|
sent: function() {
|
|
152
152
|
if (t[0] & 1) throw t[1];
|
|
@@ -154,12 +154,8 @@ function _ts_generator(thisArg, body) {
|
|
|
154
154
|
},
|
|
155
155
|
trys: [],
|
|
156
156
|
ops: []
|
|
157
|
-
};
|
|
158
|
-
return g = {
|
|
159
|
-
next: verb(0),
|
|
160
|
-
"throw": verb(1),
|
|
161
|
-
"return": verb(2)
|
|
162
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
157
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
158
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
163
159
|
return this;
|
|
164
160
|
}), g;
|
|
165
161
|
function verb(n) {
|
|
@@ -172,7 +168,7 @@ function _ts_generator(thisArg, body) {
|
|
|
172
168
|
}
|
|
173
169
|
function step(op) {
|
|
174
170
|
if (f) throw new TypeError("Generator is already executing.");
|
|
175
|
-
while(_)try {
|
|
171
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
176
172
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
177
173
|
if (y = 0, t) op = [
|
|
178
174
|
op[0] & 2,
|
package/dist/esm/Driven.js
CHANGED
|
@@ -186,6 +186,7 @@ import { Designer } from './Designer';
|
|
|
186
186
|
import EventLogic from './EventLogic';
|
|
187
187
|
import { checkSchema, generatePermissions, getModelBindInfoList, toSchema } from './utils';
|
|
188
188
|
import { Group, initSettings, Tab } from '@byteluck-fe/model-driven-settings';
|
|
189
|
+
import { DEFAULT_LOCALE } from '@byteluck-fe/model-driven-shared';
|
|
189
190
|
// 当前正在注册的插件名称
|
|
190
191
|
var applyingPluginName = '';
|
|
191
192
|
/**
|
|
@@ -211,7 +212,7 @@ var applyingPluginName = '';
|
|
|
211
212
|
_define_property(_this, "getModelBindInfoList", getModelBindInfoList), // TODO 拿到permission_controls
|
|
212
213
|
_define_property(_this, "generatePermissions", generatePermissions);
|
|
213
214
|
_this.$options = Object.freeze(options);
|
|
214
|
-
var _this_$options = _this.$options, _this_$options_autoMount = _this_$options.autoMount, autoMount = _this_$options_autoMount === void 0 ? false : _this_$options_autoMount, tmp = _this_$options.Designer, DesignerClass = tmp === void 0 ? Designer : tmp, schema = _this_$options.schema, _this_$options_mode = _this_$options.mode, mode = _this_$options_mode === void 0 ? 'form' : _this_$options_mode, tmp1 = _this_$options.store, storeOptions = tmp1 === void 0 ? {} : tmp1;
|
|
215
|
+
var _this_$options = _this.$options, _this_$options_autoMount = _this_$options.autoMount, autoMount = _this_$options_autoMount === void 0 ? false : _this_$options_autoMount, tmp = _this_$options.Designer, DesignerClass = tmp === void 0 ? Designer : tmp, schema = _this_$options.schema, _this_$options_mode = _this_$options.mode, mode = _this_$options_mode === void 0 ? 'form' : _this_$options_mode, tmp1 = _this_$options.store, storeOptions = tmp1 === void 0 ? {} : tmp1, messagesI18n = _this_$options.messagesI18n, _this_$options_language = _this_$options.language, language = _this_$options_language === void 0 ? DEFAULT_LOCALE : _this_$options_language;
|
|
215
216
|
_this.eventLogic = new EventLogic();
|
|
216
217
|
_this.designer = new DesignerClass();
|
|
217
218
|
_this.store = new Store(_object_spread({
|
package/dist/esm/Store.js
CHANGED
|
@@ -89,7 +89,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
89
89
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
90
90
|
}
|
|
91
91
|
import { isDataBind } from '@byteluck-fe/model-driven-core';
|
|
92
|
-
import { hasChildrenControl,
|
|
92
|
+
import { hasChildrenControl, hasHeaderControl } from './designerUtils';
|
|
93
93
|
import { CONTROL_BASE_TYPE, CONTROL_TYPE } from '@byteluck-fe/model-driven-shared';
|
|
94
94
|
// 维护当前selected,。。 selectedControlSetting
|
|
95
95
|
export var Store = /*#__PURE__*/ function() {
|
|
@@ -294,9 +294,11 @@ function setInstanceInDataFieldCodeMap(instance, dataFieldCodeMap) {
|
|
|
294
294
|
if (isDataBind(dataBind)) {
|
|
295
295
|
setDataFieldCodeMap(dataFieldCodeMap, dataBind, instance);
|
|
296
296
|
} else {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
if (dataBind) {
|
|
298
|
+
Object.values(dataBind).forEach(function(subDataBind) {
|
|
299
|
+
setDataFieldCodeMap(dataFieldCodeMap, subDataBind, instance);
|
|
300
|
+
});
|
|
301
|
+
}
|
|
300
302
|
}
|
|
301
303
|
}
|
|
302
304
|
}
|
|
@@ -312,11 +314,9 @@ export function loop(instances, callback) {
|
|
|
312
314
|
if (hasHeaderControl(item)) {
|
|
313
315
|
loop(item.props.headers, callback);
|
|
314
316
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
loop((_item_props_footers = (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.footers) !== null && _item_props_footers !== void 0 ? _item_props_footers : [], callback);
|
|
319
|
-
}
|
|
317
|
+
// if(item)) {
|
|
318
|
+
// loop(item.props?.footers ?? [], callback)
|
|
319
|
+
// }
|
|
320
320
|
});
|
|
321
321
|
}
|
|
322
322
|
export function isDataScopeInstance(instance) {
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getLocaleText } from '@byteluck-fe/locale-message';
|
|
1
2
|
import { CONTROL_TYPE, FieldTypes } from '@byteluck-fe/model-driven-shared';
|
|
2
3
|
// 使用ObjectDataBind 的控件
|
|
3
4
|
export var objectDataBindControlTypes = [
|
|
@@ -7,27 +8,27 @@ export var objectDataBindControlTypes = [
|
|
|
7
8
|
];
|
|
8
9
|
export var objectDataBindKeyToFieldType = {
|
|
9
10
|
amount: {
|
|
10
|
-
caption: '金额',
|
|
11
|
+
caption: getLocaleText('CMD.amount', null, '金额'),
|
|
11
12
|
fieldType: FieldTypes.DECIMAL
|
|
12
13
|
},
|
|
13
14
|
currency: {
|
|
14
|
-
caption: '币种',
|
|
15
|
+
caption: getLocaleText('CMD.currency', null, '币种'),
|
|
15
16
|
fieldType: FieldTypes.VARCHAR
|
|
16
17
|
},
|
|
17
18
|
result: {
|
|
18
|
-
caption: '结果',
|
|
19
|
+
caption: getLocaleText('CMD.result', null, '结果'),
|
|
19
20
|
fieldType: FieldTypes.DECIMAL
|
|
20
21
|
},
|
|
21
22
|
unit: {
|
|
22
|
-
caption: '单位',
|
|
23
|
+
caption: getLocaleText('CMD.unit', null, '单位'),
|
|
23
24
|
fieldType: FieldTypes.VARCHAR
|
|
24
25
|
},
|
|
25
26
|
min: {
|
|
26
|
-
caption: '开始时间',
|
|
27
|
+
caption: getLocaleText('CMD.startTime', null, '开始时间'),
|
|
27
28
|
fieldType: FieldTypes.TIMESTAMP
|
|
28
29
|
},
|
|
29
30
|
max: {
|
|
30
|
-
caption: '结束时间',
|
|
31
|
+
caption: getLocaleText('CMD.endTime', null, '结束时间'),
|
|
31
32
|
fieldType: FieldTypes.TIMESTAMP
|
|
32
33
|
}
|
|
33
34
|
};
|
|
@@ -5,9 +5,14 @@ export function hasChildrenControl(instance) {
|
|
|
5
5
|
export function hasHeaderControl(instance) {
|
|
6
6
|
return 'headers' in instance.props && isArray(instance.props.headers);
|
|
7
7
|
}
|
|
8
|
-
export function hasFooterControl(
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// export function hasFooterControl(
|
|
9
|
+
// instance: DesignerControl
|
|
10
|
+
// ): instance is DesignerListControl {
|
|
11
|
+
// return (
|
|
12
|
+
// 'footers' in instance.props &&
|
|
13
|
+
// isArray((instance as DesignerListControl).props.footers)
|
|
14
|
+
// )
|
|
15
|
+
// }
|
|
11
16
|
export function loopFormControl(control, callback) {
|
|
12
17
|
if (Array.isArray(control)) {
|
|
13
18
|
control.map(function(item) {
|
package/dist/esm/utils.js
CHANGED
|
@@ -86,7 +86,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
86
86
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
87
87
|
}
|
|
88
88
|
function _ts_generator(thisArg, body) {
|
|
89
|
-
var f, y, t,
|
|
89
|
+
var f, y, t, _ = {
|
|
90
90
|
label: 0,
|
|
91
91
|
sent: function() {
|
|
92
92
|
if (t[0] & 1) throw t[1];
|
|
@@ -94,12 +94,8 @@ function _ts_generator(thisArg, body) {
|
|
|
94
94
|
},
|
|
95
95
|
trys: [],
|
|
96
96
|
ops: []
|
|
97
|
-
};
|
|
98
|
-
return g = {
|
|
99
|
-
next: verb(0),
|
|
100
|
-
"throw": verb(1),
|
|
101
|
-
"return": verb(2)
|
|
102
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
97
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
98
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
103
99
|
return this;
|
|
104
100
|
}), g;
|
|
105
101
|
function verb(n) {
|
|
@@ -112,7 +108,7 @@ function _ts_generator(thisArg, body) {
|
|
|
112
108
|
}
|
|
113
109
|
function step(op) {
|
|
114
110
|
if (f) throw new TypeError("Generator is already executing.");
|
|
115
|
-
while(_)try {
|
|
111
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
116
112
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
117
113
|
if (y = 0, t) op = [
|
|
118
114
|
op[0] & 2,
|
|
@@ -181,9 +177,11 @@ function _ts_generator(thisArg, body) {
|
|
|
181
177
|
}
|
|
182
178
|
}
|
|
183
179
|
import { loopFormControl } from './designerUtils';
|
|
184
|
-
import { CONTROL_BASE_TYPE, CONTROL_TYPE,
|
|
185
|
-
|
|
186
|
-
|
|
180
|
+
import { CONTROL_BASE_TYPE, CONTROL_TYPE, // FieldTypes,
|
|
181
|
+
// FieldTypeToColumnType,
|
|
182
|
+
isArray } from '@byteluck-fe/model-driven-shared';
|
|
183
|
+
import { objectDataBindControlTypes } from './constants';
|
|
184
|
+
import { getLocaleText } from '@byteluck-fe/locale-message';
|
|
187
185
|
export function getMasterFormControls(controls) {
|
|
188
186
|
var formctls = [];
|
|
189
187
|
// @ts-ignore
|
|
@@ -229,75 +227,6 @@ function fieldCodeBeforeAddPrefix(fieldCode) {
|
|
|
229
227
|
}
|
|
230
228
|
return prefix + fieldCode;
|
|
231
229
|
}
|
|
232
|
-
/**
|
|
233
|
-
* @description 通过fieldType获取列表表头的type
|
|
234
|
-
* */ export function getColumnTypeFromFiledType(fieldType) {
|
|
235
|
-
return FieldTypeToColumnType[fieldType];
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* @description 通过modelBindInfoList生成多个columns
|
|
239
|
-
* */ export function getColumnsFromModelBindInfoList(modelBindInfoList) {
|
|
240
|
-
var designer = new Designer();
|
|
241
|
-
var columns = [];
|
|
242
|
-
modelBindInfoList.forEach(function(item) {
|
|
243
|
-
// 控件在明细子表内或者没有dataBind的话 不做生成
|
|
244
|
-
if (item.parentId || !item.dataBind) return;
|
|
245
|
-
// 如果是对象形式的dataBind的话
|
|
246
|
-
if (objectDataBindControlTypes.includes(item.type)) {
|
|
247
|
-
var objectDataBind = item.dataBind;
|
|
248
|
-
var datasourceBind = item.datasourceBind;
|
|
249
|
-
// 对象的每一个key生成一个column
|
|
250
|
-
Object.keys(objectDataBind).forEach(function(key) {
|
|
251
|
-
// 对应的dataBind
|
|
252
|
-
var dataBind = objectDataBind[key];
|
|
253
|
-
// 当前key对应的fieldType
|
|
254
|
-
var fieldType = objectDataBindKeyToFieldType[key].fieldType;
|
|
255
|
-
// 拼接当前列的caption
|
|
256
|
-
var caption = item.caption + '_' + objectDataBindKeyToFieldType[key].caption;
|
|
257
|
-
// 通过fieldType获取列类型
|
|
258
|
-
var controlType = getColumnTypeFromFiledType(fieldType);
|
|
259
|
-
if (!controlType) return;
|
|
260
|
-
var props = {
|
|
261
|
-
caption: caption,
|
|
262
|
-
dataBind: dataBind
|
|
263
|
-
};
|
|
264
|
-
if (key === 'currency') {
|
|
265
|
-
props.optionConfig = 'datasource';
|
|
266
|
-
props.datasourceBind = datasourceBind;
|
|
267
|
-
}
|
|
268
|
-
// @ts-ignore
|
|
269
|
-
var column = designer.createControlInstance(controlType, {
|
|
270
|
-
props: props
|
|
271
|
-
});
|
|
272
|
-
column && columns.push(column);
|
|
273
|
-
});
|
|
274
|
-
} else {
|
|
275
|
-
var controlType = getColumnTypeFromFiledType(item.fieldType);
|
|
276
|
-
if (!controlType) return;
|
|
277
|
-
// @ts-ignore
|
|
278
|
-
var column = designer.createControlInstance(controlType, {
|
|
279
|
-
props: {
|
|
280
|
-
caption: item.caption,
|
|
281
|
-
dataBind: item.dataBind,
|
|
282
|
-
datasourceBind: item.datasourceBind
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
column && columns.push(column);
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
return columns;
|
|
289
|
-
}
|
|
290
|
-
export function getColumnsFromFiledType(fieldTypes) {
|
|
291
|
-
var designer = new Designer();
|
|
292
|
-
var fieldTypesMap = Array.isArray(fieldTypes) ? fieldTypes : [
|
|
293
|
-
fieldTypes
|
|
294
|
-
];
|
|
295
|
-
var result = fieldTypesMap.map(function(fieldType) {
|
|
296
|
-
var columnType = getColumnTypeFromFiledType(fieldType);
|
|
297
|
-
return designer.createControlInstance(columnType);
|
|
298
|
-
});
|
|
299
|
-
return Array.isArray(fieldTypes) ? result : result[0];
|
|
300
|
-
}
|
|
301
230
|
function toSchema(schema) {
|
|
302
231
|
if (Array.isArray(schema)) {
|
|
303
232
|
return schema.map(function(item) {
|
|
@@ -318,10 +247,7 @@ function getModelBindInfoList(controls) {
|
|
|
318
247
|
return controls.toDataBindModel();
|
|
319
248
|
}
|
|
320
249
|
function checkSchema(controls, messages, ignore) {
|
|
321
|
-
return
|
|
322
|
-
}
|
|
323
|
-
function _checkSchema() {
|
|
324
|
-
_checkSchema = _async_to_generator(function(controls, messages, ignore) {
|
|
250
|
+
return _async_to_generator(function() {
|
|
325
251
|
var result;
|
|
326
252
|
return _ts_generator(this, function(_state) {
|
|
327
253
|
switch(_state.label){
|
|
@@ -356,8 +282,7 @@ function _checkSchema() {
|
|
|
356
282
|
];
|
|
357
283
|
}
|
|
358
284
|
});
|
|
359
|
-
});
|
|
360
|
-
return _checkSchema.apply(this, arguments);
|
|
285
|
+
})();
|
|
361
286
|
}
|
|
362
287
|
// 不可以被权限控制的控件
|
|
363
288
|
var PermissionExcludeControlTypes = [
|
|
@@ -391,15 +316,15 @@ var cannotEditControlTypes = [
|
|
|
391
316
|
var LIST_OPERATION_BUTTON_PERMISSIONS_MAPS = {
|
|
392
317
|
check: {
|
|
393
318
|
id: 'listPageCheckBtnId',
|
|
394
|
-
caption: '查看'
|
|
319
|
+
caption: getLocaleText('CMD.view', null, '查看')
|
|
395
320
|
},
|
|
396
321
|
edit: {
|
|
397
322
|
id: 'listPageEditBtnId',
|
|
398
|
-
caption: '编辑'
|
|
323
|
+
caption: getLocaleText('CMD.edit', null, '编辑')
|
|
399
324
|
},
|
|
400
325
|
delete: {
|
|
401
326
|
id: 'listPageDeleteBtnId',
|
|
402
|
-
caption: '删除'
|
|
327
|
+
caption: getLocaleText('CMD.delete', null, '删除')
|
|
403
328
|
}
|
|
404
329
|
};
|
|
405
330
|
// 生成权限字段
|