@jetlinks-web/components 3.1.15 → 3.2.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.
Files changed (57) hide show
  1. package/es/EditTable/CellRender.js +69 -3
  2. package/es/EditTable/EditTable.js +108 -165
  3. package/es/EditTable/FormItem.js +234 -95
  4. package/es/EditTable/consts.js +13 -13
  5. package/es/EditTable/context.js +3 -2
  6. package/es/EditTable/fieldPool.js +166 -0
  7. package/es/EditTable/hooks/index.js +4 -2
  8. package/es/EditTable/hooks/useValidate.js +121 -51
  9. package/es/EditTable/hooks/useVirtualTreeTable.js +111 -0
  10. package/es/EditTable/index.js +0 -4
  11. package/es/EditTable/style/body.js +15 -2
  12. package/es/EditTable/style/form.js +2 -2
  13. package/es/EditTable/style/header.js +2 -2
  14. package/es/EditTable/style/table.js +2 -1
  15. package/es/Icon/icon.js +3 -3
  16. package/es/ProTable/ProTable.js +5 -0
  17. package/es/Search/Advanced/index.js +1 -1
  18. package/es/Search/Item.js +13 -1
  19. package/es/Search/util.js +1 -1
  20. package/es/VirtualTable/Table.js +367 -0
  21. package/es/VirtualTable/VirtualBody.js +94 -0
  22. package/es/VirtualTable/index.js +1 -1
  23. package/es/VirtualTable/useTreeData.js +243 -0
  24. package/es/VirtualTable/useVirtualScroll.js +159 -0
  25. package/lib/EditTable/CellRender.js +69 -3
  26. package/lib/EditTable/EditTable.js +108 -165
  27. package/lib/EditTable/FormItem.js +234 -95
  28. package/lib/EditTable/consts.js +13 -13
  29. package/lib/EditTable/context.js +3 -2
  30. package/lib/EditTable/fieldPool.js +173 -0
  31. package/lib/EditTable/hooks/index.js +15 -2
  32. package/lib/EditTable/hooks/useValidate.js +120 -50
  33. package/lib/EditTable/hooks/useVirtualTreeTable.js +117 -0
  34. package/lib/EditTable/index.js +0 -4
  35. package/lib/EditTable/style/body.js +15 -2
  36. package/lib/EditTable/style/form.js +2 -2
  37. package/lib/EditTable/style/header.js +2 -2
  38. package/lib/EditTable/style/table.js +2 -1
  39. package/lib/Icon/icon.js +3 -3
  40. package/lib/ProTable/ProTable.js +5 -0
  41. package/lib/Search/Advanced/index.js +1 -1
  42. package/lib/Search/Item.js +13 -1
  43. package/lib/Search/util.js +1 -1
  44. package/lib/VirtualTable/Table.js +374 -0
  45. package/lib/VirtualTable/VirtualBody.js +100 -0
  46. package/lib/VirtualTable/index.js +4 -4
  47. package/lib/VirtualTable/useTreeData.js +250 -0
  48. package/lib/VirtualTable/useVirtualScroll.js +165 -0
  49. package/package.json +3 -3
  50. package/es/EditTable/Body.js +0 -312
  51. package/es/EditTable/Header.js +0 -164
  52. package/es/EditTable/HeaderRender.js +0 -12
  53. package/es/VirtualTable/VirtualTable.js +0 -482
  54. package/lib/EditTable/Body.js +0 -312
  55. package/lib/EditTable/Header.js +0 -164
  56. package/lib/EditTable/HeaderRender.js +0 -12
  57. package/lib/VirtualTable/VirtualTable.js +0 -482
@@ -54,13 +54,26 @@ Object.keys(_useGroup).forEach(function (key) {
54
54
  }
55
55
  });
56
56
  });
57
+ var _useVirtualTreeTable = require("./useVirtualTreeTable");
58
+ Object.keys(_useVirtualTreeTable).forEach(function (key) {
59
+ if (key === "default" || key === "__esModule") return;
60
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
61
+ if (key in exports && exports[key] === _useVirtualTreeTable[key]) return;
62
+ Object.defineProperty(exports, key, {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _useVirtualTreeTable[key];
66
+ }
67
+ });
68
+ });
57
69
  var FormContextKey = 'form-context';
58
70
  var useFormContext = exports.useFormContext = function useFormContext(options) {
59
71
  (0, _vue.provide)(FormContextKey, options);
60
72
  };
61
73
  var useInjectForm = exports.useInjectForm = function useInjectForm() {
62
74
  return (0, _vue.inject)(FormContextKey, {
63
- addField: function addField(key, field) {},
75
+ addField: function addField() {},
76
+ removeField: function removeField() {},
64
77
  dataSource: (0, _vue.computed)(function () {
65
78
  return [];
66
79
  }),
@@ -82,7 +95,7 @@ var useTableDataSource = exports.useTableDataSource = function useTableDataSourc
82
95
  return (0, _vue.inject)(_consts.TABLE_DATA_SOURCE, []);
83
96
  };
84
97
  var useTableTool = exports.useTableTool = function useTableTool() {
85
- return (0, _vue.inject)(_consts.TABLE_TOOL, false);
98
+ return (0, _vue.inject)(_consts.TABLE_TOOL, {});
86
99
  };
87
100
  var useFormItemError = exports.useFormItemError = function useFormItemError() {
88
101
  return (0, _vue.inject)(_consts.TABLE_FORM_ITEM_ERROR);
@@ -6,89 +6,159 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useValidate = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _asyncValidator = _interopRequireDefault(require("async-validator"));
11
10
  var _utils = require("../utils");
12
11
  var _vue = require("vue");
12
+ /**
13
+ * 表单校验 Hook
14
+ * @param dataSource 数据源
15
+ * @param columns 列配置(可以是响应式的)
16
+ * @param rowKey 行唯一标识字段
17
+ * @param options 配置选项
18
+ */
13
19
  var useValidate = exports.useValidate = function useValidate(dataSource, columns, rowKey) {
14
20
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
15
21
  var errorMap = (0, _vue.ref)({});
16
- var schemaInstance;
17
22
  var rules = (0, _vue.ref)({});
18
- var _options = (0, _extends2.default)({
23
+ var schemaInstance = null;
24
+ var _options = (0, _objectSpread2.default)({
19
25
  validateRowKey: false
20
26
  }, options);
27
+ /**
28
+ * 获取列配置(处理响应式和非响应式情况)
29
+ */
30
+ var getColumns = function getColumns() {
31
+ if ('value' in columns) {
32
+ return columns.value;
33
+ }
34
+ return columns;
35
+ };
36
+ /**
37
+ * 创建/重新创建校验器
38
+ */
39
+ var createValidator = function createValidator() {
40
+ var currentColumns = getColumns();
41
+ rules.value = (0, _utils.collectValidateRules)(currentColumns);
42
+ schemaInstance = new _asyncValidator.default(rules.value);
43
+ };
44
+ /**
45
+ * 校验单条数据
46
+ * @param data 要校验的数据
47
+ * @param index 数据索引
48
+ */
21
49
  var validateItem = function validateItem(data) {
22
50
  var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
23
51
  return new Promise(function (resolve, reject) {
24
- schemaInstance.validate(data, {
25
- firstFields: true,
26
- index: index
27
- }, function (err) {
28
- if (err !== null && err !== void 0 && err.length) {
29
- reject(err.map(function (item) {
52
+ if (!schemaInstance) {
53
+ createValidator();
54
+ }
55
+ // 使用 toRaw 避免代理对象问题
56
+ var rawData = (0, _vue.toRaw)(data);
57
+ schemaInstance.validate(rawData, {
58
+ firstFields: true
59
+ }, function (errors) {
60
+ if (errors !== null && errors !== void 0 && errors.length) {
61
+ var mappedErrors = errors.map(function (item) {
62
+ var _rawData$__serial;
30
63
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
31
- __serial: data.__serial,
32
- __dataIndex: index
64
+ __serial: (_rawData$__serial = rawData.__serial) !== null && _rawData$__serial !== void 0 ? _rawData$__serial : index + 1,
65
+ __dataIndex: index,
66
+ fieldValue: rawData[item.field]
33
67
  });
34
- }));
68
+ });
69
+ reject(mappedErrors);
35
70
  } else {
36
- resolve(data);
71
+ resolve(rawData);
37
72
  }
38
73
  });
39
74
  });
40
75
  };
76
+ /**
77
+ * 校验所有数据
78
+ */
41
79
  var validate = function validate() {
42
80
  return new Promise(function (resolve, reject) {
43
81
  var filterDataSource = dataSource.value;
44
82
  var len = filterDataSource.length;
45
- var error = [];
46
- var success = [];
47
- var validateLen = 0;
48
- var end = function end() {
49
- validateLen += 1;
50
- if (validateLen === len) {
51
- var isSuccess = !Object.keys(error).length;
52
- if (isSuccess) {
53
- var _options$onSuccess;
54
- resolve(success);
55
- (_options$onSuccess = _options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(_options);
56
- } else {
83
+ // 空数据直接返回
84
+ if (len === 0) {
85
+ var _options$onSuccess;
86
+ (_options$onSuccess = _options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(_options);
87
+ resolve([]);
88
+ return;
89
+ }
90
+ var errors = [];
91
+ var successItems = [];
92
+ var completedCount = 0;
93
+ var checkComplete = function checkComplete() {
94
+ completedCount += 1;
95
+ if (completedCount === len) {
96
+ var hasErrors = errors.length > 0;
97
+ if (hasErrors) {
57
98
  var _options$onError;
58
- (_options$onError = _options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(_options, error);
59
- reject(error);
60
- }
61
- }
62
- };
63
- var validateRowKey = _options.validateRowKey;
64
- if (filterDataSource.length) {
65
- filterDataSource.forEach(function (record, index) {
66
- if (validateRowKey || record[rowKey]) {
67
- validateItem(record, index).then(function (res) {
68
- success.push((0, _utils.handlePureRecord)(res));
69
- end();
70
- }).catch(function (err) {
71
- error.push(err);
72
- end();
99
+ // __dataIndex 排序错误
100
+ errors.sort(function (a, b) {
101
+ var _a$0$__dataIndex, _a$, _b$0$__dataIndex, _b$;
102
+ var aIndex = (_a$0$__dataIndex = (_a$ = a[0]) === null || _a$ === void 0 ? void 0 : _a$.__dataIndex) !== null && _a$0$__dataIndex !== void 0 ? _a$0$__dataIndex : 0;
103
+ var bIndex = (_b$0$__dataIndex = (_b$ = b[0]) === null || _b$ === void 0 ? void 0 : _b$.__dataIndex) !== null && _b$0$__dataIndex !== void 0 ? _b$0$__dataIndex : 0;
104
+ return aIndex - bIndex;
73
105
  });
106
+ (_options$onError = _options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(_options, errors);
107
+ reject(errors);
74
108
  } else {
75
- end();
109
+ var _options$onSuccess2;
110
+ (_options$onSuccess2 = _options.onSuccess) === null || _options$onSuccess2 === void 0 ? void 0 : _options$onSuccess2.call(_options);
111
+ resolve(successItems);
76
112
  }
77
- });
78
- } else {
79
- resolve(filterDataSource);
80
- }
113
+ }
114
+ };
115
+ var shouldValidateRow = _options.validateRowKey;
116
+ filterDataSource.forEach(function (record, index) {
117
+ // 判断是否需要校验该行
118
+ var hasRowKey = !!record[rowKey];
119
+ if (shouldValidateRow || hasRowKey) {
120
+ validateItem(record, index).then(function (res) {
121
+ successItems.push((0, _utils.handlePureRecord)(res));
122
+ checkComplete();
123
+ }).catch(function (err) {
124
+ errors.push(err);
125
+ checkComplete();
126
+ });
127
+ } else {
128
+ // 跳过没有 rowKey 的行
129
+ checkComplete();
130
+ }
131
+ });
81
132
  });
82
133
  };
83
- var createValidate = function createValidate() {
84
- rules.value = (0, _utils.collectValidateRules)(columns);
85
- schemaInstance = new _asyncValidator.default(rules.value);
134
+ /**
135
+ * 清除所有错误
136
+ */
137
+ var clearErrors = function clearErrors() {
138
+ errorMap.value = {};
86
139
  };
87
- createValidate();
140
+ /**
141
+ * 重新创建校验器(当列配置变化时调用)
142
+ */
143
+ var recreateValidator = function recreateValidator() {
144
+ createValidator();
145
+ };
146
+ // 初始化校验器
147
+ createValidator();
148
+ // 如果 columns 是响应式的,监听其变化并重新创建校验器
149
+ if ('value' in columns) {
150
+ (0, _vue.watch)(function () {
151
+ return JSON.stringify(columns.value);
152
+ }, function () {
153
+ createValidator();
154
+ });
155
+ }
88
156
  return {
89
157
  validate: validate,
90
158
  validateItem: validateItem,
91
159
  errorMap: errorMap,
92
- rules: rules
160
+ rules: rules,
161
+ recreateValidator: recreateValidator,
162
+ clearErrors: clearErrors
93
163
  };
94
164
  };
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useVirtualTreeTable = useVirtualTreeTable;
8
+ var _vue = require("vue");
9
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
10
+ var _vcVirtualList = _interopRequireDefault(require("ant-design-vue/lib/vc-virtual-list"));
11
+ function useVirtualTreeTable(options) {
12
+ var treeData = options.treeData,
13
+ columns = options.columns,
14
+ _options$rowKey = options.rowKey,
15
+ rowKey = _options$rowKey === void 0 ? 'key' : _options$rowKey,
16
+ _options$rowHeight = options.rowHeight,
17
+ rowHeight = _options$rowHeight === void 0 ? 48 : _options$rowHeight,
18
+ _options$scrollY = options.scrollY,
19
+ scrollY = _options$scrollY === void 0 ? 400 : _options$scrollY;
20
+ /** ----------------------------
21
+ * 展开状态
22
+ ----------------------------- */
23
+ var expandedKeys = (0, _vue.ref)(new Set());
24
+ var toggleExpand = function toggleExpand(key) {
25
+ if (expandedKeys.value.has(key)) {
26
+ expandedKeys.value.delete(key);
27
+ } else {
28
+ expandedKeys.value.add(key);
29
+ }
30
+ };
31
+ /** ----------------------------
32
+ * Tree → Flat
33
+ ----------------------------- */
34
+ function flattenTree(nodes) {
35
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
36
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
37
+ var _iterator = (0, _createForOfIteratorHelper2.default)(nodes),
38
+ _step;
39
+ try {
40
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
41
+ var node = _step.value;
42
+ var key = node[rowKey];
43
+ var isLeaf = !node.children || node.children.length === 0;
44
+ result.push({
45
+ key: key,
46
+ record: node,
47
+ level: level,
48
+ isLeaf: isLeaf
49
+ });
50
+ if (!isLeaf && expandedKeys.value.has(key)) {
51
+ flattenTree(node.children, level + 1, result);
52
+ }
53
+ }
54
+ } catch (err) {
55
+ _iterator.e(err);
56
+ } finally {
57
+ _iterator.f();
58
+ }
59
+ return result;
60
+ }
61
+ var flatData = (0, _vue.computed)(function () {
62
+ return flattenTree(treeData.value || []);
63
+ });
64
+ /** ----------------------------
65
+ * Virtual Body 工厂
66
+ ----------------------------- */
67
+ var VirtualBody = (0, _vue.defineComponent)({
68
+ name: 'VirtualTableBody',
69
+ setup: function setup() {
70
+ return function () {
71
+ return (0, _vue.createVNode)(_vcVirtualList.default, {
72
+ "data": flatData.value,
73
+ "height": scrollY,
74
+ "itemHeight": rowHeight,
75
+ "itemKey": "key"
76
+ }, {
77
+ default: function _default(item) {
78
+ return (0, _vue.createVNode)("tr", null, [columns.value.map(function (col, index) {
79
+ if (index === 0) {
80
+ return (0, _vue.createVNode)("td", null, [(0, _vue.createVNode)("div", {
81
+ "style": {
82
+ paddingLeft: "".concat(item.level * 16, "px"),
83
+ display: 'flex',
84
+ alignItems: 'center'
85
+ }
86
+ }, [!item.isLeaf && (0, _vue.createVNode)("span", {
87
+ "style": {
88
+ cursor: 'pointer',
89
+ marginRight: '4px'
90
+ },
91
+ "onClick": function onClick() {
92
+ return toggleExpand(item.key);
93
+ }
94
+ }, [expandedKeys.value.has(item.key) ? '▼' : '▶']), (0, _vue.createVNode)("span", null, [item.record[col.dataIndex]])])]);
95
+ }
96
+ return (0, _vue.createVNode)("td", null, [item.record[col.dataIndex]]);
97
+ })]);
98
+ }
99
+ });
100
+ };
101
+ }
102
+ });
103
+ /** ----------------------------
104
+ * 暴露给 Table 的 components
105
+ ----------------------------- */
106
+ var components = {
107
+ body: {
108
+ wrapper: VirtualBody
109
+ }
110
+ };
111
+ return {
112
+ flatData: flatData,
113
+ expandedKeys: expandedKeys,
114
+ toggleExpand: toggleExpand,
115
+ components: components
116
+ };
117
+ }
@@ -6,13 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _EditTable = _interopRequireDefault(require("./EditTable.js"));
9
- var _Body = _interopRequireDefault(require("./Body.js"));
10
- var _Header = _interopRequireDefault(require("./Header.js"));
11
9
  var _FormItem = _interopRequireDefault(require("./FormItem.js"));
12
10
  _EditTable.default.install = function (app) {
13
11
  app.component(_EditTable.default.name, _EditTable.default);
14
- app.component(_Body.default.name, _Body.default);
15
- app.component(_Header.default.name, _Header.default);
16
12
  app.component(_FormItem.default.name, _FormItem.default);
17
13
  };
18
14
  var _default = exports.default = _EditTable.default;
@@ -9,7 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var genEditTableBodyStyle = exports.genEditTableBodyStyle = function genEditTableBodyStyle(config) {
10
10
  var componentCls = config.componentCls,
11
11
  token = config.token;
12
- return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, '.jetlinks-edit-table-body-viewport', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
12
+ return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, '.jetlinks-edit-table-body-viewport', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
13
13
  maxHeight: '100%',
14
14
  width: '100%',
15
15
  overflow: 'hidden auto',
@@ -56,5 +56,18 @@ var genEditTableBodyStyle = exports.genEditTableBodyStyle = function genEditTabl
56
56
  width: '100%',
57
57
  justifyContent: 'center',
58
58
  paddingTop: 24
59
- });
59
+ }), '.jetlinks-edit-table-body', (0, _defineProperty2.default)((0, _defineProperty2.default)({}, '.virtual-table-wrapper', (0, _defineProperty2.default)((0, _defineProperty2.default)({
60
+ height: '100%'
61
+ }, '.virtual-table-header', {
62
+ display: 'none' // 使用 EditTable 自己的 Header
63
+ }), '.virtual-table-body', {
64
+ height: '100%'
65
+ })), '.readonly-mask', {
66
+ position: 'absolute',
67
+ top: 0,
68
+ left: 0,
69
+ right: 0,
70
+ bottom: 0,
71
+ zIndex: 4
72
+ }));
60
73
  };
@@ -11,8 +11,8 @@ var genEditTableFormItemStyle = exports.genEditTableFormItemStyle = function gen
11
11
  token = config.token;
12
12
  return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, '.jetlinks-table-form-error-target', {
13
13
  position: 'absolute',
14
- right: '2px',
15
- top: '-9px',
14
+ right: '0',
15
+ top: '0',
16
16
  border: '16px solid transparent',
17
17
  borderTopColor: token.colorError,
18
18
  borderRightWidth: 0,
@@ -9,8 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var genEditTableHeaderStyle = exports.genEditTableHeaderStyle = function genEditTableHeaderStyle(config) {
10
10
  var token = config.token;
11
11
  return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, '.jetlinks-edit-table-header-container', (0, _defineProperty2.default)({
12
- height: '100%',
13
- position: 'relative'
12
+ height: '100%'
14
13
  }, '.jetlinks-edit-table-header-cell', (0, _defineProperty2.default)({
15
14
  height: '100%',
16
15
  display: 'inline-flex',
@@ -18,6 +17,7 @@ var genEditTableHeaderStyle = exports.genEditTableHeaderStyle = function genEdit
18
17
  float: 'left',
19
18
  overflow: 'visible',
20
19
  position: 'absolute',
20
+ background: '#fafafa',
21
21
  top: 0
22
22
  }, '.jetlinks-edit-table-header-cell-box', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
23
23
  padding: '0 12px',
@@ -24,7 +24,8 @@ var genTableStyle = exports.genTableStyle = function genTableStyle(config) {
24
24
  overflow: 'auto hidden',
25
25
  '.jetlinks-edit-table-header': {
26
26
  overflow: 'hidden',
27
- width: '100%'
27
+ width: '100%',
28
+ position: 'relative'
28
29
  },
29
30
  '.jetlinks-edit-table-body': {
30
31
  backgroundColor: '#fff',
package/lib/Icon/icon.js CHANGED
@@ -12,9 +12,9 @@ var _iconsVue = _interopRequireWildcard(require("@ant-design/icons-vue/lib/icons
12
12
  var aIcon = _iconsVue;
13
13
  var _constants = require("../utils/constants");
14
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
15
- var MyIcon = (0, _iconsVue.createFromIconfontCN)({
16
- scriptUrl: '//at.alicdn.com/t/c/font_3183515_i7oma42he.js' // 在 iconfont.cn 上生成
17
- });
15
+ var MyIcon = function MyIcon() {
16
+ return function () {};
17
+ };
18
18
  var AntdIcon = function AntdIcon(props) {
19
19
  return (0, _vue.createVNode)(aIcon[props.type]);
20
20
  };
@@ -299,6 +299,11 @@ const __sfc_main__ = _defineComponent({
299
299
  watch(() => props.params, (newValue) => {
300
300
  _debounceFn(newValue || {});
301
301
  }, { deep: true, immediate: true });
302
+ watch(props.modeValue, (newValue) => {
303
+ if (newValue) {
304
+ _mode.value = newValue;
305
+ }
306
+ }, { immediate: true });
302
307
  watch(() => props.dataSource, (newVal) => {
303
308
  if (newVal && !props.request) {
304
309
  handleSearch(props.params);
@@ -203,7 +203,7 @@ const __sfc_main__ = _defineComponent({
203
203
  target.value = null;
204
204
  }
205
205
  emit('search', { terms: [] });
206
- emit('reset');
206
+ emit('reset', { terms: [] });
207
207
  };
208
208
  /**
209
209
  * 历史下拉单选
@@ -30,6 +30,8 @@ function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]
30
30
  "isRef": "setup-const",
31
31
  "nextTick": "setup-const",
32
32
  "Select": "setup-maybe-ref",
33
+ "DatePicker": "setup-maybe-ref",
34
+ "RangePicker": "setup-maybe-ref",
33
35
  "componentProps": "setup-maybe-ref",
34
36
  "componentType": "setup-maybe-ref",
35
37
  "typeOptions": "setup-maybe-ref",
@@ -75,7 +77,7 @@ const _hoisted_1 = {
75
77
  const _hoisted_2 = { key: 1 };
76
78
  const _hoisted_3 = { class: "JSearch-item--value" };
77
79
  import { computed, ref, reactive, watch, isRef, } from 'vue';
78
- import { Select } from 'ant-design-vue';
80
+ import { Select, DatePicker, RangePicker } from 'ant-design-vue';
79
81
  import { componentProps, componentType, typeOptions } from "./setting";
80
82
  import { getTermOptions, getItemDefaultValue } from "./util";
81
83
  import { useLocaleReceiver } from "../LocaleReciver";
@@ -243,6 +245,16 @@ const __sfc_main__ = _defineComponent({
243
245
  };
244
246
  handleTermsModelValue(isBtw);
245
247
  }
248
+ else if (targetComponents.value.type === componentType.date && ['btw', 'between'].includes(termsModel.termType)) {
249
+ // 当日期类型选择了 btw 时,切换到 RangePicker 组件
250
+ targetComponents.value.name = RangePicker;
251
+ termsModel.value = [];
252
+ }
253
+ else if (targetComponents.value.type === componentType.date && !['btw', 'between'].includes(termsModel.termType)) {
254
+ // 当 RangePicker 取消 btw 时,切换回 DatePicker 组件
255
+ targetComponents.value.name = DatePicker;
256
+ termsModel.value = undefined;
257
+ }
246
258
  }, { immediate: true, deep: true });
247
259
  watch(() => [termsModel.column, columnsMap.value], async () => {
248
260
  // 根据column从map中获取record,再解析search属性
@@ -220,7 +220,7 @@ var getTermOptions = exports.getTermOptions = function getTermOptions(type, loca
220
220
  break;
221
221
  case 'time':
222
222
  case 'date':
223
- keys = ['gt', 'lt', 'gte', 'lte'];
223
+ keys = ['gt', 'lt', 'gte', 'lte', 'btw'];
224
224
  break;
225
225
  case 'timeRange':
226
226
  case 'rangePicker':