ztxkui 3.2.12 → 3.2.13

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.
@@ -73,13 +73,15 @@ function BasicDemo() {
73
73
  React.createElement(InputNumber, { value: value, onChange: function (value) {
74
74
  console.log(value, 1);
75
75
  setValue(value);
76
- }, precision: 4, formatterType: "currency", style: { width: '300px' } }),
76
+ }, precision: 0,
77
+ // formatterType="currency"
78
+ style: { width: '300px' } }),
77
79
  React.createElement(AntInputNumber, { value: value, onChange: function (value) {
78
80
  console.log(value, 1);
79
81
  setValue(value);
80
82
  }, formatter: function (value) {
81
83
  return ("$ " + value).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
82
- }, parser: function (value) { return value.replace(/\$\s?|(,*)/g, ''); }, style: { width: '300px' } }),
84
+ }, precision: 0, parser: function (value) { return value.replace(/\$\s?|(,*)/g, ''); }, style: { width: '300px' } }),
83
85
  React.createElement("div", null,
84
86
  React.createElement(Tag, null, "\u4F60\u597D"),
85
87
  React.createElement(Tag, { type: "normal" }, "\u4F60\u597D"),
@@ -1,3 +1,14 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  /**
2
13
  * @author 陈亚雄
3
14
  * @description
@@ -11,6 +22,18 @@ import Table from 'components/Table';
11
22
  // store
12
23
  // 自定义组件
13
24
  // 其他文件
25
+ import axios from 'axios';
26
+ function request(options) {
27
+ return axios({
28
+ baseURL: 'http://192.168.0.83:8000',
29
+ url: options.url,
30
+ headers: __assign({ 'Zmdms-Auth': 'bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6bnVsbCwicmVhbF9uYW1lIjoi6ZmI5Lqa6ZuEIiwiY2xpZW50X3R5cGUiOiJ3ZWIiLCJkYXRhX3JvbGVfaWQiOiIxMzQzNDkwNjg2MjYwMjI4MDk3LDEzNDU5Nzg1MDUzMDIwNTY5NjIsMTQ2ODAzNTM1MTYyNTI4NTYzNCwxNTQyMDc2MzA4NTc4MDI1NDc0IiwiY2xpZW50X2lkIjoic3dvcmQiLCJ1c2VyX3R5cGUiOiJ3ZWIiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSwxNDY3MDE1OTc1NDg0NzYwMDY2LDE0NjgwMzQ0MzcxNTc5NjE3MjksMTQ4MDgyOTMzNzkzOTEzMjQxNyIsInBvc3RfbmFtZSI6bnVsbCwic2NvcGUiOlsiYWxsIl0sImludGVydmlld19pZCI6bnVsbCwiZXhwIjoxNjU5MDU2NTgxLCJvcmdfbmFtZSI6bnVsbCwianRpIjoiYzI5NDlhYmQtNTRlYS00ODhkLTg2MzQtMzEyYTZkMzdhZjE0IiwibWVtYmVyX2lkIjoxLCJjb21wYW55X2lkIjpudWxsLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJudWxsLGFkbWluLGFkbWluLGFkbWluIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iLCJ1c2VyIiwiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yLHVzZXIsYWRtaW4sYWRtaW4iLCJyZXN1bWVfdGVtcGxhdGUiOm51bGwsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IHptZG1zIiwicG9zdF9pZCI6IiIsInVzZXJfaWQiOiIxNDEyOTUzODA0MzMzNTU1NzE0Iiwib3JnX2lkIjpudWxsLCJuaWNrX25hbWUiOiLpmYjkuprpm4QiLCJjb21wYW55X25hbWUiOm51bGwsImRlcHRfaWQiOiIiLCJoYW5kbGVfaHJfbmFtZSI6bnVsbCwiYWNjb3VudCI6ImNoZW55eCIsInJlc3VtZV9pZCI6bnVsbH0.oekbQq3Q_7PWmPgR_A1G48oN9pE2pzDMSSvmkdqg6KM' }, options.headers),
31
+ method: options.method,
32
+ data: options.data,
33
+ });
34
+ }
35
+ var sealIdList = ['2980019783467188885', '2982231505305256230'];
36
+ var keywordList = ['测试', '测试'];
14
37
  var dataSource1 = new Array(10).fill('1').map(function (item, index) { return ({
15
38
  test1: "\u6D4B\u8BD5\u4E00" + index,
16
39
  test2: "\u6D4B\u8BD5\u4E8C" + index,
@@ -53,7 +76,7 @@ var PrintContainerDemo = function () {
53
76
  setDataSource(dataSource1);
54
77
  }, 3000);
55
78
  }, []);
56
- return (React.createElement(PrintContainer, { isAddExportPage: true, loading: loading },
79
+ return (React.createElement(PrintContainer, { isAddExportPage: true, loading: loading, request: request, sealIdList: sealIdList, keywordList: keywordList, showHandSeal: true, showAutoSeal: true },
57
80
  React.createElement("div", { className: "html2canvas-container-page" },
58
81
  "1",
59
82
  React.createElement(Table, { columns: columns, dataSource: dataSource, rowKey: "id", scroll: {
@@ -659,7 +659,7 @@ var TableDemo = function () {
659
659
  lowMinTip: function (record, index) {
660
660
  return "\u7B2C" + (index + 1) + "\u884C\uFF0C\u4F4E\u4E8E\u6700\u5C0F\u503C\uFF0C\u5DF2\u4FEE\u6539\u6210\u6700\u5C0F\u503C";
661
661
  },
662
- precision: 3,
662
+ precision: 0,
663
663
  formatterType: 'currency',
664
664
  onBlur: function () {
665
665
  setBtnLoading(false);
@@ -57,6 +57,6 @@ function InputNumber(props) {
57
57
  onOverRangeHandle();
58
58
  onPressEnter && onPressEnter(e);
59
59
  };
60
- return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision || _precision, onChange: onChangeHandle, onBlur: onBlurHandle, onPressEnter: onPressEnterHandle }, restProps)));
60
+ return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision !== null && precision !== void 0 ? precision : _precision, onChange: onChangeHandle, onBlur: onBlurHandle, onPressEnter: onPressEnterHandle }, restProps)));
61
61
  }
62
62
  export default InputNumber;
@@ -16,6 +16,18 @@ interface IProps {
16
16
  loading?: boolean;
17
17
  /** 导出pdf文件名 */
18
18
  pdfName?: string;
19
+ /**请求方法 */
20
+ request?: any;
21
+ /** 印章id */
22
+ sealIdList?: string[];
23
+ /** 关键字 */
24
+ keywordList?: string[];
25
+ /** 手动盖章 */
26
+ showHandSeal?: boolean;
27
+ /** 自动盖章 */
28
+ showAutoSeal?: boolean;
29
+ /** 盖章是否需要水印 */
30
+ needWatermark?: number;
19
31
  }
20
32
  declare const PrintContainer: React.FC<IProps>;
21
33
  export default PrintContainer;
@@ -10,19 +10,31 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
10
10
  import React, { useEffect, useRef, useState } from 'react';
11
11
  // redux
12
12
  // ztxkui公共组件
13
- import { Button, Spin } from '../../index';
13
+ import { Button, Spin, message } from '../../index';
14
14
  // 路由配置
15
15
  // store
16
16
  // 自定义组件
17
17
  // 其他文件
18
- import { addWaterHandle, removeWaterHandle, printCurrentDom, htmlToPdf, } from 'ztxkutils/dist/print';
18
+ import { addWaterHandle, removeWaterHandle, printCurrentDom, htmlToPdf, htmlToPdfForExport, } from 'ztxkutils/dist/print';
19
+ // 将base64转换为文件
20
+ function dataURLtoFile(dataurl, filename) {
21
+ var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
22
+ while (n--) {
23
+ u8arr[n] = bstr.charCodeAt(n);
24
+ }
25
+ return new File([u8arr], filename, { type: mime });
26
+ }
19
27
  var PrintContainer = function (_a) {
20
- var children = _a.children, waterText = _a.waterText, onFonsizeChange = _a.onFonsizeChange, hiddenClassName = _a.hiddenClassName, _b = _a.isAddExportPage, isAddExportPage = _b === void 0 ? false : _b, _c = _a.loading, loading = _c === void 0 ? false : _c, _d = _a.pdfName, pdfName = _d === void 0 ? 'pdf文件' : _d;
21
- var _e = useState(false), showWater = _e[0], setShowWater = _e[1];
22
- var _f = useState(false), pdfShowWater = _f[0], setPdfShowWater = _f[1];
28
+ var children = _a.children, waterText = _a.waterText, onFonsizeChange = _a.onFonsizeChange, hiddenClassName = _a.hiddenClassName, _b = _a.isAddExportPage, isAddExportPage = _b === void 0 ? false : _b, _c = _a.loading, loading = _c === void 0 ? false : _c, _d = _a.pdfName, pdfName = _d === void 0 ? 'pdf文件' : _d, request = _a.request, sealIdList = _a.sealIdList, keywordList = _a.keywordList, showHandSeal = _a.showHandSeal, showAutoSeal = _a.showAutoSeal, _e = _a.needWatermark, needWatermark = _e === void 0 ? 0 : _e;
29
+ var _f = useState(false), showWater = _f[0], setShowWater = _f[1];
30
+ var _g = useState(false), pdfShowWater = _g[0], setPdfShowWater = _g[1];
23
31
  var containerRef = useRef();
24
32
  var allDomRef = useRef();
25
- var _g = useState(false), spinning = _g[0], setSpinning = _g[1];
33
+ var _h = useState(false), spinning = _h[0], setSpinning = _h[1];
34
+ // 确认盖章后,会得到一个合同id 这个之后盖章要用
35
+ var _j = useState(), currentContractId = _j[0], setCurrentContractId = _j[1];
36
+ // 盖章后会得到一个预览地址,这个地址耀保存,同一个合同id,不能重复盖章接口
37
+ var _k = useState(), currentViewUrl = _k[0], setCurrentViewUrl = _k[1];
26
38
  useEffect(function () {
27
39
  setSpinning(loading);
28
40
  }, [loading]);
@@ -110,13 +122,10 @@ var PrintContainer = function (_a) {
110
122
  pdfName: pdfName,
111
123
  isShowPage: isAddExportPage,
112
124
  })
113
- .then(function (pdf) {
114
- // const pdfBase64 = pdf.output('dataurlstring');
115
- // const pdfFile = dataURLtoFile(pdfBase64, pdfName);
116
- // console.log(pdfFile);
125
+ .then(function () {
117
126
  setSpinning(false);
118
127
  })
119
- .catch(function (pdf) {
128
+ .catch(function () {
120
129
  setSpinning(false);
121
130
  });
122
131
  });
@@ -125,6 +134,171 @@ var PrintContainer = function (_a) {
125
134
  var onCloseHandle = function () {
126
135
  window.close();
127
136
  };
137
+ // 确认盖章位置
138
+ var onSurePositionHandle = function () {
139
+ setSpinning(true);
140
+ setTimeout(function () {
141
+ htmlToPdfForExport({
142
+ dom: containerRef.current,
143
+ isShowPage: isAddExportPage,
144
+ })
145
+ .then(function (option) {
146
+ var pdfBase64 = option.pdfBase64;
147
+ var files = Array.isArray(pdfBase64)
148
+ ? pdfBase64.map(function (base64) { return dataURLtoFile(base64, pdfName + ".pdf"); })
149
+ : [];
150
+ var formData = new FormData();
151
+ files.forEach(function (file, i) {
152
+ formData.append("fileList[" + i + "]", file);
153
+ });
154
+ if (Array.isArray(sealIdList)) {
155
+ sealIdList.forEach(function (sealId, i) {
156
+ formData.append("sealIdList[" + i + "]", sealId);
157
+ });
158
+ }
159
+ request({
160
+ url: '/api/zmdms-resource/seal/confirm-seal-position',
161
+ method: 'POST',
162
+ data: formData,
163
+ headers: {
164
+ 'Content-Type': 'multipart/form-data',
165
+ },
166
+ })
167
+ .then(function (res) {
168
+ var _a;
169
+ setSpinning(false);
170
+ console.log(res);
171
+ if (res.status === 200 && res.data.code === 200) {
172
+ var data = (res.data || {}).data;
173
+ setCurrentContractId(data === null || data === void 0 ? void 0 : data.contractId);
174
+ // 重新确认盖章位置后,要清空当前保存的盖章url
175
+ setCurrentViewUrl('');
176
+ if (data === null || data === void 0 ? void 0 : data.preSignUrl) {
177
+ window.open(data === null || data === void 0 ? void 0 : data.preSignUrl);
178
+ }
179
+ else {
180
+ message.info("\u672A\u80FD\u8FD4\u56DE\u76D6\u7AE0\u94FE\u63A5\uFF01");
181
+ }
182
+ }
183
+ else {
184
+ message.info(((_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.msg) || '接口请求失败!');
185
+ }
186
+ })
187
+ .catch(function (err) {
188
+ var _a, _b;
189
+ setSpinning(false);
190
+ message.error(((_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || '接口调用失败!');
191
+ });
192
+ })
193
+ .catch(function () {
194
+ setSpinning(false);
195
+ });
196
+ });
197
+ };
198
+ // 盖章
199
+ var onSealHandle = function () {
200
+ if (currentViewUrl) {
201
+ window.open(currentViewUrl);
202
+ return;
203
+ }
204
+ setSpinning(true);
205
+ request({
206
+ url: '/api/zmdms-resource/seal/final-seal',
207
+ method: 'POST',
208
+ data: {
209
+ contractId: currentContractId,
210
+ sealIdList: sealIdList,
211
+ needWatermark: needWatermark,
212
+ },
213
+ heaers: {
214
+ 'Content-Type': 'application/json',
215
+ },
216
+ })
217
+ .then(function (res) {
218
+ var _a;
219
+ console.log(res);
220
+ setSpinning(false);
221
+ if (res.status === 200 && res.data.code === 200) {
222
+ var data = (res.data || {}).data;
223
+ if (data === null || data === void 0 ? void 0 : data.viewUrl) {
224
+ setCurrentViewUrl(data === null || data === void 0 ? void 0 : data.viewUrl);
225
+ window.open(data === null || data === void 0 ? void 0 : data.viewUrl);
226
+ }
227
+ else {
228
+ message.info("\u672A\u80FD\u8FD4\u56DE\u76D6\u7AE0\u94FE\u63A5\uFF01");
229
+ }
230
+ }
231
+ else {
232
+ message.info(((_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.msg) || '接口请求失败!');
233
+ }
234
+ })
235
+ .catch(function (err) {
236
+ var _a, _b;
237
+ setSpinning(false);
238
+ message.error(((_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || '接口调用失败!');
239
+ });
240
+ };
241
+ // 自动盖章
242
+ var onAutoSealHandle = function () {
243
+ setSpinning(true);
244
+ setTimeout(function () {
245
+ htmlToPdfForExport({
246
+ dom: containerRef.current,
247
+ isShowPage: isAddExportPage,
248
+ })
249
+ .then(function (option) {
250
+ var pdfBase64 = option.pdfBase64;
251
+ var files = Array.isArray(pdfBase64)
252
+ ? pdfBase64.map(function (base64) { return dataURLtoFile(base64, pdfName + ".pdf"); })
253
+ : [];
254
+ var formData = new FormData();
255
+ files.forEach(function (file, i) {
256
+ formData.append("fileList[" + i + "]", file);
257
+ });
258
+ if (Array.isArray(sealIdList) && Array.isArray(keywordList)) {
259
+ sealIdList.forEach(function (sealId, i) {
260
+ var keyword = keywordList[i];
261
+ formData.append("sealPositionInfoList[" + i + "].sealId", sealId);
262
+ formData.append("sealPositionInfoList[" + i + "].keyword", keyword);
263
+ });
264
+ }
265
+ request({
266
+ url: '/api/zmdms-resource/seal/auto-seal',
267
+ method: 'POST',
268
+ data: formData,
269
+ headers: {
270
+ 'Content-Type': 'multipart/form-data',
271
+ },
272
+ })
273
+ .then(function (res) {
274
+ var _a;
275
+ setSpinning(false);
276
+ console.log(res);
277
+ if (res.status === 200 && res.data.code === 200) {
278
+ var data = (res.data || {}).data;
279
+ setCurrentContractId(data === null || data === void 0 ? void 0 : data.contractId);
280
+ if (data === null || data === void 0 ? void 0 : data.preSignUrl) {
281
+ window.open(data === null || data === void 0 ? void 0 : data.preSignUrl);
282
+ }
283
+ else {
284
+ message.info("\u672A\u80FD\u8FD4\u56DE\u76D6\u7AE0\u94FE\u63A5\uFF01");
285
+ }
286
+ }
287
+ else {
288
+ message.info(((_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.msg) || '接口请求失败!');
289
+ }
290
+ })
291
+ .catch(function (err) {
292
+ var _a, _b;
293
+ setSpinning(false);
294
+ message.error(((_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.msg) || '接口调用失败!');
295
+ });
296
+ })
297
+ .catch(function () {
298
+ setSpinning(false);
299
+ });
300
+ });
301
+ };
128
302
  return (React.createElement(Spin, { spinning: spinning },
129
303
  React.createElement("div", { className: "print-container--header" },
130
304
  React.createElement("div", { className: "print-container--header__content" },
@@ -134,6 +308,10 @@ var PrintContainer = function (_a) {
134
308
  React.createElement(Button, { type: "primary", onClick: onPrintHandle }, "\u6253\u5370"),
135
309
  React.createElement(Button, { type: "primary", onClick: onPdfWaterHandle }, !pdfShowWater ? '添加导出PDF水印' : '移除导出PDF水印'),
136
310
  React.createElement(Button, { type: "primary", onClick: onPdfHandle }, "\u5BFC\u51FAPDF"),
311
+ showHandSeal && (React.createElement(React.Fragment, null,
312
+ React.createElement(Button, { type: "primary", onClick: onSurePositionHandle }, "\u786E\u8BA4\u76D6\u7AE0\u4F4D\u7F6E"),
313
+ currentContractId && (React.createElement(Button, { type: "primary", onClick: onSealHandle }, "\u76D6\u7AE0")))),
314
+ showAutoSeal && (React.createElement(Button, { type: "primary", onClick: onAutoSealHandle }, "\u81EA\u52A8\u76D6\u7AE0")),
137
315
  React.createElement(Button, { type: "primary", onClick: onCloseHandle }, "\u5173\u95ED"))),
138
316
  React.createElement("div", { className: "print-container--content", ref: containerRef }, children)));
139
317
  };
package/dist/index.css CHANGED
@@ -1811,7 +1811,7 @@ template {
1811
1811
  align-items: center;
1812
1812
  }
1813
1813
  .print-container--header .print-container--header__content > button {
1814
- margin-right: 10px;
1814
+ margin-right: 5px;
1815
1815
  }
1816
1816
 
1817
1817
  .print-container--content {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "3.2.12",
3
+ "version": "3.2.13",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",
@@ -23,7 +23,7 @@
23
23
  "react-infinite-scroll-component": "^6.1.0",
24
24
  "react-resizable": "^3.0.4",
25
25
  "react-to-print": "^2.14.7",
26
- "ztxkutils": "^2.6.2"
26
+ "ztxkutils": "^2.7.17"
27
27
  },
28
28
  "scripts": {
29
29
  "analyze": "source-map-explorer 'dist/static/js/*.js'",