wkjp-list-page 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -234,7 +234,8 @@ deviceListTransformList(list) {
|
|
|
234
234
|
|
|
235
235
|
**情况:** 下拉只要 10、20、50,不要默认一长串。
|
|
236
236
|
**加:** `:pagination="{ pSizes: [10, 20, 50] }"`
|
|
237
|
-
**说明:** 这里的 **`pagination` 只用来合并进组件内部分页**(改 `pSizes` 等),不是让你自己维护当前第几页、总条数——那些仍是组件内部根据接口结果在管。
|
|
237
|
+
**说明:** 这里的 **`pagination` 只用来合并进组件内部分页**(改 `pSizes` 等),不是让你自己维护当前第几页、总条数——那些仍是组件内部根据接口结果在管。
|
|
238
|
+
**隐藏分页条:** 当 **`total` 不大于 `pSizes` 中的最小值**(例如共 3 条、最小每页 10 条)时,不再渲染底部分页器,避免无意义的「每页条数」与翻页。
|
|
238
239
|
|
|
239
240
|
---
|
|
240
241
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wkjp-list-page",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "Vue2 + ElementUI CommonListPage component",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -40,7 +40,5 @@
|
|
|
40
40
|
"webpack-cli": "^3.3.12",
|
|
41
41
|
"webpack-dev-server": "^3.11.3"
|
|
42
42
|
},
|
|
43
|
-
"dependencies": {
|
|
44
|
-
"qs": "6.11.2"
|
|
45
|
-
}
|
|
43
|
+
"dependencies": {}
|
|
46
44
|
}
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
</el-table>
|
|
138
138
|
|
|
139
139
|
<el-pagination
|
|
140
|
-
v-if="
|
|
140
|
+
v-if="showPaginationBar"
|
|
141
141
|
background
|
|
142
142
|
:total="innerPagination.total"
|
|
143
143
|
:current-page="innerPagination.page"
|
|
@@ -338,6 +338,19 @@ export default {
|
|
|
338
338
|
showExportWithApi() {
|
|
339
339
|
return this.showExport === true && typeof this.exportApi === "function";
|
|
340
340
|
},
|
|
341
|
+
/** `page-sizes` 中的最小值;与 `el-pagination` 的 `:page-sizes` 同源 */
|
|
342
|
+
paginationMinPageSize() {
|
|
343
|
+
const ip = this.innerPagination;
|
|
344
|
+
const fallback = [10, 50, 100, 200];
|
|
345
|
+
const sizes = ip && Array.isArray(ip.pSizes) && ip.pSizes.length ? ip.pSizes : fallback;
|
|
346
|
+
const nums = sizes.map((n) => Number(n)).filter((n) => Number.isFinite(n) && n > 0);
|
|
347
|
+
return nums.length ? Math.min.apply(null, nums) : 10;
|
|
348
|
+
},
|
|
349
|
+
/** 总数不超过「每页条数」选项里的最小值时,不展示分页条(单页即可看完) */
|
|
350
|
+
showPaginationBar() {
|
|
351
|
+
if (!this.innerPagination) return false;
|
|
352
|
+
return this.innerPagination.total > this.paginationMinPageSize;
|
|
353
|
+
},
|
|
341
354
|
exportQuerys() {
|
|
342
355
|
return this.filters && typeof this.filters === "object" ? this.filters : {};
|
|
343
356
|
},
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</template>
|
|
19
19
|
|
|
20
20
|
<script>
|
|
21
|
-
import
|
|
21
|
+
import { stringifyExportQuerys } from "../utils/stringifyExportQuerys";
|
|
22
22
|
import { createDownLoadLink } from "../utils/createDownLoadLink";
|
|
23
23
|
|
|
24
24
|
export default {
|
|
@@ -163,8 +163,7 @@ export default {
|
|
|
163
163
|
/* ignore */
|
|
164
164
|
}
|
|
165
165
|
_export.link =
|
|
166
|
-
`${_pathPrefix}?${
|
|
167
|
-
indices: false,
|
|
166
|
+
`${_pathPrefix}?${stringifyExportQuerys(_parameters, {
|
|
168
167
|
skipNulls: true,
|
|
169
168
|
})}` + (auth ? `&authorization=${auth}` : "");
|
|
170
169
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 导出链接查询串(替代 `qs.stringify`,避免旧构建链解析 `node_modules` 里 async generator 等新语法)。
|
|
3
|
+
* 行为对齐原用法:`indices: false`(数组同一 key 多次)、`skipNulls: true`。
|
|
4
|
+
*
|
|
5
|
+
* @param {Record<string, unknown>} obj
|
|
6
|
+
* @param {{ skipNulls?: boolean }} [options] 仅 `skipNulls`;数组为同一 key 多次 append(对齐 `qs` 的 `indices: false`)。
|
|
7
|
+
* @returns {string}
|
|
8
|
+
*/
|
|
9
|
+
export function stringifyExportQuerys(obj, options) {
|
|
10
|
+
var opts = options || {};
|
|
11
|
+
var skipNulls = opts.skipNulls === true;
|
|
12
|
+
var sp = new URLSearchParams();
|
|
13
|
+
if (!obj || typeof obj !== "object") return "";
|
|
14
|
+
Object.keys(obj).forEach(function (key) {
|
|
15
|
+
var val = obj[key];
|
|
16
|
+
if (skipNulls && (val === null || val === undefined)) return;
|
|
17
|
+
if (Array.isArray(val)) {
|
|
18
|
+
val.forEach(function (item) {
|
|
19
|
+
if (skipNulls && (item === null || item === undefined)) return;
|
|
20
|
+
sp.append(key, item == null ? "" : String(item));
|
|
21
|
+
});
|
|
22
|
+
} else {
|
|
23
|
+
sp.append(key, val == null ? "" : String(val));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return sp.toString();
|
|
27
|
+
}
|