@jetlinks-web/components 2.0.37 → 2.1.0

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 (74) hide show
  1. package/es/CardSelect/style/index.js +1 -0
  2. package/es/CheckButton/style/index.js +1 -0
  3. package/es/DragModal/DragModal.js +307 -0
  4. package/es/DragModal/index.js +5 -0
  5. package/es/DragModal/style/index.css +81 -0
  6. package/es/DragModal/style/index.js +1 -0
  7. package/es/DragModal/style/index.less +96 -0
  8. package/es/EditTable/Body.js +368 -0
  9. package/es/EditTable/EditTable.js +412 -0
  10. package/es/EditTable/Header.js +242 -0
  11. package/es/EditTable/components/ContextMenu/Menu.js +154 -0
  12. package/es/EditTable/components/ContextMenu/index.js +81 -0
  13. package/es/EditTable/components/Search/Search.js +290 -0
  14. package/es/EditTable/components/Search/index.js +1 -0
  15. package/es/EditTable/consts.js +7 -0
  16. package/es/EditTable/hooks/index.js +40 -0
  17. package/es/EditTable/hooks/useResizeObserver.js +31 -0
  18. package/es/EditTable/hooks/useValidate.js +87 -0
  19. package/es/EditTable/index.js +9 -0
  20. package/es/EditTable/props.js +50 -0
  21. package/es/EditTable/style/body.less +76 -0
  22. package/es/EditTable/style/header.less +77 -0
  23. package/es/EditTable/style/index.css +214 -0
  24. package/es/EditTable/style/index.js +1 -0
  25. package/es/EditTable/style/index.less +38 -0
  26. package/es/EditTable/style/table.less +42 -0
  27. package/es/EditTable/utils.js +97 -0
  28. package/es/Ellipsis/style/index.js +1 -0
  29. package/es/FullPage/FullPage.js +1 -1
  30. package/es/Search/Advanced/SaveHistory.js +1 -1
  31. package/es/Search/Item.js +1 -1
  32. package/es/Search/Search.js +1 -1
  33. package/es/components.js +3 -1
  34. package/es/style/index.css +287 -0
  35. package/es/style/index.less +9 -7
  36. package/es/style.js +3 -1
  37. package/lib/CardSelect/style/index.js +3 -0
  38. package/lib/CheckButton/style/index.js +3 -0
  39. package/lib/DragModal/DragModal.js +307 -0
  40. package/lib/DragModal/index.js +12 -0
  41. package/lib/DragModal/style/index.css +81 -0
  42. package/lib/DragModal/style/index.js +3 -0
  43. package/lib/DragModal/style/index.less +96 -0
  44. package/lib/EditTable/Body.js +368 -0
  45. package/lib/EditTable/EditTable.js +412 -0
  46. package/lib/EditTable/Header.js +242 -0
  47. package/lib/EditTable/components/ContextMenu/Menu.js +154 -0
  48. package/lib/EditTable/components/ContextMenu/index.js +88 -0
  49. package/lib/EditTable/components/Search/Search.js +290 -0
  50. package/lib/EditTable/components/Search/index.js +13 -0
  51. package/lib/EditTable/consts.js +13 -0
  52. package/lib/EditTable/hooks/index.js +79 -0
  53. package/lib/EditTable/hooks/useResizeObserver.js +38 -0
  54. package/lib/EditTable/hooks/useValidate.js +94 -0
  55. package/lib/EditTable/index.js +16 -0
  56. package/lib/EditTable/props.js +56 -0
  57. package/lib/EditTable/style/body.less +76 -0
  58. package/lib/EditTable/style/header.less +77 -0
  59. package/lib/EditTable/style/index.css +214 -0
  60. package/lib/EditTable/style/index.js +3 -0
  61. package/lib/EditTable/style/index.less +38 -0
  62. package/lib/EditTable/style/table.less +42 -0
  63. package/lib/EditTable/utils.js +104 -0
  64. package/lib/Ellipsis/style/index.js +3 -0
  65. package/lib/FullPage/FullPage.js +1 -1
  66. package/lib/Search/Advanced/SaveHistory.js +1 -1
  67. package/lib/Search/Item.js +1 -1
  68. package/lib/Search/Search.js +1 -1
  69. package/lib/components.js +14 -0
  70. package/lib/style/components.less +2 -0
  71. package/lib/style/index.css +287 -0
  72. package/lib/style/index.less +9 -7
  73. package/lib/style.js +3 -1
  74. package/package.json +3 -1
@@ -0,0 +1,87 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import Schema from "async-validator";
4
+ import { handlePureRecord, collectValidateRules } from "../utils";
5
+ import { ref } from 'vue';
6
+ export var useValidate = function useValidate(dataSource, columns, rowKey) {
7
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
8
+ var errorMap = ref({});
9
+ var schemaInstance;
10
+ var rules = ref({});
11
+ var _options = _extends({
12
+ validateRowKey: false
13
+ }, options);
14
+ var validateItem = function validateItem(data) {
15
+ var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
16
+ return new Promise(function (resolve, reject) {
17
+ schemaInstance.validate(data, {
18
+ firstFields: true,
19
+ index: index
20
+ }, function (err) {
21
+ if (err === null || err === void 0 ? void 0 : err.length) {
22
+ reject(err.map(function (item) {
23
+ return _objectSpread(_objectSpread({}, item), {}, {
24
+ __serial: data.__serial,
25
+ __dataIndex: index
26
+ });
27
+ }));
28
+ } else {
29
+ resolve(data);
30
+ }
31
+ });
32
+ });
33
+ };
34
+ var validate = function validate() {
35
+ return new Promise(function (resolve, reject) {
36
+ var filterDataSource = dataSource.value;
37
+ var len = filterDataSource.length;
38
+ var error = [];
39
+ var success = [];
40
+ var validateLen = 0;
41
+ var end = function end() {
42
+ validateLen += 1;
43
+ if (validateLen === len) {
44
+ var isSuccess = !Object.keys(error).length;
45
+ if (isSuccess) {
46
+ var _options$onSuccess;
47
+ resolve(success);
48
+ (_options$onSuccess = _options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(_options);
49
+ } else {
50
+ var _options$onError;
51
+ (_options$onError = _options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(_options, error);
52
+ reject(error);
53
+ }
54
+ }
55
+ };
56
+ var validateRowKey = _options.validateRowKey;
57
+ if (filterDataSource.length) {
58
+ filterDataSource.forEach(function (record, index) {
59
+ if (validateRowKey || record[rowKey]) {
60
+ validateItem(record, index).then(function (res) {
61
+ success.push(handlePureRecord(res));
62
+ end();
63
+ }).catch(function (err) {
64
+ error.push(err);
65
+ end();
66
+ });
67
+ } else {
68
+ end();
69
+ }
70
+ });
71
+ } else {
72
+ resolve(filterDataSource);
73
+ }
74
+ });
75
+ };
76
+ var createValidate = function createValidate() {
77
+ rules.value = collectValidateRules(columns);
78
+ schemaInstance = new Schema(rules.value);
79
+ };
80
+ createValidate();
81
+ return {
82
+ validate: validate,
83
+ validateItem: validateItem,
84
+ errorMap: errorMap,
85
+ rules: rules
86
+ };
87
+ };
@@ -0,0 +1,9 @@
1
+ import EditTable from './EditTable.js';
2
+ import EditTableBody from './Body.js';
3
+ import EditTableHeader from './Header.js';
4
+ EditTable.install = function (app) {
5
+ app.component(EditTable.name, EditTable);
6
+ app.component(EditTableBody.name, EditTableBody);
7
+ app.component(EditTableHeader.name, EditTableHeader);
8
+ };
9
+ export default EditTable;
@@ -0,0 +1,50 @@
1
+ export var defaultProps = function defaultProps() {
2
+ return {
3
+ rowKey: {
4
+ type: String,
5
+ default: 'id'
6
+ },
7
+ columns: {
8
+ type: Array,
9
+ default: function _default() {
10
+ return [];
11
+ }
12
+ }
13
+ };
14
+ };
15
+ export var bodyProps = function bodyProps() {
16
+ return {
17
+ dataSource: {
18
+ type: Array,
19
+ default: function _default() {
20
+ return [];
21
+ }
22
+ },
23
+ cellHeight: {
24
+ type: Number,
25
+ default: 50
26
+ },
27
+ height: {
28
+ type: Number,
29
+ default: 300
30
+ },
31
+ style: {
32
+ type: Object,
33
+ default: function _default() {
34
+ return {};
35
+ }
36
+ },
37
+ disableMenu: {
38
+ type: Boolean,
39
+ default: true
40
+ },
41
+ rowSelection: {
42
+ type: Object,
43
+ default: undefined
44
+ },
45
+ scroll: {
46
+ type: Object,
47
+ default: undefined
48
+ }
49
+ };
50
+ };
@@ -0,0 +1,76 @@
1
+ .jetlinks-edit-table-body-viewport {
2
+ max-height: 100%;
3
+ width: 100%;
4
+ overflow: hidden auto;
5
+ position: relative;
6
+
7
+ .jetlinks-edit-scrollbar {
8
+ position: absolute;
9
+ left: 0;
10
+ top: 0;
11
+ right: 0;
12
+ z-index: -1;
13
+ }
14
+
15
+ .jetlinks-edit-table-body-container {
16
+ display: flex;
17
+ }
18
+
19
+ .jetlinks-edit-table-center, & .jetlinks-edit-table-left,& .jetlinks-edit-table-right {
20
+ position: relative;
21
+ min-width: 0;
22
+ height: 100%;
23
+ z-index: 5;
24
+ flex-shrink: 0;
25
+ flex-grow: 0;
26
+
27
+ .jetlinks-edit-table-row {
28
+ width: 100%;
29
+ display: flex;
30
+ align-items: center;
31
+ transition: top .2s, height .2s, background-color .1s;
32
+ border-bottom: 1px solid #ebebeb;
33
+ background-color: #fff;
34
+
35
+ &.jetlinks-edit-table-row-hover {
36
+ background-color: rgb(248, 248, 248);
37
+ }
38
+
39
+ &.jetlinks-edit-table-row-selected {
40
+ background-color: var(--ant-primary-1);
41
+ }
42
+
43
+ .jetlinks-edit-table-cell {
44
+ min-width: 0;
45
+ }
46
+
47
+ .body-cell-box {
48
+ padding: 0 12px;
49
+ position: relative;
50
+ }
51
+ }
52
+ }
53
+
54
+ .jetlinks-edit-table-left {
55
+ position: sticky;
56
+ left: 0;
57
+ }
58
+
59
+ .jetlinks-edit-table-right {
60
+ position: sticky;
61
+ right: 0;
62
+ }
63
+
64
+ .jetlinks-edit-table-center {
65
+ z-index: 1;
66
+ > div {
67
+ position: relative;
68
+ }
69
+ }
70
+ }
71
+ .jetlinks-edit-table-body-empty {
72
+ display: flex;
73
+ width: 100%;
74
+ justify-content: center;
75
+ padding-top: 24px;
76
+ }
@@ -0,0 +1,77 @@
1
+ .jetlinks-edit-table-header-container {
2
+ height: 100%;
3
+ position: relative;
4
+ display: flex;
5
+ width: 100%;
6
+
7
+ .jetlinks-header-left,& .jetlinks-header-center,& .jetlinks-header-right {
8
+ position: relative;
9
+ z-index: 5;
10
+ min-width: 0;
11
+ height: 100%;
12
+ width: 100%;
13
+ background: #fafafa;
14
+ }
15
+
16
+ .jetlinks-header-center {
17
+ z-index: 2;
18
+ > div {
19
+ position: relative;
20
+ height: 100%;
21
+ }
22
+ }
23
+
24
+ .jetlinks-edit-table-header-cell {
25
+ height: 100%;
26
+ display: inline-flex;
27
+ align-items: center;
28
+ float: left;
29
+ overflow: visible;
30
+ background: #fafafa;
31
+
32
+ .jetlinks-edit-table-header-cell-box {
33
+ padding: 0 12px;
34
+ width: 100%;
35
+ position: relative;
36
+
37
+ &.header-cell-box-tool {
38
+ display: flex;
39
+ justify-content: space-between;
40
+ align-items: center;
41
+ }
42
+
43
+ .table-header-cell-title {
44
+ flex: 1;
45
+ display: flex;
46
+ align-items: center;
47
+ font-weight: 600;
48
+ }
49
+
50
+ .header-cell-required {
51
+ color: @error-color;
52
+ padding-left: 8px;
53
+ transform: translateY(3px);
54
+ font-weight: 500;
55
+ }
56
+
57
+ &::before {
58
+ position: absolute;
59
+ top: 50%;
60
+ right: 1px;
61
+ width: 1px;
62
+ height: 1.6em;
63
+ pointer-events: none;
64
+ background-color: rgba(0,0,0,.06);
65
+ transform: translateY(-50%);
66
+ transition: background-color .3s;
67
+ content: "";
68
+ }
69
+
70
+ &:not(:last-child) {
71
+ &::before {
72
+ background-color: transparent;
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,214 @@
1
+ /* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
2
+ /* stylelint-disable no-duplicate-selectors */
3
+ /* stylelint-disable */
4
+ /* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
5
+ .jetlinks-edit-table-wrapper {
6
+ background: #fff;
7
+ height: 100%;
8
+ position: relative;
9
+ }
10
+ .jetlinks-edit-table-wrapper.table-full-screen {
11
+ padding: 24px;
12
+ }
13
+ .jetlinks-edit-table-wrapper .jetlinks-edit-table {
14
+ display: flex;
15
+ flex-direction: column;
16
+ flex-grow: 0;
17
+ flex-shrink: 0;
18
+ }
19
+ .jetlinks-edit-table-wrapper .jetlinks-edit-table .jetlinks-edit-table-header {
20
+ overflow: hidden;
21
+ width: 100%;
22
+ position: relative;
23
+ }
24
+ .jetlinks-edit-table-wrapper .jetlinks-edit-table .jetlinks-edit-table-header .jetlinks-edit-table-header-scroll-hidden {
25
+ position: absolute;
26
+ top: 0;
27
+ right: 0;
28
+ bottom: 0;
29
+ z-index: 5;
30
+ background: #fafafa;
31
+ }
32
+ .jetlinks-edit-table-wrapper .jetlinks-edit-table .jetlinks-edit-table-body {
33
+ background-color: #fff;
34
+ overflow-y: hidden;
35
+ position: relative;
36
+ height: 100%;
37
+ width: 100%;
38
+ flex: 1 1 auto;
39
+ flex-direction: row;
40
+ }
41
+ .jetlinks-edit-table-body-viewport {
42
+ max-height: 100%;
43
+ width: 100%;
44
+ overflow: hidden auto;
45
+ position: relative;
46
+ }
47
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-scrollbar {
48
+ position: absolute;
49
+ left: 0;
50
+ top: 0;
51
+ right: 0;
52
+ z-index: -1;
53
+ }
54
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-body-container {
55
+ display: flex;
56
+ }
57
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center,
58
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left,
59
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right {
60
+ position: relative;
61
+ min-width: 0;
62
+ height: 100%;
63
+ z-index: 5;
64
+ flex-shrink: 0;
65
+ flex-grow: 0;
66
+ }
67
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center .jetlinks-edit-table-row,
68
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left .jetlinks-edit-table-row,
69
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right .jetlinks-edit-table-row {
70
+ width: 100%;
71
+ display: flex;
72
+ align-items: center;
73
+ transition: top 0.2s, height 0.2s, background-color 0.1s;
74
+ border-bottom: 1px solid #ebebeb;
75
+ background-color: #fff;
76
+ }
77
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center .jetlinks-edit-table-row.jetlinks-edit-table-row-hover,
78
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left .jetlinks-edit-table-row.jetlinks-edit-table-row-hover,
79
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right .jetlinks-edit-table-row.jetlinks-edit-table-row-hover {
80
+ background-color: #f8f8f8;
81
+ }
82
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center .jetlinks-edit-table-row.jetlinks-edit-table-row-selected,
83
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left .jetlinks-edit-table-row.jetlinks-edit-table-row-selected,
84
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right .jetlinks-edit-table-row.jetlinks-edit-table-row-selected {
85
+ background-color: var(--ant-primary-1);
86
+ }
87
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center .jetlinks-edit-table-row .jetlinks-edit-table-cell,
88
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left .jetlinks-edit-table-row .jetlinks-edit-table-cell,
89
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right .jetlinks-edit-table-row .jetlinks-edit-table-cell {
90
+ min-width: 0;
91
+ }
92
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center .jetlinks-edit-table-row .body-cell-box,
93
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left .jetlinks-edit-table-row .body-cell-box,
94
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right .jetlinks-edit-table-row .body-cell-box {
95
+ padding: 0 12px;
96
+ position: relative;
97
+ }
98
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-left {
99
+ position: sticky;
100
+ left: 0;
101
+ }
102
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-right {
103
+ position: sticky;
104
+ right: 0;
105
+ }
106
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center {
107
+ z-index: 1;
108
+ }
109
+ .jetlinks-edit-table-body-viewport .jetlinks-edit-table-center > div {
110
+ position: relative;
111
+ }
112
+ .jetlinks-edit-table-body-empty {
113
+ display: flex;
114
+ width: 100%;
115
+ justify-content: center;
116
+ padding-top: 24px;
117
+ }
118
+ .jetlinks-edit-table-header-container {
119
+ height: 100%;
120
+ position: relative;
121
+ display: flex;
122
+ width: 100%;
123
+ }
124
+ .jetlinks-edit-table-header-container .jetlinks-header-left,
125
+ .jetlinks-edit-table-header-container .jetlinks-header-center,
126
+ .jetlinks-edit-table-header-container .jetlinks-header-right {
127
+ position: relative;
128
+ z-index: 5;
129
+ min-width: 0;
130
+ height: 100%;
131
+ width: 100%;
132
+ background: #fafafa;
133
+ }
134
+ .jetlinks-edit-table-header-container .jetlinks-header-center {
135
+ z-index: 2;
136
+ }
137
+ .jetlinks-edit-table-header-container .jetlinks-header-center > div {
138
+ position: relative;
139
+ height: 100%;
140
+ }
141
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell {
142
+ height: 100%;
143
+ display: inline-flex;
144
+ align-items: center;
145
+ float: left;
146
+ overflow: visible;
147
+ background: #fafafa;
148
+ }
149
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box {
150
+ padding: 0 12px;
151
+ width: 100%;
152
+ position: relative;
153
+ }
154
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box.header-cell-box-tool {
155
+ display: flex;
156
+ justify-content: space-between;
157
+ align-items: center;
158
+ }
159
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box .table-header-cell-title {
160
+ flex: 1;
161
+ display: flex;
162
+ align-items: center;
163
+ font-weight: 600;
164
+ }
165
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box .header-cell-required {
166
+ color: #ff4d4f;
167
+ padding-left: 8px;
168
+ transform: translateY(3px);
169
+ font-weight: 500;
170
+ }
171
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box::before {
172
+ position: absolute;
173
+ top: 50%;
174
+ right: 1px;
175
+ width: 1px;
176
+ height: 1.6em;
177
+ pointer-events: none;
178
+ background-color: rgba(0, 0, 0, 0.06);
179
+ transform: translateY(-50%);
180
+ transition: background-color 0.3s;
181
+ content: "";
182
+ }
183
+ .jetlinks-edit-table-header-container .jetlinks-edit-table-header-cell .jetlinks-edit-table-header-cell-box:not(:last-child)::before {
184
+ background-color: transparent;
185
+ }
186
+ .edit-table-search-header {
187
+ display: flex;
188
+ justify-content: space-between;
189
+ }
190
+ .edit-table-search-result-total {
191
+ color: #1890ff;
192
+ }
193
+ .jetlinks-edit-table-horizontal-scroll {
194
+ height: 17px;
195
+ width: 100%;
196
+ display: flex;
197
+ position: relative;
198
+ z-index: 4;
199
+ }
200
+ .jetlinks-edit-table-horizontal-scroll .jetlinks-edit-table-horizontal-scroll-viewport {
201
+ overflow-y: hidden;
202
+ overflow-x: scroll;
203
+ position: relative;
204
+ flex: 1 1 0;
205
+ height: 17px;
206
+ width: 100%;
207
+ }
208
+ .jetlinks-edit-table-horizontal-scroll .jetlinks-edit-table-horizontal-scroll-viewport > div {
209
+ height: 17px;
210
+ }
211
+ .jetlinks-edit-table-horizontal-scroll .jetlinks-edit-table-horizontal-scroll-hidden {
212
+ height: 100%;
213
+ overflow-x: hidden;
214
+ }
@@ -0,0 +1 @@
1
+ import "./index.less";
@@ -0,0 +1,38 @@
1
+ @import "ant-design-vue/es/style/themes/index.less";
2
+ @import "./table.less";
3
+ @import "./body.less";
4
+ @import "./header.less";
5
+
6
+ .edit-table-search-header {
7
+ display: flex;
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .edit-table-search-result-total {
12
+ color: @primary-color;
13
+ }
14
+
15
+ .jetlinks-edit-table-horizontal-scroll {
16
+ height: 17px;
17
+ width: 100%;
18
+ display: flex;
19
+ position: relative;
20
+ z-index: 4;
21
+
22
+ .jetlinks-edit-table-horizontal-scroll-viewport {
23
+ overflow-y: hidden;
24
+ overflow-x: scroll;
25
+ position: relative;
26
+ flex: 1 1 0;
27
+ height: 17px;
28
+ width: 100%;
29
+
30
+ > div {
31
+ height: 17px;
32
+ }
33
+ }
34
+
35
+ .jetlinks-edit-table-horizontal-scroll-hidden {
36
+ height: 100%; overflow-x: hidden;
37
+ }
38
+ }
@@ -0,0 +1,42 @@
1
+ .jetlinks-edit-table-wrapper {
2
+ background: #fff;
3
+ height: 100%;
4
+ position: relative;
5
+
6
+ &.table-full-screen {
7
+ padding: 24px;
8
+ }
9
+
10
+ .jetlinks-edit-table {
11
+ display: flex;
12
+ flex-direction: column;
13
+ flex-grow: 0;
14
+ flex-shrink: 0;
15
+
16
+ .jetlinks-edit-table-header {
17
+ overflow: hidden;
18
+ width: 100%;
19
+ position: relative;
20
+
21
+ .jetlinks-edit-table-header-scroll-hidden {
22
+ position: absolute;
23
+ top: 0;
24
+ right: 0;
25
+ bottom: 0;
26
+ z-index: 5;
27
+ background: #fafafa;
28
+ }
29
+ }
30
+
31
+
32
+ .jetlinks-edit-table-body {
33
+ background-color: #fff;
34
+ overflow-y: hidden;
35
+ position: relative;
36
+ height: 100%;
37
+ width: 100%;
38
+ flex: 1 1 auto;
39
+ flex-direction: row;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,97 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { omit } from "lodash-es";
3
+ /**
4
+ * 规则收集器,收集columns中的rules和watch
5
+ * @param columns
6
+ */
7
+ export var collectValidateRules = function collectValidateRules(columns) {
8
+ var rules = {};
9
+ columns.forEach(function (item) {
10
+ if (item.form) {
11
+ if (item.form.rules) {
12
+ rules[item.dataIndex] = item.form.rules;
13
+ }
14
+ }
15
+ });
16
+ return rules;
17
+ };
18
+ /**
19
+ * 清除内部属性
20
+ * @param record
21
+ */
22
+ export var handlePureRecord = function handlePureRecord(record) {
23
+ if (!record) return {};
24
+ return omit(record, ['__serial', '__index', '__top', '__selected', '__key', '__dataIndex', '__oldSerial']);
25
+ };
26
+ /**
27
+ * 计算每个column的宽度和位置
28
+ * @param columns
29
+ * @param warpWidth
30
+ * @param scrollX
31
+ */
32
+ export var handleColumnsWidth = function handleColumnsWidth(columns, warpWidth, scrollX) {
33
+ var newColumns = _toConsumableArray(columns);
34
+ var noWidthLen = 0; // 没有width属性的长度
35
+ var hasWidthCount = 0; // 有width属性的合计
36
+ var average = 0; // 每个column宽度
37
+ var parseAverage = 0; // 取整宽度
38
+ var decimalCount = 0; // 收集每个取整后的小数
39
+ var lastNoWidthIndex = undefined; // 最后一个没有width属性的位置
40
+ newColumns.forEach(function (item, index) {
41
+ if (item.width) {
42
+ // 是否有设置width属性
43
+ hasWidthCount += item.width;
44
+ } else {
45
+ noWidthLen += 1;
46
+ lastNoWidthIndex = index;
47
+ }
48
+ });
49
+ if (noWidthLen) {
50
+ average = ((scrollX !== null && scrollX !== void 0 ? scrollX : warpWidth) - hasWidthCount) / noWidthLen; // 剩余平分分配宽度
51
+ parseAverage = scrollX ? 150 : Math.trunc(average);
52
+ decimalCount = (average - parseAverage) * noWidthLen;
53
+ }
54
+ return newColumns.map(function (item, index) {
55
+ var _width = item.width;
56
+ if (!item.width) {
57
+ _width = parseAverage;
58
+ }
59
+ if (index === lastNoWidthIndex) {
60
+ _width = decimalCount < 0 ? parseAverage : Math.trunc(decimalCount) + parseAverage;
61
+ }
62
+ item._width = _width;
63
+ // item.left = left
64
+ return item;
65
+ }, []);
66
+ };
67
+ export var handleColumnFixed = function handleColumnFixed(columns) {
68
+ var left = {
69
+ keys: [],
70
+ width: 0
71
+ };
72
+ var center = {
73
+ keys: [],
74
+ width: 0
75
+ };
76
+ var right = {
77
+ keys: [],
78
+ width: 0
79
+ };
80
+ columns.forEach(function (item) {
81
+ if (item.fixed === 'left') {
82
+ left.keys.push(item);
83
+ left.width += item._width;
84
+ } else if (item.fixed === 'right') {
85
+ right.keys.push(item);
86
+ right.width += item._width;
87
+ } else {
88
+ center.keys.push(item);
89
+ center.width += item._width;
90
+ }
91
+ });
92
+ return {
93
+ left: left,
94
+ center: center,
95
+ right: right
96
+ };
97
+ };
@@ -0,0 +1 @@
1
+ import './index.less';
@@ -6,7 +6,7 @@
6
6
  } */
7
7
  import { defineComponent as _defineComponent } from 'vue';
8
8
  import { unref as _unref, renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
9
- const _withScopeId = n => (_pushScopeId("data-v-1720601917260"), n = n(), _popScopeId(), n);
9
+ const _withScopeId = n => (_pushScopeId("data-v-1722997806474"), n = n(), _popScopeId(), n);
10
10
  const _hoisted_1 = { class: "full-page-warp-content" };
11
11
  import { ref } from 'vue';
12
12
  import { useElementBounding } from '@vueuse/core';