w-table-vue 1.0.20 → 1.0.21
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 +1 -1
- package/dist/w-table-vue.umd.js +3 -3
- package/dist/w-table-vue.umd.js.map +1 -1
- package/docs/examples/app.html +1 -1
- package/docs/examples/app.umd.js +2 -2
- package/docs/examples/app.umd.js.map +1 -1
- package/docs/examples/w-table-edit_default.html +9 -1
- package/docs/examples/w-table-edit_editable.html +9 -1
- package/docs/examples/w-table-edit_editable_checkId.html +9 -1
- package/docs/examples/w-table-edit_editable_checkId_opt.modifyDataWhenSave_save(call cmp. method).html +9 -1
- package/docs/examples/w-table-edit_editable_checkId_successMsgFromAddRow_errorMsgFromAddRow.html +9 -1
- package/docs/examples/w-table-edit_editable_inforPaddingStyle_menuBackgroundColor.html +9 -1
- package/docs/examples/w-table-edit_editable_language_checkId_tooltipAddRow.html +9 -1
- package/docs/examples/w-table-edit_editable_language_textLabelDataName_textPlaceholderDataName.html +9 -1
- package/docs/examples/w-table-edit_editable_no enableInfor.html +9 -1
- package/docs/examples/w-table-edit_editable_no enableMenu.html +9 -1
- package/docs/examples/w-table-edit_editable_opt.beforeAddRow.html +9 -1
- package/docs/examples/w-table-edit_editable_opt.kpCellFormat_no useCellFormatWhenDownload.html +9 -1
- package/docs/examples/w-table-edit_editable_opt.kpConvertKeysWhenUploadData.html +9 -1
- package/docs/examples/w-table-edit_editable_opt.optForUploadData.html +9 -1
- package/docs/examples/w-table-edit_editable_opt.optForUploadData.uploadMode (append, no popup).html +550 -0
- package/docs/examples/w-table-edit_editable_slot btns-right.html +9 -1
- package/docs/examples/w-table-edit_fixIds (fix id).html +9 -1
- package/docs/examples/w-table-edit_hideIds (hide mappingId).html +9 -1
- package/docs/examples/w-table-edit_name_description.html +9 -1
- package/docs/examples/w-table-edit_no enableInfor.html +9 -1
- package/docs/examples/w-table-edit_no enableMenu.html +9 -1
- package/docs/examples/w-table-edit_opt.kpCellFormat.html +9 -1
- package/docs/examples/w-table-edit_opt.kpHead.html +9 -1
- package/docs/examples/w-table-edit_removeIdsWhenDownload (remove id, mappingId, order, isActive).html +9 -1
- package/docs/examples/w-table-edit_slot btns-left.html +9 -1
- package/docs/examples/w-table-edit_slot btns-right.html +9 -1
- package/docs/examples/w-table-edit_slot cell-render.html +9 -1
- package/docs/examples/w-table-edit_slot cell-tooltip.html +9 -1
- package/docs/examples/w-table-edit_slot head-render.html +9 -1
- package/docs/examples/w-table-edit_slot head-tooltip.html +9 -1
- package/docs/examples/w-table-edit_slot infor (name_description).html +9 -1
- package/docs/examples/w-table-edit_sortColIds (sort by order).html +9 -1
- package/docs/index.html +1 -1
- package/docs/module-WTableEdit.html +9 -9
- package/package.json +2 -2
- package/src/AppZoneWTableEdit.vue +28 -0
- package/src/components/WTableEdit.vue +91 -36
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -507,6 +507,14 @@
|
|
|
507
507
|
});
|
|
508
508
|
}
|
|
509
509
|
}
|
|
510
|
+
},
|
|
511
|
+
opt9: {
|
|
512
|
+
keys: keys1,
|
|
513
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
514
|
+
rows: rows1,
|
|
515
|
+
optForUploadData: {
|
|
516
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
517
|
+
}
|
|
510
518
|
}
|
|
511
519
|
},
|
|
512
520
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -507,6 +507,14 @@
|
|
|
507
507
|
});
|
|
508
508
|
}
|
|
509
509
|
}
|
|
510
|
+
},
|
|
511
|
+
opt9: {
|
|
512
|
+
keys: keys1,
|
|
513
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
514
|
+
rows: rows1,
|
|
515
|
+
optForUploadData: {
|
|
516
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
517
|
+
}
|
|
510
518
|
}
|
|
511
519
|
},
|
|
512
520
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -510,6 +510,14 @@
|
|
|
510
510
|
});
|
|
511
511
|
}
|
|
512
512
|
}
|
|
513
|
+
},
|
|
514
|
+
opt9: {
|
|
515
|
+
keys: keys1,
|
|
516
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
517
|
+
rows: rows1,
|
|
518
|
+
optForUploadData: {
|
|
519
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
520
|
+
}
|
|
513
521
|
}
|
|
514
522
|
},
|
|
515
523
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -531,6 +531,14 @@
|
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
}
|
|
534
|
+
},
|
|
535
|
+
opt9: {
|
|
536
|
+
keys: keys1,
|
|
537
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
538
|
+
rows: rows1,
|
|
539
|
+
optForUploadData: {
|
|
540
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
541
|
+
}
|
|
534
542
|
}
|
|
535
543
|
},
|
|
536
544
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -531,6 +531,14 @@
|
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
}
|
|
534
|
+
},
|
|
535
|
+
opt9: {
|
|
536
|
+
keys: keys1,
|
|
537
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
538
|
+
rows: rows1,
|
|
539
|
+
optForUploadData: {
|
|
540
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
541
|
+
}
|
|
534
542
|
}
|
|
535
543
|
},
|
|
536
544
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -523,6 +523,14 @@
|
|
|
523
523
|
});
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
|
+
},
|
|
527
|
+
opt9: {
|
|
528
|
+
keys: keys1,
|
|
529
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
530
|
+
rows: rows1,
|
|
531
|
+
optForUploadData: {
|
|
532
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
533
|
+
}
|
|
526
534
|
}
|
|
527
535
|
},
|
|
528
536
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -523,6 +523,14 @@
|
|
|
523
523
|
});
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
|
+
},
|
|
527
|
+
opt9: {
|
|
528
|
+
keys: keys1,
|
|
529
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
530
|
+
rows: rows1,
|
|
531
|
+
optForUploadData: {
|
|
532
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
533
|
+
}
|
|
526
534
|
}
|
|
527
535
|
},
|
|
528
536
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -523,6 +523,14 @@
|
|
|
523
523
|
});
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
|
+
},
|
|
527
|
+
opt9: {
|
|
528
|
+
keys: keys1,
|
|
529
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
530
|
+
rows: rows1,
|
|
531
|
+
optForUploadData: {
|
|
532
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
533
|
+
}
|
|
526
534
|
}
|
|
527
535
|
},
|
|
528
536
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -529,6 +529,14 @@
|
|
|
529
529
|
});
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
|
+
},
|
|
533
|
+
opt9: {
|
|
534
|
+
keys: keys1,
|
|
535
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
536
|
+
rows: rows1,
|
|
537
|
+
optForUploadData: {
|
|
538
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
539
|
+
}
|
|
532
540
|
}
|
|
533
541
|
},
|
|
534
542
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -524,6 +524,14 @@
|
|
|
524
524
|
});
|
|
525
525
|
}
|
|
526
526
|
}
|
|
527
|
+
},
|
|
528
|
+
opt9: {
|
|
529
|
+
keys: keys1,
|
|
530
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
531
|
+
rows: rows1,
|
|
532
|
+
optForUploadData: {
|
|
533
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
534
|
+
}
|
|
527
535
|
}
|
|
528
536
|
},
|
|
529
537
|
actions: []
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/>
|
|
44
44
|
|
|
45
45
|
<!-- w-table-vue -->
|
|
46
|
-
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.
|
|
46
|
+
<script src="https://cdn.jsdelivr.net/npm/w-table-vue@1.0.21/dist/w-table-vue.umd.js"></script>
|
|
47
47
|
|
|
48
48
|
<style>
|
|
49
49
|
.item {
|
|
@@ -508,6 +508,14 @@
|
|
|
508
508
|
});
|
|
509
509
|
}
|
|
510
510
|
}
|
|
511
|
+
},
|
|
512
|
+
opt9: {
|
|
513
|
+
keys: keys1,
|
|
514
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
515
|
+
rows: rows1,
|
|
516
|
+
optForUploadData: {
|
|
517
|
+
uploadMode: "append" //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
518
|
+
}
|
|
511
519
|
}
|
|
512
520
|
},
|
|
513
521
|
actions: []
|
package/docs/index.html
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<br class="clear">
|
|
72
72
|
|
|
73
73
|
<footer>
|
|
74
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Thu Sep 24 2026 09:38:18 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
75
75
|
</footer>
|
|
76
76
|
|
|
77
77
|
<script>prettyPrint();</script>
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
<td>String</td>
|
|
282
282
|
<td><code>'no effective data'</code></td>
|
|
283
283
|
<td>No</td>
|
|
284
|
-
<td
|
|
284
|
+
<td>輸入上傳檔案中無有效數據事件訊息字串,此時不變動表格數據,預設'no effective data'</td>
|
|
285
285
|
</tr><tr>
|
|
286
286
|
<td><code>successMsgFromDownloadData</code></td>
|
|
287
287
|
<td>String</td>
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
<td>String</td>
|
|
312
312
|
<td><code>'Choose mode of upload:'</code></td>
|
|
313
313
|
<td>No</td>
|
|
314
|
-
<td
|
|
314
|
+
<td>輸入選擇上傳模式彈窗標題字串,opt.optForUploadData.uploadMode有預先指定時不顯示此彈窗,預設'Choose mode of upload:'</td>
|
|
315
315
|
</tr><tr>
|
|
316
316
|
<td><code>uploadModeTextForReplace</code></td>
|
|
317
317
|
<td>String</td>
|
|
@@ -641,7 +641,7 @@
|
|
|
641
641
|
<td>Object</td>
|
|
642
642
|
<td><code>{}</code></td>
|
|
643
643
|
<td>No</td>
|
|
644
|
-
<td>輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append'
|
|
644
|
+
<td>輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append',有給予時點擊上傳按鈕不顯示模式選擇彈窗而直接開啟選檔視窗,未給予或非前述值時由彈窗選擇),beforeUpload代表上傳前的處理數據函數(輸入讀取所得之數據陣列,回傳處理後之數據陣列或Promise,未給予時自動去除於表格各欄位之值皆為空的無效數據,處理後無數據時觸發error事件(errorMsgFromUploadEmptyData)且不變動表格數據),parseSheetInd代表提取Excel檔案的第幾個sheet整數(預設為0),組件不會修改此物件,optForUploadData預設{}</td>
|
|
645
645
|
</tr><tr>
|
|
646
646
|
<td><code>opt.modifyDataWhenSave</code></td>
|
|
647
647
|
<td>function</td>
|
|
@@ -690,7 +690,7 @@
|
|
|
690
690
|
</tr><tr>
|
|
691
691
|
<td><code>error</code></td>
|
|
692
692
|
<td>String</td>
|
|
693
|
-
<td
|
|
693
|
+
<td>當新增數據、移除數據、上傳數據、下載數據失敗時觸發,回傳對應錯誤訊息字串;使用者於上傳選檔視窗取消時不觸發</td>
|
|
694
694
|
</tr></tbody>
|
|
695
695
|
</table>
|
|
696
696
|
|
|
@@ -931,7 +931,7 @@
|
|
|
931
931
|
<td>String</td>
|
|
932
932
|
<td><code>'no effective data'</code></td>
|
|
933
933
|
<td>No</td>
|
|
934
|
-
<td
|
|
934
|
+
<td>輸入上傳檔案中無有效數據事件訊息字串,此時不變動表格數據,預設'no effective data'</td>
|
|
935
935
|
</tr><tr>
|
|
936
936
|
<td><code>successMsgFromDownloadData</code></td>
|
|
937
937
|
<td>String</td>
|
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
<td>String</td>
|
|
962
962
|
<td><code>'Choose mode of upload:'</code></td>
|
|
963
963
|
<td>No</td>
|
|
964
|
-
<td
|
|
964
|
+
<td>輸入選擇上傳模式彈窗標題字串,opt.optForUploadData.uploadMode有預先指定時不顯示此彈窗,預設'Choose mode of upload:'</td>
|
|
965
965
|
</tr><tr>
|
|
966
966
|
<td><code>uploadModeTextForReplace</code></td>
|
|
967
967
|
<td>String</td>
|
|
@@ -1291,7 +1291,7 @@
|
|
|
1291
1291
|
<td>Object</td>
|
|
1292
1292
|
<td><code>{}</code></td>
|
|
1293
1293
|
<td>No</td>
|
|
1294
|
-
<td>輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append'
|
|
1294
|
+
<td>輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append',有給予時點擊上傳按鈕不顯示模式選擇彈窗而直接開啟選檔視窗,未給予或非前述值時由彈窗選擇),beforeUpload代表上傳前的處理數據函數(輸入讀取所得之數據陣列,回傳處理後之數據陣列或Promise,未給予時自動去除於表格各欄位之值皆為空的無效數據,處理後無數據時觸發error事件(errorMsgFromUploadEmptyData)且不變動表格數據),parseSheetInd代表提取Excel檔案的第幾個sheet整數(預設為0),組件不會修改此物件,optForUploadData預設{}</td>
|
|
1295
1295
|
</tr><tr>
|
|
1296
1296
|
<td><code>opt.modifyDataWhenSave</code></td>
|
|
1297
1297
|
<td>function</td>
|
|
@@ -1340,7 +1340,7 @@
|
|
|
1340
1340
|
</tr><tr>
|
|
1341
1341
|
<td><code>error</code></td>
|
|
1342
1342
|
<td>String</td>
|
|
1343
|
-
<td
|
|
1343
|
+
<td>當新增數據、移除數據、上傳數據、下載數據失敗時觸發,回傳對應錯誤訊息字串;使用者於上傳選檔視窗取消時不觸發</td>
|
|
1344
1344
|
</tr></tbody>
|
|
1345
1345
|
</table>
|
|
1346
1346
|
|
|
@@ -1449,7 +1449,7 @@
|
|
|
1449
1449
|
<br class="clear">
|
|
1450
1450
|
|
|
1451
1451
|
<footer>
|
|
1452
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on
|
|
1452
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Thu Sep 24 2026 09:38:18 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
1453
1453
|
</footer>
|
|
1454
1454
|
|
|
1455
1455
|
<script>prettyPrint();</script>
|
package/package.json
CHANGED
|
@@ -561,6 +561,26 @@
|
|
|
561
561
|
</div>
|
|
562
562
|
|
|
563
563
|
|
|
564
|
+
<div class="bk">
|
|
565
|
+
<demolink
|
|
566
|
+
:pkgname="'w-table-vue'"
|
|
567
|
+
:kbname="'w-table-edit'"
|
|
568
|
+
:casename="'editable & opt.optForUploadData.uploadMode (append, no popup)'"
|
|
569
|
+
></demolink>
|
|
570
|
+
|
|
571
|
+
<w-table-edit
|
|
572
|
+
style="width:600px; height:400px;"
|
|
573
|
+
:name="WTableEdit.name"
|
|
574
|
+
:description="WTableEdit.description"
|
|
575
|
+
:opt="WTableEdit.opt9"
|
|
576
|
+
:editable="true"
|
|
577
|
+
@success="evSuccess"
|
|
578
|
+
@error="evError"
|
|
579
|
+
></w-table-edit>
|
|
580
|
+
|
|
581
|
+
</div>
|
|
582
|
+
|
|
583
|
+
|
|
564
584
|
<div class="bk">
|
|
565
585
|
<demolink
|
|
566
586
|
:pkgname="'w-table-vue'"
|
|
@@ -905,6 +925,14 @@ export default {
|
|
|
905
925
|
},
|
|
906
926
|
},
|
|
907
927
|
},
|
|
928
|
+
'opt9': {
|
|
929
|
+
keys: keys1,
|
|
930
|
+
kpHeadFilterType: kpHeadFilterType1,
|
|
931
|
+
rows: rows1,
|
|
932
|
+
optForUploadData: {
|
|
933
|
+
uploadMode: 'append', //預先指定上傳模式, 點擊上傳按鈕時不顯示模式選擇彈窗, 直接開啟選檔視窗並附加於表格數據之後
|
|
934
|
+
},
|
|
935
|
+
},
|
|
908
936
|
},
|
|
909
937
|
'actions': [
|
|
910
938
|
],
|
|
@@ -95,10 +95,12 @@
|
|
|
95
95
|
v-if="isFilter && hasEffRows"
|
|
96
96
|
></WButtonCircle>
|
|
97
97
|
|
|
98
|
+
<!-- 呼叫端於opt.optForUploadData.uploadMode預先指定上傳模式時, 以editable停用模式選擇彈窗(WPopup點擊觸發區即會自行開啟), 由clickUpload直接開啟選檔視窗 -->
|
|
98
99
|
<WPopup
|
|
99
100
|
v-model="showPickUploadMode"
|
|
100
101
|
:labelContent="labelContentForUpload"
|
|
101
102
|
:cmpZIndex="cmpZIndex"
|
|
103
|
+
:editable="uploadModePreset===''"
|
|
102
104
|
>
|
|
103
105
|
|
|
104
106
|
<template v-slot:trigger>
|
|
@@ -108,7 +110,7 @@
|
|
|
108
110
|
:backgroundColor="'white'"
|
|
109
111
|
:backgroundColorHover="'white'"
|
|
110
112
|
:tooltip="tooltipUploadExcelFile"
|
|
111
|
-
@click="
|
|
113
|
+
@click="clickUpload"
|
|
112
114
|
></WButtonCircle>
|
|
113
115
|
</template>
|
|
114
116
|
|
|
@@ -321,18 +323,18 @@ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
|
|
|
321
323
|
* @vue-prop {String} [errorMsgFromRemoveRow='can not remove selected rows'] 輸入移除數據失敗事件訊息字串,預設'can not remove selected rows'
|
|
322
324
|
* @vue-prop {String} [successMsgFromUploadData='upload data successfully'] 輸入上傳數據成功事件訊息字串,預設'upload data successfully'
|
|
323
325
|
* @vue-prop {String} [errorMsgFromUploadData='can not upload data'] 輸入無法上傳數據事件訊息字串,預設'can not upload data'
|
|
324
|
-
* @vue-prop {String} [errorMsgFromUploadEmptyData='no effective data']
|
|
326
|
+
* @vue-prop {String} [errorMsgFromUploadEmptyData='no effective data'] 輸入上傳檔案中無有效數據事件訊息字串,此時不變動表格數據,預設'no effective data'
|
|
325
327
|
* @vue-prop {String} [successMsgFromDownloadData='download data successfully'] 輸入下載檔案成功事件訊息字串,預設'download data successfully'
|
|
326
328
|
* @vue-prop {String} [errorMsgFromDownloadData='can not download data'] 輸入無法下載檔案事件訊息字串,預設'can not download data'
|
|
327
329
|
* @vue-prop {String} [errorMsgFromNoName='no data name'] 輸入未輸入數據名稱事件訊息字串,預設'no data name'
|
|
328
330
|
* @vue-prop {String} [errorMsgFromNoData='no data'] 輸入未給予有效數據事件訊息字串,預設'no data'
|
|
329
|
-
* @vue-prop {String} [uploadModeTitle='Choose mode of upload:']
|
|
331
|
+
* @vue-prop {String} [uploadModeTitle='Choose mode of upload:'] 輸入選擇上傳模式彈窗標題字串,opt.optForUploadData.uploadMode有預先指定時不顯示此彈窗,預設'Choose mode of upload:'
|
|
330
332
|
* @vue-prop {String} [uploadModeTextForReplace='Replace'] 輸入取代上傳模式文字字串,預設'Replace'
|
|
331
333
|
* @vue-prop {String} [uploadModeTextForAppend='Append'] 輸入插入於最後上傳模式文字字串,預設'Append'
|
|
332
334
|
* @vue-prop {String} [labelContentForUpload=null] 輸入針對上傳模式之popup彈窗teleport至body內之內容div所給予之wtlp屬性值字串,供查找使用,預設null
|
|
333
335
|
* @vue-event {Array} save 指調用組件的method,無輸入,會回傳當前的name、description、rows所構成的物件
|
|
334
336
|
* @vue-event {String} success 當新增數據、上傳數據、下載數據成功時觸發,回傳對應成功訊息字串
|
|
335
|
-
* @vue-event {String} error
|
|
337
|
+
* @vue-event {String} error 當新增數據、移除數據、上傳數據、下載數據失敗時觸發,回傳對應錯誤訊息字串;使用者於上傳選檔視窗取消時不觸發
|
|
336
338
|
* @vue-slot {Object} infor 顯示模式下資訊區之渲染slot,slot props為{ infor },infor為{ name, description }
|
|
337
339
|
* @vue-slot {Object} btns-left 選單按鈕區最左側之插入slot,slot props為{ editable }
|
|
338
340
|
* @vue-slot {Object} btns-right 選單按鈕區最右側之插入slot,slot props為{ editable }
|
|
@@ -391,7 +393,7 @@ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
|
|
|
391
393
|
* @vue-prop {Boolean} [opt.autoFitColumn=false] 輸入當表格尺寸變更時自動調整欄寬布林值,預設false
|
|
392
394
|
* @vue-prop {String} [opt.language='en'] 輸入指定語系字串,可選'en'、'zh-tw'、'zh-cn',預設同組件language
|
|
393
395
|
* @vue-prop {Function} [opt.beforeAddRow=undefined] 輸入編輯模式新增數據前之修改新列事件,輸入newRow,輸出newRow,預設為undefined
|
|
394
|
-
* @vue-prop {Object} [opt.optForUploadData={}] 輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append'
|
|
396
|
+
* @vue-prop {Object} [opt.optForUploadData={}] 輸入呼叫組件uploadData上傳檔案時用的設定物件,內部調用wsemi的getDataFromExcelFileU8Arr讀取Excel檔案,物件可給予鍵值:uploadMode代表上傳模式字串(可選'replace'、'append',有給予時點擊上傳按鈕不顯示模式選擇彈窗而直接開啟選檔視窗,未給予或非前述值時由彈窗選擇),beforeUpload代表上傳前的處理數據函數(輸入讀取所得之數據陣列,回傳處理後之數據陣列或Promise,未給予時自動去除於表格各欄位之值皆為空的無效數據,處理後無數據時觸發error事件(errorMsgFromUploadEmptyData)且不變動表格數據),parseSheetInd代表提取Excel檔案的第幾個sheet整數(預設為0),組件不會修改此物件,optForUploadData預設{}
|
|
395
397
|
* @vue-prop {Function} [opt.modifyDataWhenSave=undefined] 輸入當儲存時修改儲存數據事件,輸入rows,輸出rows,預設為undefined
|
|
396
398
|
* @vue-prop {Boolean} [opt.checkNoDataWhenSave=false] 輸入當儲存時是否檢核無數據布林值,預設false
|
|
397
399
|
* @vue-prop {Number} [cmpZIndex=3000] 輸入彈窗使用z-index數字,供嵌於高z-index彈窗內時提高層級,預設3000
|
|
@@ -707,6 +709,20 @@ export default {
|
|
|
707
709
|
return kp
|
|
708
710
|
},
|
|
709
711
|
|
|
712
|
+
uploadModePreset: function() {
|
|
713
|
+
//console.log('computed uploadModePreset')
|
|
714
|
+
|
|
715
|
+
let vo = this
|
|
716
|
+
|
|
717
|
+
//uploadMode, 呼叫端於opt.optForUploadData.uploadMode預先指定之上傳模式, 僅接受'replace'與'append', 其餘視為未指定而由彈窗選擇
|
|
718
|
+
let uploadMode = get(vo, 'opt.optForUploadData.uploadMode', '')
|
|
719
|
+
if (uploadMode !== 'replace' && uploadMode !== 'append') {
|
|
720
|
+
uploadMode = ''
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
return uploadMode
|
|
724
|
+
},
|
|
725
|
+
|
|
710
726
|
useKeys: function() {
|
|
711
727
|
//console.log('computed useKeys')
|
|
712
728
|
|
|
@@ -1153,6 +1169,22 @@ export default {
|
|
|
1153
1169
|
|
|
1154
1170
|
},
|
|
1155
1171
|
|
|
1172
|
+
clickUpload: function() {
|
|
1173
|
+
//console.log('methods clickUpload')
|
|
1174
|
+
|
|
1175
|
+
let vo = this
|
|
1176
|
+
|
|
1177
|
+
//check, 呼叫端已預先指定上傳模式時, 模式選擇彈窗已由WPopup之editable停用, 直接開啟選檔視窗
|
|
1178
|
+
if (vo.uploadModePreset !== '') {
|
|
1179
|
+
vo.uploadData(vo.uploadModePreset)
|
|
1180
|
+
return
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
//showPickUploadMode
|
|
1184
|
+
vo.showPickUploadMode = true
|
|
1185
|
+
|
|
1186
|
+
},
|
|
1187
|
+
|
|
1156
1188
|
uploadData: function(uploadModeSelect) {
|
|
1157
1189
|
//console.log('methods uploadData', uploadModeSelect)
|
|
1158
1190
|
|
|
@@ -1166,59 +1198,82 @@ export default {
|
|
|
1166
1198
|
return
|
|
1167
1199
|
}
|
|
1168
1200
|
|
|
1169
|
-
//optForUploadData
|
|
1201
|
+
//optForUploadData, 淺拷貝後才寫入uploadMode與beforeUpload, 不可改寫呼叫端之opt.optForUploadData, 否則首次所選模式會被存入而使後續彈窗選擇失效
|
|
1170
1202
|
let optForUploadData = get(vo, 'opt.optForUploadData')
|
|
1171
1203
|
if (!isobj(optForUploadData)) {
|
|
1172
1204
|
optForUploadData = {}
|
|
1173
1205
|
}
|
|
1206
|
+
optForUploadData = { ...optForUploadData }
|
|
1174
1207
|
|
|
1175
|
-
//uploadMode,
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
}
|
|
1208
|
+
//uploadMode, 呼叫端有預先指定時使用之(此時不顯示模式選擇彈窗), 否則使用彈窗所選
|
|
1209
|
+
optForUploadData.uploadMode = vo.uploadModePreset !== '' ? vo.uploadModePreset : uploadModeSelect
|
|
1210
|
+
|
|
1211
|
+
//errNoEffData, 無有效數據之錯誤物件, 於catch以參照比對, 不與w-aggrid-vue或呼叫端beforeUpload之錯誤混淆
|
|
1212
|
+
let errNoEffData = { msg: 'no effective data' }
|
|
1180
1213
|
|
|
1181
|
-
//beforeUpload,
|
|
1214
|
+
//beforeUpload, 包裝呼叫端之beforeUpload(未給予時使用預設之去除無效數據), 處理後無數據時reject, w-aggrid-vue會於寫入表格前中止, 故取代與附加模式皆不變動表格數據
|
|
1182
1215
|
let beforeUpload = get(optForUploadData, 'beforeUpload')
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
return v === ''
|
|
1192
|
-
})
|
|
1193
|
-
if (!b) {
|
|
1194
|
-
rs.push(row)
|
|
1216
|
+
optForUploadData.beforeUpload = (rows) => {
|
|
1217
|
+
// console.log('beforeUpload', rows)
|
|
1218
|
+
return Promise.resolve()
|
|
1219
|
+
.then(() => {
|
|
1220
|
+
|
|
1221
|
+
//呼叫端beforeUpload
|
|
1222
|
+
if (isfun(beforeUpload)) {
|
|
1223
|
+
return beforeUpload(rows)
|
|
1195
1224
|
}
|
|
1225
|
+
|
|
1226
|
+
//calc eff rows, 各列於表格欄位(useKeys)之值皆為空者視為無效, 欄位與表格不符之列寫入後亦為空列故一併去除
|
|
1227
|
+
let rs = []
|
|
1228
|
+
each(rows, (row) => {
|
|
1229
|
+
let b = every(vo.useKeys, (k) => {
|
|
1230
|
+
let v = get(row, k)
|
|
1231
|
+
return v === '' || v === null || v === undefined
|
|
1232
|
+
})
|
|
1233
|
+
if (!b) {
|
|
1234
|
+
rs.push(row)
|
|
1235
|
+
}
|
|
1236
|
+
})
|
|
1237
|
+
// console.log('rs', rs)
|
|
1238
|
+
|
|
1239
|
+
return rs
|
|
1196
1240
|
})
|
|
1197
|
-
|
|
1241
|
+
.then((rs) => {
|
|
1198
1242
|
|
|
1199
|
-
|
|
1200
|
-
|
|
1243
|
+
//check, 無有效數據
|
|
1244
|
+
if (!isearr(rs)) {
|
|
1245
|
+
return Promise.reject(errNoEffData)
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
return rs
|
|
1249
|
+
})
|
|
1201
1250
|
}
|
|
1202
1251
|
// console.log('optForUploadData', optForUploadData)
|
|
1203
1252
|
|
|
1204
1253
|
//upload
|
|
1205
1254
|
fun(optForUploadData)
|
|
1206
|
-
.then((
|
|
1207
|
-
// console.log('upload then', rows)
|
|
1255
|
+
.then(() => {
|
|
1208
1256
|
|
|
1209
|
-
//
|
|
1210
|
-
|
|
1211
|
-
vo.$emit('error', vo.errorMsgFromUploadEmptyData)
|
|
1212
|
-
}
|
|
1213
|
-
else {
|
|
1214
|
-
vo.$emit('success', vo.successMsgFromUploadData)
|
|
1215
|
-
}
|
|
1257
|
+
//emit
|
|
1258
|
+
vo.$emit('success', vo.successMsgFromUploadData)
|
|
1216
1259
|
|
|
1217
1260
|
//reset rowsSelect
|
|
1218
1261
|
vo.rowsSelect = []
|
|
1219
1262
|
|
|
1220
1263
|
})
|
|
1221
1264
|
.catch((err) => {
|
|
1265
|
+
|
|
1266
|
+
//check, 使用者於選檔視窗取消時w-aggrid-vue之uploadData以{ msg: 'no file' }reject, 屬正常操作, 靜默結束不觸發error事件
|
|
1267
|
+
if (get(err, 'msg') === 'no file') {
|
|
1268
|
+
return
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
//check, 無有效數據, 此時w-aggrid-vue尚未寫入, 表格數據未變動
|
|
1272
|
+
if (err === errNoEffData) {
|
|
1273
|
+
vo.$emit('error', vo.errorMsgFromUploadEmptyData)
|
|
1274
|
+
return
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1222
1277
|
console.log('catch', err)
|
|
1223
1278
|
vo.$emit('error', vo.errorMsgFromUploadData)
|
|
1224
1279
|
})
|