@jetlinks-web/components 3.1.4 → 3.1.6

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.
@@ -19,6 +19,7 @@
19
19
  "useAttrs": "setup-const",
20
20
  "inject": "setup-const",
21
21
  "computed": "setup-const",
22
+ "toRefs": "setup-const",
22
23
  "SaveHistory": "setup-const",
23
24
  "History": "setup-const",
24
25
  "compatibleOldTerms": "setup-maybe-ref",
@@ -59,7 +60,6 @@
59
60
  "reset": "setup-const",
60
61
  "historyItemClick": "setup-const",
61
62
  "handleUrlParams": "setup-const",
62
- "completeTerms": "setup-const",
63
63
  "handleDefaultValues": "setup-const",
64
64
  "clearValue": "setup-const"
65
65
  } */
@@ -86,13 +86,13 @@ const _hoisted_12 = { class: "JSearch-footer--btns" };
86
86
  import SearchItem from '../Item.js';
87
87
  import { typeOptions } from '../setting';
88
88
  import { useHandleColumns, useOptionMapContent, useRouteQuery } from '../hooks';
89
- import { ref, reactive, watch, useAttrs, inject, computed } from 'vue';
89
+ import { ref, reactive, watch, useAttrs, inject, computed, } from 'vue';
90
90
  import SaveHistory from './SaveHistory.js';
91
91
  import History from './History.js';
92
92
  import { compatibleOldTerms, getItemDefaultValue, termsParamsFormat, } from '../util';
93
93
  import { Select, Button, Form, FormItemRest } from 'ant-design-vue';
94
- import { AIcon } from '../../../';
95
- import { useLocaleReceiver } from "../../LocaleReciver/index";
94
+ import { AIcon } from '../../components';
95
+ import { useLocaleReceiver } from "../../LocaleReciver";
96
96
  import { SearchConfig } from "../../utils/constants";
97
97
  import { isObject } from "lodash-es";
98
98
  import useSearchStyle from '../style';
@@ -154,7 +154,7 @@ const __sfc_main__ = _defineComponent({
154
154
  const attrs = useAttrs();
155
155
  const q = useRouteQuery('q');
156
156
  const target = useRouteQuery('target');
157
- const { initValues, columnsMap, defaultCacheValues } = useHandleColumns({ ...props, mode: 'advanced' }, terms);
157
+ const { initValues, columnsMap, defaultCacheValues } = useHandleColumns(props, terms, { mode: 'advanced' });
158
158
  useOptionMapContent(columnsOptionMap);
159
159
  const expandChange = () => {
160
160
  expand.value = !expand.value;
@@ -228,30 +228,6 @@ const __sfc_main__ = _defineComponent({
228
228
  historyItemClick(params);
229
229
  }
230
230
  };
231
- /**
232
- * 递归补全 terms 数组
233
- * @param data 原始 terms 对象
234
- * @param callback 补全函数,返回一个 term 对象
235
- */
236
- function completeTerms(data, callback) {
237
- const fillTerms = (terms) => {
238
- const completed = terms.map(term => {
239
- if (Array.isArray(term.terms)) {
240
- // 递归补全子 terms
241
- term.terms = fillTerms(term.terms);
242
- }
243
- return term;
244
- });
245
- // 补足到长度为 3
246
- while (completed.length < 3) {
247
- completed.push(callback());
248
- }
249
- return completed;
250
- };
251
- return {
252
- terms: fillTerms(data.terms),
253
- };
254
- }
255
231
  /**
256
232
  * 处理传入的默认值
257
233
  */
package/es/Search/Item.js CHANGED
@@ -50,6 +50,7 @@ function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]
50
50
  "columnsValues": "setup-maybe-ref",
51
51
  "targetComponents": "setup-ref",
52
52
  "valueOptions": "setup-ref",
53
+ "btwKeys": "setup-const",
53
54
  "prefixCls": "setup-ref",
54
55
  "wrapSSR": "setup-maybe-ref",
55
56
  "hashId": "setup-maybe-ref",
@@ -131,6 +132,7 @@ const __sfc_main__ = _defineComponent({
131
132
  const columnsValues = useDefaultValue();
132
133
  const targetComponents = ref({});
133
134
  const valueOptions = ref();
135
+ const btwKeys = ['in', 'nin'];
134
136
  const prefixCls = computed(() => 'JSearch');
135
137
  const [wrapSSR, hashId] = useSearchStyle(prefixCls);
136
138
  const termTypeOptions = computed(() => {
@@ -185,29 +187,40 @@ const __sfc_main__ = _defineComponent({
185
187
  onValueChange();
186
188
  };
187
189
  const onTermTypeChange = () => {
190
+ const isBtw = btwKeys.includes(termsModel.termType);
191
+ if (!isBtw && Array.isArray(termsModel.value)) {
192
+ termsModel.value = termsModel.value[0];
193
+ onValueChange();
194
+ }
195
+ else if (isBtw && !Array.isArray(termsModel.value)) {
196
+ termsModel.value = [termsModel.value];
197
+ onValueChange();
198
+ }
188
199
  emit('update:termType', termsModel.termType);
189
200
  };
190
201
  const onValueChange = () => {
191
202
  emit('update:value', termsModel.value);
192
203
  };
193
204
  watch(() => termsModel.termType, () => {
194
- const isBtw = ['in', 'nin'].includes(termsModel.termType);
205
+ const isBtw = btwKeys.includes(termsModel.termType);
195
206
  if (targetComponents.value.type === componentType.treeSelect) {
196
207
  targetComponents.value.props = {
197
- multiple: isBtw,
198
208
  ...targetComponents.value.props,
209
+ multiple: isBtw,
199
210
  };
200
211
  }
201
212
  else if (targetComponents.value.type === componentType.select) {
202
213
  targetComponents.value.props = {
203
- mode: isBtw ? 'multiple' : 'combobox',
204
214
  ...targetComponents.value.props,
215
+ mode: isBtw ? 'multiple' : 'combobox',
205
216
  };
206
217
  }
207
218
  }, { immediate: true });
208
- watch(() => termsModel.column, async () => {
219
+ watch(() => [termsModel.column, columnsMap.value], async () => {
209
220
  // 根据column从map中获取record,再解析search属性
210
221
  const record = findItemByColumn();
222
+ if (!record)
223
+ return;
211
224
  const options = findOptionsByColumn();
212
225
  targetComponents.value = componentProps(record.search);
213
226
  targetComponents.value.label = record.title;
@@ -218,7 +231,7 @@ const __sfc_main__ = _defineComponent({
218
231
  else {
219
232
  await handleColumnsOptions(record.search.options);
220
233
  }
221
- }, { immediate: true });
234
+ }, { immediate: true, deep: true });
222
235
  watch(() => [props.value, props.termType, props.column, props.type], () => {
223
236
  termsModel.value = props.value;
224
237
  termsModel.termType = props.termType;
@@ -24,7 +24,7 @@ export var useColumnsMap = function useColumnsMap() {
24
24
  export var useDefaultValue = function useDefaultValue() {
25
25
  return inject(columnsValues);
26
26
  };
27
- export var useHandleColumns = function useHandleColumns(props, terms) {
27
+ export var useHandleColumns = function useHandleColumns(props, terms, options) {
28
28
  var columnsMap = ref({}); // 存储每个column
29
29
  var defaultCacheValues = ref({});
30
30
  useColumnsMapContent(columnsMap);
@@ -72,7 +72,8 @@ export var useHandleColumns = function useHandleColumns(props, terms) {
72
72
  };
73
73
  var initValues = function initValues() {
74
74
  var arr = Object.values(columnsMap.value);
75
- if (props.mode === 'advanced') {
75
+ if (!arr.length) return;
76
+ if (options.mode === 'advanced') {
76
77
  // 设置第一位
77
78
  terms.terms = [getItemDefaultValue(arr[0], defaultCacheValues.value)];
78
79
  } else {
@@ -1,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
2
  import { TreeSelect, Select, Input, InputNumber, DatePicker, TimePicker, InputPassword, RangePicker, TimeRangePicker } from 'ant-design-vue';
4
3
  import { filterSelectNode, filterTreeSelectNode } from "./util";
@@ -108,7 +107,7 @@ export var termType = function termType(locale) {
108
107
  };
109
108
  export var componentType = {
110
109
  input: 'input',
111
- inputNumber: 'inputNumber',
110
+ inputNumber: 'number',
112
111
  password: 'password',
113
112
  switch: 'switch',
114
113
  radio: 'radio',
@@ -183,7 +182,7 @@ export var componentProps = function componentProps(record) {
183
182
  return {
184
183
  type: type,
185
184
  name: TreeSelect,
186
- props: _objectSpread(_defineProperty({
185
+ props: _objectSpread({
187
186
  showSearch: true,
188
187
  height: 350,
189
188
  fieldNames: {
@@ -193,9 +192,7 @@ export var componentProps = function componentProps(record) {
193
192
  filterTreeNode: function filterTreeNode(v, option) {
194
193
  return filterTreeSelectNode(v, option);
195
194
  }
196
- }, "filterTreeNode", function filterTreeNode(v, option) {
197
- return filterTreeSelectNode(v, option);
198
- }), _props)
195
+ }, _props)
199
196
  };
200
197
  case componentType.select:
201
198
  return {
@@ -19,6 +19,7 @@
19
19
  "useAttrs": "setup-const",
20
20
  "inject": "setup-const",
21
21
  "computed": "setup-const",
22
+ "toRefs": "setup-const",
22
23
  "SaveHistory": "setup-const",
23
24
  "History": "setup-const",
24
25
  "compatibleOldTerms": "setup-maybe-ref",
@@ -59,7 +60,6 @@
59
60
  "reset": "setup-const",
60
61
  "historyItemClick": "setup-const",
61
62
  "handleUrlParams": "setup-const",
62
- "completeTerms": "setup-const",
63
63
  "handleDefaultValues": "setup-const",
64
64
  "clearValue": "setup-const"
65
65
  } */
@@ -86,13 +86,13 @@ const _hoisted_12 = { class: "JSearch-footer--btns" };
86
86
  import SearchItem from '../Item.js';
87
87
  import { typeOptions } from '../setting';
88
88
  import { useHandleColumns, useOptionMapContent, useRouteQuery } from '../hooks';
89
- import { ref, reactive, watch, useAttrs, inject, computed } from 'vue';
89
+ import { ref, reactive, watch, useAttrs, inject, computed, } from 'vue';
90
90
  import SaveHistory from './SaveHistory.js';
91
91
  import History from './History.js';
92
92
  import { compatibleOldTerms, getItemDefaultValue, termsParamsFormat, } from '../util';
93
93
  import { Select, Button, Form, FormItemRest } from 'ant-design-vue';
94
- import { AIcon } from '../../../';
95
- import { useLocaleReceiver } from "../../LocaleReciver/index";
94
+ import { AIcon } from '../../components';
95
+ import { useLocaleReceiver } from "../../LocaleReciver";
96
96
  import { SearchConfig } from "../../utils/constants";
97
97
  import { isObject } from "lodash-es";
98
98
  import useSearchStyle from '../style';
@@ -154,7 +154,7 @@ const __sfc_main__ = _defineComponent({
154
154
  const attrs = useAttrs();
155
155
  const q = useRouteQuery('q');
156
156
  const target = useRouteQuery('target');
157
- const { initValues, columnsMap, defaultCacheValues } = useHandleColumns({ ...props, mode: 'advanced' }, terms);
157
+ const { initValues, columnsMap, defaultCacheValues } = useHandleColumns(props, terms, { mode: 'advanced' });
158
158
  useOptionMapContent(columnsOptionMap);
159
159
  const expandChange = () => {
160
160
  expand.value = !expand.value;
@@ -228,30 +228,6 @@ const __sfc_main__ = _defineComponent({
228
228
  historyItemClick(params);
229
229
  }
230
230
  };
231
- /**
232
- * 递归补全 terms 数组
233
- * @param data 原始 terms 对象
234
- * @param callback 补全函数,返回一个 term 对象
235
- */
236
- function completeTerms(data, callback) {
237
- const fillTerms = (terms) => {
238
- const completed = terms.map(term => {
239
- if (Array.isArray(term.terms)) {
240
- // 递归补全子 terms
241
- term.terms = fillTerms(term.terms);
242
- }
243
- return term;
244
- });
245
- // 补足到长度为 3
246
- while (completed.length < 3) {
247
- completed.push(callback());
248
- }
249
- return completed;
250
- };
251
- return {
252
- terms: fillTerms(data.terms),
253
- };
254
- }
255
231
  /**
256
232
  * 处理传入的默认值
257
233
  */
@@ -50,6 +50,7 @@ function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]
50
50
  "columnsValues": "setup-maybe-ref",
51
51
  "targetComponents": "setup-ref",
52
52
  "valueOptions": "setup-ref",
53
+ "btwKeys": "setup-const",
53
54
  "prefixCls": "setup-ref",
54
55
  "wrapSSR": "setup-maybe-ref",
55
56
  "hashId": "setup-maybe-ref",
@@ -131,6 +132,7 @@ const __sfc_main__ = _defineComponent({
131
132
  const columnsValues = useDefaultValue();
132
133
  const targetComponents = ref({});
133
134
  const valueOptions = ref();
135
+ const btwKeys = ['in', 'nin'];
134
136
  const prefixCls = computed(() => 'JSearch');
135
137
  const [wrapSSR, hashId] = useSearchStyle(prefixCls);
136
138
  const termTypeOptions = computed(() => {
@@ -185,29 +187,40 @@ const __sfc_main__ = _defineComponent({
185
187
  onValueChange();
186
188
  };
187
189
  const onTermTypeChange = () => {
190
+ const isBtw = btwKeys.includes(termsModel.termType);
191
+ if (!isBtw && Array.isArray(termsModel.value)) {
192
+ termsModel.value = termsModel.value[0];
193
+ onValueChange();
194
+ }
195
+ else if (isBtw && !Array.isArray(termsModel.value)) {
196
+ termsModel.value = [termsModel.value];
197
+ onValueChange();
198
+ }
188
199
  emit('update:termType', termsModel.termType);
189
200
  };
190
201
  const onValueChange = () => {
191
202
  emit('update:value', termsModel.value);
192
203
  };
193
204
  watch(() => termsModel.termType, () => {
194
- const isBtw = ['in', 'nin'].includes(termsModel.termType);
205
+ const isBtw = btwKeys.includes(termsModel.termType);
195
206
  if (targetComponents.value.type === componentType.treeSelect) {
196
207
  targetComponents.value.props = {
197
- multiple: isBtw,
198
208
  ...targetComponents.value.props,
209
+ multiple: isBtw,
199
210
  };
200
211
  }
201
212
  else if (targetComponents.value.type === componentType.select) {
202
213
  targetComponents.value.props = {
203
- mode: isBtw ? 'multiple' : 'combobox',
204
214
  ...targetComponents.value.props,
215
+ mode: isBtw ? 'multiple' : 'combobox',
205
216
  };
206
217
  }
207
218
  }, { immediate: true });
208
- watch(() => termsModel.column, async () => {
219
+ watch(() => [termsModel.column, columnsMap.value], async () => {
209
220
  // 根据column从map中获取record,再解析search属性
210
221
  const record = findItemByColumn();
222
+ if (!record)
223
+ return;
211
224
  const options = findOptionsByColumn();
212
225
  targetComponents.value = componentProps(record.search);
213
226
  targetComponents.value.label = record.title;
@@ -218,7 +231,7 @@ const __sfc_main__ = _defineComponent({
218
231
  else {
219
232
  await handleColumnsOptions(record.search.options);
220
233
  }
221
- }, { immediate: true });
234
+ }, { immediate: true, deep: true });
222
235
  watch(() => [props.value, props.termType, props.column, props.type], () => {
223
236
  termsModel.value = props.value;
224
237
  termsModel.termType = props.termType;
@@ -72,7 +72,7 @@ var useColumnsMap = exports.useColumnsMap = function useColumnsMap() {
72
72
  var useDefaultValue = exports.useDefaultValue = function useDefaultValue() {
73
73
  return (0, _vue.inject)(columnsValues);
74
74
  };
75
- var useHandleColumns = exports.useHandleColumns = function useHandleColumns(props, terms) {
75
+ var useHandleColumns = exports.useHandleColumns = function useHandleColumns(props, terms, options) {
76
76
  var columnsMap = (0, _vue.ref)({}); // 存储每个column
77
77
  var defaultCacheValues = (0, _vue.ref)({});
78
78
  useColumnsMapContent(columnsMap);
@@ -120,7 +120,8 @@ var useHandleColumns = exports.useHandleColumns = function useHandleColumns(prop
120
120
  };
121
121
  var initValues = function initValues() {
122
122
  var arr = Object.values(columnsMap.value);
123
- if (props.mode === 'advanced') {
123
+ if (!arr.length) return;
124
+ if (options.mode === 'advanced') {
124
125
  // 设置第一位
125
126
  terms.terms = [(0, _util.getItemDefaultValue)(arr[0], defaultCacheValues.value)];
126
127
  } else {
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.typeOptions = exports.termType = exports.searchProps = exports.optionsMapKey = exports.componentType = exports.componentProps = exports.TermTypeMap = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
9
  var _antDesignVue = require("ant-design-vue");
11
10
  var _util = require("./util");
12
11
  var optionsMapKey = exports.optionsMapKey = Symbol('searchOptionsMap');
@@ -115,7 +114,7 @@ var termType = exports.termType = function termType(locale) {
115
114
  };
116
115
  var componentType = exports.componentType = {
117
116
  input: 'input',
118
- inputNumber: 'inputNumber',
117
+ inputNumber: 'number',
119
118
  password: 'password',
120
119
  switch: 'switch',
121
120
  radio: 'radio',
@@ -157,7 +156,7 @@ var componentProps = exports.componentProps = function componentProps(record) {
157
156
  return {
158
157
  type: type,
159
158
  name: _antDesignVue.TimePicker,
160
- props: (0, _objectSpread3.default)({
159
+ props: (0, _objectSpread2.default)({
161
160
  valueFormat: 'HH:mm:ss'
162
161
  }, _props)
163
162
  };
@@ -165,7 +164,7 @@ var componentProps = exports.componentProps = function componentProps(record) {
165
164
  return {
166
165
  type: type,
167
166
  name: _antDesignVue.DatePicker,
168
- props: (0, _objectSpread3.default)({
167
+ props: (0, _objectSpread2.default)({
169
168
  valueFormat: 'YYYY-MM-DD HH:mm:ss'
170
169
  }, _props)
171
170
  };
@@ -173,7 +172,7 @@ var componentProps = exports.componentProps = function componentProps(record) {
173
172
  return {
174
173
  type: type,
175
174
  name: _antDesignVue.TimeRangePicker,
176
- props: (0, _objectSpread3.default)({
175
+ props: (0, _objectSpread2.default)({
177
176
  valueFormat: 'HH:mm:ss'
178
177
  }, _props)
179
178
  };
@@ -181,7 +180,7 @@ var componentProps = exports.componentProps = function componentProps(record) {
181
180
  return {
182
181
  type: type,
183
182
  name: _antDesignVue.RangePicker,
184
- props: (0, _objectSpread3.default)({
183
+ props: (0, _objectSpread2.default)({
185
184
  valueFormat: 'YYYY-MM-DD HH:mm:ss',
186
185
  showTime: true
187
186
  }, _props)
@@ -190,7 +189,7 @@ var componentProps = exports.componentProps = function componentProps(record) {
190
189
  return {
191
190
  type: type,
192
191
  name: _antDesignVue.TreeSelect,
193
- props: (0, _objectSpread3.default)((0, _defineProperty2.default)({
192
+ props: (0, _objectSpread2.default)({
194
193
  showSearch: true,
195
194
  height: 350,
196
195
  fieldNames: {
@@ -200,15 +199,13 @@ var componentProps = exports.componentProps = function componentProps(record) {
200
199
  filterTreeNode: function filterTreeNode(v, option) {
201
200
  return (0, _util.filterTreeSelectNode)(v, option);
202
201
  }
203
- }, "filterTreeNode", function filterTreeNode(v, option) {
204
- return (0, _util.filterTreeSelectNode)(v, option);
205
- }), _props)
202
+ }, _props)
206
203
  };
207
204
  case componentType.select:
208
205
  return {
209
206
  type: type,
210
207
  name: _antDesignVue.Select,
211
- props: (0, _objectSpread3.default)({
208
+ props: (0, _objectSpread2.default)({
212
209
  showSearch: true,
213
210
  // mode: isBtw ? 'multiple' : 'combobox',
214
211
  filterOption: function filterOption(v, option) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetlinks-web/components",
3
- "version": "3.1.4",
3
+ "version": "3.1.6",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",