ydb-components-material 0.1.59 → 0.1.61
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.2eefbea7.js +1 -0
- package/build/docs/{umi.41d789c9.css → umi.a6c45e4f.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 +6 -1
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +6 -1
- package/dist/BizComps.css +1 -1
- package/dist/BizComps.js +5 -5
- package/dist/BizComps.js.map +1 -1
- package/es/components/address-cascade/index.js +2 -0
- package/es/components/file-item/checkPoint.d.ts +3 -0
- package/es/components/file-item/checkPoint.js +157 -0
- package/es/components/file-item/checkPoint.scss +120 -0
- package/es/components/file-item/index.d.ts +1 -1
- package/es/components/file-item/index.js +13 -4
- package/lib/components/address-cascade/index.js +2 -0
- package/lib/components/file-item/checkPoint.d.ts +3 -0
- package/lib/components/file-item/checkPoint.js +162 -0
- package/lib/components/file-item/checkPoint.scss +120 -0
- package/lib/components/file-item/index.d.ts +1 -1
- package/lib/components/file-item/index.js +13 -4
- package/lowcode/address-cascader/meta.ts +13 -0
- package/lowcode/file-item/meta.ts +13 -14
- package/lowcode_es/address-cascader/meta.js +12 -0
- package/lowcode_es/file-item/meta.js +13 -14
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/address-cascader/meta.js +12 -0
- package/lowcode_lib/file-item/meta.js +13 -14
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -3
- package/build/docs/umi.66c5edda.js +0 -1
- package/es/components/address-cascade/index.d.ts +0 -11
- package/lib/components/address-cascade/index.d.ts +0 -11
|
@@ -8,12 +8,14 @@ var AddressCascader = function AddressCascader(_ref) {
|
|
|
8
8
|
var _ref$style = _ref.style,
|
|
9
9
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
10
10
|
disabled = _ref.disabled,
|
|
11
|
+
initValue = _ref.initValue,
|
|
11
12
|
valChange = _ref.valChange;
|
|
12
13
|
useEffect(function () {}, []);
|
|
13
14
|
return /*#__PURE__*/React.createElement("div", {
|
|
14
15
|
className: "address_cascader",
|
|
15
16
|
style: style
|
|
16
17
|
}, /*#__PURE__*/React.createElement(_Cascader, {
|
|
18
|
+
value: initValue,
|
|
17
19
|
style: {
|
|
18
20
|
width: '100%'
|
|
19
21
|
},
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import _Message from "@alifd/next/es/message";
|
|
2
|
+
import { React, useState, useEffect, useRef } from 'react';
|
|
3
|
+
import { CheckCircleFilled } from '@ant-design/icons';
|
|
4
|
+
import "./checkPoint.scss";
|
|
5
|
+
export default function CheckPoint(props) {
|
|
6
|
+
var _resultData$at, _resultData$at2;
|
|
7
|
+
var checkPointData = props.checkPointData,
|
|
8
|
+
handleClose = props.handleClose;
|
|
9
|
+
var _useState = useState(0),
|
|
10
|
+
resIndex = _useState[0],
|
|
11
|
+
setResIndex = _useState[1];
|
|
12
|
+
var _useState2 = useState(null),
|
|
13
|
+
resIndexData = _useState2[0],
|
|
14
|
+
setResIndexData = _useState2[1];
|
|
15
|
+
var _useState3 = useState([]),
|
|
16
|
+
resultData = _useState3[0],
|
|
17
|
+
setResultData = _useState3[1];
|
|
18
|
+
var _useState4 = useState(0),
|
|
19
|
+
pageHeight = _useState4[0],
|
|
20
|
+
setPageHeight = _useState4[1];
|
|
21
|
+
var imgRef = useRef();
|
|
22
|
+
var initData = function initData() {
|
|
23
|
+
var fileUrl = checkPointData.fileUrl,
|
|
24
|
+
_checkPointData$annot = checkPointData.annotations,
|
|
25
|
+
annotations = _checkPointData$annot === void 0 ? [] : _checkPointData$annot;
|
|
26
|
+
setTimeout(function () {
|
|
27
|
+
var iframe = document.getElementById('file_check_point');
|
|
28
|
+
iframe.src = fileUrl + "#toolbar=0";
|
|
29
|
+
}, 500);
|
|
30
|
+
setResIndexData(annotations[0]);
|
|
31
|
+
// 其中的page可能是乱序的,所以先排序一下
|
|
32
|
+
setResultData(annotations.sort(function (a, b) {
|
|
33
|
+
return a.page - b.page;
|
|
34
|
+
}));
|
|
35
|
+
var clientWidth = document.documentElement.clientWidth;
|
|
36
|
+
var _annotations$ = annotations[0],
|
|
37
|
+
scrollWidth = _annotations$.scrollWidth,
|
|
38
|
+
scrollHeight = _annotations$.scrollHeight;
|
|
39
|
+
var scale = clientWidth / scrollWidth;
|
|
40
|
+
setPageHeight(scrollHeight * scale);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// 获取标识的位置和大小 [方法]
|
|
44
|
+
var getTipDotStyle = function getTipDotStyle(item) {
|
|
45
|
+
var width = item.width,
|
|
46
|
+
height = item.height,
|
|
47
|
+
x = item.x,
|
|
48
|
+
y = item.y,
|
|
49
|
+
scrollWidth = item.scrollWidth,
|
|
50
|
+
scrollHeight = item.scrollHeight,
|
|
51
|
+
page = item.page;
|
|
52
|
+
console.log(width, height, x, y);
|
|
53
|
+
var img = imgRef.current;
|
|
54
|
+
console.log(img, 'refs');
|
|
55
|
+
var clientWidth = document.documentElement.clientWidth;
|
|
56
|
+
console.log('clientWidth-----', clientWidth);
|
|
57
|
+
|
|
58
|
+
// 算出一个系数,来动态生成下面的边框样式
|
|
59
|
+
var scale = clientWidth / scrollWidth;
|
|
60
|
+
|
|
61
|
+
// console.log('原始宽高', sourceImgWidth, sourceImgHeight);
|
|
62
|
+
console.log('原始宽高', scrollWidth, scrollHeight);
|
|
63
|
+
console.log('缩放系数', scale, scale);
|
|
64
|
+
return {
|
|
65
|
+
width: width * scale + 'px',
|
|
66
|
+
height: height * scale + 'px',
|
|
67
|
+
left: x * scale + 'px',
|
|
68
|
+
top: (page - 1) * pageHeight + y * scale + 'px'
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// 上一项(prev),下一项(next) [按钮]
|
|
73
|
+
var handleSwitch = function handleSwitch(state) {
|
|
74
|
+
if (state === 'next' && resIndex === resultData.length - 1) return _Message.notice('没有下一项了');
|
|
75
|
+
if (state === 'prev' && resIndex === 0) return _Message.notice('没有上一项了');
|
|
76
|
+
if (state === 'next') {
|
|
77
|
+
setResIndex(resIndex + 1);
|
|
78
|
+
setResIndexData(resultData[resIndex + 1]);
|
|
79
|
+
}
|
|
80
|
+
if (state === 'prev') {
|
|
81
|
+
setResIndex(resIndex - 1);
|
|
82
|
+
setResIndexData(resultData[resIndex - 1]);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
var checkOneDot = function checkOneDot(item, index) {
|
|
86
|
+
setResIndex(index);
|
|
87
|
+
setResIndexData(item);
|
|
88
|
+
};
|
|
89
|
+
useEffect(function () {
|
|
90
|
+
if (checkPointData) {
|
|
91
|
+
initData();
|
|
92
|
+
}
|
|
93
|
+
}, [checkPointData]);
|
|
94
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
className: "keyPoint-container"
|
|
96
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
97
|
+
className: "tipDot-content",
|
|
98
|
+
style: {
|
|
99
|
+
height: ((_resultData$at = resultData.at(-1)) === null || _resultData$at === void 0 ? void 0 : _resultData$at.page) * pageHeight + 'px'
|
|
100
|
+
}
|
|
101
|
+
}, resultData.map(function (item, index) {
|
|
102
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: "tip-item " + (index === resIndex ? 'active' : ''),
|
|
104
|
+
key: index,
|
|
105
|
+
onClick: function onClick() {
|
|
106
|
+
return checkOneDot(item, index);
|
|
107
|
+
},
|
|
108
|
+
style: getTipDotStyle(item)
|
|
109
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
110
|
+
className: "num " + (index === resIndex ? 'active' : '')
|
|
111
|
+
}, index + 1));
|
|
112
|
+
})), resIndexData && /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
className: "result-outter"
|
|
114
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
115
|
+
className: "result-card"
|
|
116
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
117
|
+
className: "result-title"
|
|
118
|
+
}, resIndex + 1, "\u3001", resIndexData.text), /*#__PURE__*/React.createElement("div", {
|
|
119
|
+
className: "result-info"
|
|
120
|
+
}, /*#__PURE__*/React.createElement(CheckCircleFilled, {
|
|
121
|
+
color: "#15bc83",
|
|
122
|
+
size: "20",
|
|
123
|
+
style: {
|
|
124
|
+
color: '#15bc83',
|
|
125
|
+
fontSize: '20px'
|
|
126
|
+
}
|
|
127
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
128
|
+
className: "result-text"
|
|
129
|
+
}, resIndexData.reviewNotes)))), /*#__PURE__*/React.createElement("div", {
|
|
130
|
+
className: "bottom-btn"
|
|
131
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
132
|
+
className: "btn"
|
|
133
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
134
|
+
onClick: handleClose
|
|
135
|
+
}, "\u8FD4\u56DE")), /*#__PURE__*/React.createElement("div", {
|
|
136
|
+
className: "btn"
|
|
137
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
onClick: function onClick() {
|
|
139
|
+
return handleSwitch('prev');
|
|
140
|
+
}
|
|
141
|
+
}, "\u4E0A\u4E00\u9879")), /*#__PURE__*/React.createElement("div", {
|
|
142
|
+
className: "btn btn-blue"
|
|
143
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
144
|
+
onClick: function onClick() {
|
|
145
|
+
return handleSwitch('next');
|
|
146
|
+
}
|
|
147
|
+
}, "\u4E0B\u4E00\u9879"))), /*#__PURE__*/React.createElement("iframe", {
|
|
148
|
+
ref: imgRef,
|
|
149
|
+
id: "file_check_point",
|
|
150
|
+
frameBorder: "0",
|
|
151
|
+
height: "100%",
|
|
152
|
+
width: "100%",
|
|
153
|
+
style: {
|
|
154
|
+
height: ((_resultData$at2 = resultData.at(-1)) === null || _resultData$at2 === void 0 ? void 0 : _resultData$at2.page) * pageHeight + 'px'
|
|
155
|
+
}
|
|
156
|
+
})));
|
|
157
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
.keyPoint-container {
|
|
2
|
+
// position: sticky;
|
|
3
|
+
height: 100vh;
|
|
4
|
+
// margin-top: -56px;
|
|
5
|
+
width: 100vw;
|
|
6
|
+
position: absolute;
|
|
7
|
+
z-index: 999;
|
|
8
|
+
left: 0;
|
|
9
|
+
top: 0;
|
|
10
|
+
// background: #ffffff;
|
|
11
|
+
// padding-top: 100px;
|
|
12
|
+
#file_check_point {
|
|
13
|
+
overflow: visible !important;
|
|
14
|
+
overflow-clip-margin: unset !important;
|
|
15
|
+
}
|
|
16
|
+
.tipDot-content{
|
|
17
|
+
// height: 100vh;
|
|
18
|
+
width: 100%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
// overflow: scroll;
|
|
23
|
+
.tip-item{
|
|
24
|
+
position: absolute;
|
|
25
|
+
border-radius: 2px;
|
|
26
|
+
border: 1px solid #15BC83;
|
|
27
|
+
background: rgba(21, 188, 131, 0.1);
|
|
28
|
+
&.active {
|
|
29
|
+
background: rgba(247, 98, 93, 0.1);
|
|
30
|
+
border: 1px solid #F7625D;
|
|
31
|
+
}
|
|
32
|
+
.num{
|
|
33
|
+
width: 20px;
|
|
34
|
+
height: 20px;
|
|
35
|
+
border-radius: 50%;
|
|
36
|
+
font-size: 10px;
|
|
37
|
+
display: flex;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
align-items: center;
|
|
40
|
+
color: #ffffff;
|
|
41
|
+
margin-left: -20px;
|
|
42
|
+
background: #15BC83;
|
|
43
|
+
&.active {
|
|
44
|
+
background: #F7625D;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
.result-outter {
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
padding: 0 24px;
|
|
53
|
+
// border: 1px solid red;
|
|
54
|
+
position: fixed;
|
|
55
|
+
width: 100%;
|
|
56
|
+
bottom: 65px;
|
|
57
|
+
left: 0;
|
|
58
|
+
.result-card {
|
|
59
|
+
border-radius: 10px;
|
|
60
|
+
padding: 16px;
|
|
61
|
+
background: #ffffff;
|
|
62
|
+
border: 1px solid #ddd;
|
|
63
|
+
box-shadow: 0px 4px 10px 0px rgba(177, 188, 200, 0.25);
|
|
64
|
+
.result-title {
|
|
65
|
+
color: #333;
|
|
66
|
+
font-size: 14px;
|
|
67
|
+
margin-bottom: 8px;
|
|
68
|
+
}
|
|
69
|
+
.result-info{
|
|
70
|
+
font-size: 14px;
|
|
71
|
+
margin-bottom: 10px;
|
|
72
|
+
display: flex;
|
|
73
|
+
justify-content: flex-start;
|
|
74
|
+
align-items: center;
|
|
75
|
+
gap: 5px;
|
|
76
|
+
// 提示类型: error/judge/pass
|
|
77
|
+
.result-text{
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
.bottom-btn {
|
|
84
|
+
box-sizing: border-box;
|
|
85
|
+
position: fixed;
|
|
86
|
+
bottom: 0;
|
|
87
|
+
left: 0;
|
|
88
|
+
width: 100%;
|
|
89
|
+
background-color: #fff;
|
|
90
|
+
padding: 11px 0;
|
|
91
|
+
display: flex;
|
|
92
|
+
box-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.1);
|
|
93
|
+
z-index: 200;
|
|
94
|
+
.btn {
|
|
95
|
+
margin: 0 10px;
|
|
96
|
+
flex: 1;
|
|
97
|
+
color: #323233;
|
|
98
|
+
background-color: #fff;
|
|
99
|
+
border-color: #ebedf0;
|
|
100
|
+
border-width: 1px;
|
|
101
|
+
border-style: solid;
|
|
102
|
+
border-radius: 100px;
|
|
103
|
+
padding: 0 12px;
|
|
104
|
+
font-size: 14px;
|
|
105
|
+
height: 40px;
|
|
106
|
+
position: relative;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: row;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
flex-direction: row;
|
|
113
|
+
}
|
|
114
|
+
.btn-blue {
|
|
115
|
+
color: white;
|
|
116
|
+
border-width: 0px;
|
|
117
|
+
background-image: linear-gradient(rgb(22, 120, 255), rgb(118, 173, 250));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -9,7 +9,6 @@ export interface FileItemProps {
|
|
|
9
9
|
fileId: string;
|
|
10
10
|
fileType: string;
|
|
11
11
|
guideImg: string;
|
|
12
|
-
checkImg: string;
|
|
13
12
|
signatureEnable: boolean;
|
|
14
13
|
signEnable: boolean;
|
|
15
14
|
token: string;
|
|
@@ -25,6 +24,7 @@ export interface FileItemProps {
|
|
|
25
24
|
baseUrl: string;
|
|
26
25
|
isPC?: boolean;
|
|
27
26
|
disabled?: boolean;
|
|
27
|
+
checkPoint?: object;
|
|
28
28
|
del: () => void;
|
|
29
29
|
valChange: (value: any) => void;
|
|
30
30
|
download: (value: any) => void;
|
|
@@ -18,12 +18,12 @@ import SignPage from "./sign";
|
|
|
18
18
|
import SealPage from "./seal";
|
|
19
19
|
import { getMaterialLib } from "../../api";
|
|
20
20
|
import { initFormat, getFileExtension } from "./file.js";
|
|
21
|
+
import CheckPoint from "./checkPoint";
|
|
21
22
|
import "./index.scss";
|
|
22
23
|
var RadioGroup = _Radio.Group;
|
|
23
24
|
var FileItem = function FileItem(_ref) {
|
|
24
25
|
var fileUrl = _ref.fileUrl,
|
|
25
26
|
guideImg = _ref.guideImg,
|
|
26
|
-
checkImg = _ref.checkImg,
|
|
27
27
|
fileId = _ref.fileId,
|
|
28
28
|
signatureEnable = _ref.signatureEnable,
|
|
29
29
|
signEnable = _ref.signEnable,
|
|
@@ -42,6 +42,7 @@ var FileItem = function FileItem(_ref) {
|
|
|
42
42
|
baseUrl = _ref.baseUrl,
|
|
43
43
|
isPC = _ref.isPC,
|
|
44
44
|
disabled = _ref.disabled,
|
|
45
|
+
checkPoint = _ref.checkPoint,
|
|
45
46
|
valChange = _ref.valChange,
|
|
46
47
|
download = _ref.download,
|
|
47
48
|
del = _ref.del;
|
|
@@ -116,6 +117,9 @@ var FileItem = function FileItem(_ref) {
|
|
|
116
117
|
var _useState12 = useState(false),
|
|
117
118
|
isShowGuide = _useState12[0],
|
|
118
119
|
setIsShowGuide = _useState12[1];
|
|
120
|
+
var _useState13 = useState(null),
|
|
121
|
+
checkPointData = _useState13[0],
|
|
122
|
+
setCheckPointData = _useState13[1];
|
|
119
123
|
var showViewImg = function showViewImg(url) {
|
|
120
124
|
setIsShowView(true);
|
|
121
125
|
setViewImg(url);
|
|
@@ -404,10 +408,10 @@ var FileItem = function FileItem(_ref) {
|
|
|
404
408
|
}, guideImg && /*#__PURE__*/React.createElement("div", {
|
|
405
409
|
className: "img_btn",
|
|
406
410
|
onClick: showGuide
|
|
407
|
-
}, "\u7B7E\u7AE0\u5F15\u5BFC"),
|
|
411
|
+
}, "\u7B7E\u7AE0\u5F15\u5BFC"), checkPoint && /*#__PURE__*/React.createElement("div", {
|
|
408
412
|
className: "img_btn",
|
|
409
413
|
onClick: function onClick() {
|
|
410
|
-
return
|
|
414
|
+
return setCheckPointData(checkPoint);
|
|
411
415
|
}
|
|
412
416
|
}, "\u5BA1\u67E5\u8981\u70B9")), fileUrl && !disabled ?
|
|
413
417
|
/*#__PURE__*/
|
|
@@ -575,7 +579,12 @@ var FileItem = function FileItem(_ref) {
|
|
|
575
579
|
frameborder: "0",
|
|
576
580
|
height: "90%",
|
|
577
581
|
width: "100%"
|
|
578
|
-
}))
|
|
582
|
+
})), checkPointData && /*#__PURE__*/React.createElement(CheckPoint, {
|
|
583
|
+
checkPointData: checkPointData,
|
|
584
|
+
handleClose: function handleClose() {
|
|
585
|
+
return setCheckPointData(null);
|
|
586
|
+
}
|
|
587
|
+
}));
|
|
579
588
|
};
|
|
580
589
|
FileItem.displayName = 'FileItem';
|
|
581
590
|
export default FileItem;
|
|
@@ -14,12 +14,14 @@ var AddressCascader = function AddressCascader(_ref) {
|
|
|
14
14
|
var _ref$style = _ref.style,
|
|
15
15
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
16
16
|
disabled = _ref.disabled,
|
|
17
|
+
initValue = _ref.initValue,
|
|
17
18
|
valChange = _ref.valChange;
|
|
18
19
|
(0, _react.useEffect)(function () {}, []);
|
|
19
20
|
return /*#__PURE__*/React.createElement("div", {
|
|
20
21
|
className: "address_cascader",
|
|
21
22
|
style: style
|
|
22
23
|
}, /*#__PURE__*/React.createElement(_cascader["default"], {
|
|
24
|
+
value: initValue,
|
|
23
25
|
style: {
|
|
24
26
|
width: '100%'
|
|
25
27
|
},
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports["default"] = CheckPoint;
|
|
6
|
+
var _message = _interopRequireDefault(require("@alifd/next/lib/message"));
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _icons = require("@ant-design/icons");
|
|
9
|
+
require("./checkPoint.scss");
|
|
10
|
+
function CheckPoint(props) {
|
|
11
|
+
var _resultData$at, _resultData$at2;
|
|
12
|
+
var checkPointData = props.checkPointData,
|
|
13
|
+
handleClose = props.handleClose;
|
|
14
|
+
var _useState = (0, _react.useState)(0),
|
|
15
|
+
resIndex = _useState[0],
|
|
16
|
+
setResIndex = _useState[1];
|
|
17
|
+
var _useState2 = (0, _react.useState)(null),
|
|
18
|
+
resIndexData = _useState2[0],
|
|
19
|
+
setResIndexData = _useState2[1];
|
|
20
|
+
var _useState3 = (0, _react.useState)([]),
|
|
21
|
+
resultData = _useState3[0],
|
|
22
|
+
setResultData = _useState3[1];
|
|
23
|
+
var _useState4 = (0, _react.useState)(0),
|
|
24
|
+
pageHeight = _useState4[0],
|
|
25
|
+
setPageHeight = _useState4[1];
|
|
26
|
+
var imgRef = (0, _react.useRef)();
|
|
27
|
+
var initData = function initData() {
|
|
28
|
+
var fileUrl = checkPointData.fileUrl,
|
|
29
|
+
_checkPointData$annot = checkPointData.annotations,
|
|
30
|
+
annotations = _checkPointData$annot === void 0 ? [] : _checkPointData$annot;
|
|
31
|
+
setTimeout(function () {
|
|
32
|
+
var iframe = document.getElementById('file_check_point');
|
|
33
|
+
iframe.src = fileUrl + "#toolbar=0";
|
|
34
|
+
}, 500);
|
|
35
|
+
setResIndexData(annotations[0]);
|
|
36
|
+
// 其中的page可能是乱序的,所以先排序一下
|
|
37
|
+
setResultData(annotations.sort(function (a, b) {
|
|
38
|
+
return a.page - b.page;
|
|
39
|
+
}));
|
|
40
|
+
var clientWidth = document.documentElement.clientWidth;
|
|
41
|
+
var _annotations$ = annotations[0],
|
|
42
|
+
scrollWidth = _annotations$.scrollWidth,
|
|
43
|
+
scrollHeight = _annotations$.scrollHeight;
|
|
44
|
+
var scale = clientWidth / scrollWidth;
|
|
45
|
+
setPageHeight(scrollHeight * scale);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// 获取标识的位置和大小 [方法]
|
|
49
|
+
var getTipDotStyle = function getTipDotStyle(item) {
|
|
50
|
+
var width = item.width,
|
|
51
|
+
height = item.height,
|
|
52
|
+
x = item.x,
|
|
53
|
+
y = item.y,
|
|
54
|
+
scrollWidth = item.scrollWidth,
|
|
55
|
+
scrollHeight = item.scrollHeight,
|
|
56
|
+
page = item.page;
|
|
57
|
+
console.log(width, height, x, y);
|
|
58
|
+
var img = imgRef.current;
|
|
59
|
+
console.log(img, 'refs');
|
|
60
|
+
var clientWidth = document.documentElement.clientWidth;
|
|
61
|
+
console.log('clientWidth-----', clientWidth);
|
|
62
|
+
|
|
63
|
+
// 算出一个系数,来动态生成下面的边框样式
|
|
64
|
+
var scale = clientWidth / scrollWidth;
|
|
65
|
+
|
|
66
|
+
// console.log('原始宽高', sourceImgWidth, sourceImgHeight);
|
|
67
|
+
console.log('原始宽高', scrollWidth, scrollHeight);
|
|
68
|
+
console.log('缩放系数', scale, scale);
|
|
69
|
+
return {
|
|
70
|
+
width: width * scale + 'px',
|
|
71
|
+
height: height * scale + 'px',
|
|
72
|
+
left: x * scale + 'px',
|
|
73
|
+
top: (page - 1) * pageHeight + y * scale + 'px'
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// 上一项(prev),下一项(next) [按钮]
|
|
78
|
+
var handleSwitch = function handleSwitch(state) {
|
|
79
|
+
if (state === 'next' && resIndex === resultData.length - 1) return _message["default"].notice('没有下一项了');
|
|
80
|
+
if (state === 'prev' && resIndex === 0) return _message["default"].notice('没有上一项了');
|
|
81
|
+
if (state === 'next') {
|
|
82
|
+
setResIndex(resIndex + 1);
|
|
83
|
+
setResIndexData(resultData[resIndex + 1]);
|
|
84
|
+
}
|
|
85
|
+
if (state === 'prev') {
|
|
86
|
+
setResIndex(resIndex - 1);
|
|
87
|
+
setResIndexData(resultData[resIndex - 1]);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
var checkOneDot = function checkOneDot(item, index) {
|
|
91
|
+
setResIndex(index);
|
|
92
|
+
setResIndexData(item);
|
|
93
|
+
};
|
|
94
|
+
(0, _react.useEffect)(function () {
|
|
95
|
+
if (checkPointData) {
|
|
96
|
+
initData();
|
|
97
|
+
}
|
|
98
|
+
}, [checkPointData]);
|
|
99
|
+
return /*#__PURE__*/_react.React.createElement("div", null, /*#__PURE__*/_react.React.createElement("div", {
|
|
100
|
+
className: "keyPoint-container"
|
|
101
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
102
|
+
className: "tipDot-content",
|
|
103
|
+
style: {
|
|
104
|
+
height: ((_resultData$at = resultData.at(-1)) === null || _resultData$at === void 0 ? void 0 : _resultData$at.page) * pageHeight + 'px'
|
|
105
|
+
}
|
|
106
|
+
}, resultData.map(function (item, index) {
|
|
107
|
+
return /*#__PURE__*/_react.React.createElement("div", {
|
|
108
|
+
className: "tip-item " + (index === resIndex ? 'active' : ''),
|
|
109
|
+
key: index,
|
|
110
|
+
onClick: function onClick() {
|
|
111
|
+
return checkOneDot(item, index);
|
|
112
|
+
},
|
|
113
|
+
style: getTipDotStyle(item)
|
|
114
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
115
|
+
className: "num " + (index === resIndex ? 'active' : '')
|
|
116
|
+
}, index + 1));
|
|
117
|
+
})), resIndexData && /*#__PURE__*/_react.React.createElement("div", {
|
|
118
|
+
className: "result-outter"
|
|
119
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
120
|
+
className: "result-card"
|
|
121
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
122
|
+
className: "result-title"
|
|
123
|
+
}, resIndex + 1, "\u3001", resIndexData.text), /*#__PURE__*/_react.React.createElement("div", {
|
|
124
|
+
className: "result-info"
|
|
125
|
+
}, /*#__PURE__*/_react.React.createElement(_icons.CheckCircleFilled, {
|
|
126
|
+
color: "#15bc83",
|
|
127
|
+
size: "20",
|
|
128
|
+
style: {
|
|
129
|
+
color: '#15bc83',
|
|
130
|
+
fontSize: '20px'
|
|
131
|
+
}
|
|
132
|
+
}), /*#__PURE__*/_react.React.createElement("div", {
|
|
133
|
+
className: "result-text"
|
|
134
|
+
}, resIndexData.reviewNotes)))), /*#__PURE__*/_react.React.createElement("div", {
|
|
135
|
+
className: "bottom-btn"
|
|
136
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
137
|
+
className: "btn"
|
|
138
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
139
|
+
onClick: handleClose
|
|
140
|
+
}, "\u8FD4\u56DE")), /*#__PURE__*/_react.React.createElement("div", {
|
|
141
|
+
className: "btn"
|
|
142
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
143
|
+
onClick: function onClick() {
|
|
144
|
+
return handleSwitch('prev');
|
|
145
|
+
}
|
|
146
|
+
}, "\u4E0A\u4E00\u9879")), /*#__PURE__*/_react.React.createElement("div", {
|
|
147
|
+
className: "btn btn-blue"
|
|
148
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
149
|
+
onClick: function onClick() {
|
|
150
|
+
return handleSwitch('next');
|
|
151
|
+
}
|
|
152
|
+
}, "\u4E0B\u4E00\u9879"))), /*#__PURE__*/_react.React.createElement("iframe", {
|
|
153
|
+
ref: imgRef,
|
|
154
|
+
id: "file_check_point",
|
|
155
|
+
frameBorder: "0",
|
|
156
|
+
height: "100%",
|
|
157
|
+
width: "100%",
|
|
158
|
+
style: {
|
|
159
|
+
height: ((_resultData$at2 = resultData.at(-1)) === null || _resultData$at2 === void 0 ? void 0 : _resultData$at2.page) * pageHeight + 'px'
|
|
160
|
+
}
|
|
161
|
+
})));
|
|
162
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
.keyPoint-container {
|
|
2
|
+
// position: sticky;
|
|
3
|
+
height: 100vh;
|
|
4
|
+
// margin-top: -56px;
|
|
5
|
+
width: 100vw;
|
|
6
|
+
position: absolute;
|
|
7
|
+
z-index: 999;
|
|
8
|
+
left: 0;
|
|
9
|
+
top: 0;
|
|
10
|
+
// background: #ffffff;
|
|
11
|
+
// padding-top: 100px;
|
|
12
|
+
#file_check_point {
|
|
13
|
+
overflow: visible !important;
|
|
14
|
+
overflow-clip-margin: unset !important;
|
|
15
|
+
}
|
|
16
|
+
.tipDot-content{
|
|
17
|
+
// height: 100vh;
|
|
18
|
+
width: 100%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
// overflow: scroll;
|
|
23
|
+
.tip-item{
|
|
24
|
+
position: absolute;
|
|
25
|
+
border-radius: 2px;
|
|
26
|
+
border: 1px solid #15BC83;
|
|
27
|
+
background: rgba(21, 188, 131, 0.1);
|
|
28
|
+
&.active {
|
|
29
|
+
background: rgba(247, 98, 93, 0.1);
|
|
30
|
+
border: 1px solid #F7625D;
|
|
31
|
+
}
|
|
32
|
+
.num{
|
|
33
|
+
width: 20px;
|
|
34
|
+
height: 20px;
|
|
35
|
+
border-radius: 50%;
|
|
36
|
+
font-size: 10px;
|
|
37
|
+
display: flex;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
align-items: center;
|
|
40
|
+
color: #ffffff;
|
|
41
|
+
margin-left: -20px;
|
|
42
|
+
background: #15BC83;
|
|
43
|
+
&.active {
|
|
44
|
+
background: #F7625D;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
.result-outter {
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
padding: 0 24px;
|
|
53
|
+
// border: 1px solid red;
|
|
54
|
+
position: fixed;
|
|
55
|
+
width: 100%;
|
|
56
|
+
bottom: 65px;
|
|
57
|
+
left: 0;
|
|
58
|
+
.result-card {
|
|
59
|
+
border-radius: 10px;
|
|
60
|
+
padding: 16px;
|
|
61
|
+
background: #ffffff;
|
|
62
|
+
border: 1px solid #ddd;
|
|
63
|
+
box-shadow: 0px 4px 10px 0px rgba(177, 188, 200, 0.25);
|
|
64
|
+
.result-title {
|
|
65
|
+
color: #333;
|
|
66
|
+
font-size: 14px;
|
|
67
|
+
margin-bottom: 8px;
|
|
68
|
+
}
|
|
69
|
+
.result-info{
|
|
70
|
+
font-size: 14px;
|
|
71
|
+
margin-bottom: 10px;
|
|
72
|
+
display: flex;
|
|
73
|
+
justify-content: flex-start;
|
|
74
|
+
align-items: center;
|
|
75
|
+
gap: 5px;
|
|
76
|
+
// 提示类型: error/judge/pass
|
|
77
|
+
.result-text{
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
.bottom-btn {
|
|
84
|
+
box-sizing: border-box;
|
|
85
|
+
position: fixed;
|
|
86
|
+
bottom: 0;
|
|
87
|
+
left: 0;
|
|
88
|
+
width: 100%;
|
|
89
|
+
background-color: #fff;
|
|
90
|
+
padding: 11px 0;
|
|
91
|
+
display: flex;
|
|
92
|
+
box-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.1);
|
|
93
|
+
z-index: 200;
|
|
94
|
+
.btn {
|
|
95
|
+
margin: 0 10px;
|
|
96
|
+
flex: 1;
|
|
97
|
+
color: #323233;
|
|
98
|
+
background-color: #fff;
|
|
99
|
+
border-color: #ebedf0;
|
|
100
|
+
border-width: 1px;
|
|
101
|
+
border-style: solid;
|
|
102
|
+
border-radius: 100px;
|
|
103
|
+
padding: 0 12px;
|
|
104
|
+
font-size: 14px;
|
|
105
|
+
height: 40px;
|
|
106
|
+
position: relative;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: row;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
flex-direction: row;
|
|
113
|
+
}
|
|
114
|
+
.btn-blue {
|
|
115
|
+
color: white;
|
|
116
|
+
border-width: 0px;
|
|
117
|
+
background-image: linear-gradient(rgb(22, 120, 255), rgb(118, 173, 250));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -9,7 +9,6 @@ export interface FileItemProps {
|
|
|
9
9
|
fileId: string;
|
|
10
10
|
fileType: string;
|
|
11
11
|
guideImg: string;
|
|
12
|
-
checkImg: string;
|
|
13
12
|
signatureEnable: boolean;
|
|
14
13
|
signEnable: boolean;
|
|
15
14
|
token: string;
|
|
@@ -25,6 +24,7 @@ export interface FileItemProps {
|
|
|
25
24
|
baseUrl: string;
|
|
26
25
|
isPC?: boolean;
|
|
27
26
|
disabled?: boolean;
|
|
27
|
+
checkPoint?: object;
|
|
28
28
|
del: () => void;
|
|
29
29
|
valChange: (value: any) => void;
|
|
30
30
|
download: (value: any) => void;
|