dlt-for-react 1.0.13 → 1.0.14

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/README.md CHANGED
@@ -8,7 +8,7 @@ npm publish
8
8
 
9
9
  ## 前端 dlt-for-react 依赖包版本更新记录
10
10
 
11
- ##### 当前最新版本:1.0.13
11
+ ##### 当前最新版本:1.0.14
12
12
 
13
13
  ##### 安装依赖
14
14
 
@@ -16,6 +16,10 @@ npm publish
16
16
 
17
17
  ##### 版本修改记录
18
18
 
19
+ #### V1.0.14—2023 年 10 月 25 日
20
+
21
+ 1. 补充 KyTableCardList 组件
22
+
19
23
  #### V1.0.13—2023 年 10 月 24 日
20
24
 
21
25
  1. 补充 KyTree 组件
@@ -0,0 +1,200 @@
1
+ :global {
2
+ .ky-table-card-list {
3
+ width: 100%;
4
+ height: 100%;
5
+ .custom_scrollbars {
6
+ width: 100%;
7
+ }
8
+ .searchDiv {
9
+ margin-bottom: 16px;
10
+ .hide_select_field_icon {
11
+ .ant-select-arrow {
12
+ display: none;
13
+ }
14
+ }
15
+
16
+ .ant-select .ant-select-selection {
17
+ border: none !important;
18
+ outline: none !important;
19
+ box-shadow: none !important;
20
+ }
21
+ .search-input {
22
+ width: 230px;
23
+ }
24
+ .search-radio,
25
+ .search-checkbox {
26
+ margin-left: 28px;
27
+ }
28
+
29
+ .search-btn {
30
+ margin: 0 20px;
31
+ }
32
+ .height-text {
33
+ margin-left: 10px;
34
+ }
35
+ }
36
+
37
+ .highSearch-box {
38
+ margin-bottom: 10px;
39
+ div.ant-select-selection {
40
+ border-width: 1px !important;
41
+ }
42
+ button.ant-btn {
43
+ margin: 10px 0 0px 10px;
44
+ }
45
+ div.ant-form-item {
46
+ margin-bottom: 0px;
47
+ }
48
+ span.ant-time-picker {
49
+ width: 100%;
50
+ }
51
+ }
52
+ .content-box {
53
+ padding: 2px 0 0 0;
54
+ .card-list {
55
+ position: relative;
56
+ display: flex;
57
+ justify-content: flex-start;
58
+ width: 100%;
59
+ height: 110px;
60
+ margin-bottom: 16px;
61
+ padding: 24px;
62
+ padding: 24px 24px 24px 22px;
63
+ overflow: hidden;
64
+ background: #ffffff;
65
+ border-right: 1px solid #d9d9d9;
66
+ border-radius: 6px;
67
+ box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.12);
68
+ opacity: 1;
69
+
70
+ .statusLine {
71
+ position: absolute;
72
+ top: 0;
73
+ left: 0;
74
+ width: 6px;
75
+ height: 110px;
76
+ background: #397ef0;
77
+ }
78
+ .item-left {
79
+ flex-shrink: 0;
80
+ width: 70%;
81
+ .title_box {
82
+ display: flex;
83
+ .title {
84
+ width: 400px;
85
+ margin-bottom: 16px;
86
+ overflow: hidden;
87
+ color: #397ef0;
88
+ font-weight: bold;
89
+ font-size: 18px;
90
+ font-family: Source Han Sans CN;
91
+ white-space: nowrap;
92
+ text-overflow: ellipsis;
93
+ cursor: pointer;
94
+ opacity: 1;
95
+ }
96
+ .subhead {
97
+ margin-left: 25px;
98
+ .subhead_label {
99
+ color: rgba(0, 0, 0, 0.85);
100
+ }
101
+ }
102
+ }
103
+ .label,
104
+ .value {
105
+ display: inline-block;
106
+ color: rgba(0, 0, 0, 0.85);
107
+ font-weight: bold;
108
+ font-size: 14px;
109
+ font-family: Source Han Sans CN;
110
+ }
111
+ .value {
112
+ color: rgba(0, 0, 0, 0.65);
113
+ font-weight: 400;
114
+ }
115
+ .warningText {
116
+ color: #ff4d4f;
117
+ cursor: pointer;
118
+ }
119
+ }
120
+ .status {
121
+ flex-basis: 10%;
122
+ flex-shrink: 0;
123
+ margin-right: 16px;
124
+ line-height: 62px;
125
+ text-align: right;
126
+ .dot {
127
+ position: relative;
128
+ top: -2px;
129
+ display: inline-block;
130
+ width: 6px;
131
+ height: 6px;
132
+ margin-right: 4px;
133
+ border-radius: 50%;
134
+ }
135
+ .status-text {
136
+ font-weight: 400;
137
+ font-size: 14px;
138
+ font-family: Source Han Sans CN;
139
+ opacity: 1;
140
+ }
141
+ }
142
+ .operate {
143
+ flex-basis: 20%;
144
+ flex-shrink: 0;
145
+ line-height: 62px;
146
+ text-align: right;
147
+ .iconDown {
148
+ margin-left: 4px;
149
+ font-size: 12px;
150
+ }
151
+ .action {
152
+ color: #397ef0;
153
+ font-weight: 400;
154
+ font-size: 14px;
155
+ font-family: Source Han Sans CN;
156
+ opacity: 1;
157
+ &[disabled] {
158
+ color: rgba(0, 0, 0, 0.45);
159
+ }
160
+ .operate-icon {
161
+ width: 20px;
162
+ height: 20px;
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
168
+ .card-list-pagination {
169
+ width: 100%;
170
+ height: 24px;
171
+ .ant-pagination {
172
+ text-align: right;
173
+ }
174
+ .ant-pagination.mini .ant-pagination-total-text,
175
+ .ant-pagination.mini .ant-pagination-simple-pager {
176
+ float: left;
177
+ }
178
+ .ant-pagination-item-active {
179
+ background: #fff;
180
+ a {
181
+ color: #397ef0;
182
+ }
183
+ }
184
+ }
185
+ }
186
+ .ant-dropdown-menu-item .action {
187
+ color: #397ef0;
188
+ font-weight: 400;
189
+ font-size: 14px;
190
+ font-family: Source Han Sans CN;
191
+ opacity: 1;
192
+ &[disabled] {
193
+ color: rgba(0, 0, 0, 0.45);
194
+ }
195
+ .operate-icon {
196
+ width: 20px;
197
+ height: 20px;
198
+ }
199
+ }
200
+ }
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _modal = require("antd/lib/modal");
8
+
9
+ var _modal2 = _interopRequireDefault(_modal);
10
+
11
+ var _checkbox = require("antd/lib/checkbox");
12
+
13
+ var _checkbox2 = _interopRequireDefault(_checkbox);
14
+
15
+ var _input = require("antd/lib/input");
16
+
17
+ var _input2 = _interopRequireDefault(_input);
18
+
19
+ var _icon = require("antd/lib/icon");
20
+
21
+ var _icon2 = _interopRequireDefault(_icon);
22
+
23
+ var _extends2 = require("babel-runtime/helpers/extends");
24
+
25
+ var _extends3 = _interopRequireDefault(_extends2);
26
+
27
+ var _message2 = require("antd/lib/message");
28
+
29
+ var _message3 = _interopRequireDefault(_message2);
30
+
31
+ var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
32
+
33
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
34
+
35
+ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
36
+
37
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38
+
39
+ var _createClass2 = require("babel-runtime/helpers/createClass");
40
+
41
+ var _createClass3 = _interopRequireDefault(_createClass2);
42
+
43
+ var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
44
+
45
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46
+
47
+ var _inherits2 = require("babel-runtime/helpers/inherits");
48
+
49
+ var _inherits3 = _interopRequireDefault(_inherits2);
50
+
51
+ require("antd/lib/modal/style");
52
+
53
+ require("antd/lib/checkbox/style");
54
+
55
+ require("antd/lib/input/style");
56
+
57
+ require("antd/lib/icon/style");
58
+
59
+ require("antd/lib/message/style");
60
+
61
+ var _react = require("react");
62
+
63
+ var _react2 = _interopRequireDefault(_react);
64
+
65
+ var _isEqual = require("lodash/isEqual");
66
+
67
+ var _isEqual2 = _interopRequireDefault(_isEqual);
68
+
69
+ var _debounce = require("lodash/debounce");
70
+
71
+ var _debounce2 = _interopRequireDefault(_debounce);
72
+
73
+ var _classnames = require("classnames");
74
+
75
+ var _classnames2 = _interopRequireDefault(_classnames);
76
+
77
+ var _reactCustomScrollbars = require("react-custom-scrollbars");
78
+
79
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
80
+
81
+ var currentLine = 0; /**
82
+ * 高级搜索-添加搜索字段
83
+ */
84
+
85
+ var AddFieldsModal = function (_Component) {
86
+ (0, _inherits3.default)(AddFieldsModal, _Component);
87
+
88
+ function AddFieldsModal(props) {
89
+ (0, _classCallCheck3.default)(this, AddFieldsModal);
90
+
91
+ var _this = (0, _possibleConstructorReturn3.default)(this, (AddFieldsModal.__proto__ || (0, _getPrototypeOf2.default)(AddFieldsModal)).call(this, props));
92
+
93
+ _this.debounceSearch = function (value) {
94
+ _this.setState({ searchValue: value }, function () {
95
+ _this.changeItem();
96
+ });
97
+ // 搜索字段为空,重置currentLine
98
+ if (value == "") {
99
+ currentLine = 0;
100
+ }
101
+ };
102
+
103
+ _this.handleSearchChange = function (e) {
104
+ var value = e.target.value;
105
+
106
+ _this.debounceSearch(value);
107
+ };
108
+
109
+ _this.onChange = function (checkedList) {
110
+ var data = _this.props.data;
111
+
112
+ _this.setState({
113
+ checkedList: checkedList,
114
+ indeterminate: !!checkedList.length && checkedList.length < data.length,
115
+ checkAll: checkedList.length === data.length
116
+ });
117
+ };
118
+
119
+ _this.onCheckAllChange = function (e) {
120
+ var data = _this.props.data;
121
+
122
+ _this.setState({
123
+ checkedList: e.target.checked ? data.map(function (item) {
124
+ return item.dataIndex;
125
+ }) : [],
126
+ indeterminate: false,
127
+ checkAll: e.target.checked
128
+ });
129
+ };
130
+
131
+ _this.handleOk = function () {
132
+ var _this$props = _this.props,
133
+ data = _this$props.data,
134
+ onOk = _this$props.onOk;
135
+ var checkedList = _this.state.checkedList;
136
+
137
+ if (!checkedList || checkedList.length < 1) {
138
+ _message3.default.info('请至少选择一个字段');
139
+ return;
140
+ }
141
+ var result = [];
142
+ data.forEach(function (item) {
143
+ if (checkedList.includes(item.dataIndex)) {
144
+ var nitem = (0, _extends3.default)({}, item);
145
+ nitem.defaultSearch = true;
146
+ result.push(nitem);
147
+ }
148
+ });
149
+ onOk && onOk(result);
150
+ };
151
+
152
+ _this.handleCancel = function () {
153
+ var onCancel = _this.props.onCancel;
154
+
155
+ _this.setState({
156
+ searchValue: ""
157
+ });
158
+ onCancel && onCancel();
159
+ };
160
+
161
+ _this.handleKeyUp = function (e) {
162
+ // Enter键盘事件
163
+ if (e.keyCode == 13) {
164
+ _this.changeItem();
165
+ }
166
+ };
167
+
168
+ _this.changeItem = function () {
169
+ var elements = document.getElementById("" + _this.listID).getElementsByClassName("textHighLight");
170
+ if (elements.length) {
171
+ // 最后一个高亮
172
+ if (currentLine === elements.length) {
173
+ currentLine = 0;
174
+ }
175
+ // 清除高亮
176
+ for (var index = 0; index < elements.length; index++) {
177
+ var element = elements[index];
178
+ element.classList.remove("active");
179
+ }
180
+ // 添加高亮
181
+ elements[currentLine].classList.add("active");
182
+ // currentLine + 1
183
+ currentLine++;
184
+ }
185
+ };
186
+
187
+ _this.listID = "fields-" + Math.random().toString(36);
188
+ _this.state = {
189
+ searchValue: "", // 搜索字段
190
+ checkedList: _this.props.checkedList || [], // 选中项
191
+ indeterminate: false, // 控制全选样式状态
192
+ checkAll: false // 是否全选
193
+ };
194
+ _this.debounceSearch = (0, _debounce2.default)(_this.debounceSearch, 500);
195
+ return _this;
196
+ }
197
+
198
+ (0, _createClass3.default)(AddFieldsModal, [{
199
+ key: "componentWillReceiveProps",
200
+ value: function componentWillReceiveProps(nextProps) {
201
+ if ("checkedList" in nextProps && !(0, _isEqual2.default)(nextProps.checkedList, this.props.checkedList)) {
202
+ var checkedList = nextProps.checkedList,
203
+ data = nextProps.data;
204
+
205
+ this.setState({
206
+ checkedList: checkedList,
207
+ checkAll: checkedList.length === data.length,
208
+ indeterminate: !!checkedList.length && checkedList.length < data.length
209
+ });
210
+ }
211
+ }
212
+
213
+ // 搜索
214
+
215
+
216
+ // 单个选择
217
+
218
+
219
+ // 全选
220
+
221
+
222
+ // 保存
223
+
224
+
225
+ // Enter键切换高亮
226
+
227
+ }, {
228
+ key: "render",
229
+ value: function render() {
230
+ var _props = this.props,
231
+ wrapClassName = _props.wrapClassName,
232
+ visible = _props.visible,
233
+ width = _props.width,
234
+ title = _props.title,
235
+ data = _props.data,
236
+ colNum = _props.colNum,
237
+ onCancel = _props.onCancel;
238
+ var _state = this.state,
239
+ searchValue = _state.searchValue,
240
+ indeterminate = _state.indeterminate,
241
+ checkAll = _state.checkAll,
242
+ checkedList = _state.checkedList;
243
+
244
+ var reg = new RegExp(searchValue, "ig");
245
+ return _react2.default.createElement(
246
+ _modal2.default,
247
+ {
248
+ wrapClassName: (0, _classnames2.default)(wrapClassName, "addSearchFieldsModal"),
249
+ width: width,
250
+ title: title,
251
+ okText: "\u4FDD\u5B58",
252
+ visible: visible,
253
+ onCancel: this.handleCancel,
254
+ onOk: this.handleOk
255
+ },
256
+ _react2.default.createElement(
257
+ "div",
258
+ { className: "searchBox" },
259
+ _react2.default.createElement(_input2.default, {
260
+ placeholder: "\u641C\u7D22\u5B57\u6BB5",
261
+ prefix: _react2.default.createElement(_icon2.default, { type: "search", style: { color: "#999" } }),
262
+ onChange: this.handleSearchChange,
263
+ onKeyUp: this.handleKeyUp,
264
+ style: { width: 280 }
265
+ })
266
+ ),
267
+ _react2.default.createElement(
268
+ "div",
269
+ { className: "checkAllBox" },
270
+ _react2.default.createElement(
271
+ _checkbox2.default,
272
+ {
273
+ indeterminate: indeterminate,
274
+ onChange: this.onCheckAllChange,
275
+ checked: checkAll
276
+ },
277
+ _react2.default.createElement(
278
+ "b",
279
+ null,
280
+ "\u5168\u9009"
281
+ )
282
+ ),
283
+ _react2.default.createElement(
284
+ "span",
285
+ { className: "tip" },
286
+ "\u5DF2\u9009\u62E9\uFF1A",
287
+ _react2.default.createElement(
288
+ "span",
289
+ { className: "num" },
290
+ checkedList.length
291
+ )
292
+ )
293
+ ),
294
+ _react2.default.createElement(
295
+ _reactCustomScrollbars.Scrollbars,
296
+ { style: { height: 300 }, autoHide: true },
297
+ _react2.default.createElement(
298
+ _checkbox2.default.Group,
299
+ {
300
+ style: { width: "100%" },
301
+ value: checkedList,
302
+ onChange: this.onChange
303
+ },
304
+ _react2.default.createElement(
305
+ "table",
306
+ { id: this.listID },
307
+ _react2.default.createElement(
308
+ "tbody",
309
+ null,
310
+ data.map(function (row, i) {
311
+ if (i % colNum === 0) {
312
+ return _react2.default.createElement(
313
+ "tr",
314
+ { key: i },
315
+ data.slice(i, i % colNum === 0 ? i + colNum : i % colNum).map(function (item, j) {
316
+ var _label = item.title;
317
+ // 对label做高亮匹配
318
+ if (searchValue) {
319
+ var match = _label && _label.match(reg) || [];
320
+ _label = _label && _label.split(reg).map(function (_it, _idx) {
321
+ return _idx > 0 ? [_react2.default.createElement(
322
+ "span",
323
+ {
324
+ key: _idx,
325
+ className: "textHighLight"
326
+ },
327
+ match[0]
328
+ ), _it] : _it;
329
+ });
330
+ }
331
+ return _react2.default.createElement(
332
+ "td",
333
+ { key: j },
334
+ _react2.default.createElement(
335
+ _checkbox2.default,
336
+ {
337
+ value: item.dataIndex
338
+ },
339
+ _label
340
+ )
341
+ );
342
+ })
343
+ );
344
+ } else {
345
+ return null;
346
+ }
347
+ })
348
+ )
349
+ )
350
+ )
351
+ ),
352
+ _react2.default.createElement(
353
+ "style",
354
+ { jsx: "true", global: "true" },
355
+ "\n .addSearchFieldsModal .searchBox{\n\t\t\t\t\t\t\t\tmargin-bottom: 16px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal .checkAllBox{\n\t\t\t\t\t\t\t\tmargin: 0 0 8px 9px;\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal .checkAllBox .tip{\n\t\t\t\t\t\t\t\tcolor: #bbb;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal .checkAllBox .num{\n\t\t\t\t\t\t\t\tcolor: #fc0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal table{\n\t\t\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t\t\tborder: 1px solid #e8e8e8;\n\t\t\t\t\t\t\t\tborder-right: 0;\n\t\t\t\t\t\t\t\tborder-bottom: 0;\n\t\t\t\t\t\t\t\tborder-radius: 4px 4px 0 0;\n\t\t\t\t\t\t\t\tborder-collapse: separate;\n\t\t\t\t\t\t\t\tborder-spacing: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal table td{\n\t\t\t\t\t\t\t\tborder-right: 1px solid #e8e8e8;\n\t\t\t\t\t\t\t\tborder-bottom: 1px solid #e8e8e8;\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal table td:hover{\n\t\t\t\t\t\t\t\tbackground-color: #eef7fe;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal table .ant-checkbox-wrapper{\n\t\t\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\t\t\tpadding: 6px 8px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal .textHighLight{\n\t\t\t\t\t\t\t\tbackground-color: #fff5cc;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.addSearchFieldsModal .textHighLight .active{\n\t\t\t\t\t\t\t\tbackground-color: #ffdc52;\n\t\t\t\t\t\t\t}\n "
356
+ )
357
+ );
358
+ }
359
+ }]);
360
+ return AddFieldsModal;
361
+ }(_react.Component);
362
+
363
+ AddFieldsModal.defaultProps = {
364
+ visible: false,
365
+ width: 900, // 默认模态框宽度900
366
+ title: "添加搜索字段",
367
+ data: [], // 可供添加的字段列表
368
+ colNum: 6 // 默认一行显示6列
369
+ };
370
+ exports.default = AddFieldsModal;