@scenetechnology/cj_iview_table 0.0.66 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -11
- package/dist/cj_iview_table.common.js +219 -20
- package/dist/cj_iview_table.common.js.map +1 -1
- package/dist/cj_iview_table.css +2 -2
- package/dist/cj_iview_table.umd.js +219 -20
- package/dist/cj_iview_table.umd.js.map +1 -1
- package/dist/cj_iview_table.umd.min.js +4 -4
- package/dist/cj_iview_table.umd.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,10 +61,12 @@ cj_iview_table 是一个功能强大的表格组件,支持筛选、排序、
|
|
|
61
61
|
| height | String | - | 表格高度 |
|
|
62
62
|
| maxHeight | String | - | 最大高度 |
|
|
63
63
|
| toolBar | Array/Boolean | true | 工具栏配置 |
|
|
64
|
-
| defaultSize | Number | - | 默认分页大小 |
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
64
|
+
| defaultSize | Number | - | 默认分页大小 |
|
|
65
|
+
| rowKey | String/Boolean | id | 开启跨分页保留选中时使用的唯一键,支持如 `id`、`user.id` |
|
|
66
|
+
| reserveSelection | Boolean | false | 是否保留跨分页、跨筛选/搜索的多选结果 |
|
|
67
|
+
| filterGridSpan | Number | 6 | 筛选栏栅格跨度 |
|
|
68
|
+
| filterLabelWidth | Number | 80 | 筛选标签宽度 |
|
|
69
|
+
| fields | Array | [] | 导出数据时需要包含的属性名 |
|
|
68
70
|
|
|
69
71
|
### 列配置项
|
|
70
72
|
每个column支持以下属性:
|
|
@@ -81,9 +83,11 @@ cj_iview_table 是一个功能强大的表格组件,支持筛选、排序、
|
|
|
81
83
|
| slot | Boolean | 是否使用自定义插槽 |
|
|
82
84
|
|
|
83
85
|
## 事件
|
|
84
|
-
| 事件名 | 说明 | 回调参数 |
|
|
85
|
-
|--------|------|----------|
|
|
86
|
-
| on-change | 分页、排序等变化时触发 | (pagination, filters, sorter) |
|
|
86
|
+
| 事件名 | 说明 | 回调参数 |
|
|
87
|
+
|--------|------|----------|
|
|
88
|
+
| on-change | 分页、排序等变化时触发 | (pagination, filters, sorter) |
|
|
89
|
+
| on-selection-change | 当前页选中项变化时触发 | (selection) |
|
|
90
|
+
| on-reserve-selection-change | 开启 `reserveSelection` 后,所有已保留选中项变化时触发 | (selection) |
|
|
87
91
|
|
|
88
92
|
## 插槽
|
|
89
93
|
| 插槽名 | 说明 |
|
|
@@ -105,10 +109,28 @@ cj_iview_table 是一个功能强大的表格组件,支持筛选、排序、
|
|
|
105
109
|
- 列排序
|
|
106
110
|
- 列固定
|
|
107
111
|
|
|
108
|
-
### 3. 数据请求
|
|
109
|
-
支持两种数据加载方式:
|
|
110
|
-
- 通过data属性直接传入数据
|
|
111
|
-
- 通过request函数异步加载数据
|
|
112
|
+
### 3. 数据请求
|
|
113
|
+
支持两种数据加载方式:
|
|
114
|
+
- 通过data属性直接传入数据
|
|
115
|
+
- 通过request函数异步加载数据
|
|
116
|
+
|
|
117
|
+
### 4. 跨分页保留选中
|
|
118
|
+
当表格包含 `type: 'selection'` 列时,可通过 `reserveSelection` 开启跨分页、跨搜索/筛选保留勾选。
|
|
119
|
+
|
|
120
|
+
```vue
|
|
121
|
+
<cj_iview_table
|
|
122
|
+
:columns="columns"
|
|
123
|
+
:request="loadData"
|
|
124
|
+
row-key="id"
|
|
125
|
+
:reserveSelection="true"
|
|
126
|
+
@on-reserve-selection-change="handleSelectionChange"
|
|
127
|
+
/>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
说明:
|
|
131
|
+
- `rowKey` 必须能唯一标识一行数据,支持多级路径,例如 `user.id`
|
|
132
|
+
- `on-selection-change` 返回的是当前页选中项
|
|
133
|
+
- `on-reserve-selection-change` 返回的是所有分页/筛选范围内累计保留的选中项
|
|
112
134
|
|
|
113
135
|
## 使用示例
|
|
114
136
|
|
|
@@ -21021,6 +21021,46 @@ module.exports = function (name) {
|
|
|
21021
21021
|
};
|
|
21022
21022
|
|
|
21023
21023
|
|
|
21024
|
+
/***/ }),
|
|
21025
|
+
|
|
21026
|
+
/***/ 8237:
|
|
21027
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
21028
|
+
|
|
21029
|
+
"use strict";
|
|
21030
|
+
|
|
21031
|
+
var $ = __webpack_require__(6518);
|
|
21032
|
+
var iterate = __webpack_require__(2652);
|
|
21033
|
+
var aCallable = __webpack_require__(9306);
|
|
21034
|
+
var anObject = __webpack_require__(8551);
|
|
21035
|
+
var getIteratorDirect = __webpack_require__(1767);
|
|
21036
|
+
|
|
21037
|
+
var $TypeError = TypeError;
|
|
21038
|
+
|
|
21039
|
+
// `Iterator.prototype.reduce` method
|
|
21040
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.reduce
|
|
21041
|
+
$({ target: 'Iterator', proto: true, real: true }, {
|
|
21042
|
+
reduce: function reduce(reducer /* , initialValue */) {
|
|
21043
|
+
anObject(this);
|
|
21044
|
+
aCallable(reducer);
|
|
21045
|
+
var record = getIteratorDirect(this);
|
|
21046
|
+
var noInitial = arguments.length < 2;
|
|
21047
|
+
var accumulator = noInitial ? undefined : arguments[1];
|
|
21048
|
+
var counter = 0;
|
|
21049
|
+
iterate(record, function (value) {
|
|
21050
|
+
if (noInitial) {
|
|
21051
|
+
noInitial = false;
|
|
21052
|
+
accumulator = value;
|
|
21053
|
+
} else {
|
|
21054
|
+
accumulator = reducer(accumulator, value, counter);
|
|
21055
|
+
}
|
|
21056
|
+
counter++;
|
|
21057
|
+
}, { IS_RECORD: true });
|
|
21058
|
+
if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');
|
|
21059
|
+
return accumulator;
|
|
21060
|
+
}
|
|
21061
|
+
});
|
|
21062
|
+
|
|
21063
|
+
|
|
21024
21064
|
/***/ }),
|
|
21025
21065
|
|
|
21026
21066
|
/***/ 8469:
|
|
@@ -25759,7 +25799,7 @@ if (typeof window !== 'undefined') {
|
|
|
25759
25799
|
// Indicate to webpack that this file can be concatenated
|
|
25760
25800
|
/* harmony default export */ var setPublicPath = (null);
|
|
25761
25801
|
|
|
25762
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=template&id=
|
|
25802
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=template&id=514a3b03&scoped=true
|
|
25763
25803
|
var render = function render() {
|
|
25764
25804
|
var _vm = this,
|
|
25765
25805
|
_c = _vm._self._c;
|
|
@@ -26151,6 +26191,7 @@ var render = function render() {
|
|
|
26151
26191
|
ref: "selection",
|
|
26152
26192
|
attrs: {
|
|
26153
26193
|
"border": _vm.border,
|
|
26194
|
+
"row-key": _vm.tableRowKey,
|
|
26154
26195
|
"columns": _vm.tableColumns,
|
|
26155
26196
|
"loading": _vm.tableLoading,
|
|
26156
26197
|
"data": _vm.dataSource,
|
|
@@ -26242,6 +26283,8 @@ var es_iterator_find = __webpack_require__(116);
|
|
|
26242
26283
|
var es_iterator_for_each = __webpack_require__(7588);
|
|
26243
26284
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
|
|
26244
26285
|
var es_iterator_map = __webpack_require__(1701);
|
|
26286
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js
|
|
26287
|
+
var es_iterator_reduce = __webpack_require__(8237);
|
|
26245
26288
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
|
|
26246
26289
|
var es_iterator_some = __webpack_require__(3579);
|
|
26247
26290
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
|
|
@@ -30510,8 +30553,8 @@ function getPersonSearch (param) {
|
|
|
30510
30553
|
var table_no_flod_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAAAXNSR0IArs4c6QAAAh1JREFUOE+dlMtu00AYhc9vKxvkBwDEEgFvgERXKRepkYBmWWCPEBIo8sRcCpIF5ZYZOxJ5gRYkWLAp3bULEAIkXgFYtzxAYwgLz5CJZqKpsTHprJzR78+fzxyHAKDb7c4BuJ7n+fM0Tb/ovf0sxthVACcbjcYt0gDG2CaAc+NnZES0wDn/OCuYMXYfwANz300LbgN4A8AfP2dIRK1Z4AXotu/7pyZgvcIwXCKilxaulFpIkuRTnXkYhveI6KGZ2yaiJuf8+xS8H3gRKqWcT9P0m2btAZu8LwF4UWfOGFsGsGJNXWgpuAS+q5RqubEUoDtSyqY1tdH9ZexkfpmI1oz5rmnL5/+BTo0ZYzfGAH0AK0IIXgUH8AqA7qpeO57nzfd6va/6RxzHB7Ise617DKBl67YB4LweUEotJ0ny2MIZY1cArBpzu10G3VBKnTaMaxNwp9M56vv+BwCHzZ13hRBPKuA/PM9ruqbD4fAtgDNmfjMIggvTjKMoOi6lfPcP+EUAbSJ6pHtqX78EuhjH8WjP4dXB3Y/FZLqulDprTfM8b/f7/V+ldTPw9wAOTQaI7nDOn84CrexxEQ7gthDimXP6rulWnueL1rS2x2XwIAgGWZbVQiuNnR6fICJ9oJNYAOj/gWPmutS01rgA15kfdHLeCoKgHcfxTzd797ryk3aHwjDU5hZeC62NwoVHUXREKTU3Go3WB4PB7ypTu/8HEL0+yS21nGMAAAAASUVORK5CYII=";
|
|
30511
30554
|
;// ./src/assets/images/table_flod.png
|
|
30512
30555
|
var table_flod_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAAAXNSR0IArs4c6QAAAiJJREFUOE+V1D1v01AYBeBzHAVYAPEnWPgDVUEoTluVsiG1DLS0jQMDSLABUgcWhASsTAjiNIUwdENCFIa0EUJ8SKhswM4AlSio0C6A70F2bCuxkzj1Zvvex+e+970mBrwKriYJc0q0bjRL/Jw1jVkD/PdFVyVB9wHkAGxYYLHh8GO/uZlwAo2sDc+j/fI8P/XC+8KFiuZJPQiTbkGqg7wYYn3xnnAKBcfXHL6zK7oC6k4W3hVOoiJPNEt8Gy07gX/zPBaTZUnBBVdzhCrR8i1xolHmm2QtbVdXAd0On6fwDnhQNE6ewEXaUSvGsF3RLCi3W9KpZeW+75h7ECdJXlot8WEWHsB2RadBPY5QgidXHb723wXotlkCeCbEPIHlpsNahBequkbpVnBPfBU43IJd8xzAOICtFLpjahCnEzXui5O8HMCFqoYoc0Gy7jbLfB8n7UTXYXgdluoADgLwIDprZS5FH20dJjNk5ayFru3mL39z2ywKnAknrf/dy9FX0/xZdDUsaAXAgW549JEU3A3dYzj24hx/tCXrwEmW2je0Veq2K9io36YK8myUNIkOisdwEiXwIW842p40dUgWdRRGz6KyCJxvOnwUJw5bygU4Gz7MROM+7oGHfezdBLkQocxxrDHHzV6/xB7J/Q3dH2woONJqN9csE5jyl79bNJE8wP2SBPCxug7l/2BiXx5PV2b4a9CkyXEjNR3WPxw5/gVP/gNEyE+/VqwYfAAAAABJRU5ErkJggg==";
|
|
30513
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/table-setting.vue?vue&type=template&id=
|
|
30514
|
-
var
|
|
30556
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/table-setting.vue?vue&type=template&id=694e7aaa&scoped=true
|
|
30557
|
+
var table_settingvue_type_template_id_694e7aaa_scoped_true_render = function render() {
|
|
30515
30558
|
var _vm = this,
|
|
30516
30559
|
_c = _vm._self._c;
|
|
30517
30560
|
return _c('div', [_c('Modal', {
|
|
@@ -30680,7 +30723,7 @@ var table_settingvue_type_template_id_24464d76_scoped_true_render = function ren
|
|
|
30680
30723
|
}
|
|
30681
30724
|
}, [_vm._v("确定")])], 1)])], 1);
|
|
30682
30725
|
};
|
|
30683
|
-
var
|
|
30726
|
+
var table_settingvue_type_template_id_694e7aaa_scoped_true_staticRenderFns = [];
|
|
30684
30727
|
|
|
30685
30728
|
;// ./src/assets/images/model_title_icon.png
|
|
30686
30729
|
var model_title_icon_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAAXNSR0IArs4c6QAAA5xJREFUSEuVll1onFUQhp/32yTYxJAKitSItiXZaOuFCooiqKA33tUbKdSWFrNJGn9aRav5MayJKRqaXAjVZLdN1QotVVFBil4IBUEjaKUXJm6yxR8w8afiVlOVJLtjzpqGLyfZzfa7/M7MvGdm3nfmiBK/awdsTWUVrcAeAioFg9l/6Es/oT9LCaFVjU5YpP48OwIjbnCdZ38OES+rITn6kGaKxSoKFB2yLYheYNMqF0pLtKUaeRfJVrJdEaguYfcE8BJwh+d0xowOGf8qoM/gVu98BLFvPKZPfbAlQPUJu1mwH3jAMzxrRtfEFMeJK5c/M1P9IbbK6AbqPPv3THRMxDR28X8eqH7YNgZZeszYCgQhpykZPZErOFyoB5tOWMVshmZBF3BlyHfORLIsR89Ys6bUkLBt800eBipCRhmMl6fhlclm/b0qYYCGw1ZNjmfN2ANcHvKZNtip6JCdRtwSOjg2U07r97uUKQXAt7lxyNbloNfErsUz8buiCXsD2BFycDQ9NCu6v4vpl0sCc1LIsD2AFzwpjOmaIausDmg34ylgTThlxIGyGfpHH9V0UcD/ifGg6+cyKYhPAqN1kXXR16zWInQLdi4hhPgZo6faSH7VrFkfMDpo9xHkmXr7kjPjaxntqRZ95P4v01FdwjZHRNKMO72g6bxjE+84UUYTdts8gRzA/Z7dpGBfapJji1LwgRxVs3+w18TzHnPCsb4AJoEtK10UcD3unzZeDDN2MaMbknZvzjjo1TgncdyMu4DrC/TJjZyTkLdZGxLoj47q4816P1+6umG7KphlALHNu+GIcjyeatGXLtO5DI8BbZ4oPyRH53iLzmxI2tXlRh+w3Ytzcs7YrYakfeb14zfBc6lJXg/X2N1q/RFbWz5HDNhgWY6mW/S5n2X9oN2NOChx0+KZI0Y0YY66VSGHN7NZnjm7W79ekoYWjJ1cquBJKT8DL46z8y6jvWb0ezPOgQ8owoHUI/qrFMCF8jYCncC68AAw8rMQikztcxK9kRpeLbjY4hZEa3kYI+5KGgJwU/6tSEDXWKN+WKKjQntI4BjUNT7F0fCaiCbzFHfTYLOX9Qc56Eg36ZsQC5cXpshmHZVozxkXFvaWE22o55wy0ZaOacSPWniVF38rLIkjOC1o/7ZJHxfq56qPk/VH7LKK2fzrx9fQfFuYCKAzFePtQm+FoqVb6VYbh6ymXDxt0AJcMLG/9ieGT8U1Vwor/wOKJWKSdidLTwAAAABJRU5ErkJggg==";
|
|
@@ -31225,7 +31268,8 @@ let checkAllGroup = [];
|
|
|
31225
31268
|
// })
|
|
31226
31269
|
// this.columnsOptionList
|
|
31227
31270
|
// 全部选中
|
|
31228
|
-
|
|
31271
|
+
const titleColumns = val.filter(item => item.type !== 'selection' && item.title);
|
|
31272
|
+
if (this.checkAllGroup.length == titleColumns.length) {
|
|
31229
31273
|
this.checkAll = true;
|
|
31230
31274
|
this.checkAllGroup = checkAllGroup;
|
|
31231
31275
|
this.indeterminate = false;
|
|
@@ -31616,10 +31660,10 @@ let checkAllGroup = [];
|
|
|
31616
31660
|
});
|
|
31617
31661
|
;// ./packages/components/table-setting.vue?vue&type=script&lang=js
|
|
31618
31662
|
/* harmony default export */ var components_table_settingvue_type_script_lang_js = (table_settingvue_type_script_lang_js);
|
|
31619
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/table-setting.vue?vue&type=style&index=0&id=
|
|
31663
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/table-setting.vue?vue&type=style&index=0&id=694e7aaa&prod&scoped=true&lang=css
|
|
31620
31664
|
// extracted by mini-css-extract-plugin
|
|
31621
31665
|
|
|
31622
|
-
;// ./packages/components/table-setting.vue?vue&type=style&index=0&id=
|
|
31666
|
+
;// ./packages/components/table-setting.vue?vue&type=style&index=0&id=694e7aaa&prod&scoped=true&lang=css
|
|
31623
31667
|
|
|
31624
31668
|
;// ./packages/components/table-setting.vue
|
|
31625
31669
|
|
|
@@ -31632,11 +31676,11 @@ let checkAllGroup = [];
|
|
|
31632
31676
|
|
|
31633
31677
|
var table_setting_component = normalizeComponent(
|
|
31634
31678
|
components_table_settingvue_type_script_lang_js,
|
|
31635
|
-
|
|
31636
|
-
|
|
31679
|
+
table_settingvue_type_template_id_694e7aaa_scoped_true_render,
|
|
31680
|
+
table_settingvue_type_template_id_694e7aaa_scoped_true_staticRenderFns,
|
|
31637
31681
|
false,
|
|
31638
31682
|
null,
|
|
31639
|
-
"
|
|
31683
|
+
"694e7aaa",
|
|
31640
31684
|
null
|
|
31641
31685
|
|
|
31642
31686
|
)
|
|
@@ -36361,6 +36405,8 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36361
36405
|
|
|
36362
36406
|
|
|
36363
36407
|
|
|
36408
|
+
|
|
36409
|
+
|
|
36364
36410
|
|
|
36365
36411
|
|
|
36366
36412
|
|
|
@@ -36460,6 +36506,14 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36460
36506
|
type: Object,
|
|
36461
36507
|
required: false
|
|
36462
36508
|
},
|
|
36509
|
+
rowKey: {
|
|
36510
|
+
type: [String, Boolean],
|
|
36511
|
+
default: 'id'
|
|
36512
|
+
},
|
|
36513
|
+
reserveSelection: {
|
|
36514
|
+
type: Boolean,
|
|
36515
|
+
default: false
|
|
36516
|
+
},
|
|
36463
36517
|
// 请求-获取数据
|
|
36464
36518
|
request: {
|
|
36465
36519
|
type: Function,
|
|
@@ -36496,6 +36550,8 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36496
36550
|
filterCount: 0,
|
|
36497
36551
|
// 选中的数据
|
|
36498
36552
|
selectionItems: [],
|
|
36553
|
+
reserveSelectionMap: {},
|
|
36554
|
+
isRestoringSelection: false,
|
|
36499
36555
|
defToolBar: [{
|
|
36500
36556
|
text: '新增',
|
|
36501
36557
|
type: 'primary'
|
|
@@ -36526,7 +36582,8 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36526
36582
|
const config = {
|
|
36527
36583
|
...column,
|
|
36528
36584
|
resizable: this.resizable && column.resizable !== false,
|
|
36529
|
-
width: column.width ||
|
|
36585
|
+
width: column.width || undefined,
|
|
36586
|
+
minWidth: column.width ? undefined : column.minWidth || 100,
|
|
36530
36587
|
render: (h, params) => {
|
|
36531
36588
|
// 如果列有slot属性,使用插槽内容
|
|
36532
36589
|
if (column.slot) {
|
|
@@ -36885,6 +36942,12 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36885
36942
|
*/
|
|
36886
36943
|
formKey() {
|
|
36887
36944
|
return item => item.as ? item.as : item.key;
|
|
36945
|
+
},
|
|
36946
|
+
tableRowKey() {
|
|
36947
|
+
if (!this.reserveSelection) {
|
|
36948
|
+
return false;
|
|
36949
|
+
}
|
|
36950
|
+
return this.rowKey || false;
|
|
36888
36951
|
}
|
|
36889
36952
|
},
|
|
36890
36953
|
watch: {
|
|
@@ -36923,11 +36986,113 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
36923
36986
|
this.page.total = newVal;
|
|
36924
36987
|
}
|
|
36925
36988
|
},
|
|
36989
|
+
dataSource() {
|
|
36990
|
+
if (this.shouldReserveSelection()) {
|
|
36991
|
+
this.queueRestoreSelection();
|
|
36992
|
+
}
|
|
36993
|
+
},
|
|
36926
36994
|
requestParams() {
|
|
36927
36995
|
this.reload();
|
|
36928
36996
|
}
|
|
36929
36997
|
},
|
|
36930
36998
|
methods: {
|
|
36999
|
+
hasValidRowKey(value) {
|
|
37000
|
+
return value !== undefined && value !== null && value !== '';
|
|
37001
|
+
},
|
|
37002
|
+
getRowIdentity(row) {
|
|
37003
|
+
if (!row || !this.rowKey || typeof this.rowKey !== 'string') {
|
|
37004
|
+
return undefined;
|
|
37005
|
+
}
|
|
37006
|
+
return this.rowKey.split('.').reduce((result, key) => {
|
|
37007
|
+
return result == null ? undefined : result[key];
|
|
37008
|
+
}, row);
|
|
37009
|
+
},
|
|
37010
|
+
shouldReserveSelection() {
|
|
37011
|
+
return this.reserveSelection && this.columns.some(item => item.type === 'selection') && typeof this.rowKey === 'string' && this.rowKey !== '';
|
|
37012
|
+
},
|
|
37013
|
+
setReserveSelectionMap(nextMap) {
|
|
37014
|
+
this.reserveSelectionMap = nextMap;
|
|
37015
|
+
this.selectionItems = Object.values(nextMap);
|
|
37016
|
+
},
|
|
37017
|
+
syncReserveSelection(selectionItems = []) {
|
|
37018
|
+
if (!this.shouldReserveSelection()) {
|
|
37019
|
+
this.selectionItems = selectionItems;
|
|
37020
|
+
return;
|
|
37021
|
+
}
|
|
37022
|
+
const nextMap = {
|
|
37023
|
+
...this.reserveSelectionMap
|
|
37024
|
+
};
|
|
37025
|
+
const pageKeys = [];
|
|
37026
|
+
this.dataSource.forEach(row => {
|
|
37027
|
+
const rowKey = this.getRowIdentity(row);
|
|
37028
|
+
if (this.hasValidRowKey(rowKey)) {
|
|
37029
|
+
pageKeys.push(String(rowKey));
|
|
37030
|
+
}
|
|
37031
|
+
});
|
|
37032
|
+
pageKeys.forEach(key => {
|
|
37033
|
+
delete nextMap[key];
|
|
37034
|
+
});
|
|
37035
|
+
selectionItems.forEach(row => {
|
|
37036
|
+
const rowKey = this.getRowIdentity(row);
|
|
37037
|
+
if (this.hasValidRowKey(rowKey)) {
|
|
37038
|
+
nextMap[String(rowKey)] = row;
|
|
37039
|
+
}
|
|
37040
|
+
});
|
|
37041
|
+
this.setReserveSelectionMap(nextMap);
|
|
37042
|
+
},
|
|
37043
|
+
getCurrentTableSelection() {
|
|
37044
|
+
const tableRef = this.$refs.selection;
|
|
37045
|
+
if (tableRef && typeof tableRef.getSelection === 'function') {
|
|
37046
|
+
return tableRef.getSelection();
|
|
37047
|
+
}
|
|
37048
|
+
return [];
|
|
37049
|
+
},
|
|
37050
|
+
queueRestoreSelection() {
|
|
37051
|
+
this.$nextTick(() => {
|
|
37052
|
+
this.restoreSelection();
|
|
37053
|
+
});
|
|
37054
|
+
},
|
|
37055
|
+
restoreSelection() {
|
|
37056
|
+
if (!this.shouldReserveSelection()) {
|
|
37057
|
+
return;
|
|
37058
|
+
}
|
|
37059
|
+
const tableRef = this.$refs.selection;
|
|
37060
|
+
if (!tableRef || typeof tableRef.toggleSelect !== 'function') {
|
|
37061
|
+
return;
|
|
37062
|
+
}
|
|
37063
|
+
const selectedKeys = new Set(Object.keys(this.reserveSelectionMap));
|
|
37064
|
+
if (selectedKeys.size === 0) {
|
|
37065
|
+
return;
|
|
37066
|
+
}
|
|
37067
|
+
const currentSelection = this.getCurrentTableSelection();
|
|
37068
|
+
const currentSelectionKeys = new Set(currentSelection.map(row => this.getRowIdentity(row)).filter(rowKey => this.hasValidRowKey(rowKey)).map(rowKey => String(rowKey)));
|
|
37069
|
+
this.isRestoringSelection = true;
|
|
37070
|
+
this.dataSource.forEach((row, index) => {
|
|
37071
|
+
const rowKey = this.getRowIdentity(row);
|
|
37072
|
+
if (!this.hasValidRowKey(rowKey)) {
|
|
37073
|
+
return;
|
|
37074
|
+
}
|
|
37075
|
+
const normalizedKey = String(rowKey);
|
|
37076
|
+
const shouldBeSelected = selectedKeys.has(normalizedKey);
|
|
37077
|
+
const isSelected = currentSelectionKeys.has(normalizedKey);
|
|
37078
|
+
if (shouldBeSelected !== isSelected) {
|
|
37079
|
+
tableRef.toggleSelect(index, rowKey);
|
|
37080
|
+
}
|
|
37081
|
+
});
|
|
37082
|
+
this.$nextTick(() => {
|
|
37083
|
+
this.isRestoringSelection = false;
|
|
37084
|
+
});
|
|
37085
|
+
},
|
|
37086
|
+
clearReserveSelection() {
|
|
37087
|
+
this.setReserveSelectionMap({});
|
|
37088
|
+
const selectedRowKeys = new Set(this.getCurrentTableSelection().map(row => this.getRowIdentity(row)).filter(rowKey => this.hasValidRowKey(rowKey)).map(rowKey => String(rowKey)));
|
|
37089
|
+
this.dataSource.forEach((row, index) => {
|
|
37090
|
+
const rowKey = this.getRowIdentity(row);
|
|
37091
|
+
if (this.hasValidRowKey(rowKey) && selectedRowKeys.has(String(rowKey)) && this.$refs.selection && typeof this.$refs.selection.toggleSelect === 'function') {
|
|
37092
|
+
this.$refs.selection.toggleSelect(index, rowKey);
|
|
37093
|
+
}
|
|
37094
|
+
});
|
|
37095
|
+
},
|
|
36931
37096
|
isJsonString(str) {
|
|
36932
37097
|
if (typeof str !== 'string') return false;
|
|
36933
37098
|
try {
|
|
@@ -37254,7 +37419,15 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
37254
37419
|
* @param {*} selectionItems
|
|
37255
37420
|
*/
|
|
37256
37421
|
onSelectionChange(selectionItems) {
|
|
37257
|
-
this.
|
|
37422
|
+
if (this.shouldReserveSelection()) {
|
|
37423
|
+
this.syncReserveSelection(selectionItems);
|
|
37424
|
+
if (this.isRestoringSelection) {
|
|
37425
|
+
return;
|
|
37426
|
+
}
|
|
37427
|
+
this.$emit('on-reserve-selection-change', this.selectionItems);
|
|
37428
|
+
} else {
|
|
37429
|
+
this.selectionItems = selectionItems;
|
|
37430
|
+
}
|
|
37258
37431
|
// 向父组件发射选择变化事件
|
|
37259
37432
|
this.$emit('on-selection-change', selectionItems);
|
|
37260
37433
|
},
|
|
@@ -37370,7 +37543,7 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
37370
37543
|
* 刷新
|
|
37371
37544
|
*/
|
|
37372
37545
|
reload() {
|
|
37373
|
-
if (this.selectionItems.length > 0) {
|
|
37546
|
+
if (!this.shouldReserveSelection() && this.selectionItems.length > 0) {
|
|
37374
37547
|
this.selectionItems.length = 0;
|
|
37375
37548
|
}
|
|
37376
37549
|
this.getDataSource();
|
|
@@ -37732,11 +37905,37 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
37732
37905
|
column
|
|
37733
37906
|
});
|
|
37734
37907
|
},
|
|
37908
|
+
getActualColumnWidth(colKey) {
|
|
37909
|
+
const tableEl = this.$refs.selection && this.$refs.selection.$el;
|
|
37910
|
+
if (!tableEl) return null;
|
|
37911
|
+
const headers = tableEl.querySelectorAll('.ivu-table-header th');
|
|
37912
|
+
const visibleCols = this.columnsList.filter(col => !col.hideInTable);
|
|
37913
|
+
const colIdx = visibleCols.findIndex(col => col.key === colKey);
|
|
37914
|
+
if (colIdx !== -1 && headers[colIdx]) {
|
|
37915
|
+
return headers[colIdx].offsetWidth;
|
|
37916
|
+
}
|
|
37917
|
+
return null;
|
|
37918
|
+
},
|
|
37735
37919
|
onColumnWidthResize(newWidth, oldWidth, column, event) {
|
|
37736
37920
|
const columnKey = column.key;
|
|
37737
|
-
const
|
|
37921
|
+
const visibleColumns = this.columnsList.filter(col => !col.hideInTable);
|
|
37922
|
+
const columnIndex = visibleColumns.findIndex(col => col.key === columnKey);
|
|
37738
37923
|
if (columnIndex !== -1) {
|
|
37739
|
-
|
|
37924
|
+
const diff = newWidth - oldWidth;
|
|
37925
|
+
const nextVisibleCol = visibleColumns[columnIndex + 1];
|
|
37926
|
+
if (nextVisibleCol) {
|
|
37927
|
+
const actualWidth = this.getActualColumnWidth(nextVisibleCol.key);
|
|
37928
|
+
const nextCurrentWidth = actualWidth || nextVisibleCol.width || nextVisibleCol.minWidth || 100;
|
|
37929
|
+
const nextNewWidth = Math.max(50, nextCurrentWidth - diff);
|
|
37930
|
+
const nextIndex = this.columnsList.findIndex(col => col.key === nextVisibleCol.key);
|
|
37931
|
+
if (nextIndex !== -1) {
|
|
37932
|
+
this.$set(this.columnsList[nextIndex], 'width', nextNewWidth);
|
|
37933
|
+
this.$set(this.columnsList[nextIndex], 'minWidth', undefined);
|
|
37934
|
+
}
|
|
37935
|
+
}
|
|
37936
|
+
const realIndex = this.columnsList.findIndex(col => col.key === columnKey);
|
|
37937
|
+
this.$set(this.columnsList[realIndex], 'width', newWidth);
|
|
37938
|
+
this.$set(this.columnsList[realIndex], 'minWidth', undefined);
|
|
37740
37939
|
this.saveColumnWidths();
|
|
37741
37940
|
}
|
|
37742
37941
|
this.$emit('on-column-width-resize', {
|
|
@@ -37898,15 +38097,15 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
|
|
|
37898
38097
|
});
|
|
37899
38098
|
;// ./packages/components/index.vue?vue&type=script&lang=js
|
|
37900
38099
|
/* harmony default export */ var packages_componentsvue_type_script_lang_js = (componentsvue_type_script_lang_js);
|
|
37901
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=style&index=0&id=
|
|
38100
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=style&index=0&id=514a3b03&prod&scoped=true&lang=less
|
|
37902
38101
|
// extracted by mini-css-extract-plugin
|
|
37903
38102
|
|
|
37904
|
-
;// ./packages/components/index.vue?vue&type=style&index=0&id=
|
|
38103
|
+
;// ./packages/components/index.vue?vue&type=style&index=0&id=514a3b03&prod&scoped=true&lang=less
|
|
37905
38104
|
|
|
37906
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=style&index=1&id=
|
|
38105
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/components/index.vue?vue&type=style&index=1&id=514a3b03&prod&lang=css
|
|
37907
38106
|
// extracted by mini-css-extract-plugin
|
|
37908
38107
|
|
|
37909
|
-
;// ./packages/components/index.vue?vue&type=style&index=1&id=
|
|
38108
|
+
;// ./packages/components/index.vue?vue&type=style&index=1&id=514a3b03&prod&lang=css
|
|
37910
38109
|
|
|
37911
38110
|
;// ./packages/components/index.vue
|
|
37912
38111
|
|
|
@@ -37924,7 +38123,7 @@ var components_component = normalizeComponent(
|
|
|
37924
38123
|
staticRenderFns,
|
|
37925
38124
|
false,
|
|
37926
38125
|
null,
|
|
37927
|
-
"
|
|
38126
|
+
"514a3b03",
|
|
37928
38127
|
null
|
|
37929
38128
|
|
|
37930
38129
|
)
|