amis 1.9.1-beta.12 → 1.9.1-beta.13
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/lib/components/formula/Picker.js +1 -2
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/table/HeadCellFilter.js +4 -1
- package/lib/components/table/HeadCellFilter.js.map +2 -2
- package/lib/components/table/HeadCellSort.js +30 -24
- package/lib/components/table/HeadCellSort.js.map +2 -2
- package/lib/components/table/index.d.ts +6 -3
- package/lib/components/table/index.js +72 -86
- package/lib/components/table/index.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Action.d.ts +21 -4
- package/lib/renderers/Action.js +42 -19
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +2 -2
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/Form/Picker.d.ts +1 -1
- package/lib/renderers/Form/Picker.js +38 -23
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +10 -10
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Service.js +0 -1
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Steps.d.ts +2 -2
- package/lib/renderers/Steps.js +1 -1
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +1 -1
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +38 -24
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +10 -4
- package/lib/renderers/Table-v2/index.js +109 -58
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/lib/store/table-v2.d.ts +210 -4
- package/lib/store/table-v2.js +82 -5
- package/lib/store/table-v2.js.map +2 -2
- package/lib/themes/ang-ie11.css +14 -11
- package/lib/themes/ang.css +14 -6
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +14 -11
- package/lib/themes/antd.css +14 -6
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +165 -162
- package/lib/themes/cxd.css +15 -7
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +14 -11
- package/lib/themes/dark.css +14 -6
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +165 -162
- package/lib/themes/default.css +15 -7
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +1 -1
- package/scss/components/_modal.scss +1 -1
- package/scss/components/form/_icon-picker.scss +10 -6
- package/scss/components/form/_switch.scss +1 -0
- package/scss/components/form/_text.scss +2 -0
- package/scss/themes/_cxd-variables.scss +1 -1
- package/sdk/ang-ie11.css +14 -11
- package/sdk/ang.css +14 -6
- package/sdk/antd-ie11.css +14 -11
- package/sdk/antd.css +14 -6
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +165 -162
- package/sdk/cxd.css +15 -7
- package/sdk/dark-ie11.css +14 -11
- package/sdk/dark.css +14 -6
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +165 -162
- package/sdk/sdk.css +15 -7
- package/sdk/sdk.js +1336 -1336
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/components/formula/Picker.tsx +1 -3
- package/src/components/table/HeadCellFilter.tsx +4 -1
- package/src/components/table/HeadCellSort.tsx +1 -1
- package/src/components/table/index.tsx +66 -90
- package/src/renderers/Action.tsx +62 -18
- package/src/renderers/Breadcrumb.tsx +11 -12
- package/src/renderers/Form/Picker.tsx +11 -1
- package/src/renderers/Form/wrapControl.tsx +10 -10
- package/src/renderers/Service.tsx +0 -1
- package/src/renderers/Steps.tsx +5 -5
- package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +14 -9
- package/src/renderers/Table-v2/index.tsx +130 -58
- package/src/store/table-v2.ts +104 -7
- package/src/types.ts +2 -1
@@ -143,8 +143,8 @@ export class HeadCellSearchDropDown extends React.Component<
|
|
143
143
|
return schema || 'error';
|
144
144
|
}
|
145
145
|
|
146
|
-
handleAction(e: any, action: Action, ctx: object, confirm: Function) {
|
147
|
-
const {onAction} = this.props;
|
146
|
+
async handleAction(e: any, action: Action, ctx: object, confirm: Function) {
|
147
|
+
const {onAction, data, dispatchEvent, name} = this.props;
|
148
148
|
|
149
149
|
if (action.actionType === 'cancel' || action.actionType === 'close') {
|
150
150
|
confirm();
|
@@ -157,17 +157,14 @@ export class HeadCellSearchDropDown extends React.Component<
|
|
157
157
|
return;
|
158
158
|
}
|
159
159
|
|
160
|
-
onAction && onAction(e, action, ctx);
|
161
|
-
}
|
162
|
-
|
163
|
-
async handleReset() {
|
164
|
-
const {onSearch, data, name, store, dispatchEvent} = this.props;
|
165
160
|
const values = {...data};
|
161
|
+
this.formItems.forEach(key => setVariable(values, key, undefined));
|
166
162
|
|
167
163
|
const rendererEvent = await dispatchEvent(
|
168
164
|
'columnSearch',
|
169
165
|
createObject(data, {
|
170
|
-
|
166
|
+
searchName: name,
|
167
|
+
searchValue: values
|
171
168
|
})
|
172
169
|
);
|
173
170
|
|
@@ -175,6 +172,13 @@ export class HeadCellSearchDropDown extends React.Component<
|
|
175
172
|
return;
|
176
173
|
}
|
177
174
|
|
175
|
+
onAction && onAction(e, action, ctx);
|
176
|
+
}
|
177
|
+
|
178
|
+
async handleReset() {
|
179
|
+
const {onSearch, data, name, store} = this.props;
|
180
|
+
const values = {...data};
|
181
|
+
|
178
182
|
this.formItems.forEach(key => setVariable(values, key, undefined));
|
179
183
|
|
180
184
|
if (values.orderBy === name) {
|
@@ -200,7 +204,8 @@ export class HeadCellSearchDropDown extends React.Component<
|
|
200
204
|
const rendererEvent = await dispatchEvent(
|
201
205
|
'columnSearch',
|
202
206
|
createObject(data, {
|
203
|
-
|
207
|
+
searchName: name,
|
208
|
+
searchValue: values
|
204
209
|
})
|
205
210
|
);
|
206
211
|
|
@@ -25,6 +25,7 @@ import {evalExpression, filter} from '../../utils/tpl';
|
|
25
25
|
import {isEffectiveApi} from '../../utils/api';
|
26
26
|
import Checkbox from '../../components/Checkbox';
|
27
27
|
import {BadgeSchema} from '../../components/Badge';
|
28
|
+
import {Icon} from '../../components/icons';
|
28
29
|
import {TableStoreV2, ITableStore, IColumn, IRow} from '../../store/table-v2';
|
29
30
|
|
30
31
|
import {HeadCellSearchDropDown} from './HeadCellSearchDropdown';
|
@@ -383,10 +384,8 @@ export default class TableRenderer extends React.Component<
|
|
383
384
|
|
384
385
|
onSelect &&
|
385
386
|
onSelect(
|
386
|
-
|
387
|
-
|
388
|
-
store.selectedRowKeys.map(item => item),
|
389
|
-
store.selectedRows.map(item => item.data)
|
387
|
+
store.selectedRows.map(item => item.data),
|
388
|
+
store.unSelectedRows.map(item => item.data)
|
390
389
|
);
|
391
390
|
}
|
392
391
|
|
@@ -431,11 +430,11 @@ export default class TableRenderer extends React.Component<
|
|
431
430
|
// selectedRowKeysExpr比selectedRowKeys优先级高
|
432
431
|
if (props.rowSelection && props.rowSelection.selectedRowKeysExpr) {
|
433
432
|
rows.forEach((row: any, index: number) => {
|
434
|
-
const flag =
|
433
|
+
const flag = evalExpression(props.rowSelection.selectedRowKeysExpr, {
|
435
434
|
record: row,
|
436
435
|
rowIndex: index
|
437
436
|
});
|
438
|
-
if (flag
|
437
|
+
if (flag) {
|
439
438
|
selectedRowKeys.push(row[props?.rowSelection?.keyField || 'key']);
|
440
439
|
}
|
441
440
|
});
|
@@ -450,11 +449,11 @@ export default class TableRenderer extends React.Component<
|
|
450
449
|
let expandedRowKeys: Array<string | number> = [];
|
451
450
|
if (props.expandable && props.expandable.expandedRowKeysExpr) {
|
452
451
|
rows.forEach((row: any, index: number) => {
|
453
|
-
const flag =
|
452
|
+
const flag = evalExpression(props.expandable.expandedRowKeysExpr, {
|
454
453
|
record: row,
|
455
454
|
rowIndex: index
|
456
455
|
});
|
457
|
-
if (flag
|
456
|
+
if (flag) {
|
458
457
|
expandedRowKeys.push(row[props?.expandable?.keyField || 'key']);
|
459
458
|
}
|
460
459
|
});
|
@@ -1019,19 +1018,16 @@ export default class TableRenderer extends React.Component<
|
|
1019
1018
|
|
1020
1019
|
@autobind
|
1021
1020
|
async handleSelected(
|
1022
|
-
record: any,
|
1023
|
-
value: boolean,
|
1024
1021
|
selectedRows: Array<any>,
|
1025
|
-
selectedRowKeys: Array<string | number
|
1022
|
+
selectedRowKeys: Array<string | number>,
|
1023
|
+
unSelectedRows: Array<string | number>
|
1026
1024
|
) {
|
1027
1025
|
const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;
|
1028
1026
|
const rendererEvent = await dispatchEvent(
|
1029
|
-
'
|
1027
|
+
'selectedChange',
|
1030
1028
|
createObject(data, {
|
1031
|
-
|
1032
|
-
|
1033
|
-
selectedRows,
|
1034
|
-
selectedRowKeys
|
1029
|
+
selectedItems: selectedRows,
|
1030
|
+
unSelectedItems: unSelectedRows
|
1035
1031
|
})
|
1036
1032
|
);
|
1037
1033
|
|
@@ -1040,24 +1036,17 @@ export default class TableRenderer extends React.Component<
|
|
1040
1036
|
}
|
1041
1037
|
|
1042
1038
|
store.updateSelected(selectedRowKeys, rowSelection.keyField);
|
1043
|
-
onSelect && onSelect(
|
1039
|
+
onSelect && onSelect(selectedRows, unSelectedRows);
|
1044
1040
|
}
|
1045
1041
|
|
1046
1042
|
@autobind
|
1047
|
-
async
|
1048
|
-
|
1049
|
-
selectedRowKeys: Array<string | number>,
|
1050
|
-
selectedRows: Array<any>,
|
1051
|
-
changeRows: Array<any>
|
1052
|
-
) {
|
1053
|
-
const {dispatchEvent, data, rowSelection, onSelectAll, store} = this.props;
|
1043
|
+
async handleSort(payload: SortProps) {
|
1044
|
+
const {dispatchEvent, data, onSort} = this.props;
|
1054
1045
|
const rendererEvent = await dispatchEvent(
|
1055
|
-
'
|
1046
|
+
'columnSort',
|
1056
1047
|
createObject(data, {
|
1057
|
-
|
1058
|
-
|
1059
|
-
selectedRows,
|
1060
|
-
changeRows
|
1048
|
+
orderBy: payload.orderBy,
|
1049
|
+
orderDir: payload.order
|
1061
1050
|
})
|
1062
1051
|
);
|
1063
1052
|
|
@@ -1065,64 +1054,88 @@ export default class TableRenderer extends React.Component<
|
|
1065
1054
|
return rendererEvent?.prevented;
|
1066
1055
|
}
|
1067
1056
|
|
1068
|
-
|
1069
|
-
onSelectAll &&
|
1070
|
-
onSelectAll(value, selectedRowKeys, selectedRows, selectedRowKeys);
|
1057
|
+
onSort && onSort(payload);
|
1071
1058
|
}
|
1072
1059
|
|
1073
1060
|
@autobind
|
1074
|
-
async
|
1075
|
-
|
1061
|
+
async handleFilter(payload: {
|
1062
|
+
filterName: string,
|
1063
|
+
filterValue: string
|
1064
|
+
}) {
|
1065
|
+
const {dispatchEvent, data, onFilter} = this.props;
|
1076
1066
|
const rendererEvent = await dispatchEvent(
|
1077
|
-
'
|
1078
|
-
createObject(data,
|
1079
|
-
...payload
|
1080
|
-
})
|
1067
|
+
'columnFilter',
|
1068
|
+
createObject(data, payload)
|
1081
1069
|
);
|
1082
1070
|
|
1083
1071
|
if (rendererEvent?.prevented) {
|
1084
1072
|
return rendererEvent?.prevented;
|
1085
1073
|
}
|
1086
1074
|
|
1087
|
-
|
1075
|
+
onFilter && onFilter(payload);
|
1088
1076
|
}
|
1089
1077
|
|
1090
1078
|
@autobind
|
1091
|
-
async
|
1092
|
-
const {dispatchEvent, data,
|
1079
|
+
async handleRowClick(event: React.ChangeEvent<any>, rowItem: any, rowIndex?: number) {
|
1080
|
+
const {dispatchEvent, data, onRow} = this.props;
|
1081
|
+
|
1093
1082
|
const rendererEvent = await dispatchEvent(
|
1094
|
-
'
|
1095
|
-
createObject(data, {
|
1096
|
-
payload
|
1097
|
-
})
|
1083
|
+
'rowClick',
|
1084
|
+
createObject(data, {rowItem})
|
1098
1085
|
);
|
1099
1086
|
|
1100
1087
|
if (rendererEvent?.prevented) {
|
1101
1088
|
return rendererEvent?.prevented;
|
1102
1089
|
}
|
1103
1090
|
|
1104
|
-
|
1091
|
+
if (rowItem && onRow) {
|
1092
|
+
onRow.onRowClick && onRow.onRowClick(event, rowItem, rowIndex);
|
1093
|
+
}
|
1094
|
+
}
|
1095
|
+
|
1096
|
+
@autobind
|
1097
|
+
async handleOrderChange(oldIndex: number, newIndex: number, levels: Array<string>) {
|
1098
|
+
const {store} = this.props;
|
1099
|
+
const rowItem = store.getRowByIndex(oldIndex, levels);
|
1100
|
+
|
1101
|
+
store.exchange(oldIndex, newIndex, rowItem);
|
1105
1102
|
}
|
1106
1103
|
|
1107
1104
|
@autobind
|
1108
|
-
async
|
1109
|
-
const {
|
1105
|
+
async handleSaveOrder() {
|
1106
|
+
const {store, onSaveOrder, data, dispatchEvent} = this.props;
|
1107
|
+
|
1108
|
+
const movedItems = store.movedRows.map(item => item.data);
|
1109
|
+
const items = store.rows.map(item => item.getDataWithModifiedChilden());
|
1110
|
+
|
1110
1111
|
const rendererEvent = await dispatchEvent(
|
1111
|
-
'
|
1112
|
-
createObject(data, {
|
1113
|
-
dataSource
|
1114
|
-
})
|
1112
|
+
'orderChange',
|
1113
|
+
createObject(data, {movedItems})
|
1115
1114
|
);
|
1116
1115
|
|
1117
1116
|
if (rendererEvent?.prevented) {
|
1118
|
-
return
|
1117
|
+
return;
|
1118
|
+
}
|
1119
|
+
|
1120
|
+
if (!onSaveOrder || !store.movedRows.length) {
|
1121
|
+
return;
|
1119
1122
|
}
|
1120
1123
|
|
1121
|
-
|
1124
|
+
onSaveOrder(
|
1125
|
+
movedItems,
|
1126
|
+
items
|
1127
|
+
);
|
1128
|
+
}
|
1129
|
+
|
1130
|
+
@autobind
|
1131
|
+
reset() {
|
1132
|
+
const {store} = this.props;
|
1133
|
+
|
1134
|
+
store.reset();
|
1122
1135
|
}
|
1123
1136
|
|
1124
1137
|
doAction(action: Action, args: any, throwErrors: boolean): any {
|
1125
|
-
const {store, rowSelection} = this.props;
|
1138
|
+
const {store, rowSelection, data} = this.props;
|
1126
1139
|
|
1127
1140
|
const actionType = action?.actionType as string;
|
1128
1141
|
const keyField = rowSelection?.keyField;
|
@@ -1135,7 +1148,15 @@ export default class TableRenderer extends React.Component<
|
|
1135
1148
|
store.updateSelected([], keyField);
|
1136
1149
|
break;
|
1137
1150
|
case 'select':
|
1138
|
-
store.
|
1151
|
+
const dataSource = store.getData(data);
|
1152
|
+
const selected: Array<any> = [];
|
1153
|
+
dataSource.items.forEach((item: any, rowIndex: number) => {
|
1154
|
+
const flag = evalExpression(args?.selectedRowKeysExpr, {record: item, rowIndex});
|
1155
|
+
if (flag) {
|
1156
|
+
selected.push(item[keyField]);
|
1157
|
+
}
|
1158
|
+
});
|
1159
|
+
store.updateSelected(selected, keyField);
|
1139
1160
|
break;
|
1140
1161
|
default:
|
1141
1162
|
break;
|
@@ -1158,6 +1179,7 @@ export default class TableRenderer extends React.Component<
|
|
1158
1179
|
placeholder,
|
1159
1180
|
rowClassNameExpr,
|
1160
1181
|
itemActions,
|
1182
|
+
onRow,
|
1161
1183
|
store,
|
1162
1184
|
...rest
|
1163
1185
|
} = this.props;
|
@@ -1310,23 +1332,73 @@ export default class TableRenderer extends React.Component<
|
|
1310
1332
|
loading={this.renderSchema('loading', loading)}
|
1311
1333
|
placeholder={this.renderSchema('placeholder', placeholder)}
|
1312
1334
|
onSelect={this.handleSelected}
|
1313
|
-
onSelectAll={this.
|
1335
|
+
onSelectAll={this.handleSelected}
|
1314
1336
|
onSort={this.handleSort}
|
1315
1337
|
onFilter={this.handleFilter}
|
1316
|
-
onDrag={this.
|
1338
|
+
onDrag={this.handleOrderChange}
|
1317
1339
|
itemActions={itemActionsConfig}
|
1340
|
+
onRow={{
|
1341
|
+
...onRow,
|
1342
|
+
onRowClick: this.handleRowClick
|
1343
|
+
}}
|
1318
1344
|
></Table>
|
1319
1345
|
);
|
1320
1346
|
}
|
1321
1347
|
|
1348
|
+
renderHeading() {
|
1349
|
+
let {
|
1350
|
+
store,
|
1351
|
+
classnames: cx,
|
1352
|
+
headingClassName,
|
1353
|
+
translate: __
|
1354
|
+
} = this.props;
|
1355
|
+
|
1356
|
+
if (store.moved) {
|
1357
|
+
return (
|
1358
|
+
<div className={cx('Table-heading', headingClassName)} key="heading">
|
1359
|
+
{
|
1360
|
+
store.moved ? (
|
1361
|
+
<span>
|
1362
|
+
{__('Table.moved', {
|
1363
|
+
moved: store.moved
|
1364
|
+
})}
|
1365
|
+
<button
|
1366
|
+
type="button"
|
1367
|
+
className={cx('Button Button--xs Button--success m-l-sm')}
|
1368
|
+
onClick={this.handleSaveOrder}
|
1369
|
+
>
|
1370
|
+
<Icon icon="check" className="icon m-r-xs" />
|
1371
|
+
{__('Form.submit')}
|
1372
|
+
</button>
|
1373
|
+
<button
|
1374
|
+
type="button"
|
1375
|
+
className={cx('Button Button--xs Button--danger m-l-sm')}
|
1376
|
+
onClick={this.reset}
|
1377
|
+
>
|
1378
|
+
<Icon icon="close" className="icon m-r-xs" />
|
1379
|
+
{__('Table.discard')}
|
1380
|
+
</button>
|
1381
|
+
</span>
|
1382
|
+
) : null
|
1383
|
+
}
|
1384
|
+
</div>
|
1385
|
+
);
|
1386
|
+
}
|
1387
|
+
|
1388
|
+
return null;
|
1389
|
+
}
|
1390
|
+
|
1322
1391
|
render() {
|
1323
1392
|
const {classnames: cx} = this.props;
|
1324
1393
|
|
1325
1394
|
this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了
|
1395
|
+
|
1396
|
+
const heading = this.renderHeading();
|
1326
1397
|
|
1327
1398
|
return (
|
1328
1399
|
<div className={cx('Table-render-wrapper')}>
|
1329
1400
|
{this.renderActions('header')}
|
1401
|
+
{heading}
|
1330
1402
|
{this.renderTable()}
|
1331
1403
|
</div>
|
1332
1404
|
);
|
package/src/store/table-v2.ts
CHANGED
@@ -23,7 +23,8 @@ import {
|
|
23
23
|
isObject,
|
24
24
|
immutableExtends,
|
25
25
|
isEmpty,
|
26
|
-
extendObject
|
26
|
+
extendObject,
|
27
|
+
findTree
|
27
28
|
} from '../utils/helper';
|
28
29
|
import {normalizeApiResponseData} from '../utils/api';
|
29
30
|
import {Api, Payload, fetchOptions, ApiObject} from '../types';
|
@@ -71,6 +72,7 @@ export const Row = types
|
|
71
72
|
.model('Row', {
|
72
73
|
storeType: 'Row',
|
73
74
|
id: types.identifier,
|
75
|
+
parentId: '',
|
74
76
|
key: types.string,
|
75
77
|
pristine: types.frozen({} as any), // 原始数据
|
76
78
|
data: types.frozen({} as any),
|
@@ -100,6 +102,10 @@ export const Row = types
|
|
100
102
|
);
|
101
103
|
},
|
102
104
|
|
105
|
+
get moved() {
|
106
|
+
return self.index !== self.newIndex;
|
107
|
+
},
|
108
|
+
|
103
109
|
get locals(): any {
|
104
110
|
let children: Array<any> | null = null;
|
105
111
|
if (self.children.length) {
|
@@ -120,6 +126,20 @@ export const Row = types
|
|
120
126
|
}
|
121
127
|
: self.data
|
122
128
|
);
|
129
|
+
},
|
130
|
+
|
131
|
+
getDataWithModifiedChilden() {
|
132
|
+
let data = {
|
133
|
+
...self.data
|
134
|
+
};
|
135
|
+
|
136
|
+
if (data.children && self.children) {
|
137
|
+
data.children = self.children.map(item =>
|
138
|
+
item.getDataWithModifiedChilden()
|
139
|
+
);
|
140
|
+
}
|
141
|
+
|
142
|
+
return data;
|
123
143
|
}
|
124
144
|
}))
|
125
145
|
.actions(self => ({
|
@@ -161,6 +181,10 @@ export const Row = types
|
|
161
181
|
change(values: object, savePristine?: boolean) {
|
162
182
|
self.data = immutableExtends(self.data, values);
|
163
183
|
savePristine && (self.pristine = self.data);
|
184
|
+
},
|
185
|
+
reset() {
|
186
|
+
self.newIndex = self.index;
|
187
|
+
self.data = self.pristine;
|
164
188
|
}
|
165
189
|
}));
|
166
190
|
|
@@ -250,10 +274,26 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
250
274
|
});
|
251
275
|
}
|
252
276
|
|
277
|
+
function getRowByIndex(rowIndex: number, levels?: Array<string>): IRow {
|
278
|
+
if (levels && levels.length > 0) {
|
279
|
+
const index = +(levels.shift() || 0);
|
280
|
+
return getRowByIndex(index, levels);
|
281
|
+
}
|
282
|
+
return self.rows[rowIndex];
|
283
|
+
}
|
284
|
+
|
253
285
|
function isSelected(row: IRow): boolean {
|
254
286
|
return !!~self.selectedRows.indexOf(row);
|
255
287
|
}
|
256
288
|
|
289
|
+
function getMovedRows() {
|
290
|
+
return flattenTree(self.rows).filter((item: IRow) => item.moved);
|
291
|
+
}
|
292
|
+
|
293
|
+
function getMoved() {
|
294
|
+
return getMovedRows().length;
|
295
|
+
}
|
296
|
+
|
257
297
|
return {
|
258
298
|
get toggable() {
|
259
299
|
return getToggable();
|
@@ -287,6 +327,10 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
287
327
|
return self.expandedRowKeys.map(item => item);
|
288
328
|
},
|
289
329
|
|
330
|
+
get unSelectedRows() {
|
331
|
+
return getUnSelectedRows();
|
332
|
+
},
|
333
|
+
|
290
334
|
// 是否隐藏了某列
|
291
335
|
hasColumnHidden() {
|
292
336
|
return hasColumnHidden();
|
@@ -294,7 +338,21 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
294
338
|
|
295
339
|
getData,
|
296
340
|
|
297
|
-
|
341
|
+
getRowById(id: string) {
|
342
|
+
return findTree(self.rows, item => item.id === id);
|
343
|
+
},
|
344
|
+
|
345
|
+
isSelected,
|
346
|
+
|
347
|
+
getRowByIndex,
|
348
|
+
|
349
|
+
get moved() {
|
350
|
+
return getMoved();
|
351
|
+
},
|
352
|
+
|
353
|
+
get movedRows() {
|
354
|
+
return getMovedRows();
|
355
|
+
},
|
298
356
|
};
|
299
357
|
})
|
300
358
|
.actions(self => {
|
@@ -333,6 +391,31 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
333
391
|
}
|
334
392
|
}
|
335
393
|
|
394
|
+
function exchange(fromIndex: number, toIndex: number, item?: IRow) {
|
395
|
+
item = item || self.rows[fromIndex];
|
396
|
+
|
397
|
+
if (item.parentId) {
|
398
|
+
const parent: IRow = self.getRowById(item.parentId) as any;
|
399
|
+
const offset = parent.children.indexOf(item) - fromIndex;
|
400
|
+
toIndex += offset;
|
401
|
+
fromIndex += offset;
|
402
|
+
|
403
|
+
const newRows = parent.children.concat();
|
404
|
+
newRows.splice(fromIndex, 1);
|
405
|
+
newRows.splice(toIndex, 0, item);
|
406
|
+
newRows.forEach((item, index) => (item.newIndex = index));
|
407
|
+
parent.children.replace(newRows);
|
408
|
+
return;
|
409
|
+
}
|
410
|
+
|
411
|
+
const newRows = self.rows.concat();
|
412
|
+
newRows.splice(fromIndex, 1);
|
413
|
+
newRows.splice(toIndex, 0, item);
|
414
|
+
|
415
|
+
newRows.forEach((item, index) => (item.newIndex = index));
|
416
|
+
self.rows.replace(newRows);
|
417
|
+
}
|
418
|
+
|
336
419
|
function persistSaveToggledColumns() {
|
337
420
|
const key =
|
338
421
|
location.pathname +
|
@@ -600,6 +683,22 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
600
683
|
}
|
601
684
|
});
|
602
685
|
|
686
|
+
function reset() {
|
687
|
+
self.rows.forEach(item => item.reset());
|
688
|
+
let rows = self.rows.concat();
|
689
|
+
eachTree(rows, item => {
|
690
|
+
if (item.children) {
|
691
|
+
let rows = item.children.concat().sort((a, b) => a.index - b.index);
|
692
|
+
rows.forEach(item => item.reset());
|
693
|
+
item.children.replace(rows);
|
694
|
+
}
|
695
|
+
});
|
696
|
+
rows.forEach(item => item.reset());
|
697
|
+
rows = rows.sort((a, b) => a.index - b.index);
|
698
|
+
self.rows.replace(rows);
|
699
|
+
self.dragging = false;
|
700
|
+
}
|
701
|
+
|
603
702
|
return {
|
604
703
|
update,
|
605
704
|
persistSaveToggledColumns,
|
@@ -609,6 +708,8 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
609
708
|
updateSelected,
|
610
709
|
updateSelectedAll,
|
611
710
|
updateExpanded,
|
711
|
+
exchange,
|
712
|
+
reset,
|
612
713
|
|
613
714
|
// events
|
614
715
|
afterCreate() {
|
@@ -631,11 +732,7 @@ export const TableStoreV2 = ServiceStore.named('TableStoreV2')
|
|
631
732
|
}
|
632
733
|
}, 200);
|
633
734
|
},
|
634
|
-
saveRemote
|
635
|
-
|
636
|
-
getRowByIndex(rowIndex: number) {
|
637
|
-
return self.rows[rowIndex];
|
638
|
-
}
|
735
|
+
saveRemote
|
639
736
|
};
|
640
737
|
});
|
641
738
|
|