tplus-components-touch 3.22.15 → 3.22.16
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/package.json +1 -1
- package/dist/components/acCitySelect/CitySelect.js +0 -541
- package/dist/components/acCitySelect/CitySelect.js.map +0 -1
- package/dist/components/acCitySelect/CitySelect.less +0 -10
- package/dist/components/acCitySelect/citys.js +0 -1270
- package/dist/components/acCitySelect/citys.js.map +0 -1
- package/dist/components/acCitySelect/index.js +0 -18
- package/dist/components/acCitySelect/index.js.map +0 -1
- package/dist/components/acCitySelect/provinceData.js +0 -40
- package/dist/components/acCitySelect/provinceData.js.map +0 -1
- package/dist/components/addLog/AddLogProcessor.js +0 -49
- package/dist/components/addLog/AddLogProcessor.js.map +0 -1
- package/dist/components/addLog/OperationLogApi.js +0 -125
- package/dist/components/addLog/OperationLogApi.js.map +0 -1
- package/dist/components/autoComplete/index.js +0 -245
- package/dist/components/autoComplete/index.js.map +0 -1
- package/dist/components/autoComplete/index.less +0 -89
- package/dist/components/autoComplete/option.js +0 -75
- package/dist/components/autoComplete/option.js.map +0 -1
- package/dist/components/autoCompleteWithKeyboard/index.js +0 -231
- package/dist/components/autoCompleteWithKeyboard/index.js.map +0 -1
- package/dist/components/autoCompleteWithKeyboard/index.less +0 -8
- package/dist/components/billSearch/api.js +0 -465
- package/dist/components/billSearch/api.js.map +0 -1
- package/dist/components/billSearch/index.js +0 -2063
- package/dist/components/billSearch/index.js.map +0 -1
- package/dist/components/billSearch/index.less +0 -373
- package/dist/components/cloudPrint/BTPrintFormatUtil.js +0 -568
- package/dist/components/cloudPrint/BTPrintFormatUtil.js.map +0 -1
- package/dist/components/cloudPrint/api.js +0 -349
- package/dist/components/cloudPrint/api.js.map +0 -1
- package/dist/components/cloudPrint/index.js +0 -674
- package/dist/components/cloudPrint/index.js.map +0 -1
- package/dist/components/cloudPrint/printDispatch.js +0 -223
- package/dist/components/cloudPrint/printDispatch.js.map +0 -1
- package/dist/components/commonForm/addressPicker/index.js +0 -232
- package/dist/components/commonForm/addressPicker/index.js.map +0 -1
- package/dist/components/commonForm/addressPicker/style.less +0 -11
- package/dist/components/commonForm/autoComplete/index.js +0 -241
- package/dist/components/commonForm/autoComplete/index.js.map +0 -1
- package/dist/components/commonForm/autoComplete/style.less +0 -3
- package/dist/components/commonForm/datePicker/index.js +0 -89
- package/dist/components/commonForm/datePicker/index.js.map +0 -1
- package/dist/components/commonForm/datePicker/style.less +0 -5
- package/dist/components/commonForm/formControl/index.js +0 -143
- package/dist/components/commonForm/formControl/index.js.map +0 -1
- package/dist/components/commonForm/formControl/style.less +0 -0
- package/dist/components/commonForm/index.js +0 -225
- package/dist/components/commonForm/index.js.map +0 -1
- package/dist/components/commonForm/inputNumber/index.js +0 -272
- package/dist/components/commonForm/inputNumber/index.js.map +0 -1
- package/dist/components/commonForm/inputNumber/style.less +0 -11
- package/dist/components/commonForm/radio/index.js +0 -132
- package/dist/components/commonForm/radio/index.js.map +0 -1
- package/dist/components/commonForm/radio/style.less +0 -0
- package/dist/components/commonForm/style.less +0 -2
- package/dist/components/deliverySearch/api.js +0 -355
- package/dist/components/deliverySearch/api.js.map +0 -1
- package/dist/components/deliverySearch/index.js +0 -1214
- package/dist/components/deliverySearch/index.js.map +0 -1
- package/dist/components/deliverySearch/index.less +0 -554
- package/dist/components/form/index.js +0 -310
- package/dist/components/form/index.js.map +0 -1
- package/dist/components/hardwareAPI/index.js +0 -181
- package/dist/components/hardwareAPI/index.js.map +0 -1
- package/dist/components/hotKey/config.js +0 -306
- package/dist/components/hotKey/config.js.map +0 -1
- package/dist/components/hotKey/hotKeyModal.js +0 -479
- package/dist/components/hotKey/hotKeyModal.js.map +0 -1
- package/dist/components/hotKey/index.js +0 -785
- package/dist/components/hotKey/index.js.map +0 -1
- package/dist/components/hotKey/localConfig.js +0 -1021
- package/dist/components/hotKey/localConfig.js.map +0 -1
- package/dist/components/hotKey/style.less +0 -96
- package/dist/components/hotKey/utils.js +0 -135
- package/dist/components/hotKey/utils.js.map +0 -1
- package/dist/components/input/index.js +0 -251
- package/dist/components/input/index.js.map +0 -1
- package/dist/components/input/style.less +0 -99
- package/dist/components/input/tplusInput/index.js +0 -81
- package/dist/components/input/tplusInput/index.js.map +0 -1
- package/dist/components/input/tplusInput/inputContent.js +0 -128
- package/dist/components/input/tplusInput/inputContent.js.map +0 -1
- package/dist/components/input/tplusInput/inputs.js +0 -151
- package/dist/components/input/tplusInput/inputs.js.map +0 -1
- package/dist/components/input/tplusInput/style.less +0 -132
- package/dist/components/input/utils/index.js +0 -26
- package/dist/components/input/utils/index.js.map +0 -1
- package/dist/components/inventorySearch/api.js +0 -214
- package/dist/components/inventorySearch/api.js.map +0 -1
- package/dist/components/inventorySearch/index.js +0 -303
- package/dist/components/inventorySearch/index.js.map +0 -1
- package/dist/components/inventorySearch/index.less +0 -120
- package/dist/components/inventorySearch/store.js +0 -344
- package/dist/components/inventorySearch/store.js.map +0 -1
- package/dist/components/inventorySearch/tab.js +0 -258
- package/dist/components/inventorySearch/tab.js.map +0 -1
- package/dist/components/keyboard/index.js +0 -255
- package/dist/components/keyboard/index.js.map +0 -1
- package/dist/components/keyboard/index.less +0 -470
- package/dist/components/keyboard/letterKeyboard.js +0 -210
- package/dist/components/keyboard/letterKeyboard.js.map +0 -1
- package/dist/components/keyboard/numKeyboard.js +0 -459
- package/dist/components/keyboard/numKeyboard.js.map +0 -1
- package/dist/components/keyboard/numKeyboardScan.js +0 -195
- package/dist/components/keyboard/numKeyboardScan.js.map +0 -1
- package/dist/components/keyboard/numberButton_input.js +0 -303
- package/dist/components/keyboard/numberButton_input.js.map +0 -1
- package/dist/components/keyboard/numkeyboardPassword.js +0 -460
- package/dist/components/keyboard/numkeyboardPassword.js.map +0 -1
- package/dist/components/keyboard/onlyKeyboard.js +0 -90
- package/dist/components/keyboard/onlyKeyboard.js.map +0 -1
- package/dist/components/keyboard/onlyLetterButton.js +0 -187
- package/dist/components/keyboard/onlyLetterButton.js.map +0 -1
- package/dist/components/keyboard/onlyLetterButton2.js +0 -235
- package/dist/components/keyboard/onlyLetterButton2.js.map +0 -1
- package/dist/components/keyboard/onlyLetterButton2.less +0 -162
- package/dist/components/keyboard/onlyNumberButton.js +0 -128
- package/dist/components/keyboard/onlyNumberButton.js.map +0 -1
- package/dist/components/keyboard/onlyNumberButton2.js +0 -115
- package/dist/components/keyboard/onlyNumberButton2.js.map +0 -1
- package/dist/components/keyboard/textKeyboard.js +0 -50
- package/dist/components/keyboard/textKeyboard.js.map +0 -1
- package/dist/components/layout/hamburger.js +0 -29
- package/dist/components/layout/hamburger.js.map +0 -1
- package/dist/components/layout/index.js +0 -31
- package/dist/components/layout/index.js.map +0 -1
- package/dist/components/layout/layout.js +0 -182
- package/dist/components/layout/layout.js.map +0 -1
- package/dist/components/layout/sider.js +0 -165
- package/dist/components/layout/sider.js.map +0 -1
- package/dist/components/layout/style.less +0 -82
- package/dist/components/loading/index.js +0 -198
- package/dist/components/loading/index.js.map +0 -1
- package/dist/components/loading/loadingContent.js +0 -176
- package/dist/components/loading/loadingContent.js.map +0 -1
- package/dist/components/loading/style.less +0 -61
- package/dist/components/loading/utils.js +0 -29
- package/dist/components/loading/utils.js.map +0 -1
- package/dist/components/message/index.js +0 -308
- package/dist/components/message/index.js.map +0 -1
- package/dist/components/message/index.less +0 -101
- package/dist/components/modal/index.js +0 -93
- package/dist/components/modal/index.js.map +0 -1
- package/dist/components/modal/index.less +0 -19
- package/dist/components/modalVertical/index.js +0 -325
- package/dist/components/modalVertical/index.js.map +0 -1
- package/dist/components/modalVertical/style.less +0 -60
- package/dist/components/modalWraper/index.js +0 -470
- package/dist/components/modalWraper/index.js.map +0 -1
- package/dist/components/modalWraper/style.less +0 -257
- package/dist/components/modalWraper/utils.js +0 -48
- package/dist/components/modalWraper/utils.js.map +0 -1
- package/dist/components/notification/index.js +0 -119
- package/dist/components/notification/index.js.map +0 -1
- package/dist/components/notification/index.less +0 -52
- package/dist/components/overflowTip/index.js +0 -269
- package/dist/components/overflowTip/index.js.map +0 -1
- package/dist/components/overflowTip/style.less +0 -66
- package/dist/components/page/index.js +0 -49
- package/dist/components/page/index.js.map +0 -1
- package/dist/components/page/index.less +0 -22
- package/dist/components/product/detail.js +0 -148
- package/dist/components/product/detail.js.map +0 -1
- package/dist/components/product/getCard.js +0 -145
- package/dist/components/product/getCard.js.map +0 -1
- package/dist/components/product/index.less +0 -128
- package/dist/components/progressState/EmptyAndErrorView.js +0 -143
- package/dist/components/progressState/EmptyAndErrorView.js.map +0 -1
- package/dist/components/progressState/ProgressState.js +0 -157
- package/dist/components/progressState/ProgressState.js.map +0 -1
- package/dist/components/progressState/index.js +0 -14
- package/dist/components/progressState/index.js.map +0 -1
- package/dist/components/progressState/style.less +0 -65
- package/dist/components/scan/index.js +0 -219
- package/dist/components/scan/index.js.map +0 -1
- package/dist/components/scan/index.less +0 -34
- package/dist/components/select/index.js +0 -28
- package/dist/components/select/index.js.map +0 -1
- package/dist/components/select/index.less +0 -12
- package/dist/components/settlement/asyncModal.js +0 -204
- package/dist/components/settlement/asyncModal.js.map +0 -1
- package/dist/components/settlement/index.js +0 -16
- package/dist/components/settlement/index.js.map +0 -1
- package/dist/components/settlement/prototypeTable/index.js +0 -349
- package/dist/components/settlement/prototypeTable/index.js.map +0 -1
- package/dist/components/settlement/prototypeTable/style.less +0 -59
- package/dist/components/settlement/prototypeTable/utils.js +0 -14
- package/dist/components/settlement/prototypeTable/utils.js.map +0 -1
- package/dist/components/settlement/settlement.js +0 -5471
- package/dist/components/settlement/settlement.js.map +0 -1
- package/dist/components/settlement/settlement.less +0 -1594
- package/dist/components/settlement/settlementStore.js +0 -2099
- package/dist/components/settlement/settlementStore.js.map +0 -1
- package/dist/components/settlement/utils.js +0 -249
- package/dist/components/settlement/utils.js.map +0 -1
- package/dist/components/socket/index.js +0 -220
- package/dist/components/socket/index.js.map +0 -1
- package/dist/components/spin/index.js +0 -95
- package/dist/components/spin/index.js.map +0 -1
- package/dist/components/spin/spin-style.less +0 -436
- package/dist/components/test/index.js +0 -330
- package/dist/components/test/index.js.map +0 -1
- package/dist/components/ticon/iconfont/demo.css +0 -539
- package/dist/components/ticon/iconfont/demo_index.html +0 -5202
- package/dist/components/ticon/iconfont/iconfont.css +0 -887
- package/dist/components/ticon/iconfont/iconfont.eot +0 -0
- package/dist/components/ticon/iconfont/iconfont.js +0 -35
- package/dist/components/ticon/iconfont/iconfont.js.map +0 -1
- package/dist/components/ticon/iconfont/iconfont.json +0 -1535
- package/dist/components/ticon/iconfont/iconfont.svg +0 -593
- package/dist/components/ticon/iconfont/iconfont.ttf +0 -0
- package/dist/components/ticon/iconfont/iconfont.woff +0 -0
- package/dist/components/ticon/iconfont/iconfont.woff2 +0 -0
- package/dist/components/ticon/index.js +0 -60
- package/dist/components/ticon/index.js.map +0 -1
- package/dist/components/touchScroll/index.js +0 -182
- package/dist/components/touchScroll/index.js.map +0 -1
- package/dist/components/touchTable/AuthProcess.js +0 -42
- package/dist/components/touchTable/AuthProcess.js.map +0 -1
- package/dist/components/touchTable/generateWater.js +0 -59
- package/dist/components/touchTable/generateWater.js.map +0 -1
- package/dist/components/touchTable/index.js +0 -1109
- package/dist/components/touchTable/index.js.map +0 -1
- package/dist/components/touchTable/index.less +0 -370
- package/dist/components/touchTable/utils.js +0 -14
- package/dist/components/touchTable/utils.js.map +0 -1
- package/dist/demo/PopOverDemo.js +0 -126
- package/dist/demo/PopOverDemo.js.map +0 -1
- package/dist/index.js +0 -249
- package/dist/index.js.map +0 -1
- package/dist/util/tools.js +0 -202
- package/dist/util/tools.js.map +0 -1
|
@@ -1,568 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
|
|
8
|
-
|
|
9
|
-
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
|
10
|
-
|
|
11
|
-
var _map = require('babel-runtime/core-js/map');
|
|
12
|
-
|
|
13
|
-
var _map2 = _interopRequireDefault(_map);
|
|
14
|
-
|
|
15
|
-
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
|
16
|
-
|
|
17
|
-
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
18
|
-
|
|
19
|
-
var _createClass2 = require('babel-runtime/helpers/createClass');
|
|
20
|
-
|
|
21
|
-
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
22
|
-
|
|
23
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
|
|
25
|
-
var LINE_BYTE_SIZE = 32;
|
|
26
|
-
var CHANGE_LINE = '\n';
|
|
27
|
-
var SLASH = '\/';
|
|
28
|
-
|
|
29
|
-
var BTPrintFormatUtil = function () {
|
|
30
|
-
function BTPrintFormatUtil() {
|
|
31
|
-
(0, _classCallCheck3.default)(this, BTPrintFormatUtil);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
(0, _createClass3.default)(BTPrintFormatUtil, null, [{
|
|
35
|
-
key: 'setLineByteSize',
|
|
36
|
-
value: function setLineByteSize(size) {
|
|
37
|
-
LINE_BYTE_SIZE = size;
|
|
38
|
-
}
|
|
39
|
-
}, {
|
|
40
|
-
key: 'printMenuMSG',
|
|
41
|
-
value: function printMenuMSG(bodyValueList, mhList) {
|
|
42
|
-
if (!mhList || mhList.length == 0) {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
this.sb = '';
|
|
46
|
-
var tabHeaderByte = 4;
|
|
47
|
-
// 对明细分层次渲染。
|
|
48
|
-
function renderTableByStep(list, _this) {
|
|
49
|
-
var constr = '',
|
|
50
|
-
index = 0,
|
|
51
|
-
occupyedBytes = 0;
|
|
52
|
-
var topWeight = 0,
|
|
53
|
-
contentWeight = 0,
|
|
54
|
-
bottomWeight = 0,
|
|
55
|
-
top = [],
|
|
56
|
-
content = [],
|
|
57
|
-
bottom = [];
|
|
58
|
-
list.forEach(function (item) {
|
|
59
|
-
if (item.isTitle) {
|
|
60
|
-
top.push(item);
|
|
61
|
-
topWeight += item.headerWeight;
|
|
62
|
-
} else if (item.isFoot) {
|
|
63
|
-
bottom.push(item);
|
|
64
|
-
bottomWeight += item.headerWeight;
|
|
65
|
-
} else {
|
|
66
|
-
content.push(item);
|
|
67
|
-
contentWeight += item.headerWeight;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
index = 0;
|
|
71
|
-
occupyedBytes = 0;
|
|
72
|
-
top.forEach(function (mh) {
|
|
73
|
-
var occupyedByte = parseInt(LINE_BYTE_SIZE * mh.headerWeight / topWeight);
|
|
74
|
-
occupyedBytes += occupyedByte;
|
|
75
|
-
mh.headerOccupyBytes = occupyedByte;
|
|
76
|
-
mh.headerOccupyLength = _this.getBytesLength(mh.headerText);
|
|
77
|
-
if (index == top.length - 1) {
|
|
78
|
-
if (index == 0) {
|
|
79
|
-
mh.start = true;
|
|
80
|
-
} else {
|
|
81
|
-
mh.start = false;
|
|
82
|
-
}
|
|
83
|
-
mh.end = true;
|
|
84
|
-
mh.drawText = mh.headerText + CHANGE_LINE;
|
|
85
|
-
constr += mh.drawText;
|
|
86
|
-
constr += _this.concatBlank('', tabHeaderByte, true);
|
|
87
|
-
} else {
|
|
88
|
-
if (index == 0) {
|
|
89
|
-
mh.start = true;
|
|
90
|
-
} else {
|
|
91
|
-
mh.start = false;
|
|
92
|
-
}
|
|
93
|
-
mh.end = false;
|
|
94
|
-
mh.drawText = mh.headerText + SLASH;
|
|
95
|
-
constr += mh.drawText;
|
|
96
|
-
}
|
|
97
|
-
index++;
|
|
98
|
-
});
|
|
99
|
-
index = 0;
|
|
100
|
-
occupyedBytes = 0;
|
|
101
|
-
content.forEach(function (mh) {
|
|
102
|
-
var occupyedByte = parseInt((LINE_BYTE_SIZE * mh.headerWeight - tabHeaderByte) / contentWeight);
|
|
103
|
-
mh.headerOccupyBytes = _this.stringToByte(mh.headerText).length;
|
|
104
|
-
mh.headerOccupyLength = _this.getBytesLength(mh.headerText);
|
|
105
|
-
if (mh.headerOccupyBytes < occupyedByte) {
|
|
106
|
-
mh.headerOccupyBytes = occupyedByte;
|
|
107
|
-
}
|
|
108
|
-
if (mh.headerOccupyLength < occupyedByte) {
|
|
109
|
-
mh.headerOccupyLength = occupyedByte;
|
|
110
|
-
}
|
|
111
|
-
if (index == content.length - 1) {
|
|
112
|
-
if (index == 0) {
|
|
113
|
-
mh.start = true;
|
|
114
|
-
} else {
|
|
115
|
-
mh.start = false;
|
|
116
|
-
}
|
|
117
|
-
mh.end = true;
|
|
118
|
-
mh.headerOccupyBytes = LINE_BYTE_SIZE - occupyedBytes;
|
|
119
|
-
mh.drawText = mh.headerText + CHANGE_LINE;
|
|
120
|
-
constr += mh.drawText;
|
|
121
|
-
} else {
|
|
122
|
-
if (index == 0) {
|
|
123
|
-
mh.start = true;
|
|
124
|
-
} else {
|
|
125
|
-
mh.start = false;
|
|
126
|
-
}
|
|
127
|
-
mh.end = false;
|
|
128
|
-
occupyedBytes += occupyedByte;
|
|
129
|
-
var blankBytes = occupyedByte - _this.getBytesLength(mh.headerText);
|
|
130
|
-
if (blankBytes <= 0) {
|
|
131
|
-
mh.headerText += " ";
|
|
132
|
-
var len = _this.getBytesLength(" ");
|
|
133
|
-
occupyedBytes += len;
|
|
134
|
-
mh.headerOccupyBytes += len;
|
|
135
|
-
}
|
|
136
|
-
mh.drawText = _this.concatBlank(mh.headerText, blankBytes, true);
|
|
137
|
-
constr += mh.drawText;
|
|
138
|
-
}
|
|
139
|
-
index++;
|
|
140
|
-
});
|
|
141
|
-
index = 0;
|
|
142
|
-
occupyedBytes = 0;
|
|
143
|
-
bottom.forEach(function (mh) {
|
|
144
|
-
var occupyedByte = parseInt(LINE_BYTE_SIZE * mh.headerWeight / bottomWeight);
|
|
145
|
-
occupyedBytes += occupyedByte;
|
|
146
|
-
mh.headerOccupyBytes = occupyedByte;
|
|
147
|
-
mh.headerOccupyLength = _this.getBytesLength(mh.headerText);
|
|
148
|
-
if (index == bottom.length - 1) {
|
|
149
|
-
if (index == 0) {
|
|
150
|
-
mh.start = true;
|
|
151
|
-
} else {
|
|
152
|
-
mh.start = false;
|
|
153
|
-
}
|
|
154
|
-
mh.end = true;
|
|
155
|
-
mh.drawText = mh.headerText + CHANGE_LINE;
|
|
156
|
-
//constr += mh.drawText;
|
|
157
|
-
} else {
|
|
158
|
-
if (index == 0) {
|
|
159
|
-
mh.start = true;
|
|
160
|
-
} else {
|
|
161
|
-
mh.start = false;
|
|
162
|
-
}
|
|
163
|
-
mh.end = false;
|
|
164
|
-
mh.drawText = mh.headerText + SLASH;
|
|
165
|
-
//constr += mh.drawText;
|
|
166
|
-
}
|
|
167
|
-
index++;
|
|
168
|
-
});
|
|
169
|
-
return constr;
|
|
170
|
-
}
|
|
171
|
-
this.sb += renderTableByStep(mhList, this);
|
|
172
|
-
// 画分隔线
|
|
173
|
-
this.sb += this.drawSeparateLine();
|
|
174
|
-
|
|
175
|
-
var headerSize = mhList.length;
|
|
176
|
-
var valueListSize = bodyValueList.length;
|
|
177
|
-
// 重新计算表体的集合,如果超过限度,折行显示 将一条数据拆成多条
|
|
178
|
-
for (var i = 0; i < valueListSize; i++) {
|
|
179
|
-
var maxLine = 1;
|
|
180
|
-
var rowValue = bodyValueList[i];
|
|
181
|
-
rowValue = rowValue.map(function (item) {
|
|
182
|
-
if (!item) {
|
|
183
|
-
return '';
|
|
184
|
-
}
|
|
185
|
-
return item.toString();
|
|
186
|
-
});
|
|
187
|
-
var stringArrayMap = new _map2.default();
|
|
188
|
-
var topContents = '',
|
|
189
|
-
rowContents = '',
|
|
190
|
-
bottomContents = '';
|
|
191
|
-
for (var j = 0; j < headerSize; j++) {
|
|
192
|
-
var mh = mhList[j];
|
|
193
|
-
if (mh.isTitle === true) {
|
|
194
|
-
if (mh.start === true) {
|
|
195
|
-
topContents += i + 1 + "." + rowValue[j];
|
|
196
|
-
if (mh.end === true) {
|
|
197
|
-
topContents += CHANGE_LINE;
|
|
198
|
-
topContents += this.concatBlank('', tabHeaderByte, true);
|
|
199
|
-
}
|
|
200
|
-
} else if (mh.start === false) {
|
|
201
|
-
if (mh.end === true) {
|
|
202
|
-
topContents += SLASH + rowValue[j] + CHANGE_LINE;
|
|
203
|
-
topContents += this.concatBlank('', tabHeaderByte, true);
|
|
204
|
-
} else if (mh.end === false) {
|
|
205
|
-
topContents += SLASH + rowValue[j];
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
} else if (mh.isFoot === true) {
|
|
209
|
-
if (mh.start === true) {
|
|
210
|
-
bottomContents += rowValue[j];
|
|
211
|
-
if (mh.end === true && bottomContents) {
|
|
212
|
-
bottomContents = "备注:" + bottomContents + CHANGE_LINE;
|
|
213
|
-
}
|
|
214
|
-
} else if (mh.start === false) {
|
|
215
|
-
if (mh.end === true) {
|
|
216
|
-
bottomContents += SLASH + rowValue[j] + CHANGE_LINE;
|
|
217
|
-
} else if (mh.end === false) {
|
|
218
|
-
bottomContents += SLASH + rowValue[j];
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
} else {
|
|
222
|
-
// 最多需要多少行 展示下 处理内容较长换行的情况
|
|
223
|
-
// 每列都计算需要的行数,然后取最大值
|
|
224
|
-
var oldValue = rowValue[j];
|
|
225
|
-
var rowsValue = this.getSubString(oldValue, mh.headerOccupyBytes);
|
|
226
|
-
var subRowSize = rowsValue.length;
|
|
227
|
-
for (var subRow = 0; subRow < subRowSize; subRow++) {
|
|
228
|
-
var key = subRow.toString() + j.toString();
|
|
229
|
-
var value = rowsValue[subRow];
|
|
230
|
-
var blankBytes = mh.headerOccupyLength - this.getBytesLength(value);
|
|
231
|
-
stringArrayMap.set(key, this.concatBlank(value, blankBytes, true));
|
|
232
|
-
}
|
|
233
|
-
if (subRowSize > maxLine) {
|
|
234
|
-
maxLine = subRowSize;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
for (var row = 0; row < maxLine; row++) {
|
|
239
|
-
if (row > 0) rowContents += this.concatBlank('', tabHeaderByte, true);
|
|
240
|
-
for (var column = 0; column < headerSize; column++) {
|
|
241
|
-
var _key = row.toString() + column.toString();
|
|
242
|
-
var _value = stringArrayMap.get(_key);
|
|
243
|
-
var _mh = mhList[column];
|
|
244
|
-
if (_mh.isTitle === true) {
|
|
245
|
-
continue;
|
|
246
|
-
}
|
|
247
|
-
var spaceLen = _mh.headerOccupyLength;
|
|
248
|
-
if (_key.endsWith('0')) {
|
|
249
|
-
spaceLen = LINE_BYTE_SIZE == 32 ? 5 : 8;
|
|
250
|
-
}
|
|
251
|
-
_value = _value ? _value : this.concatBlank('', spaceLen, true);
|
|
252
|
-
rowContents += _value;
|
|
253
|
-
}
|
|
254
|
-
var tempContents = rowContents;
|
|
255
|
-
for (var _i = tempContents.length - 1; _i >= 0; _i--) {
|
|
256
|
-
if (tempContents.charAt(_i) != " ") {
|
|
257
|
-
break;
|
|
258
|
-
}
|
|
259
|
-
rowContents = tempContents.substr(0, _i);
|
|
260
|
-
}
|
|
261
|
-
rowContents += "\n";
|
|
262
|
-
}
|
|
263
|
-
this.sb += topContents;
|
|
264
|
-
this.sb += rowContents;
|
|
265
|
-
this.sb += bottomContents;
|
|
266
|
-
}
|
|
267
|
-
this.sb += this.drawSeparateLine();
|
|
268
|
-
return this.sb;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* 排版居中标题
|
|
273
|
-
*
|
|
274
|
-
*/
|
|
275
|
-
|
|
276
|
-
}, {
|
|
277
|
-
key: 'printTitle',
|
|
278
|
-
value: function printTitle(title) {
|
|
279
|
-
this.sb = '';
|
|
280
|
-
var spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(title)) / 2;
|
|
281
|
-
for (var i = 0; i < spaceSize; i++) {
|
|
282
|
-
this.sb += " ";
|
|
283
|
-
}
|
|
284
|
-
this.sb += title;
|
|
285
|
-
this.sb += "\n";
|
|
286
|
-
return this.sb;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* 排版居中标题带*
|
|
291
|
-
*
|
|
292
|
-
*/
|
|
293
|
-
|
|
294
|
-
}, {
|
|
295
|
-
key: 'printStarTitle',
|
|
296
|
-
value: function printStarTitle(title) {
|
|
297
|
-
this.sb = '';
|
|
298
|
-
var spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(title)) / 2;
|
|
299
|
-
for (var i = 0; i < spaceSize / 2; i++) {
|
|
300
|
-
this.sb += "* ";
|
|
301
|
-
}
|
|
302
|
-
this.sb += title;
|
|
303
|
-
for (var _i2 = 0; _i2 < spaceSize / 2; _i2++) {
|
|
304
|
-
this.sb += "* ";
|
|
305
|
-
}
|
|
306
|
-
this.sb += "\n";
|
|
307
|
-
return this.sb;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* 排版居左对齐
|
|
312
|
-
*/
|
|
313
|
-
|
|
314
|
-
}, {
|
|
315
|
-
key: 'leftPrintMsg',
|
|
316
|
-
value: function leftPrintMsg(middleMsgMap) {
|
|
317
|
-
this.sb = '';
|
|
318
|
-
|
|
319
|
-
var _iteratorNormalCompletion = true;
|
|
320
|
-
var _didIteratorError = false;
|
|
321
|
-
var _iteratorError = undefined;
|
|
322
|
-
|
|
323
|
-
try {
|
|
324
|
-
for (var _iterator = (0, _getIterator3.default)(middleMsgMap.entries()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
325
|
-
var item = _step.value;
|
|
326
|
-
|
|
327
|
-
var key = item[0];
|
|
328
|
-
var content = key == 'noTitle' ? item[1] : key + ":" + item[1];
|
|
329
|
-
this.sb += content;
|
|
330
|
-
this.sb += "\n";
|
|
331
|
-
}
|
|
332
|
-
} catch (err) {
|
|
333
|
-
_didIteratorError = true;
|
|
334
|
-
_iteratorError = err;
|
|
335
|
-
} finally {
|
|
336
|
-
try {
|
|
337
|
-
if (!_iteratorNormalCompletion && _iterator.return) {
|
|
338
|
-
_iterator.return();
|
|
339
|
-
}
|
|
340
|
-
} finally {
|
|
341
|
-
if (_didIteratorError) {
|
|
342
|
-
throw _iteratorError;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
return this.sb;
|
|
348
|
-
}
|
|
349
|
-
}, {
|
|
350
|
-
key: 'spaceCenterPrintMsg',
|
|
351
|
-
value: function spaceCenterPrintMsg(firstString, secondString) {
|
|
352
|
-
this.sb = firstString;
|
|
353
|
-
var spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(firstString + secondString)) / 2;
|
|
354
|
-
for (var i = 0; i < spaceSize; i++) {
|
|
355
|
-
this.sb += " ";
|
|
356
|
-
}
|
|
357
|
-
this.sb += secondString;
|
|
358
|
-
this.sb += "\n";
|
|
359
|
-
return this.sb;
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* 补全空格
|
|
364
|
-
*/
|
|
365
|
-
|
|
366
|
-
}, {
|
|
367
|
-
key: 'concatBlank',
|
|
368
|
-
value: function concatBlank(text, blankLength, isAll) {
|
|
369
|
-
if (blankLength <= 0) {
|
|
370
|
-
return text;
|
|
371
|
-
}
|
|
372
|
-
if (!isAll) {
|
|
373
|
-
blankLength = blankLength / 2;
|
|
374
|
-
}
|
|
375
|
-
for (var i = 0; i < blankLength; i++) {
|
|
376
|
-
text += " ";
|
|
377
|
-
}
|
|
378
|
-
return text;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* 画分割线
|
|
383
|
-
*/
|
|
384
|
-
|
|
385
|
-
}, {
|
|
386
|
-
key: 'drawSeparateLine',
|
|
387
|
-
value: function drawSeparateLine() {
|
|
388
|
-
var buffer = "";
|
|
389
|
-
for (var i = 0; i < LINE_BYTE_SIZE - 1; i++) {
|
|
390
|
-
buffer += '-';
|
|
391
|
-
}
|
|
392
|
-
buffer += '\n';
|
|
393
|
-
return buffer;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
/**
|
|
397
|
-
* 画分割线
|
|
398
|
-
*/
|
|
399
|
-
|
|
400
|
-
}, {
|
|
401
|
-
key: 'drawSeparateLine2',
|
|
402
|
-
value: function drawSeparateLine2() {
|
|
403
|
-
var buffer = "";
|
|
404
|
-
for (var i = 0; i < LINE_BYTE_SIZE - 1; i++) {
|
|
405
|
-
buffer += '=';
|
|
406
|
-
}
|
|
407
|
-
buffer += '\n';
|
|
408
|
-
return buffer;
|
|
409
|
-
}
|
|
410
|
-
}, {
|
|
411
|
-
key: 'getSubString',
|
|
412
|
-
value: function getSubString(oriStr, subStrLen) {
|
|
413
|
-
if (!oriStr || subStrLen <= 0) {
|
|
414
|
-
return [];
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
var list = [];
|
|
418
|
-
var subStrBytes = this.stringToByte(oriStr);
|
|
419
|
-
var subStrIndex = 0;
|
|
420
|
-
var index = 0;
|
|
421
|
-
while (subStrIndex < subStrBytes.length) {
|
|
422
|
-
var len = subStrLen;
|
|
423
|
-
if (subStrIndex + len > subStrBytes.length) {
|
|
424
|
-
len = subStrBytes.length - subStrIndex;
|
|
425
|
-
}
|
|
426
|
-
var subStr = this.byteToString(subStrBytes.slice(subStrIndex, subStrIndex + len));
|
|
427
|
-
if (subStr.length > oriStr.length) {
|
|
428
|
-
subStr = subStr.substr(0, oriStr.length);
|
|
429
|
-
}
|
|
430
|
-
var tempindex = index + subStr.length - 1;
|
|
431
|
-
if (tempindex < oriStr.length) {
|
|
432
|
-
if (subStr.charAt(subStr.length - 1) != oriStr.charAt(tempindex)) {
|
|
433
|
-
var i = 7;
|
|
434
|
-
while (true) {
|
|
435
|
-
if (subStr.length == 0 || i < 0) {
|
|
436
|
-
break;
|
|
437
|
-
}
|
|
438
|
-
if (subStr.endsWith("�")) {
|
|
439
|
-
subStr = subStr.substr(0, subStr.length - 1);
|
|
440
|
-
len = this.stringToByte(subStr).length;
|
|
441
|
-
} else {
|
|
442
|
-
break;
|
|
443
|
-
}
|
|
444
|
-
i--;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
} else {
|
|
448
|
-
subStr = subStr.substr(0, subStr.length - 2);
|
|
449
|
-
len = this.stringToByte(subStr).length;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
if (len <= 0) {
|
|
453
|
-
return list;
|
|
454
|
-
}
|
|
455
|
-
subStrIndex += len;
|
|
456
|
-
index += subStr.length;
|
|
457
|
-
var strByteSize = 0;
|
|
458
|
-
if (subStr) {
|
|
459
|
-
strByteSize = this.getBytesLength(subStr);
|
|
460
|
-
}
|
|
461
|
-
var fillBlank = (subStrLen - strByteSize) / 2;
|
|
462
|
-
var sbuffer = subStr;
|
|
463
|
-
for (var _i3 = 0; _i3 < fillBlank; _i3++) {
|
|
464
|
-
if (fillBlank >= 1) sbuffer += " ";
|
|
465
|
-
}
|
|
466
|
-
list.push(sbuffer);
|
|
467
|
-
}
|
|
468
|
-
return list;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* 获取最大长度
|
|
473
|
-
*
|
|
474
|
-
*/
|
|
475
|
-
|
|
476
|
-
}, {
|
|
477
|
-
key: 'getMaxLength',
|
|
478
|
-
value: function getMaxLength(msgs) {
|
|
479
|
-
var _this2 = this;
|
|
480
|
-
|
|
481
|
-
var max = 0;
|
|
482
|
-
var tmp = void 0;
|
|
483
|
-
msgs.forEach(function (item) {
|
|
484
|
-
tmp = _this2.getBytesLength(item);
|
|
485
|
-
if (tmp > max) {
|
|
486
|
-
max = tmp;
|
|
487
|
-
}
|
|
488
|
-
});
|
|
489
|
-
return max;
|
|
490
|
-
}
|
|
491
|
-
}, {
|
|
492
|
-
key: 'getBytesLength',
|
|
493
|
-
value: function getBytesLength(val) {
|
|
494
|
-
var len = 0;
|
|
495
|
-
if (!val) return len;
|
|
496
|
-
for (var i = 0; i < val.length; i++) {
|
|
497
|
-
var length = val.charCodeAt(i);
|
|
498
|
-
if (length >= 0 && length <= 128) {
|
|
499
|
-
len += 1;
|
|
500
|
-
} else {
|
|
501
|
-
len += 2;
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
return len;
|
|
505
|
-
}
|
|
506
|
-
}, {
|
|
507
|
-
key: 'stringToByte',
|
|
508
|
-
value: function stringToByte(str) {
|
|
509
|
-
var bytes = new Array();
|
|
510
|
-
var len, c;
|
|
511
|
-
len = str && str.length || 0;
|
|
512
|
-
for (var i = 0; i < len; i++) {
|
|
513
|
-
c = str.charCodeAt(i);
|
|
514
|
-
if (c >= 0x010000 && c <= 0x10FFFF) {
|
|
515
|
-
bytes.push(c >> 18 & 0x07 | 0xF0);
|
|
516
|
-
bytes.push(c >> 12 & 0x3F | 0x80);
|
|
517
|
-
bytes.push(c >> 6 & 0x3F | 0x80);
|
|
518
|
-
bytes.push(c & 0x3F | 0x80);
|
|
519
|
-
} else if (c >= 0x000800 && c <= 0x00FFFF) {
|
|
520
|
-
bytes.push(c >> 12 & 0x0F | 0xE0);
|
|
521
|
-
bytes.push(c >> 6 & 0x3F | 0x80);
|
|
522
|
-
bytes.push(c & 0x3F | 0x80);
|
|
523
|
-
} else if (c >= 0x000080 && c <= 0x0007FF) {
|
|
524
|
-
bytes.push(c >> 6 & 0x1F | 0xC0);
|
|
525
|
-
bytes.push(c & 0x3F | 0x80);
|
|
526
|
-
} else {
|
|
527
|
-
bytes.push(c & 0xFF);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
return bytes;
|
|
531
|
-
}
|
|
532
|
-
}, {
|
|
533
|
-
key: 'byteToString',
|
|
534
|
-
value: function byteToString(arr) {
|
|
535
|
-
if (typeof arr === 'string') {
|
|
536
|
-
return arr;
|
|
537
|
-
}
|
|
538
|
-
var str = '',
|
|
539
|
-
_arr = arr;
|
|
540
|
-
for (var i = 0; i < _arr.length; i++) {
|
|
541
|
-
var one = _arr[i].toString(2),
|
|
542
|
-
v = one.match(/^1+?(?=0)/);
|
|
543
|
-
if (v && one.length == 8) {
|
|
544
|
-
var bytesLength = v[0].length;
|
|
545
|
-
var store = _arr[i].toString(2).slice(7 - bytesLength);
|
|
546
|
-
for (var st = 1; st < bytesLength; st++) {
|
|
547
|
-
if (st + i < _arr.length) store += _arr[st + i].toString(2).slice(2);
|
|
548
|
-
}
|
|
549
|
-
var value = String.fromCharCode(parseInt(store, 2));
|
|
550
|
-
var asciiValue = value.charCodeAt();
|
|
551
|
-
if (asciiValue >= 0 && asciiValue <= 32 || asciiValue == 127) {
|
|
552
|
-
//不可见字符变成�
|
|
553
|
-
value = "�";
|
|
554
|
-
}
|
|
555
|
-
str += value;
|
|
556
|
-
i += bytesLength - 1;
|
|
557
|
-
} else {
|
|
558
|
-
str += String.fromCharCode(_arr[i]);
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
return str;
|
|
562
|
-
}
|
|
563
|
-
}]);
|
|
564
|
-
return BTPrintFormatUtil;
|
|
565
|
-
}();
|
|
566
|
-
|
|
567
|
-
exports.default = BTPrintFormatUtil;
|
|
568
|
-
//# sourceMappingURL=BTPrintFormatUtil.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/cloudPrint/BTPrintFormatUtil.js"],"names":["LINE_BYTE_SIZE","CHANGE_LINE","SLASH","BTPrintFormatUtil","size","bodyValueList","mhList","length","sb","tabHeaderByte","renderTableByStep","list","_this","constr","index","occupyedBytes","topWeight","contentWeight","bottomWeight","top","content","bottom","forEach","item","isTitle","push","headerWeight","isFoot","occupyedByte","parseInt","mh","headerOccupyBytes","headerOccupyLength","getBytesLength","headerText","start","end","drawText","concatBlank","stringToByte","blankBytes","len","drawSeparateLine","headerSize","valueListSize","i","maxLine","rowValue","map","toString","stringArrayMap","topContents","rowContents","bottomContents","j","oldValue","rowsValue","getSubString","subRowSize","subRow","key","value","set","row","column","get","spaceLen","endsWith","tempContents","charAt","substr","title","spaceSize","middleMsgMap","entries","firstString","secondString","text","blankLength","isAll","buffer","oriStr","subStrLen","subStrBytes","subStrIndex","subStr","byteToString","slice","tempindex","strByteSize","fillBlank","sbuffer","msgs","max","tmp","val","charCodeAt","str","bytes","Array","c","arr","_arr","one","v","match","bytesLength","store","st","String","fromCharCode","asciiValue"],"mappings":"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","file":"BTPrintFormatUtil.js","sourcesContent":["let LINE_BYTE_SIZE = 32;\nconst CHANGE_LINE = '\\n';\nconst SLASH = '\\/';\n\nclass BTPrintFormatUtil {\n\n\tstatic setLineByteSize(size) {\n\t\tLINE_BYTE_SIZE = size;\n\t}\n\n\tstatic printMenuMSG(bodyValueList, mhList) {\n\t\tif (!mhList || mhList.length == 0) {\n\t\t\treturn '';\n\t\t}\n\t\tthis.sb = '';\n\t\tlet tabHeaderByte = 4;\n\t\t// 对明细分层次渲染。\n\t\tfunction renderTableByStep(list, _this) {\n\t\t\tlet constr = '', index = 0, occupyedBytes = 0;\n\t\t\tlet topWeight = 0, contentWeight = 0, bottomWeight = 0, top = [], content = [], bottom = [];\n\t\t\tlist.forEach(item => {\n\t\t\t\tif (item.isTitle) {\n\t\t\t\t\ttop.push(item);\n\t\t\t\t\ttopWeight += item.headerWeight;\n\t\t\t\t} else if (item.isFoot) {\n\t\t\t\t\tbottom.push(item);\n\t\t\t\t\tbottomWeight += item.headerWeight;\n\t\t\t\t} else {\n\t\t\t\t\tcontent.push(item);\n\t\t\t\t\tcontentWeight += item.headerWeight;\n\t\t\t\t}\n\t\t\t})\n\t\t\tindex = 0;\n\t\t\toccupyedBytes = 0;\n\t\t\ttop.forEach(mh => {\n\t\t\t\tlet occupyedByte = parseInt((LINE_BYTE_SIZE * mh.headerWeight / topWeight));\n\t\t\t\toccupyedBytes += occupyedByte;\n\t\t\t\tmh.headerOccupyBytes = occupyedByte;\n\t\t\t\tmh.headerOccupyLength = _this.getBytesLength(mh.headerText);\n\t\t\t\tif (index == top.length - 1) {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = true;\n\t\t\t\t\tmh.drawText = mh.headerText + CHANGE_LINE;\n\t\t\t\t\tconstr += mh.drawText;\n\t\t\t\t\tconstr += _this.concatBlank('', tabHeaderByte, true);\n\t\t\t\t} else {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = false;\n\t\t\t\t\tmh.drawText = mh.headerText + SLASH;\n\t\t\t\t\tconstr += mh.drawText;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t})\n\t\t\tindex = 0;\n\t\t\toccupyedBytes = 0;\n\t\t\tcontent.forEach(mh => {\n\t\t\t\tlet occupyedByte = parseInt(((LINE_BYTE_SIZE * mh.headerWeight - tabHeaderByte) / contentWeight));\n\t\t\t\tmh.headerOccupyBytes = _this.stringToByte(mh.headerText).length;\n\t\t\t\tmh.headerOccupyLength = _this.getBytesLength(mh.headerText);\n\t\t\t\tif (mh.headerOccupyBytes < occupyedByte) {\n\t\t\t\t\tmh.headerOccupyBytes = occupyedByte;\n\t\t\t\t}\n\t\t\t\tif (mh.headerOccupyLength < occupyedByte) {\n\t\t\t\t\tmh.headerOccupyLength = occupyedByte;\n\t\t\t\t}\n\t\t\t\tif (index == content.length - 1) {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = true;\n\t\t\t\t\tmh.headerOccupyBytes = LINE_BYTE_SIZE - occupyedBytes;\n\t\t\t\t\tmh.drawText = mh.headerText + CHANGE_LINE;\n\t\t\t\t\tconstr += mh.drawText;\n\t\t\t\t} else {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = false;\n\t\t\t\t\toccupyedBytes += occupyedByte;\n\t\t\t\t\tlet blankBytes = occupyedByte - _this.getBytesLength(mh.headerText);\n\t\t\t\t\tif (blankBytes <= 0) {\n\t\t\t\t\t\tmh.headerText += \" \";\n\t\t\t\t\t\tlet len = _this.getBytesLength(\" \");\n\t\t\t\t\t\toccupyedBytes += len;\n\t\t\t\t\t\tmh.headerOccupyBytes += len;\n\t\t\t\t\t}\n\t\t\t\t\tmh.drawText = _this.concatBlank(mh.headerText, blankBytes, true);\n\t\t\t\t\tconstr += mh.drawText;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t})\n\t\t\tindex = 0;\n\t\t\toccupyedBytes = 0;\n\t\t\tbottom.forEach(mh => {\n\t\t\t\tlet occupyedByte = parseInt((LINE_BYTE_SIZE * mh.headerWeight / bottomWeight));\n\t\t\t\toccupyedBytes += occupyedByte;\n\t\t\t\tmh.headerOccupyBytes = occupyedByte;\n\t\t\t\tmh.headerOccupyLength = _this.getBytesLength(mh.headerText);\n\t\t\t\tif (index == bottom.length - 1) {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = true;\n\t\t\t\t\tmh.drawText = mh.headerText + CHANGE_LINE;\n\t\t\t\t\t//constr += mh.drawText;\n\t\t\t\t} else {\n\t\t\t\t\tif (index == 0) { mh.start = true; } else { mh.start = false; }\n\t\t\t\t\tmh.end = false;\n\t\t\t\t\tmh.drawText = mh.headerText + SLASH;\n\t\t\t\t\t//constr += mh.drawText;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t})\n\t\t\treturn constr;\n\t\t}\n\t\tthis.sb += renderTableByStep(mhList, this);\n\t\t// 画分隔线\n\t\tthis.sb += this.drawSeparateLine();\n\n\t\tlet headerSize = mhList.length;\n\t\tlet valueListSize = bodyValueList.length;\n\t\t// 重新计算表体的集合,如果超过限度,折行显示 将一条数据拆成多条\n\t\tfor (let i = 0; i < valueListSize; i++) {\n\t\t\tlet maxLine = 1;\n\t\t\tlet rowValue = bodyValueList[i];\n\t\t\trowValue = rowValue.map(item => {\n\t\t\t\tif (!item) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t\treturn item.toString();\n\t\t\t});\n\t\t\tlet stringArrayMap = new Map();\n\t\t\tlet topContents = '', rowContents = '', bottomContents = '';\n\t\t\tfor (let j = 0; j < headerSize; j++) {\n\t\t\t\tlet mh = mhList[j];\n\t\t\t\tif (mh.isTitle === true) {\n\t\t\t\t\tif (mh.start === true) {\n\t\t\t\t\t\ttopContents += ((i + 1) + \".\" + rowValue[j]);\n\t\t\t\t\t\tif (mh.end === true) {\n\t\t\t\t\t\t\ttopContents += CHANGE_LINE;\n\t\t\t\t\t\t\ttopContents += this.concatBlank('', tabHeaderByte, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (mh.start === false) {\n\t\t\t\t\t\tif (mh.end === true) {\n\t\t\t\t\t\t\ttopContents += SLASH + rowValue[j] + CHANGE_LINE;\n\t\t\t\t\t\t\ttopContents += this.concatBlank('', tabHeaderByte, true);\n\t\t\t\t\t\t} else if (mh.end === false) {\n\t\t\t\t\t\t\ttopContents += SLASH + rowValue[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (mh.isFoot === true) {\n\t\t\t\t\tif (mh.start === true) {\n\t\t\t\t\t\tbottomContents += rowValue[j];\n\t\t\t\t\t\tif (mh.end === true && bottomContents) {\n\t\t\t\t\t\t\tbottomContents = \"备注:\" + bottomContents + CHANGE_LINE\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (mh.start === false) {\n\t\t\t\t\t\tif (mh.end === true) {\n\t\t\t\t\t\t\tbottomContents += SLASH + rowValue[j] + CHANGE_LINE;\n\t\t\t\t\t\t} else if (mh.end === false) {\n\t\t\t\t\t\t\tbottomContents += SLASH + rowValue[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// 最多需要多少行 展示下 处理内容较长换行的情况\n\t\t\t\t\t// 每列都计算需要的行数,然后取最大值\n\t\t\t\t\tlet oldValue = rowValue[j]\n\t\t\t\t\tlet rowsValue = this.getSubString(oldValue, mh.headerOccupyBytes);\n\t\t\t\t\tlet subRowSize = rowsValue.length;\n\t\t\t\t\tfor (let subRow = 0; subRow < subRowSize; subRow++) {\n\t\t\t\t\t\tlet key = subRow.toString() + j.toString();\n\t\t\t\t\t\tlet value = rowsValue[subRow];\n\t\t\t\t\t\tlet blankBytes = mh.headerOccupyLength - this.getBytesLength(value);\n\t\t\t\t\t\tstringArrayMap.set(key, this.concatBlank(value, blankBytes, true));\n\t\t\t\t\t}\n\t\t\t\t\tif (subRowSize > maxLine) {\n\t\t\t\t\t\tmaxLine = subRowSize;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let row = 0; row < maxLine; row++) {\n\t\t\t\tif (row > 0) rowContents += this.concatBlank('', tabHeaderByte, true);\n\t\t\t\tfor (let column = 0; column < headerSize; column++) {\n\t\t\t\t\tlet key = row.toString() + column.toString();\n\t\t\t\t\tlet value = stringArrayMap.get(key);\n\t\t\t\t\tlet mh = mhList[column];\n\t\t\t\t\tif (mh.isTitle === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tlet spaceLen = mh.headerOccupyLength;\n\t\t\t\t\tif (key.endsWith('0')) {\n\t\t\t\t\t\tspaceLen = LINE_BYTE_SIZE == 32 ? 5 : 8;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value ? value : this.concatBlank('', spaceLen, true);\n\t\t\t\t\trowContents += value;\n\t\t\t\t}\n\t\t\t\tlet tempContents = rowContents;\n\t\t\t\tfor (let i = tempContents.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (tempContents.charAt(i) != \" \") {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\trowContents = tempContents.substr(0, i);\n\t\t\t\t}\n\t\t\t\trowContents += \"\\n\";\n\t\t\t}\n\t\t\tthis.sb += topContents;\n\t\t\tthis.sb += rowContents;\n\t\t\tthis.sb += bottomContents;\n\t\t}\n\t\tthis.sb += this.drawSeparateLine();\n\t\treturn this.sb;\n\t}\n\n\t/**\n\t * 排版居中标题\n\t *\n\t */\n\tstatic printTitle(title) {\n\t\tthis.sb = '';\n\t\tlet spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(title)) / 2;\n\t\tfor (let i = 0; i < spaceSize; i++) {\n\t\t\tthis.sb += \" \";\n\t\t}\n\t\tthis.sb += title;\n\t\tthis.sb += \"\\n\";\n\t\treturn this.sb;\n\t}\n\n\t/**\n\t * 排版居中标题带*\n\t *\n\t */\n\tstatic printStarTitle(title) {\n\t\tthis.sb = '';\n\t\tlet spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(title)) / 2;\n\t\tfor (let i = 0; i < spaceSize/2; i++) {\n\t\t\tthis.sb += \"* \";\n\t\t}\n\t\tthis.sb += title;\n\t\tfor (let i = 0; i < spaceSize/2; i++) {\n\t\t\tthis.sb += \"* \";\n\t\t}\n\t\tthis.sb += \"\\n\";\n\t\treturn this.sb;\n\t}\n\n\t/**\n\t * 排版居左对齐\n\t */\n\tstatic leftPrintMsg(middleMsgMap) {\n\t\tthis.sb = '';\n\n\t\tfor (let item of middleMsgMap.entries()) {\n\t\t\tlet key = item[0];\n\t\t\tlet content = key == 'noTitle' ? item[1] : (key + \":\" + item[1])\n\t\t\tthis.sb += content;\n\t\t\tthis.sb += \"\\n\";\n\t\t}\n\t\treturn this.sb;\n\t}\n\n\tstatic spaceCenterPrintMsg(firstString,secondString){\n\t\tthis.sb = firstString;\n\t\tlet spaceSize = (LINE_BYTE_SIZE - this.getBytesLength(firstString+secondString)) / 2;\n\t\tfor (let i = 0; i < spaceSize; i++) {\n\t\t\tthis.sb += \" \";\n\t\t}\n\t\tthis.sb += secondString;\n\t\tthis.sb += \"\\n\";\n\t\treturn this.sb;\n\t}\n\n\n\t/**\n \t * 补全空格\n */\n\tstatic concatBlank(text, blankLength, isAll) {\n\t\tif (blankLength <= 0) {\n\t\t\treturn text;\n\t\t}\n\t\tif (!isAll) {\n\t\t\tblankLength = blankLength / 2;\n\t\t}\n\t\tfor (let i = 0; i < blankLength; i++) {\n\t\t\ttext += \" \";\n\t\t}\n\t\treturn text;\n\t}\n\n\t/**\n\t * 画分割线\n\t */\n\tstatic drawSeparateLine() {\n\t\tlet buffer = \"\";\n\t\tfor (let i = 0; i < LINE_BYTE_SIZE - 1; i++) {\n\t\t\tbuffer += '-';\n\t\t}\n\t\tbuffer += '\\n';\n\t\treturn buffer;\n\t}\n\n\t/**\n\t * 画分割线\n\t */\n\tstatic drawSeparateLine2() {\n\t\tlet buffer = \"\";\n\t\tfor (let i = 0; i < LINE_BYTE_SIZE - 1; i++) {\n\t\t\tbuffer += '=';\n\t\t}\n\t\tbuffer += '\\n';\n\t\treturn buffer;\n\t}\n\n\tstatic getSubString(oriStr, subStrLen) {\n\t\tif (!oriStr || subStrLen <= 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet list = [];\n\t\tlet subStrBytes = this.stringToByte(oriStr);\n\t\tlet subStrIndex = 0;\n\t\tlet index = 0;\n\t\twhile (subStrIndex < subStrBytes.length) {\n\t\t\tlet len = subStrLen;\n\t\t\tif (subStrIndex + len > subStrBytes.length) {\n\t\t\t\tlen = subStrBytes.length - subStrIndex;\n\t\t\t}\n\t\t\tlet subStr = this.byteToString(subStrBytes.slice(subStrIndex, subStrIndex + len));\n\t\t\tif (subStr.length > oriStr.length) {\n\t\t\t\tsubStr = subStr.substr(0, oriStr.length);\n\t\t\t}\n\t\t\tlet tempindex = index + subStr.length - 1;\n\t\t\tif (tempindex < oriStr.length) {\n\t\t\t\tif (subStr.charAt(subStr.length - 1) != oriStr.charAt(tempindex)) {\n\t\t\t\t\tlet i = 7;\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tif (subStr.length == 0 || i < 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (subStr.endsWith(\"�\")) {\n\t\t\t\t\t\t\tsubStr = subStr.substr(0, subStr.length - 1);\n\t\t\t\t\t\t\tlen = this.stringToByte(subStr).length;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsubStr = subStr.substr(0, subStr.length - 2);\n\t\t\t\tlen = this.stringToByte(subStr).length;\n\t\t\t}\n\n\t\t\tif (len <= 0) {\n\t\t\t\treturn list;\n\t\t\t}\n\t\t\tsubStrIndex += len;\n\t\t\tindex += subStr.length;\n\t\t\tlet strByteSize = 0;\n\t\t\tif (subStr) {\n\t\t\t\tstrByteSize = this.getBytesLength(subStr);\n\t\t\t}\n\t\t\tlet fillBlank = (subStrLen - strByteSize) / 2;\n\t\t\tlet sbuffer = subStr;\n\t\t\tfor (let i = 0; i < fillBlank; i++) {\n\t\t\t\tif (fillBlank >= 1)\n\t\t\t\t\tsbuffer += \" \";\n\t\t\t}\n\t\t\tlist.push(sbuffer);\n\t\t}\n\t\treturn list;\n\t}\n\n\t/**\n\t * 获取最大长度\n\t *\n\t */\n\tstatic getMaxLength(msgs) {\n\t\tlet max = 0;\n\t\tlet tmp;\n\t\tmsgs.forEach((item) => {\n\t\t\ttmp = this.getBytesLength(item);\n\t\t\tif (tmp > max) {\n\t\t\t\tmax = tmp;\n\t\t\t}\n\t\t});\n\t\treturn max;\n\t}\n\n\tstatic getBytesLength(val) {\n\t\tvar len = 0;\n\t\tif (!val) return len;\n\t\tfor (var i = 0; i < val.length; i++) {\n\t\t\tvar length = val.charCodeAt(i);\n\t\t\tif (length >= 0 && length <= 128) {\n\t\t\t\tlen += 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlen += 2;\n\t\t\t}\n\t\t}\n\t\treturn len;\n\t}\n\n\tstatic stringToByte(str) {\n\t\tvar bytes = new Array();\n\t\tvar len, c;\n\t\tlen = str && str.length || 0;\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tc = str.charCodeAt(i);\n\t\t\tif (c >= 0x010000 && c <= 0x10FFFF) {\n\t\t\t\tbytes.push(((c >> 18) & 0x07) | 0xF0);\n\t\t\t\tbytes.push(((c >> 12) & 0x3F) | 0x80);\n\t\t\t\tbytes.push(((c >> 6) & 0x3F) | 0x80);\n\t\t\t\tbytes.push((c & 0x3F) | 0x80);\n\t\t\t} else if (c >= 0x000800 && c <= 0x00FFFF) {\n\t\t\t\tbytes.push(((c >> 12) & 0x0F) | 0xE0);\n\t\t\t\tbytes.push(((c >> 6) & 0x3F) | 0x80);\n\t\t\t\tbytes.push((c & 0x3F) | 0x80);\n\t\t\t} else if (c >= 0x000080 && c <= 0x0007FF) {\n\t\t\t\tbytes.push(((c >> 6) & 0x1F) | 0xC0);\n\t\t\t\tbytes.push((c & 0x3F) | 0x80);\n\t\t\t} else {\n\t\t\t\tbytes.push(c & 0xFF);\n\t\t\t}\n\t\t}\n\t\treturn bytes;\n\t}\n\n\tstatic byteToString(arr) {\n\t\tif (typeof arr === 'string') {\n\t\t\treturn arr;\n\t\t}\n\t\tvar str = '',\n\t\t\t_arr = arr;\n\t\tfor (var i = 0; i < _arr.length; i++) {\n\t\t\tvar one = _arr[i].toString(2),\n\t\t\t\tv = one.match(/^1+?(?=0)/);\n\t\t\tif (v && one.length == 8) {\n\t\t\t\tvar bytesLength = v[0].length;\n\t\t\t\tvar store = _arr[i].toString(2).slice(7 - bytesLength);\n\t\t\t\tfor (var st = 1; st < bytesLength; st++) {\n\t\t\t\t\tif ((st + i) < _arr.length)\n\t\t\t\t\t\tstore += _arr[st + i].toString(2).slice(2);\n\t\t\t\t}\n\t\t\t\tlet value = String.fromCharCode(parseInt(store, 2));\n\t\t\t\tlet asciiValue = value.charCodeAt()\n\t\t\t\tif ((asciiValue >= 0 && asciiValue <= 32) || asciiValue == 127) {\n\t\t\t\t\t//不可见字符变成�\n\t\t\t\t\tvalue = \"�\";\n\t\t\t\t}\n\t\t\t\tstr += value;\n\t\t\t\ti += bytesLength - 1;\n\t\t\t} else {\n\t\t\t\tstr += String.fromCharCode(_arr[i]);\n\t\t\t}\n\t\t}\n\t\treturn str;\n\t}\n}\n\nexport default BTPrintFormatUtil;"]}
|