ydb-components-material 0.1.88 → 0.1.89
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/build/docs/404.html +3 -3
- package/build/docs/_demos/:uuid +3 -3
- package/build/docs/colorful-button.html +3 -3
- package/build/docs/colorful-input.html +3 -3
- package/build/docs/index.html +3 -3
- package/build/docs/umi.6ffa9be4.js +1 -0
- package/build/docs/{umi.666eb3a7.css → umi.fd11a37a.css} +1 -1
- package/build/docs/~demos/:uuid.html +3 -3
- package/build/docs/~demos/colorful-button-demo.html +3 -3
- package/build/docs/~demos/colorful-input-demo.html +3 -3
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +9 -9
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +2 -55
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +2 -55
- package/dist/BizComps.css +1 -1
- package/dist/BizComps.js +5 -58
- package/dist/BizComps.js.map +1 -1
- package/es/components/file-list/file.js +0 -71
- package/es/components/file-list/index.js +38 -2
- package/es/components/file-list/index.scss +25 -0
- package/es/components/file-list/item.js +75 -23
- package/es/style.js +1 -0
- package/lib/components/file-list/file.js +1 -74
- package/lib/components/file-list/index.js +38 -2
- package/lib/components/file-list/index.scss +25 -0
- package/lib/components/file-list/item.js +80 -28
- package/lib/style.js +1 -0
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -4
- package/build/docs/umi.f5d91602.js +0 -1
|
@@ -1,76 +1,5 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
1
|
// import apiConfig from '@/config/api.cofig'
|
|
4
2
|
|
|
5
|
-
// utils/pdfToImage.js
|
|
6
|
-
import * as pdfjsLib from 'pdfjs-dist/build/pdf';
|
|
7
|
-
import 'pdfjs-dist/build/pdf.worker.entry';
|
|
8
|
-
|
|
9
|
-
// 配置 worker(必须!)
|
|
10
|
-
if (typeof window !== 'undefined') {
|
|
11
|
-
pdfjsLib.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/build/pdf.worker.entry');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 将 PDF URL 转换为图片 URL
|
|
16
|
-
* @param {string} pdfUrl - PDF 文件的 URL
|
|
17
|
-
* @param {number} [page=1] - 页码,默认第1页
|
|
18
|
-
* @param {number} [scale=0.5] - 缩放比例,默认0.5
|
|
19
|
-
* @param {string} [imageFormat='image/jpeg'] - 图片格式
|
|
20
|
-
* @param {number} [imageQuality=0.8] - 图片质量(0-1)
|
|
21
|
-
* @returns {Promise<string>} 返回图片的 Data URL
|
|
22
|
-
*/
|
|
23
|
-
export var pdfToImageUrl = /*#__PURE__*/function () {
|
|
24
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(pdfUrl, scale) {
|
|
25
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
26
|
-
while (1) switch (_context.prev = _context.next) {
|
|
27
|
-
case 0:
|
|
28
|
-
if (scale === void 0) {
|
|
29
|
-
scale = 0.5;
|
|
30
|
-
}
|
|
31
|
-
console.log('pdfToImageUrl----', pdfUrl);
|
|
32
|
-
pdfjsLib.getDocument(pdfUrl).promise.then(function (pdf) {
|
|
33
|
-
console.log('获取PDF文件成功', pdf);
|
|
34
|
-
// 获取第一页
|
|
35
|
-
return pdf.getPage(1);
|
|
36
|
-
}).then(function (page) {
|
|
37
|
-
console.log('获取PDF页面成功', page);
|
|
38
|
-
// 设置缩略图的缩放比例 (0.5 表示缩小到一半尺寸)
|
|
39
|
-
var viewport = page.getViewport({
|
|
40
|
-
scale: scale
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
// 创建Canvas元素
|
|
44
|
-
var canvas = document.createElement('canvas');
|
|
45
|
-
var context = canvas.getContext('2d');
|
|
46
|
-
canvas.height = viewport.height;
|
|
47
|
-
canvas.width = viewport.width;
|
|
48
|
-
|
|
49
|
-
// 将PDF页面渲染到Canvas上
|
|
50
|
-
var renderContext = {
|
|
51
|
-
canvasContext: context,
|
|
52
|
-
viewport: viewport
|
|
53
|
-
};
|
|
54
|
-
page.render(renderContext).promise.then(function () {
|
|
55
|
-
// 将Canvas转换为图片URL
|
|
56
|
-
var thumbnail = canvas.toDataURL();
|
|
57
|
-
console.log('获取图片成功', thumbnail);
|
|
58
|
-
return thumbnail;
|
|
59
|
-
});
|
|
60
|
-
})["catch"](function (error) {
|
|
61
|
-
console.error('Error generating thumbnail:', error);
|
|
62
|
-
});
|
|
63
|
-
case 1:
|
|
64
|
-
case "end":
|
|
65
|
-
return _context.stop();
|
|
66
|
-
}
|
|
67
|
-
}, _callee);
|
|
68
|
-
}));
|
|
69
|
-
return function pdfToImageUrl(_x, _x2) {
|
|
70
|
-
return _ref.apply(this, arguments);
|
|
71
|
-
};
|
|
72
|
-
}();
|
|
73
|
-
|
|
74
3
|
// 下载文件
|
|
75
4
|
export function getBlob(url) {
|
|
76
5
|
return new Promise(function (resolve, reject) {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import _Balloon from "@alifd/next/es/balloon";
|
|
1
2
|
import React from 'react';
|
|
3
|
+
var Tooltip = _Balloon.Tooltip;
|
|
2
4
|
import FileItem from "./item";
|
|
3
5
|
import "./index.scss";
|
|
4
6
|
var MATERIAL_TYPE = {
|
|
@@ -110,6 +112,8 @@ var FileList = function FileList(_ref) {
|
|
|
110
112
|
if (subIndex !== undefined) {
|
|
111
113
|
// value为空,说明删除了
|
|
112
114
|
if (!value) {
|
|
115
|
+
oneLevelItem.subMaterials[subIndex].isSmart = false;
|
|
116
|
+
oneLevelItem.subMaterials[subIndex].isShareFile = false;
|
|
113
117
|
// 如果当前文件list中只有一个文件,还得补个空的
|
|
114
118
|
if (oneLevelItem.subMaterials[subIndex].fileList.length === 1) {
|
|
115
119
|
oneLevelItem.subMaterials[subIndex].fileList = [{
|
|
@@ -130,6 +134,8 @@ var FileList = function FileList(_ref) {
|
|
|
130
134
|
}
|
|
131
135
|
} else {
|
|
132
136
|
if (!value) {
|
|
137
|
+
oneLevelItem.isSmart = false;
|
|
138
|
+
oneLevelItem.isShareFile = false;
|
|
133
139
|
oneLevelItem.fileList.splice(fileIndex, 1);
|
|
134
140
|
if (oneLevelItem.fileList.length === 0) {
|
|
135
141
|
oneLevelItem.fileList.push({
|
|
@@ -150,22 +156,52 @@ var FileList = function FileList(_ref) {
|
|
|
150
156
|
console.log('fileList--------res', fileList);
|
|
151
157
|
valChange(fileList);
|
|
152
158
|
};
|
|
159
|
+
var trigger = function trigger(child) {
|
|
160
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
className: "tag",
|
|
162
|
+
style: {
|
|
163
|
+
backgroundColor: child.isSmart ? '#1678FF' : child.isShareFile ? '#15BC83' : '#9570F7'
|
|
164
|
+
}
|
|
165
|
+
}, child.isSmart ? '智' : child.isShareFile ? '享' : '自');
|
|
166
|
+
};
|
|
153
167
|
return /*#__PURE__*/React.createElement("div", {
|
|
154
168
|
className: "file_list",
|
|
155
169
|
style: style
|
|
156
170
|
}, fileList.map(function (item, index) {
|
|
157
171
|
return /*#__PURE__*/React.createElement("div", {
|
|
158
172
|
className: "file_level_one"
|
|
173
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
174
|
+
className: "file_level_one_title"
|
|
159
175
|
}, /*#__PURE__*/React.createElement("p", {
|
|
160
176
|
className: "name_level_one"
|
|
161
|
-
}, convertNumbersToChinese(index + 1), item.materialName), item.subMaterials && item.subMaterials.length > 0
|
|
177
|
+
}, convertNumbersToChinese(index + 1), item.materialName), !(item.subMaterials && item.subMaterials.length > 0) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
|
|
178
|
+
className: "required"
|
|
179
|
+
}, "*"), /*#__PURE__*/React.createElement(_Balloon, {
|
|
180
|
+
v2: true,
|
|
181
|
+
trigger: trigger(item),
|
|
182
|
+
triggerType: "click",
|
|
183
|
+
align: "tl",
|
|
184
|
+
title: "",
|
|
185
|
+
delay: 20
|
|
186
|
+
}, item.isSmart ? '本材料为智能生成材料,系统将根据您填写的信息自动生成申报材料。' : item.isShareFile ? '本材料为共享材料,数据由大数据共享获取,无需用户自行准备。' : '需要用户自行准备申报材料'))), item.subMaterials && item.subMaterials.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
162
187
|
className: "file_level_two"
|
|
163
188
|
}, item.subMaterials.map(function (child, subIndex) {
|
|
164
189
|
return /*#__PURE__*/React.createElement("div", {
|
|
165
190
|
className: "file_level_two_item"
|
|
191
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
192
|
+
className: "file_level_two_title"
|
|
166
193
|
}, /*#__PURE__*/React.createElement("p", {
|
|
167
194
|
className: "name_level_two"
|
|
168
|
-
}, subIndex + 1, "\u3001", child.materialName), /*#__PURE__*/React.createElement("
|
|
195
|
+
}, subIndex + 1, "\u3001", child.materialName), /*#__PURE__*/React.createElement("span", {
|
|
196
|
+
className: "required"
|
|
197
|
+
}, "*"), /*#__PURE__*/React.createElement(_Balloon, {
|
|
198
|
+
v2: true,
|
|
199
|
+
trigger: trigger(child),
|
|
200
|
+
triggerType: "click",
|
|
201
|
+
align: "tl",
|
|
202
|
+
title: "",
|
|
203
|
+
delay: 20
|
|
204
|
+
}, child.isSmart ? '本材料为智能生成材料,系统将根据您填写的信息自动生成申报材料。' : child.isShareFile ? '本材料为共享材料,数据由大数据共享获取,无需用户自行准备。' : '需要用户自行准备申报材料')), /*#__PURE__*/React.createElement("p", {
|
|
169
205
|
className: "tip"
|
|
170
206
|
}, getTipTextForSubMaterial(item, index, subIndex)), child.fileList.map(function (file, i) {
|
|
171
207
|
return /*#__PURE__*/React.createElement(FileItem, {
|
|
@@ -11,12 +11,31 @@
|
|
|
11
11
|
margin-top: 8px;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
.required {
|
|
15
|
+
color: red;
|
|
16
|
+
margin-right: 8px;
|
|
17
|
+
margin-left: 2px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.tag {
|
|
21
|
+
border-radius: 4px;
|
|
22
|
+
padding: 0 4px;
|
|
23
|
+
font-size: 12px;
|
|
24
|
+
color: #FFFFFF;
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
.name_level_one {
|
|
15
28
|
font-size: 15px;
|
|
16
29
|
font-weight: 500;
|
|
17
30
|
color: #333333;
|
|
31
|
+
margin-bottom: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.file_level_one_title {
|
|
18
35
|
padding-bottom: 16px;
|
|
19
36
|
border-bottom: 1px solid #EEEEEE;
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
20
39
|
}
|
|
21
40
|
|
|
22
41
|
.file_level_two {
|
|
@@ -24,12 +43,18 @@
|
|
|
24
43
|
|
|
25
44
|
.file_level_two_item {
|
|
26
45
|
margin-bottom: 16px;
|
|
46
|
+
|
|
47
|
+
.file_level_two_title {
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
}
|
|
27
51
|
}
|
|
28
52
|
|
|
29
53
|
.name_level_two {
|
|
30
54
|
font-size: 14px;
|
|
31
55
|
font-weight: 500;
|
|
32
56
|
color: #323232;
|
|
57
|
+
margin-bottom: 0;
|
|
33
58
|
}
|
|
34
59
|
}
|
|
35
60
|
}
|
|
@@ -10,6 +10,7 @@ import previewIcon from "./icon/preview.svg";
|
|
|
10
10
|
import previewIconPC from "./icon/preview_pc.svg";
|
|
11
11
|
import downloadIcon from "./icon/download.svg";
|
|
12
12
|
import downloadIconPC from "./icon/download_pc.svg";
|
|
13
|
+
import fileIcon from "./icon/file.svg";
|
|
13
14
|
import warningIcon from "./icon/icon_warning.svg";
|
|
14
15
|
import errorMsgIcon from "./icon/icon_errorMsg.svg";
|
|
15
16
|
import uploadIcon from "./icon/upload.svg";
|
|
@@ -17,7 +18,7 @@ import closeIcon from "./icon/close.svg";
|
|
|
17
18
|
import SignPage from "./sign";
|
|
18
19
|
import SealPage from "./seal";
|
|
19
20
|
import { getMaterialLib, getGuideImg, getUrlById, onlinePreview } from "../../api";
|
|
20
|
-
import { initFormat, getFileExtension
|
|
21
|
+
import { initFormat, getFileExtension } from "./file.js";
|
|
21
22
|
import CheckPoint from "./checkPoint";
|
|
22
23
|
import "./item.scss";
|
|
23
24
|
var RadioGroup = _Radio.Group;
|
|
@@ -46,7 +47,8 @@ var FileItem = function FileItem(_ref) {
|
|
|
46
47
|
fileUrl = file.fileUrl,
|
|
47
48
|
fileId = file.fileId,
|
|
48
49
|
isSigned = file.isSigned,
|
|
49
|
-
isSealed = file.isSealed
|
|
50
|
+
isSealed = file.isSealed,
|
|
51
|
+
fileType = file.fileType;
|
|
50
52
|
var signatureEnable = fileConfig.signatureEnable,
|
|
51
53
|
signEnable = fileConfig.signEnable,
|
|
52
54
|
isInValid = fileConfig.isInValid,
|
|
@@ -485,13 +487,57 @@ var FileItem = function FileItem(_ref) {
|
|
|
485
487
|
}, 0);
|
|
486
488
|
}
|
|
487
489
|
}, [userInfo, isShowLib, tokenTY]);
|
|
488
|
-
var
|
|
489
|
-
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(
|
|
490
|
-
var
|
|
490
|
+
var extractImageUrls = /*#__PURE__*/function () {
|
|
491
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(previewUrl) {
|
|
492
|
+
var response, htmlText, parser, doc, imgElements, srcList;
|
|
491
493
|
return _regeneratorRuntime.wrap(function (_context5) {
|
|
492
494
|
while (1) switch (_context5.prev = _context5.next) {
|
|
493
495
|
case 0:
|
|
494
496
|
_context5.next = 1;
|
|
497
|
+
return fetch(previewUrl);
|
|
498
|
+
case 1:
|
|
499
|
+
response = _context5.sent;
|
|
500
|
+
_context5.next = 2;
|
|
501
|
+
return response.text();
|
|
502
|
+
case 2:
|
|
503
|
+
htmlText = _context5.sent;
|
|
504
|
+
parser = new DOMParser();
|
|
505
|
+
doc = parser.parseFromString(htmlText, 'text/html');
|
|
506
|
+
imgElements = doc.querySelectorAll('img');
|
|
507
|
+
srcList = Array.from(imgElements).map(function (img) {
|
|
508
|
+
return img.getAttribute('data-src');
|
|
509
|
+
});
|
|
510
|
+
return _context5.abrupt("return", srcList);
|
|
511
|
+
case 3:
|
|
512
|
+
case "end":
|
|
513
|
+
return _context5.stop();
|
|
514
|
+
}
|
|
515
|
+
}, _callee5);
|
|
516
|
+
}));
|
|
517
|
+
return function extractImageUrls(_x3) {
|
|
518
|
+
return _ref6.apply(this, arguments);
|
|
519
|
+
};
|
|
520
|
+
}();
|
|
521
|
+
var getViewUrl = /*#__PURE__*/function () {
|
|
522
|
+
var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(id) {
|
|
523
|
+
var type, urlRes, res, list;
|
|
524
|
+
return _regeneratorRuntime.wrap(function (_context6) {
|
|
525
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
526
|
+
case 0:
|
|
527
|
+
type = getFileExtension(fileName);
|
|
528
|
+
if (!['png', 'jpg', 'jpeg'].includes(type)) {
|
|
529
|
+
_context6.next = 1;
|
|
530
|
+
break;
|
|
531
|
+
}
|
|
532
|
+
return _context6.abrupt("return", fileUrl);
|
|
533
|
+
case 1:
|
|
534
|
+
if (!(type !== 'pdf')) {
|
|
535
|
+
_context6.next = 2;
|
|
536
|
+
break;
|
|
537
|
+
}
|
|
538
|
+
return _context6.abrupt("return", '');
|
|
539
|
+
case 2:
|
|
540
|
+
_context6.next = 3;
|
|
495
541
|
return getUrlById({
|
|
496
542
|
id: id,
|
|
497
543
|
effectiveTime: 3600000
|
|
@@ -503,14 +549,14 @@ var FileItem = function FileItem(_ref) {
|
|
|
503
549
|
isPC: isPC,
|
|
504
550
|
accessToken: accessToken
|
|
505
551
|
});
|
|
506
|
-
case
|
|
507
|
-
urlRes =
|
|
552
|
+
case 3:
|
|
553
|
+
urlRes = _context6.sent;
|
|
508
554
|
if (!(urlRes.presignedUrlList && urlRes.presignedUrlList.length > 0)) {
|
|
509
|
-
|
|
555
|
+
_context6.next = 6;
|
|
510
556
|
break;
|
|
511
557
|
}
|
|
512
558
|
console.log('urlRes', urlRes);
|
|
513
|
-
|
|
559
|
+
_context6.next = 4;
|
|
514
560
|
return onlinePreview({
|
|
515
561
|
url: urlRes.presignedUrlList[2]
|
|
516
562
|
}, {
|
|
@@ -521,26 +567,28 @@ var FileItem = function FileItem(_ref) {
|
|
|
521
567
|
isPC: isPC,
|
|
522
568
|
accessToken: accessToken
|
|
523
569
|
});
|
|
524
|
-
case
|
|
525
|
-
res =
|
|
526
|
-
|
|
527
|
-
|
|
570
|
+
case 4:
|
|
571
|
+
res = _context6.sent;
|
|
572
|
+
_context6.next = 5;
|
|
573
|
+
return extractImageUrls(res.url);
|
|
574
|
+
case 5:
|
|
575
|
+
list = _context6.sent;
|
|
576
|
+
console.log('list---', list);
|
|
577
|
+
return _context6.abrupt("return", list[0]);
|
|
578
|
+
case 6:
|
|
528
579
|
case "end":
|
|
529
|
-
return
|
|
580
|
+
return _context6.stop();
|
|
530
581
|
}
|
|
531
|
-
},
|
|
582
|
+
}, _callee6);
|
|
532
583
|
}));
|
|
533
|
-
return function
|
|
534
|
-
return
|
|
584
|
+
return function getViewUrl(_x4) {
|
|
585
|
+
return _ref7.apply(this, arguments);
|
|
535
586
|
};
|
|
536
587
|
}();
|
|
537
588
|
useEffect(function () {
|
|
538
589
|
if (fileId) {
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
console.log('imgUrl', res);
|
|
542
|
-
setThumbnail(res);
|
|
543
|
-
});
|
|
590
|
+
getViewUrl(fileId).then(function (url) {
|
|
591
|
+
setThumbnail(url);
|
|
544
592
|
});
|
|
545
593
|
}
|
|
546
594
|
}, [fileId]);
|
|
@@ -557,7 +605,11 @@ var FileItem = function FileItem(_ref) {
|
|
|
557
605
|
className: "filed"
|
|
558
606
|
}, /*#__PURE__*/React.createElement("img", {
|
|
559
607
|
className: "small_img",
|
|
560
|
-
|
|
608
|
+
style: !thumbnail ? {
|
|
609
|
+
width: '30px',
|
|
610
|
+
height: '30px'
|
|
611
|
+
} : {},
|
|
612
|
+
src: thumbnail || fileIcon,
|
|
561
613
|
alt: ""
|
|
562
614
|
}), !disabled && /*#__PURE__*/React.createElement("img", {
|
|
563
615
|
className: "del",
|
package/es/style.js
CHANGED
|
@@ -1,87 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
exports.__esModule = true;
|
|
5
4
|
exports.dataURLtoBlob = dataURLtoBlob;
|
|
6
5
|
exports.getBlob = getBlob;
|
|
7
6
|
exports.getFileExtension = getFileExtension;
|
|
8
|
-
exports.
|
|
7
|
+
exports.initFormat = void 0;
|
|
9
8
|
exports.upload = upload;
|
|
10
9
|
exports.uploadFilePromise = uploadFilePromise;
|
|
11
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
var pdfjsLib = _interopRequireWildcard(require("pdfjs-dist/build/pdf"));
|
|
14
|
-
require("pdfjs-dist/build/pdf.worker.entry");
|
|
15
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
10
|
// import apiConfig from '@/config/api.cofig'
|
|
17
11
|
|
|
18
|
-
// utils/pdfToImage.js
|
|
19
|
-
|
|
20
|
-
// 配置 worker(必须!)
|
|
21
|
-
if (typeof window !== 'undefined') {
|
|
22
|
-
pdfjsLib.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/build/pdf.worker.entry');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 将 PDF URL 转换为图片 URL
|
|
27
|
-
* @param {string} pdfUrl - PDF 文件的 URL
|
|
28
|
-
* @param {number} [page=1] - 页码,默认第1页
|
|
29
|
-
* @param {number} [scale=0.5] - 缩放比例,默认0.5
|
|
30
|
-
* @param {string} [imageFormat='image/jpeg'] - 图片格式
|
|
31
|
-
* @param {number} [imageQuality=0.8] - 图片质量(0-1)
|
|
32
|
-
* @returns {Promise<string>} 返回图片的 Data URL
|
|
33
|
-
*/
|
|
34
|
-
var pdfToImageUrl = exports.pdfToImageUrl = /*#__PURE__*/function () {
|
|
35
|
-
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(pdfUrl, scale) {
|
|
36
|
-
return _regenerator["default"].wrap(function (_context) {
|
|
37
|
-
while (1) switch (_context.prev = _context.next) {
|
|
38
|
-
case 0:
|
|
39
|
-
if (scale === void 0) {
|
|
40
|
-
scale = 0.5;
|
|
41
|
-
}
|
|
42
|
-
console.log('pdfToImageUrl----', pdfUrl);
|
|
43
|
-
pdfjsLib.getDocument(pdfUrl).promise.then(function (pdf) {
|
|
44
|
-
console.log('获取PDF文件成功', pdf);
|
|
45
|
-
// 获取第一页
|
|
46
|
-
return pdf.getPage(1);
|
|
47
|
-
}).then(function (page) {
|
|
48
|
-
console.log('获取PDF页面成功', page);
|
|
49
|
-
// 设置缩略图的缩放比例 (0.5 表示缩小到一半尺寸)
|
|
50
|
-
var viewport = page.getViewport({
|
|
51
|
-
scale: scale
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
// 创建Canvas元素
|
|
55
|
-
var canvas = document.createElement('canvas');
|
|
56
|
-
var context = canvas.getContext('2d');
|
|
57
|
-
canvas.height = viewport.height;
|
|
58
|
-
canvas.width = viewport.width;
|
|
59
|
-
|
|
60
|
-
// 将PDF页面渲染到Canvas上
|
|
61
|
-
var renderContext = {
|
|
62
|
-
canvasContext: context,
|
|
63
|
-
viewport: viewport
|
|
64
|
-
};
|
|
65
|
-
page.render(renderContext).promise.then(function () {
|
|
66
|
-
// 将Canvas转换为图片URL
|
|
67
|
-
var thumbnail = canvas.toDataURL();
|
|
68
|
-
console.log('获取图片成功', thumbnail);
|
|
69
|
-
return thumbnail;
|
|
70
|
-
});
|
|
71
|
-
})["catch"](function (error) {
|
|
72
|
-
console.error('Error generating thumbnail:', error);
|
|
73
|
-
});
|
|
74
|
-
case 1:
|
|
75
|
-
case "end":
|
|
76
|
-
return _context.stop();
|
|
77
|
-
}
|
|
78
|
-
}, _callee);
|
|
79
|
-
}));
|
|
80
|
-
return function pdfToImageUrl(_x, _x2) {
|
|
81
|
-
return _ref.apply(this, arguments);
|
|
82
|
-
};
|
|
83
|
-
}();
|
|
84
|
-
|
|
85
12
|
// 下载文件
|
|
86
13
|
function getBlob(url) {
|
|
87
14
|
return new Promise(function (resolve, reject) {
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports["default"] = void 0;
|
|
6
|
+
var _balloon = _interopRequireDefault(require("@alifd/next/lib/balloon"));
|
|
6
7
|
var _react = _interopRequireDefault(require("react"));
|
|
7
8
|
var _item = _interopRequireDefault(require("./item"));
|
|
8
9
|
require("./index.scss");
|
|
10
|
+
var Tooltip = _balloon["default"].Tooltip;
|
|
9
11
|
var MATERIAL_TYPE = {
|
|
10
12
|
1: '原件',
|
|
11
13
|
2: '复印件',
|
|
@@ -115,6 +117,8 @@ var FileList = function FileList(_ref) {
|
|
|
115
117
|
if (subIndex !== undefined) {
|
|
116
118
|
// value为空,说明删除了
|
|
117
119
|
if (!value) {
|
|
120
|
+
oneLevelItem.subMaterials[subIndex].isSmart = false;
|
|
121
|
+
oneLevelItem.subMaterials[subIndex].isShareFile = false;
|
|
118
122
|
// 如果当前文件list中只有一个文件,还得补个空的
|
|
119
123
|
if (oneLevelItem.subMaterials[subIndex].fileList.length === 1) {
|
|
120
124
|
oneLevelItem.subMaterials[subIndex].fileList = [{
|
|
@@ -135,6 +139,8 @@ var FileList = function FileList(_ref) {
|
|
|
135
139
|
}
|
|
136
140
|
} else {
|
|
137
141
|
if (!value) {
|
|
142
|
+
oneLevelItem.isSmart = false;
|
|
143
|
+
oneLevelItem.isShareFile = false;
|
|
138
144
|
oneLevelItem.fileList.splice(fileIndex, 1);
|
|
139
145
|
if (oneLevelItem.fileList.length === 0) {
|
|
140
146
|
oneLevelItem.fileList.push({
|
|
@@ -155,22 +161,52 @@ var FileList = function FileList(_ref) {
|
|
|
155
161
|
console.log('fileList--------res', fileList);
|
|
156
162
|
valChange(fileList);
|
|
157
163
|
};
|
|
164
|
+
var trigger = function trigger(child) {
|
|
165
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
166
|
+
className: "tag",
|
|
167
|
+
style: {
|
|
168
|
+
backgroundColor: child.isSmart ? '#1678FF' : child.isShareFile ? '#15BC83' : '#9570F7'
|
|
169
|
+
}
|
|
170
|
+
}, child.isSmart ? '智' : child.isShareFile ? '享' : '自');
|
|
171
|
+
};
|
|
158
172
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
173
|
className: "file_list",
|
|
160
174
|
style: style
|
|
161
175
|
}, fileList.map(function (item, index) {
|
|
162
176
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
163
177
|
className: "file_level_one"
|
|
178
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
179
|
+
className: "file_level_one_title"
|
|
164
180
|
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
165
181
|
className: "name_level_one"
|
|
166
|
-
}, convertNumbersToChinese(index + 1), item.materialName), item.subMaterials && item.subMaterials.length > 0
|
|
182
|
+
}, convertNumbersToChinese(index + 1), item.materialName), !(item.subMaterials && item.subMaterials.length > 0) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
183
|
+
className: "required"
|
|
184
|
+
}, "*"), /*#__PURE__*/_react["default"].createElement(_balloon["default"], {
|
|
185
|
+
v2: true,
|
|
186
|
+
trigger: trigger(item),
|
|
187
|
+
triggerType: "click",
|
|
188
|
+
align: "tl",
|
|
189
|
+
title: "",
|
|
190
|
+
delay: 20
|
|
191
|
+
}, item.isSmart ? '本材料为智能生成材料,系统将根据您填写的信息自动生成申报材料。' : item.isShareFile ? '本材料为共享材料,数据由大数据共享获取,无需用户自行准备。' : '需要用户自行准备申报材料'))), item.subMaterials && item.subMaterials.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
167
192
|
className: "file_level_two"
|
|
168
193
|
}, item.subMaterials.map(function (child, subIndex) {
|
|
169
194
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
170
195
|
className: "file_level_two_item"
|
|
196
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
197
|
+
className: "file_level_two_title"
|
|
171
198
|
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
172
199
|
className: "name_level_two"
|
|
173
|
-
}, subIndex + 1, "\u3001", child.materialName), /*#__PURE__*/_react["default"].createElement("
|
|
200
|
+
}, subIndex + 1, "\u3001", child.materialName), /*#__PURE__*/_react["default"].createElement("span", {
|
|
201
|
+
className: "required"
|
|
202
|
+
}, "*"), /*#__PURE__*/_react["default"].createElement(_balloon["default"], {
|
|
203
|
+
v2: true,
|
|
204
|
+
trigger: trigger(child),
|
|
205
|
+
triggerType: "click",
|
|
206
|
+
align: "tl",
|
|
207
|
+
title: "",
|
|
208
|
+
delay: 20
|
|
209
|
+
}, child.isSmart ? '本材料为智能生成材料,系统将根据您填写的信息自动生成申报材料。' : child.isShareFile ? '本材料为共享材料,数据由大数据共享获取,无需用户自行准备。' : '需要用户自行准备申报材料')), /*#__PURE__*/_react["default"].createElement("p", {
|
|
174
210
|
className: "tip"
|
|
175
211
|
}, getTipTextForSubMaterial(item, index, subIndex)), child.fileList.map(function (file, i) {
|
|
176
212
|
return /*#__PURE__*/_react["default"].createElement(_item["default"], {
|
|
@@ -11,12 +11,31 @@
|
|
|
11
11
|
margin-top: 8px;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
.required {
|
|
15
|
+
color: red;
|
|
16
|
+
margin-right: 8px;
|
|
17
|
+
margin-left: 2px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.tag {
|
|
21
|
+
border-radius: 4px;
|
|
22
|
+
padding: 0 4px;
|
|
23
|
+
font-size: 12px;
|
|
24
|
+
color: #FFFFFF;
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
.name_level_one {
|
|
15
28
|
font-size: 15px;
|
|
16
29
|
font-weight: 500;
|
|
17
30
|
color: #333333;
|
|
31
|
+
margin-bottom: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.file_level_one_title {
|
|
18
35
|
padding-bottom: 16px;
|
|
19
36
|
border-bottom: 1px solid #EEEEEE;
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
20
39
|
}
|
|
21
40
|
|
|
22
41
|
.file_level_two {
|
|
@@ -24,12 +43,18 @@
|
|
|
24
43
|
|
|
25
44
|
.file_level_two_item {
|
|
26
45
|
margin-bottom: 16px;
|
|
46
|
+
|
|
47
|
+
.file_level_two_title {
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
}
|
|
27
51
|
}
|
|
28
52
|
|
|
29
53
|
.name_level_two {
|
|
30
54
|
font-size: 14px;
|
|
31
55
|
font-weight: 500;
|
|
32
56
|
color: #323232;
|
|
57
|
+
margin-bottom: 0;
|
|
33
58
|
}
|
|
34
59
|
}
|
|
35
60
|
}
|