ll-plus 2.2.4 → 2.2.5

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/index.full.mjs CHANGED
@@ -19,12 +19,12 @@ var root = freeGlobal || freeSelf || Function("return this")();
19
19
 
20
20
  var Symbol$1 = root.Symbol;
21
21
 
22
- var objectProto$e = Object.prototype;
23
- var hasOwnProperty$d = objectProto$e.hasOwnProperty;
24
- var nativeObjectToString$1 = objectProto$e.toString;
22
+ var objectProto$f = Object.prototype;
23
+ var hasOwnProperty$e = objectProto$f.hasOwnProperty;
24
+ var nativeObjectToString$1 = objectProto$f.toString;
25
25
  var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
26
26
  function getRawTag(value) {
27
- var isOwn = hasOwnProperty$d.call(value, symToStringTag$1), tag = value[symToStringTag$1];
27
+ var isOwn = hasOwnProperty$e.call(value, symToStringTag$1), tag = value[symToStringTag$1];
28
28
  try {
29
29
  value[symToStringTag$1] = void 0;
30
30
  var unmasked = true;
@@ -41,8 +41,8 @@ function getRawTag(value) {
41
41
  return result;
42
42
  }
43
43
 
44
- var objectProto$d = Object.prototype;
45
- var nativeObjectToString = objectProto$d.toString;
44
+ var objectProto$e = Object.prototype;
45
+ var nativeObjectToString = objectProto$e.toString;
46
46
  function objectToString(value) {
47
47
  return nativeObjectToString.call(value);
48
48
  }
@@ -75,6 +75,7 @@ function arrayMap(array, iteratee) {
75
75
  }
76
76
 
77
77
  var isArray = Array.isArray;
78
+ var isArray$1 = isArray;
78
79
 
79
80
  var INFINITY$1 = 1 / 0;
80
81
  var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0;
@@ -83,7 +84,7 @@ function baseToString(value) {
83
84
  if (typeof value == "string") {
84
85
  return value;
85
86
  }
86
- if (isArray(value)) {
87
+ if (isArray$1(value)) {
87
88
  return arrayMap(value, baseToString) + "";
88
89
  }
89
90
  if (isSymbol(value)) {
@@ -180,11 +181,11 @@ function toSource(func) {
180
181
  var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
181
182
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
182
183
  var funcProto$1 = Function.prototype;
183
- var objectProto$c = Object.prototype;
184
+ var objectProto$d = Object.prototype;
184
185
  var funcToString$1 = funcProto$1.toString;
185
- var hasOwnProperty$c = objectProto$c.hasOwnProperty;
186
+ var hasOwnProperty$d = objectProto$d.hasOwnProperty;
186
187
  var reIsNative = RegExp(
187
- "^" + funcToString$1.call(hasOwnProperty$c).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
188
+ "^" + funcToString$1.call(hasOwnProperty$d).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
188
189
  );
189
190
  function baseIsNative(value) {
190
191
  if (!isObject$1(value) || isMasked(value)) {
@@ -326,11 +327,11 @@ function eq(value, other) {
326
327
  return value === other || value !== value && other !== other;
327
328
  }
328
329
 
329
- var objectProto$b = Object.prototype;
330
- var hasOwnProperty$b = objectProto$b.hasOwnProperty;
330
+ var objectProto$c = Object.prototype;
331
+ var hasOwnProperty$c = objectProto$c.hasOwnProperty;
331
332
  function assignValue(object, key, value) {
332
333
  var objValue = object[key];
333
- if (!(hasOwnProperty$b.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
334
+ if (!(hasOwnProperty$c.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
334
335
  baseAssignValue(object, key, value);
335
336
  }
336
337
  }
@@ -381,9 +382,9 @@ function isArrayLike(value) {
381
382
  return value != null && isLength(value.length) && !isFunction(value);
382
383
  }
383
384
 
384
- var objectProto$a = Object.prototype;
385
+ var objectProto$b = Object.prototype;
385
386
  function isPrototype(value) {
386
- var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$a;
387
+ var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$b;
387
388
  return value === proto;
388
389
  }
389
390
 
@@ -400,14 +401,15 @@ function baseIsArguments(value) {
400
401
  return isObjectLike(value) && baseGetTag(value) == argsTag$2;
401
402
  }
402
403
 
403
- var objectProto$9 = Object.prototype;
404
- var hasOwnProperty$a = objectProto$9.hasOwnProperty;
405
- var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable;
404
+ var objectProto$a = Object.prototype;
405
+ var hasOwnProperty$b = objectProto$a.hasOwnProperty;
406
+ var propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable;
406
407
  var isArguments = baseIsArguments(/* @__PURE__ */ function() {
407
408
  return arguments;
408
409
  }()) ? baseIsArguments : function(value) {
409
- return isObjectLike(value) && hasOwnProperty$a.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
410
+ return isObjectLike(value) && hasOwnProperty$b.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
410
411
  };
412
+ var isArguments$1 = isArguments;
411
413
 
412
414
  function stubFalse() {
413
415
  return false;
@@ -475,12 +477,12 @@ var nodeUtil = function() {
475
477
  var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
476
478
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
477
479
 
478
- var objectProto$8 = Object.prototype;
479
- var hasOwnProperty$9 = objectProto$8.hasOwnProperty;
480
+ var objectProto$9 = Object.prototype;
481
+ var hasOwnProperty$a = objectProto$9.hasOwnProperty;
480
482
  function arrayLikeKeys(value, inherited) {
481
- var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
483
+ var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
482
484
  for (var key in value) {
483
- if ((inherited || hasOwnProperty$9.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
485
+ if ((inherited || hasOwnProperty$a.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
484
486
  (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
485
487
  isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
486
488
  isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
@@ -499,15 +501,15 @@ function overArg(func, transform) {
499
501
 
500
502
  var nativeKeys = overArg(Object.keys, Object);
501
503
 
502
- var objectProto$7 = Object.prototype;
503
- var hasOwnProperty$8 = objectProto$7.hasOwnProperty;
504
+ var objectProto$8 = Object.prototype;
505
+ var hasOwnProperty$9 = objectProto$8.hasOwnProperty;
504
506
  function baseKeys(object) {
505
507
  if (!isPrototype(object)) {
506
508
  return nativeKeys(object);
507
509
  }
508
510
  var result = [];
509
511
  for (var key in Object(object)) {
510
- if (hasOwnProperty$8.call(object, key) && key != "constructor") {
512
+ if (hasOwnProperty$9.call(object, key) && key != "constructor") {
511
513
  result.push(key);
512
514
  }
513
515
  }
@@ -528,15 +530,15 @@ function nativeKeysIn(object) {
528
530
  return result;
529
531
  }
530
532
 
531
- var objectProto$6 = Object.prototype;
532
- var hasOwnProperty$7 = objectProto$6.hasOwnProperty;
533
+ var objectProto$7 = Object.prototype;
534
+ var hasOwnProperty$8 = objectProto$7.hasOwnProperty;
533
535
  function baseKeysIn(object) {
534
536
  if (!isObject$1(object)) {
535
537
  return nativeKeysIn(object);
536
538
  }
537
539
  var isProto = isPrototype(object), result = [];
538
540
  for (var key in object) {
539
- if (!(key == "constructor" && (isProto || !hasOwnProperty$7.call(object, key)))) {
541
+ if (!(key == "constructor" && (isProto || !hasOwnProperty$8.call(object, key)))) {
540
542
  result.push(key);
541
543
  }
542
544
  }
@@ -550,7 +552,7 @@ function keysIn(object) {
550
552
  var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
551
553
  var reIsPlainProp = /^\w*$/;
552
554
  function isKey(value, object) {
553
- if (isArray(value)) {
555
+ if (isArray$1(value)) {
554
556
  return false;
555
557
  }
556
558
  var type = typeof value;
@@ -574,22 +576,22 @@ function hashDelete(key) {
574
576
  }
575
577
 
576
578
  var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
577
- var objectProto$5 = Object.prototype;
578
- var hasOwnProperty$6 = objectProto$5.hasOwnProperty;
579
+ var objectProto$6 = Object.prototype;
580
+ var hasOwnProperty$7 = objectProto$6.hasOwnProperty;
579
581
  function hashGet(key) {
580
582
  var data = this.__data__;
581
583
  if (nativeCreate) {
582
584
  var result = data[key];
583
585
  return result === HASH_UNDEFINED$1 ? void 0 : result;
584
586
  }
585
- return hasOwnProperty$6.call(data, key) ? data[key] : void 0;
587
+ return hasOwnProperty$7.call(data, key) ? data[key] : void 0;
586
588
  }
587
589
 
588
- var objectProto$4 = Object.prototype;
589
- var hasOwnProperty$5 = objectProto$4.hasOwnProperty;
590
+ var objectProto$5 = Object.prototype;
591
+ var hasOwnProperty$6 = objectProto$5.hasOwnProperty;
590
592
  function hashHas(key) {
591
593
  var data = this.__data__;
592
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty$5.call(data, key);
594
+ return nativeCreate ? data[key] !== void 0 : hasOwnProperty$6.call(data, key);
593
595
  }
594
596
 
595
597
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
@@ -785,7 +787,7 @@ function toString(value) {
785
787
  }
786
788
 
787
789
  function castPath(value, object) {
788
- if (isArray(value)) {
790
+ if (isArray$1(value)) {
789
791
  return value;
790
792
  }
791
793
  return isKey(value, object) ? [value] : stringToPath(toString(value));
@@ -819,7 +821,7 @@ function arrayPush(array, values) {
819
821
 
820
822
  var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0;
821
823
  function isFlattenable(value) {
822
- return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
824
+ return isArray$1(value) || isArguments$1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
823
825
  }
824
826
 
825
827
  function baseFlatten(array, depth, predicate, isStrict, result) {
@@ -854,9 +856,9 @@ var getPrototype = overArg(Object.getPrototypeOf, Object);
854
856
 
855
857
  var objectTag$2 = "[object Object]";
856
858
  var funcProto = Function.prototype;
857
- var objectProto$3 = Object.prototype;
859
+ var objectProto$4 = Object.prototype;
858
860
  var funcToString = funcProto.toString;
859
- var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
861
+ var hasOwnProperty$5 = objectProto$4.hasOwnProperty;
860
862
  var objectCtorString = funcToString.call(Object);
861
863
  function isPlainObject(value) {
862
864
  if (!isObjectLike(value) || baseGetTag(value) != objectTag$2) {
@@ -866,7 +868,7 @@ function isPlainObject(value) {
866
868
  if (proto === null) {
867
869
  return true;
868
870
  }
869
- var Ctor = hasOwnProperty$4.call(proto, "constructor") && proto.constructor;
871
+ var Ctor = hasOwnProperty$5.call(proto, "constructor") && proto.constructor;
870
872
  return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
871
873
  }
872
874
 
@@ -971,8 +973,8 @@ function stubArray() {
971
973
  return [];
972
974
  }
973
975
 
974
- var objectProto$2 = Object.prototype;
975
- var propertyIsEnumerable = objectProto$2.propertyIsEnumerable;
976
+ var objectProto$3 = Object.prototype;
977
+ var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
976
978
  var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
977
979
  var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object) {
978
980
  if (object == null) {
@@ -1004,7 +1006,7 @@ function copySymbolsIn(source, object) {
1004
1006
 
1005
1007
  function baseGetAllKeys(object, keysFunc, symbolsFunc) {
1006
1008
  var result = keysFunc(object);
1007
- return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
1009
+ return isArray$1(object) ? result : arrayPush(result, symbolsFunc(object));
1008
1010
  }
1009
1011
 
1010
1012
  function getAllKeys(object) {
@@ -1055,11 +1057,11 @@ if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag$2 || Map
1055
1057
  }
1056
1058
  var getTag$1 = getTag;
1057
1059
 
1058
- var objectProto$1 = Object.prototype;
1059
- var hasOwnProperty$3 = objectProto$1.hasOwnProperty;
1060
+ var objectProto$2 = Object.prototype;
1061
+ var hasOwnProperty$4 = objectProto$2.hasOwnProperty;
1060
1062
  function initCloneArray(array) {
1061
1063
  var length = array.length, result = new array.constructor(length);
1062
- if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) {
1064
+ if (length && typeof array[0] == "string" && hasOwnProperty$4.call(array, "index")) {
1063
1065
  result.index = array.index;
1064
1066
  result.input = array.input;
1065
1067
  }
@@ -1213,7 +1215,7 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1213
1215
  if (!isObject$1(value)) {
1214
1216
  return value;
1215
1217
  }
1216
- var isArr = isArray(value);
1218
+ var isArr = isArray$1(value);
1217
1219
  if (isArr) {
1218
1220
  result = initCloneArray(value);
1219
1221
  if (!isDeep) {
@@ -1263,6 +1265,23 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1263
1265
  return result;
1264
1266
  }
1265
1267
 
1268
+ function hasPath(object, path, hasFunc) {
1269
+ path = castPath(path, object);
1270
+ var index = -1, length = path.length, result = false;
1271
+ while (++index < length) {
1272
+ var key = toKey(path[index]);
1273
+ if (!(result = object != null && hasFunc(object, key))) {
1274
+ break;
1275
+ }
1276
+ object = object[key];
1277
+ }
1278
+ if (result || ++index != length) {
1279
+ return result;
1280
+ }
1281
+ length = object == null ? 0 : object.length;
1282
+ return !!length && isLength(length) && isIndex(key, length) && (isArray$1(object) || isArguments$1(object));
1283
+ }
1284
+
1266
1285
  var now$1 = function() {
1267
1286
  return root.Date.now();
1268
1287
  };
@@ -1366,6 +1385,16 @@ function fromPairs(pairs) {
1366
1385
  return result;
1367
1386
  }
1368
1387
 
1388
+ var objectProto$1 = Object.prototype;
1389
+ var hasOwnProperty$3 = objectProto$1.hasOwnProperty;
1390
+ function baseHas(object, key) {
1391
+ return object != null && hasOwnProperty$3.call(object, key);
1392
+ }
1393
+
1394
+ function has(object, path) {
1395
+ return object != null && hasPath(object, path, baseHas);
1396
+ }
1397
+
1369
1398
  function parent(object, path) {
1370
1399
  return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
1371
1400
  }
@@ -1383,7 +1412,7 @@ function isEmpty(value) {
1383
1412
  if (value == null) {
1384
1413
  return true;
1385
1414
  }
1386
- if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {
1415
+ if (isArrayLike(value) && (isArray$1(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments$1(value))) {
1387
1416
  return !value.length;
1388
1417
  }
1389
1418
  var tag = getTag$1(value);
@@ -68906,9 +68935,9 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
68906
68935
  ],
68907
68936
  2
68908
68937
  /* CLASS */
68909
- )) : (openBlock(), createElementBlock(
68938
+ )) : unref(has)(slots.column, "RC_TABLE_INTERNAL_COL_DEFINE") ? renderSlot(_ctx.$slots, "expandedTitle", { key: 1 }) : (openBlock(), createElementBlock(
68910
68939
  Fragment,
68911
- { key: 1 },
68940
+ { key: 2 },
68912
68941
  [
68913
68942
  createTextVNode(
68914
68943
  toDisplayString(slots.column.title),
@@ -69102,6 +69131,9 @@ var _sfc_main$d = /* @__PURE__ */ defineComponent({
69102
69131
  tableOperate: withCtx((slots) => [
69103
69132
  renderSlot(_ctx.$slots, "tableOperate", normalizeProps(guardReactiveProps(slots)))
69104
69133
  ]),
69134
+ expandedTitle: withCtx(() => [
69135
+ renderSlot(_ctx.$slots, "expandedTitle")
69136
+ ]),
69105
69137
  emptyText: withCtx(() => [
69106
69138
  renderSlot(_ctx.$slots, "emptyText")
69107
69139
  ]),
@@ -370,6 +370,7 @@ export declare const LlTable: import("ll-plus/es/utils").SFCWithInstall<import("
370
370
  modelValue: unknown[];
371
371
  componentData: Record<string, any>;
372
372
  }, {}>;
373
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
373
374
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
374
375
  handleChangeDataSource: (dataSource: any[]) => boolean;
375
376
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -192,6 +192,7 @@ declare const _default: import("vue").DefineComponent<{
192
192
  modelValue: unknown[];
193
193
  componentData: Record<string, any>;
194
194
  }, {}>;
195
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
195
196
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
196
197
  handleChangeDataSource: (dataSource: any[]) => boolean;
197
198
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  require('../../../../utils/index.js');
7
7
  var draggable = require('vuedraggable');
8
+ var lodashEs = require('lodash-es');
8
9
  require('../config/index.js');
9
10
  var mainTable = require('../config/main-table.js');
10
11
  var createNamespace = require('../../../../utils/create-namespace.js');
@@ -496,9 +497,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
496
497
  ],
497
498
  2
498
499
  /* CLASS */
499
- )) : (vue.openBlock(), vue.createElementBlock(
500
+ )) : vue.unref(lodashEs.has)(slots.column, "RC_TABLE_INTERNAL_COL_DEFINE") ? vue.renderSlot(_ctx.$slots, "expandedTitle", { key: 1 }) : (vue.openBlock(), vue.createElementBlock(
500
501
  vue.Fragment,
501
- { key: 1 },
502
+ { key: 2 },
502
503
  [
503
504
  vue.createTextVNode(
504
505
  vue.toDisplayString(slots.column.title),
@@ -1 +1 @@
1
- {"version":3,"file":"main-table.vue2.js","sources":["../../../../../../packages/components/table/src/components/main-table.vue"],"sourcesContent":["<template>\n <a-table\n :class=\"`${bem.e('main-content')}`\"\n row-key=\"id\"\n v-bind=\"attrs\"\n :columns=\"newColumns\"\n :data-source=\"newDataSource\"\n :expanded-row-keys=\"newExpandedRowKeys\"\n :custom-row=\"props.showDrag ? dragCustomRow : (customRowProps as any)\"\n :pagination=\"false\"\n show-header\n :scroll=\"{\n scrollToFirstRowOnChange: true,\n x: props?.scroll?.x ? props?.scroll?.x : 'max-content',\n y: props?.scroll?.y ? props?.scroll?.y : '100%'\n }\"\n @expand=\"handleExpand\"\n @resize-column=\"handleResizeColumn\"\n @change=\"props.change\"\n @expanded-rows-change=\"props.expandedRowsChange\"\n >\n <!-- 1.表头插槽 -->\n <template #headerCell=\"slots\">\n <template v-if=\"slots.column.key === 'operate' && showSetting\">\n <div :class=\"`${bem.e('operate')}`\">\n <span>{{ slots.column.title }}</span>\n <a-popover\n trigger=\"click\"\n placement=\"bottomRight\"\n :overlay-inner-style=\"{\n padding: '0'\n }\"\n >\n <template #content>\n <div :class=\"`${bem.e('setting-popover')}`\">\n <!-- 头部 -->\n <div :class=\"`${bem.e('setting-popover-header')}`\">\n <a-checkbox\n :indeterminate=\"isIndeterminate\"\n :checked=\"isAllCheck\"\n @change=\"handleAllColumnChange\"\n >\n 列展示\n </a-checkbox>\n <span\n :class=\"`${bem.e('setting-reset-btn')}`\"\n @click=\"handleClickResetBtn\"\n >\n 重置\n </span>\n </div>\n <!-- 内容 -->\n <div :class=\"`${bem.e('setting-popover-content')}`\">\n <div>\n <draggable\n :list=\"settingColumns\"\n item-key=\"key\"\n :group=\"{ name: 'g1' }\"\n @change=\"dragChange\"\n >\n <template #item=\"{ element }\">\n <div :class=\"`${bem.e('setting-popover-menu')}`\">\n <!-- 拖拽 -->\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-left'\n )}`\"\n >\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n :style=\"{\n marginright: '5px'\n }\"\n >\n <ll-icon\n icon-name=\"icon-move\"\n class-name=\"icon\"\n />\n </a-button>\n <a-checkbox\n :checked=\"element.isCheck\"\n @change=\"\n (e: any) =>\n {\n handleColumnItemChange(e.target?.checked!, element)\n }\n \"\n >\n {{ element.title }}\n </a-checkbox>\n </div>\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-right'\n )}`\"\n >\n <!-- 左移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'left')\"\n >\n <ll-icon\n icon-name=\"icon-zuoyi\"\n :class-name=\"`icon ${\n element.fixed === 'left'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n <a-divider type=\"vertical\" />\n <!-- 右移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'right')\"\n >\n <ll-icon\n icon-name=\"icon-youyi\"\n :class-name=\"`icon ${\n element.fixed === 'right'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n </div>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </div>\n </template>\n <a-button type=\"text\" :class=\"`${bem.e('setting-icon')}`\">\n <ll-icon icon-name=\"icon-set-line\" />\n </a-button>\n </a-popover>\n </div>\n </template>\n <template v-else>{{ slots.column.title }}</template>\n <!-- 额外header单元格的插槽内容 -->\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 2.表格内容插槽 -->\n <template #bodyCell=\"slots\">\n <!-- 添加序列列 -->\n <template v-if=\"slots.column.key === '#' && showIndexColumn\">\n {{ slots.index + 1 }}\n </template>\n <!-- 添加操作列 -->\n <template v-else-if=\"slots.column.key === 'operate'\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- 额外Body单元格的插槽内容 -->\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 3.空状态自定义插槽 -->\n <template #emptyText>\n <slot name=\"emptyText\">\n <ll-empty>\n <template #content>暂无数据</template>\n </ll-empty>\n </slot>\n </template>\n <!-- 4.表格自定义展开内容插槽 -->\n <template v-if=\"$slots.expandedRow\" #expandedRowRender=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"> </slot>\n </template>\n </a-table>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, computed, useAttrs } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport draggable from 'vuedraggable'\n\nimport { mainTableProps, mainTableEmits } from '../config'\n\n// 1.defineOptions\ndefineOptions({\n name: 'MainTable'\n})\n\n// 2.props/emits\nconst props = defineProps(mainTableProps)\nconst emits = defineEmits(mainTableEmits)\n\n// 3.hooks\nconst attrs = useAttrs()\n\n// 3.ref/let/const\nconst newColumns: any = ref([]) // 显示在表格的columns\nconst settingColumns: any = ref([])\nconst newDataSource: any = ref([])\nconst newExpandedRowKeys: any = ref([]) //展开的id数组\nlet preIndex = -1 // 源目标数据序号\nlet nextIndex = -1 // 目标数据序号\nconst bem = createNamespace('table')\n\n// 往表格列中添加序号和操作\nconst handleAddSerialNumberAndOperateToColumns = () => {\n if (props.showIndexColumn) {\n newColumns.value.unshift({\n title: '#',\n dataIndex: '#',\n key: '#',\n width: 50,\n fixed: 'left',\n class: 'table-serial-number-cell'\n })\n }\n if (props.showOperate) {\n newColumns.value.push({\n title: '操作',\n dataIndex: '',\n key: 'operate',\n width: 120,\n fixed: 'right',\n class: 'table-serial-operate-cell'\n })\n }\n}\n// 处理表格列的左、右固定排序(letf放最左边,没有定位放中间,右边放right定位)\nconst handleColumnsSortByFixed = (list: any, isDrag?: boolean) => {\n const newList = list\n const leftFixedColumns: any = [],\n normalFixedColumns: any = [],\n rightFixedColumns: any = []\n newList.forEach((item: any) => {\n const fixed = item.fixed\n if (fixed === 'left') {\n leftFixedColumns.push(item)\n } else if (fixed === 'right') {\n rightFixedColumns.push(item)\n } else {\n normalFixedColumns.push(item)\n }\n })\n leftFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n normalFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n rightFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n newColumns.value = [\n ...leftFixedColumns,\n ...normalFixedColumns,\n ...rightFixedColumns\n ]\n if (isDrag) {\n handleAddSerialNumberAndOperateToColumns()\n }\n}\n\n// 4.watch\nwatch(\n () => props.dataSource,\n (newValue: any) => {\n newDataSource.value = [...newValue]\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 从本地存储中获取columns/没有则用用户传的\nwatch(\n () => [\n props.columns,\n props.settingKey,\n props.showIndexColumn,\n props.showOperate\n ],\n (arr: any) => {\n const [newValue, key] = arr\n let newcolumns = []\n // 有key\n if (key && localStorage.getItem(key)) {\n const localStorageColumns = localStorage.getItem(key)\n if (localStorageColumns) {\n newcolumns = JSON.parse(localStorageColumns)\n }\n } else {\n // 没key\n newcolumns = newValue.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex:\n item.columnSortIndex === 0 || item.columnSortIndex\n ? item.columnSortIndex\n : index\n }))\n }\n // 1.过滤掉没有选中的\n newColumns.value = [...newcolumns].filter((item: any) => item.isCheck)\n // 2.如果有设置序列和操作,则添加\n handleAddSerialNumberAndOperateToColumns()\n // 3.根据定位来排序\n handleColumnsSortByFixed(newColumns.value)\n settingColumns.value = [...newcolumns]\n },\n {\n deep: true,\n immediate: true\n }\n)\nwatch(\n () => props.expandedRowKeys,\n (newValue: any) => {\n if (Array.isArray(newValue)) {\n newExpandedRowKeys.value = [...newValue]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 5.methods\n//重新定义树状展开关闭功能\nconst handleExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n newExpandedRowKeys.value.push(record.id)\n } else {\n const index = newExpandedRowKeys.value.findIndex(\n (e: any) => e === record.id\n )\n newExpandedRowKeys.value.splice(index, 1)\n }\n props.expand && props.expand(expanded, record)\n}\n// 列拖拽\nconst handleResizeColumn = (w: any, col: any) => {\n col.width = w\n props.resizeColumn && props.resizeColumn(w, col)\n}\n// 拖动排序\nconst dragCustomRow = (_: any, index: number) => {\n const normalConfig = {\n props: {\n // draggable: 'true'\n },\n draggable: true,\n style: {\n cursor: 'pointer'\n },\n // 鼠标移入\n onMouseenter: (event: Event) => {\n const target = event.target as HTMLElement\n target.draggable = true // 让你要拖动的行可以拖动,默认不可以\n },\n // 开始拖拽\n onDragstart: (event: Event) => {\n event.stopPropagation()\n preIndex = index\n },\n // 拖动元素经过的元素\n onDragover: (event: Event) => {\n event.preventDefault()\n },\n // 鼠标松开\n onDrop: (event: Event) => {\n let sortSource: any[] = []\n event.stopPropagation()\n // 得到目标数据序号\n nextIndex = index\n const dataSource = newDataSource.value\n // 排序后两个sort互换\n const preItem = { ...dataSource[preIndex] }\n const nextItem = { ...dataSource[nextIndex] }\n const preSort = preItem.sort\n const nextSort = nextItem.sort\n preItem.sort = nextSort\n nextItem.sort = preSort\n\n dataSource[preIndex] = nextItem\n dataSource[nextIndex] = preItem\n sortSource = [...dataSource]\n emits('handleChangeDataSource', sortSource)\n props.dragChange && props.dragChange(sortSource)\n }\n }\n const extraConfig = props.customRowProps\n ? { ...props.customRowProps(_, index) }\n : {}\n return { ...normalConfig, ...extraConfig }\n}\n// 是否全选\nconst isAllCheck = computed(() => {\n return settingColumns.value.every((item: any) => item.isCheck)\n})\n// 是否全选\nconst isIndeterminate = computed(() => {\n const getIsChecks = settingColumns.value.filter((item: any) => item.isCheck)\n return getIsChecks.length === 0\n ? false\n : settingColumns.value.length > getIsChecks.length\n})\n// 单个checkbox的change\nconst handleChangeColumns = () => {\n const isCheckSettingColumns = settingColumns.value.filter(\n (item: any, index: number) => {\n item.columnSortIndex = index\n return item.isCheck\n }\n )\n handleColumnsSortByFixed(isCheckSettingColumns, true)\n}\n\nconst handleColumnItemChange = (value: boolean, item: any) => {\n const findSettingIndex = settingColumns.value.findIndex(\n (citem: any) => item.key === citem.key\n )\n\n if (findSettingIndex > -1) {\n settingColumns.value[findSettingIndex].isCheck = value\n handleChangeColumns()\n handleClickSubmitBtn()\n }\n}\n// 全选change\nconst handleAllColumnChange = (e: any) => {\n const checked = e.target.checked\n settingColumns.value.forEach((item: any) => (item.isCheck = checked))\n if (checked) {\n newColumns.value = [...props.columns]\n } else {\n newColumns.value = []\n }\n handleAddSerialNumberAndOperateToColumns()\n handleClickSubmitBtn()\n}\n// 拖拽change\nconst dragChange = () => {\n handleChangeColumns()\n handleClickSubmitBtn()\n}\n// 点击重置按钮\nconst handleClickResetBtn = () => {\n const newcolumns = props.columns.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex: index\n }))\n newColumns.value = [...newcolumns]\n handleAddSerialNumberAndOperateToColumns()\n settingColumns.value = [...newcolumns]\n handleClickSubmitBtn()\n}\n// 点击保存按钮\nconst handleClickSubmitBtn = () => {\n if (props.settingKey) {\n localStorage.setItem(props.settingKey, JSON.stringify(settingColumns.value))\n }\n}\n// 处理column左固定和右固定\nconst handleColumnMove = (element: any, way: string) => {\n const fixed = element.fixed\n if (fixed === way) {\n element.fixed = false\n } else {\n element.fixed = way\n }\n handleColumnsSortByFixed(newColumns.value)\n handleClickSubmitBtn()\n}\n</script>\n../config/table\n"],"names":["useAttrs","ref","createNamespace","watch","computed"],"mappings":"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"}
1
+ {"version":3,"file":"main-table.vue2.js","sources":["../../../../../../packages/components/table/src/components/main-table.vue"],"sourcesContent":["<template>\n <a-table\n :class=\"`${bem.e('main-content')}`\"\n row-key=\"id\"\n v-bind=\"attrs\"\n :columns=\"newColumns\"\n :data-source=\"newDataSource\"\n :expanded-row-keys=\"newExpandedRowKeys\"\n :custom-row=\"props.showDrag ? dragCustomRow : (customRowProps as any)\"\n :pagination=\"false\"\n show-header\n :scroll=\"{\n scrollToFirstRowOnChange: true,\n x: props?.scroll?.x ? props?.scroll?.x : 'max-content',\n y: props?.scroll?.y ? props?.scroll?.y : '100%'\n }\"\n @expand=\"handleExpand\"\n @resize-column=\"handleResizeColumn\"\n @change=\"props.change\"\n @expanded-rows-change=\"props.expandedRowsChange\"\n >\n <!-- 1.表头插槽 -->\n <template #headerCell=\"slots\">\n <template v-if=\"slots.column.key === 'operate' && showSetting\">\n <div :class=\"`${bem.e('operate')}`\">\n <span>{{ slots.column.title }}</span>\n <a-popover\n trigger=\"click\"\n placement=\"bottomRight\"\n :overlay-inner-style=\"{\n padding: '0'\n }\"\n >\n <template #content>\n <div :class=\"`${bem.e('setting-popover')}`\">\n <!-- 头部 -->\n <div :class=\"`${bem.e('setting-popover-header')}`\">\n <a-checkbox\n :indeterminate=\"isIndeterminate\"\n :checked=\"isAllCheck\"\n @change=\"handleAllColumnChange\"\n >\n 列展示\n </a-checkbox>\n <span\n :class=\"`${bem.e('setting-reset-btn')}`\"\n @click=\"handleClickResetBtn\"\n >\n 重置\n </span>\n </div>\n <!-- 内容 -->\n <div :class=\"`${bem.e('setting-popover-content')}`\">\n <div>\n <draggable\n :list=\"settingColumns\"\n item-key=\"key\"\n :group=\"{ name: 'g1' }\"\n @change=\"dragChange\"\n >\n <template #item=\"{ element }\">\n <div :class=\"`${bem.e('setting-popover-menu')}`\">\n <!-- 拖拽 -->\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-left'\n )}`\"\n >\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n :style=\"{\n marginright: '5px'\n }\"\n >\n <ll-icon\n icon-name=\"icon-move\"\n class-name=\"icon\"\n />\n </a-button>\n <a-checkbox\n :checked=\"element.isCheck\"\n @change=\"\n (e: any) =>\n {\n handleColumnItemChange(e.target?.checked!, element)\n }\n \"\n >\n {{ element.title }}\n </a-checkbox>\n </div>\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-right'\n )}`\"\n >\n <!-- 左移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'left')\"\n >\n <ll-icon\n icon-name=\"icon-zuoyi\"\n :class-name=\"`icon ${\n element.fixed === 'left'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n <a-divider type=\"vertical\" />\n <!-- 右移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'right')\"\n >\n <ll-icon\n icon-name=\"icon-youyi\"\n :class-name=\"`icon ${\n element.fixed === 'right'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n </div>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </div>\n </template>\n <a-button type=\"text\" :class=\"`${bem.e('setting-icon')}`\">\n <ll-icon icon-name=\"icon-set-line\" />\n </a-button>\n </a-popover>\n </div>\n </template>\n <template v-else-if=\"has(slots.column, 'RC_TABLE_INTERNAL_COL_DEFINE')\">\n <slot name=\"expandedTitle\"></slot>\n </template>\n <template v-else>{{ slots.column.title }}</template>\n <!-- 额外header单元格的插槽内容 -->\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 2.表格内容插槽 -->\n <template #bodyCell=\"slots\">\n <!-- 添加序列列 -->\n <template v-if=\"slots.column.key === '#' && showIndexColumn\">\n {{ slots.index + 1 }}\n </template>\n <!-- 添加操作列 -->\n <template v-else-if=\"slots.column.key === 'operate'\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- 额外Body单元格的插槽内容 -->\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 3.空状态自定义插槽 -->\n <template #emptyText>\n <slot name=\"emptyText\">\n <ll-empty>\n <template #content>暂无数据</template>\n </ll-empty>\n </slot>\n </template>\n <!-- 4.表格自定义展开内容插槽 -->\n <template v-if=\"$slots.expandedRow\" #expandedRowRender=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"> </slot>\n </template>\n </a-table>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, computed, useAttrs } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport draggable from 'vuedraggable'\n\nimport { has } from 'lodash-es'\n\nimport { mainTableProps, mainTableEmits } from '../config'\n\n// 1.defineOptions\ndefineOptions({\n name: 'MainTable'\n})\n\n// 2.props/emits\nconst props = defineProps(mainTableProps)\nconst emits = defineEmits(mainTableEmits)\n\n// 3.hooks\nconst attrs = useAttrs()\n\n// 3.ref/let/const\nconst newColumns: any = ref([]) // 显示在表格的columns\nconst settingColumns: any = ref([])\nconst newDataSource: any = ref([])\nconst newExpandedRowKeys: any = ref([]) //展开的id数组\nlet preIndex = -1 // 源目标数据序号\nlet nextIndex = -1 // 目标数据序号\nconst bem = createNamespace('table')\n\n// 往表格列中添加序号和操作\nconst handleAddSerialNumberAndOperateToColumns = () => {\n if (props.showIndexColumn) {\n newColumns.value.unshift({\n title: '#',\n dataIndex: '#',\n key: '#',\n width: 50,\n fixed: 'left',\n class: 'table-serial-number-cell'\n })\n }\n if (props.showOperate) {\n newColumns.value.push({\n title: '操作',\n dataIndex: '',\n key: 'operate',\n width: 120,\n fixed: 'right',\n class: 'table-serial-operate-cell'\n })\n }\n}\n// 处理表格列的左、右固定排序(letf放最左边,没有定位放中间,右边放right定位)\nconst handleColumnsSortByFixed = (list: any, isDrag?: boolean) => {\n const newList = list\n const leftFixedColumns: any = [],\n normalFixedColumns: any = [],\n rightFixedColumns: any = []\n newList.forEach((item: any) => {\n const fixed = item.fixed\n if (fixed === 'left') {\n leftFixedColumns.push(item)\n } else if (fixed === 'right') {\n rightFixedColumns.push(item)\n } else {\n normalFixedColumns.push(item)\n }\n })\n leftFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n normalFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n rightFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n newColumns.value = [\n ...leftFixedColumns,\n ...normalFixedColumns,\n ...rightFixedColumns\n ]\n if (isDrag) {\n handleAddSerialNumberAndOperateToColumns()\n }\n}\n\n// 4.watch\nwatch(\n () => props.dataSource,\n (newValue: any) => {\n newDataSource.value = [...newValue]\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 从本地存储中获取columns/没有则用用户传的\nwatch(\n () => [\n props.columns,\n props.settingKey,\n props.showIndexColumn,\n props.showOperate\n ],\n (arr: any) => {\n const [newValue, key] = arr\n let newcolumns = []\n // 有key\n if (key && localStorage.getItem(key)) {\n const localStorageColumns = localStorage.getItem(key)\n if (localStorageColumns) {\n newcolumns = JSON.parse(localStorageColumns)\n }\n } else {\n // 没key\n newcolumns = newValue.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex:\n item.columnSortIndex === 0 || item.columnSortIndex\n ? item.columnSortIndex\n : index\n }))\n }\n // 1.过滤掉没有选中的\n newColumns.value = [...newcolumns].filter((item: any) => item.isCheck)\n // 2.如果有设置序列和操作,则添加\n handleAddSerialNumberAndOperateToColumns()\n // 3.根据定位来排序\n handleColumnsSortByFixed(newColumns.value)\n settingColumns.value = [...newcolumns]\n },\n {\n deep: true,\n immediate: true\n }\n)\nwatch(\n () => props.expandedRowKeys,\n (newValue: any) => {\n if (Array.isArray(newValue)) {\n newExpandedRowKeys.value = [...newValue]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 5.methods\n//重新定义树状展开关闭功能\nconst handleExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n newExpandedRowKeys.value.push(record.id)\n } else {\n const index = newExpandedRowKeys.value.findIndex(\n (e: any) => e === record.id\n )\n newExpandedRowKeys.value.splice(index, 1)\n }\n props.expand && props.expand(expanded, record)\n}\n// 列拖拽\nconst handleResizeColumn = (w: any, col: any) => {\n col.width = w\n props.resizeColumn && props.resizeColumn(w, col)\n}\n// 拖动排序\nconst dragCustomRow = (_: any, index: number) => {\n const normalConfig = {\n props: {\n // draggable: 'true'\n },\n draggable: true,\n style: {\n cursor: 'pointer'\n },\n // 鼠标移入\n onMouseenter: (event: Event) => {\n const target = event.target as HTMLElement\n target.draggable = true // 让你要拖动的行可以拖动,默认不可以\n },\n // 开始拖拽\n onDragstart: (event: Event) => {\n event.stopPropagation()\n preIndex = index\n },\n // 拖动元素经过的元素\n onDragover: (event: Event) => {\n event.preventDefault()\n },\n // 鼠标松开\n onDrop: (event: Event) => {\n let sortSource: any[] = []\n event.stopPropagation()\n // 得到目标数据序号\n nextIndex = index\n const dataSource = newDataSource.value\n // 排序后两个sort互换\n const preItem = { ...dataSource[preIndex] }\n const nextItem = { ...dataSource[nextIndex] }\n const preSort = preItem.sort\n const nextSort = nextItem.sort\n preItem.sort = nextSort\n nextItem.sort = preSort\n\n dataSource[preIndex] = nextItem\n dataSource[nextIndex] = preItem\n sortSource = [...dataSource]\n emits('handleChangeDataSource', sortSource)\n props.dragChange && props.dragChange(sortSource)\n }\n }\n const extraConfig = props.customRowProps\n ? { ...props.customRowProps(_, index) }\n : {}\n return { ...normalConfig, ...extraConfig }\n}\n// 是否全选\nconst isAllCheck = computed(() => {\n return settingColumns.value.every((item: any) => item.isCheck)\n})\n// 是否全选\nconst isIndeterminate = computed(() => {\n const getIsChecks = settingColumns.value.filter((item: any) => item.isCheck)\n return getIsChecks.length === 0\n ? false\n : settingColumns.value.length > getIsChecks.length\n})\n// 单个checkbox的change\nconst handleChangeColumns = () => {\n const isCheckSettingColumns = settingColumns.value.filter(\n (item: any, index: number) => {\n item.columnSortIndex = index\n return item.isCheck\n }\n )\n handleColumnsSortByFixed(isCheckSettingColumns, true)\n}\n\nconst handleColumnItemChange = (value: boolean, item: any) => {\n const findSettingIndex = settingColumns.value.findIndex(\n (citem: any) => item.key === citem.key\n )\n\n if (findSettingIndex > -1) {\n settingColumns.value[findSettingIndex].isCheck = value\n handleChangeColumns()\n handleClickSubmitBtn()\n }\n}\n// 全选change\nconst handleAllColumnChange = (e: any) => {\n const checked = e.target.checked\n settingColumns.value.forEach((item: any) => (item.isCheck = checked))\n if (checked) {\n newColumns.value = [...props.columns]\n } else {\n newColumns.value = []\n }\n handleAddSerialNumberAndOperateToColumns()\n handleClickSubmitBtn()\n}\n// 拖拽change\nconst dragChange = () => {\n handleChangeColumns()\n handleClickSubmitBtn()\n}\n// 点击重置按钮\nconst handleClickResetBtn = () => {\n const newcolumns = props.columns.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex: index\n }))\n newColumns.value = [...newcolumns]\n handleAddSerialNumberAndOperateToColumns()\n settingColumns.value = [...newcolumns]\n handleClickSubmitBtn()\n}\n// 点击保存按钮\nconst handleClickSubmitBtn = () => {\n if (props.settingKey) {\n localStorage.setItem(props.settingKey, JSON.stringify(settingColumns.value))\n }\n}\n// 处理column左固定和右固定\nconst handleColumnMove = (element: any, way: string) => {\n const fixed = element.fixed\n if (fixed === way) {\n element.fixed = false\n } else {\n element.fixed = way\n }\n handleColumnsSortByFixed(newColumns.value)\n handleClickSubmitBtn()\n}\n</script>\n../config/table\n"],"names":["useAttrs","ref","createNamespace","watch","computed"],"mappings":"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"}
@@ -370,6 +370,7 @@ declare const _default: import("vue").DefineComponent<{
370
370
  modelValue: unknown[];
371
371
  componentData: Record<string, any>;
372
372
  }, {}>;
373
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
373
374
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
374
375
  handleChangeDataSource: (dataSource: any[]) => boolean;
375
376
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -109,6 +109,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
109
109
  tableOperate: vue.withCtx((slots) => [
110
110
  vue.renderSlot(_ctx.$slots, "tableOperate", vue.normalizeProps(vue.guardReactiveProps(slots)))
111
111
  ]),
112
+ expandedTitle: vue.withCtx(() => [
113
+ vue.renderSlot(_ctx.$slots, "expandedTitle")
114
+ ]),
112
115
  emptyText: vue.withCtx(() => [
113
116
  vue.renderSlot(_ctx.$slots, "emptyText")
114
117
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"table.vue2.js","sources":["../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"props.loading\" wrapper-class-name=\"ll-table-spin-wrapper\">\n <div :class=\"bem.b()\">\n <!-- 头部seach -->\n <header-search\n v-bind=\"headerSearchProps\"\n @change=\"handleSwitchMenuChange\"\n >\n <!-- header-slot -->\n <template #header>\n <slot name=\"header\" />\n </template>\n <slot name=\"header\"></slot>\n <!-- left-slot -->\n <template #headerLeft>\n <slot name=\"headerLeft\"></slot>\n </template>\n <!-- middle-slot -->\n <template #headerMiddle>\n <slot name=\"headerMiddle\"></slot>\n </template>\n <!-- right-slot -->\n <template #headerRight>\n <slot name=\"headerRight\"></slot>\n </template>\n </header-search>\n <!-- slot-content table和card默认table -->\n <div\n :class=\"[\n bem.m('fixed-height'),\n !newNaTableptions.dataSource!.length ? bem.m('empty') : ''\n ]\"\n >\n <slot :name=\"contentType\">\n <main-table\n v-bind=\"newNaTableptions\"\n @handle-change-data-source=\"handleChangeDataSource\"\n >\n <!-- tableHeaderCell-slot -->\n <template #tableHeaderCell=\"slots\">\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableBodyCell-slot -->\n <template #tableBodyCell=\"slots\">\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!--tableOperate-slot -->\n <template #tableOperate=\"slots\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableRowExpand-slot -->\n <template v-if=\"$slots.expandedRow\" #expandedRow=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"></slot>\n </template>\n <!-- empty-slot -->\n <template #emptyText>\n <slot name=\"emptyText\"></slot>\n </template>\n </main-table>\n </slot>\n </div>\n <!-- 底部分页 -->\n <template\n v-if=\"\n newNaTableptions.dataSource!.length &&\n !newNaTableptions.hiddenPagination\n \"\n >\n <pagination v-bind=\"paginationProps\" />\n </template>\n </div>\n </a-spin>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, provide } from 'vue'\n\nimport { ImenuSwitchType } from './config'\nimport { createNamespace } from '@ll-plus/utils'\n\nimport HeaderSearch from './components/header-search.vue'\nimport MainTable from './components/main-table.vue'\nimport Pagination from './components/pagination.vue'\n\nimport { tableProps } from './config'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlTable' })\n\n// 2.props\nconst props = defineProps(tableProps)\n// 3.ref\n// 表格数据\nconst originDataSource = ref()\nconst newNaTableptions = ref<any>({\n dataSource: [],\n columns: []\n})\n// 菜单切换/内容插槽\nconst contentType = ref(ImenuSwitchType.TABLE) // 菜单切换\nconst bem = createNamespace('table')\n\n// 4.methods\n// 拖拽完成后获取拖拽后的数据\nconst handleChangeDataSource = (dataSource: any[]) => {\n newNaTableptions.value.dataSource = dataSource\n}\n// 切换菜单内容\nconst handleSwitchMenuChange = (v: ImenuSwitchType) => {\n contentType.value = v\n}\n\n// 5.watch\nwatch(\n () => props.tableProps,\n (newValue: any) => {\n if (newValue) {\n newNaTableptions.value = { ...newValue }\n originDataSource.value = [...newValue.dataSource]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 6.其他\nprovide('contentType', contentType)\n</script>\n"],"names":["ref","ImenuSwitchType","createNamespace","watch","provide"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyFA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAGd,IAAA,MAAM,mBAAmBA,OAAI,EAAA,CAAA;AAC7B,IAAA,MAAM,mBAAmBA,OAAS,CAAA;AAAA,MAChC,YAAY,EAAC;AAAA,MACb,SAAS,EAAC;AAAA,KACX,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAcA,OAAI,CAAAC,4BAAA,CAAgB,KAAK,CAAA,CAAA;AAC7C,IAAM,MAAA,GAAA,GAAMC,gCAAgB,OAAO,CAAA,CAAA;AAInC,IAAM,MAAA,sBAAA,GAAyB,CAAC,UAAsB,KAAA;AACpD,MAAA,gBAAA,CAAiB,MAAM,UAAa,GAAA,UAAA,CAAA;AAAA,KACtC,CAAA;AAEA,IAAM,MAAA,sBAAA,GAAyB,CAAC,CAAuB,KAAA;AACrD,MAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,QAAkB,KAAA;AACjB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAiB,gBAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,QAAS,EAAA,CAAA;AACvC,UAAA,gBAAA,CAAiB,KAAQ,GAAA,CAAC,GAAG,QAAA,CAAS,UAAU,CAAA,CAAA;AAAA,SAClD;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAAC,WAAA,CAAQ,eAAe,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"table.vue2.js","sources":["../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"props.loading\" wrapper-class-name=\"ll-table-spin-wrapper\">\n <div :class=\"bem.b()\">\n <!-- 头部seach -->\n <header-search\n v-bind=\"headerSearchProps\"\n @change=\"handleSwitchMenuChange\"\n >\n <!-- header-slot -->\n <template #header>\n <slot name=\"header\" />\n </template>\n <slot name=\"header\"></slot>\n <!-- left-slot -->\n <template #headerLeft>\n <slot name=\"headerLeft\"></slot>\n </template>\n <!-- middle-slot -->\n <template #headerMiddle>\n <slot name=\"headerMiddle\"></slot>\n </template>\n <!-- right-slot -->\n <template #headerRight>\n <slot name=\"headerRight\"></slot>\n </template>\n </header-search>\n <!-- slot-content table和card默认table -->\n <div\n :class=\"[\n bem.m('fixed-height'),\n !newNaTableptions.dataSource!.length ? bem.m('empty') : ''\n ]\"\n >\n <slot :name=\"contentType\">\n <main-table\n v-bind=\"newNaTableptions\"\n @handle-change-data-source=\"handleChangeDataSource\"\n >\n <!-- tableHeaderCell-slot -->\n <template #tableHeaderCell=\"slots\">\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableBodyCell-slot -->\n <template #tableBodyCell=\"slots\">\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!--tableOperate-slot -->\n <template #tableOperate=\"slots\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableRowExpand-slot -->\n <template v-if=\"$slots.expandedRow\" #expandedRow=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"></slot>\n </template>\n <!-- expandColumnTitle-slot -->\n <template #expandedTitle>\n <slot name=\"expandedTitle\"> </slot>\n </template>\n <!-- empty-slot -->\n <template #emptyText>\n <slot name=\"emptyText\"></slot>\n </template>\n </main-table>\n </slot>\n </div>\n <!-- 底部分页 -->\n <template\n v-if=\"\n newNaTableptions.dataSource!.length &&\n !newNaTableptions.hiddenPagination\n \"\n >\n <pagination v-bind=\"paginationProps\" />\n </template>\n </div>\n </a-spin>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, provide } from 'vue'\n\nimport { ImenuSwitchType } from './config'\nimport { createNamespace } from '@ll-plus/utils'\n\nimport HeaderSearch from './components/header-search.vue'\nimport MainTable from './components/main-table.vue'\nimport Pagination from './components/pagination.vue'\n\nimport { tableProps } from './config'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlTable' })\n\n// 2.props\nconst props = defineProps(tableProps)\n// 3.ref\n// 表格数据\nconst originDataSource = ref()\nconst newNaTableptions = ref<any>({\n dataSource: [],\n columns: []\n})\n// 菜单切换/内容插槽\nconst contentType = ref(ImenuSwitchType.TABLE) // 菜单切换\nconst bem = createNamespace('table')\n\n// 4.methods\n// 拖拽完成后获取拖拽后的数据\nconst handleChangeDataSource = (dataSource: any[]) => {\n newNaTableptions.value.dataSource = dataSource\n}\n// 切换菜单内容\nconst handleSwitchMenuChange = (v: ImenuSwitchType) => {\n contentType.value = v\n}\n\n// 5.watch\nwatch(\n () => props.tableProps,\n (newValue: any) => {\n if (newValue) {\n newNaTableptions.value = { ...newValue }\n originDataSource.value = [...newValue.dataSource]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 6.其他\nprovide('contentType', contentType)\n</script>\n"],"names":["ref","ImenuSwitchType","createNamespace","watch","provide"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6FA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAGd,IAAA,MAAM,mBAAmBA,OAAI,EAAA,CAAA;AAC7B,IAAA,MAAM,mBAAmBA,OAAS,CAAA;AAAA,MAChC,YAAY,EAAC;AAAA,MACb,SAAS,EAAC;AAAA,KACX,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAcA,OAAI,CAAAC,4BAAA,CAAgB,KAAK,CAAA,CAAA;AAC7C,IAAM,MAAA,GAAA,GAAMC,gCAAgB,OAAO,CAAA,CAAA;AAInC,IAAM,MAAA,sBAAA,GAAyB,CAAC,UAAsB,KAAA;AACpD,MAAA,gBAAA,CAAiB,MAAM,UAAa,GAAA,UAAA,CAAA;AAAA,KACtC,CAAA;AAEA,IAAM,MAAA,sBAAA,GAAyB,CAAC,CAAuB,KAAA;AACrD,MAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,QAAkB,KAAA;AACjB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAiB,gBAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,QAAS,EAAA,CAAA;AACvC,UAAA,gBAAA,CAAiB,KAAQ,GAAA,CAAC,GAAG,QAAA,CAAS,UAAU,CAAA,CAAA;AAAA,SAClD;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAAC,WAAA,CAAQ,eAAe,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ll-plus",
3
- "version": "2.2.4",
3
+ "version": "2.2.5",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -370,6 +370,7 @@ export declare const LlTable: import("ll-plus/es/utils").SFCWithInstall<import("
370
370
  modelValue: unknown[];
371
371
  componentData: Record<string, any>;
372
372
  }, {}>;
373
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
373
374
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
374
375
  handleChangeDataSource: (dataSource: any[]) => boolean;
375
376
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -192,6 +192,7 @@ declare const _default: import("vue").DefineComponent<{
192
192
  modelValue: unknown[];
193
193
  componentData: Record<string, any>;
194
194
  }, {}>;
195
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
195
196
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
196
197
  handleChangeDataSource: (dataSource: any[]) => boolean;
197
198
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -370,6 +370,7 @@ declare const _default: import("vue").DefineComponent<{
370
370
  modelValue: unknown[];
371
371
  componentData: Record<string, any>;
372
372
  }, {}>;
373
+ readonly has: <T>(object: T, path: import("lodash").PropertyPath) => boolean;
373
374
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
374
375
  handleChangeDataSource: (dataSource: any[]) => boolean;
375
376
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{