ydb-components-material 0.1.17 → 0.1.19
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.5df7f485.js +1 -0
- 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/meta.js +1 -1
- package/build/lowcode/preview.js +7 -7
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.js +1 -1
- package/dist/BizComps.js +1 -1
- package/dist/BizComps.js.map +1 -1
- package/es/api.js +110 -0
- package/es/components/file-item/file.js +164 -0
- package/es/components/file-item/index.d.ts +5 -0
- package/es/components/file-item/index.js +55 -6
- package/es/components/file-item/seal.d.ts +3 -0
- package/es/components/file-item/seal.js +54 -0
- package/es/components/file-item/sealUtil.js +173 -0
- package/es/components/file-item/sign.d.ts +3 -0
- package/es/components/file-item/sign.js +114 -0
- package/es/components/file-item/signUtil.js +370 -0
- package/es/components/scene-tree/index.js +14 -13
- package/lib/api.js +115 -0
- package/lib/components/file-item/file.js +172 -0
- package/lib/components/file-item/index.d.ts +5 -0
- package/lib/components/file-item/index.js +55 -6
- package/lib/components/file-item/seal.d.ts +3 -0
- package/lib/components/file-item/seal.js +60 -0
- package/lib/components/file-item/sealUtil.js +175 -0
- package/lib/components/file-item/sign.d.ts +3 -0
- package/lib/components/file-item/sign.js +120 -0
- package/lib/components/file-item/signUtil.js +372 -0
- package/lib/components/scene-tree/index.js +13 -12
- package/lowcode/file-item/meta.ts +83 -0
- package/lowcode_es/file-item/meta.js +78 -0
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/file-item/meta.js +78 -0
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -3
- package/build/docs/umi.f9d788c8.js +0 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.dataURLtoBlob = dataURLtoBlob;
|
|
5
|
+
exports.getBlob = getBlob;
|
|
6
|
+
exports.getFileExtension = getFileExtension;
|
|
7
|
+
exports.upload = upload;
|
|
8
|
+
exports.uploadFilePromise = uploadFilePromise;
|
|
9
|
+
// import apiConfig from '@/config/api.cofig'
|
|
10
|
+
var baseURL = 'http://172.16.132.12:5005';
|
|
11
|
+
// 下载文件
|
|
12
|
+
function getBlob(url) {
|
|
13
|
+
return new Promise(function (resolve, reject) {
|
|
14
|
+
var xhr = new XMLHttpRequest();
|
|
15
|
+
xhr.open('GET', url, true);
|
|
16
|
+
xhr.responseType = 'blob';
|
|
17
|
+
xhr.onload = function () {
|
|
18
|
+
if (xhr.status === 200) {
|
|
19
|
+
resolve(xhr.response);
|
|
20
|
+
} else {
|
|
21
|
+
reject("Request failed with status " + xhr.status);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
xhr.onerror = function () {
|
|
25
|
+
reject('Request failed');
|
|
26
|
+
};
|
|
27
|
+
xhr.send();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// 上传文件
|
|
32
|
+
function upload(option) {
|
|
33
|
+
var xhr = new XMLHttpRequest(); // 定义上传方式
|
|
34
|
+
|
|
35
|
+
if (option.onProgress && xhr.upload) {
|
|
36
|
+
xhr.upload.onprogress = function progress(e) {
|
|
37
|
+
if (e.total > 0) {
|
|
38
|
+
e.percent = e.loaded / e.total * 100;
|
|
39
|
+
}
|
|
40
|
+
option.onProgress(e); // 上传进度,也是上传成功后回调
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
var formData = new FormData();
|
|
44
|
+
formData.append('file', option.file, option.file.name);
|
|
45
|
+
if (option.title) {
|
|
46
|
+
formData.append('title', option.title);
|
|
47
|
+
}
|
|
48
|
+
if (option.fileType) {
|
|
49
|
+
formData.append('fileType', option.fileType);
|
|
50
|
+
}
|
|
51
|
+
xhr.onerror = function error(e) {
|
|
52
|
+
option.onError(e); // 失败返回
|
|
53
|
+
};
|
|
54
|
+
xhr.onload = function onload() {
|
|
55
|
+
if (xhr.status !== 200) {
|
|
56
|
+
return option.onError(JSON.parse(xhr.response));
|
|
57
|
+
}
|
|
58
|
+
option.onSuccess(JSON.parse(xhr.response)); // 成功返回函数
|
|
59
|
+
};
|
|
60
|
+
xhr.open('post', option.action, true);
|
|
61
|
+
if (option.withCredentials && 'withCredentials' in xhr) {
|
|
62
|
+
xhr.withCredentials = true;
|
|
63
|
+
}
|
|
64
|
+
var headers = option.headers || {}; // 定义请求头
|
|
65
|
+
if (headers['X-Requested-With'] !== null) {
|
|
66
|
+
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
|
67
|
+
}
|
|
68
|
+
for (var h in headers) {
|
|
69
|
+
if (headers.hasOwnProperty(h) && headers[h] !== null) {
|
|
70
|
+
xhr.setRequestHeader(h, headers[h]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
xhr.send(formData);
|
|
74
|
+
return {
|
|
75
|
+
abort: function abort() {
|
|
76
|
+
xhr.abort();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
;
|
|
81
|
+
|
|
82
|
+
// 获取文件名后缀
|
|
83
|
+
function getFileExtension(filename) {
|
|
84
|
+
var match = filename.match(/\.([^.]+)$/);
|
|
85
|
+
return match ? match[1].toLowerCase() : '';
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// base64转换为流文件
|
|
89
|
+
function dataURLtoBlob(dataUrl) {
|
|
90
|
+
var arr = dataUrl.split(',');
|
|
91
|
+
var mime = arr[0].match(/:(.*?);/)[1];
|
|
92
|
+
var bstr = atob(arr[1]);
|
|
93
|
+
var n = bstr.length;
|
|
94
|
+
var u8arr = new Uint8Array(n);
|
|
95
|
+
while (n--) {
|
|
96
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
97
|
+
}
|
|
98
|
+
return new Blob([u8arr], {
|
|
99
|
+
type: mime
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// 上传文件至申报端的服务器 [方法]
|
|
104
|
+
function uploadFilePromise(url, token) {
|
|
105
|
+
// const { baseURL } = apiConfig
|
|
106
|
+
return new Promise(function (resolve, reject) {
|
|
107
|
+
var formData = new FormData();
|
|
108
|
+
formData.append('file', url);
|
|
109
|
+
formData.append('open', true);
|
|
110
|
+
formData.append('open', 'true');
|
|
111
|
+
fetch('http://172.16.132.12:5005/declaration/material/file/files/api', {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
body: formData,
|
|
114
|
+
header: {
|
|
115
|
+
// Authorization: 'rjvntrnggysagvpqhi7qfasqpd2hz736qap5vkikjgni3h3g4a5gcsawoooosvb2523mo5ifltk22vdki2u5q6vd2ceefhy5sk6e2kofxadn354ridcbcypgqgcljs27bhdnviiza7hdnbnwlh6e4yxe45kapm7y3wb6qqod5wysmjirbl6iwtaz3tzve7rdxq6blrfdqygjsfi5iosrwmpiumocr52tufnpcan2hdzydamjvbso2hmbrp32aymb2cahlcv2liswbhpwiqvf72anhnyycoyr3lwfp4xufasn7cbb2sxq'
|
|
116
|
+
}
|
|
117
|
+
}).then(function (response) {
|
|
118
|
+
return response.json();
|
|
119
|
+
}).then(function (res) {
|
|
120
|
+
resolve(res);
|
|
121
|
+
// if (res.fileId) {
|
|
122
|
+
// valChange({
|
|
123
|
+
// ...res,
|
|
124
|
+
// name: fileData.name,
|
|
125
|
+
// type: fileData.type
|
|
126
|
+
// })
|
|
127
|
+
// // Message.notice('上传成功')
|
|
128
|
+
// } else {
|
|
129
|
+
// // Message.error('上传失败,请重试')
|
|
130
|
+
// }
|
|
131
|
+
})["catch"](function (err) {
|
|
132
|
+
return err;
|
|
133
|
+
});
|
|
134
|
+
// uni.uploadFile({
|
|
135
|
+
// url: `${baseURL}/declaration/material/file/files/api`,
|
|
136
|
+
// filePath: url,
|
|
137
|
+
// name: 'file',
|
|
138
|
+
// formData: {
|
|
139
|
+
// // #ifdef H5
|
|
140
|
+
// open: true,
|
|
141
|
+
// // #endif
|
|
142
|
+
// // #ifdef MP-WEIXIN
|
|
143
|
+
// open: 'true'
|
|
144
|
+
// // #endif
|
|
145
|
+
// },
|
|
146
|
+
// header: {
|
|
147
|
+
// Authorization: uni.getStorageSync('declarationAppToken')
|
|
148
|
+
// },
|
|
149
|
+
// success: (res) => {
|
|
150
|
+
// if (res.statusCode === 200) {
|
|
151
|
+
// // resolve(JSON.parse(res.data))
|
|
152
|
+
// resolve({
|
|
153
|
+
// status: 'success',
|
|
154
|
+
// message: '上传成功',
|
|
155
|
+
// ...JSON.parse(res.data)
|
|
156
|
+
// });
|
|
157
|
+
// } else {
|
|
158
|
+
// resolve({
|
|
159
|
+
// status: 'failed',
|
|
160
|
+
// message: '上传失败'
|
|
161
|
+
// })
|
|
162
|
+
// }
|
|
163
|
+
// },
|
|
164
|
+
// fail: (err) => {
|
|
165
|
+
// resolve({
|
|
166
|
+
// status: 'failed',
|
|
167
|
+
// message: '上传失败'
|
|
168
|
+
// })
|
|
169
|
+
// }
|
|
170
|
+
// })
|
|
171
|
+
});
|
|
172
|
+
}
|
|
@@ -5,16 +5,21 @@ export interface FileItemProps {
|
|
|
5
5
|
* 标题
|
|
6
6
|
*/
|
|
7
7
|
file: string;
|
|
8
|
+
fileName: string;
|
|
9
|
+
fileType: string;
|
|
8
10
|
guideImg: string;
|
|
9
11
|
checkImg: string;
|
|
10
12
|
approvalUrl: string;
|
|
11
13
|
signatureUrl: string;
|
|
14
|
+
token: string;
|
|
15
|
+
accessToken: string;
|
|
12
16
|
isApproval: boolean;
|
|
13
17
|
isSignature: boolean;
|
|
14
18
|
materialList: any[];
|
|
15
19
|
maxFileSize: number;
|
|
16
20
|
isInValid: boolean;
|
|
17
21
|
isShowLib: boolean;
|
|
22
|
+
userInfo: any;
|
|
18
23
|
del: () => void;
|
|
19
24
|
valChange: (value: any) => void;
|
|
20
25
|
}
|
|
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports["default"] = void 0;
|
|
6
6
|
var _icon = _interopRequireDefault(require("@alifd/next/lib/icon"));
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
8
|
var _message = _interopRequireDefault(require("@alifd/next/lib/message"));
|
|
8
9
|
var _radio = _interopRequireDefault(require("@alifd/next/lib/radio"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -15,6 +16,8 @@ var _file = _interopRequireDefault(require("./icon/file.svg"));
|
|
|
15
16
|
var _icon_warning = _interopRequireDefault(require("./icon/icon_warning.svg"));
|
|
16
17
|
var _icon_errorMsg = _interopRequireDefault(require("./icon/icon_errorMsg.svg"));
|
|
17
18
|
var _upload = _interopRequireDefault(require("./icon/upload.svg"));
|
|
19
|
+
var _sign = _interopRequireDefault(require("./sign"));
|
|
20
|
+
var _seal = _interopRequireDefault(require("./seal"));
|
|
18
21
|
require("./index.scss");
|
|
19
22
|
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); }
|
|
20
23
|
var RadioGroup = _radio["default"].Group;
|
|
@@ -31,6 +34,11 @@ var FileItem = function FileItem(_ref) {
|
|
|
31
34
|
maxFileSize = _ref.maxFileSize,
|
|
32
35
|
isInValid = _ref.isInValid,
|
|
33
36
|
isShowLib = _ref.isShowLib,
|
|
37
|
+
userInfo = _ref.userInfo,
|
|
38
|
+
fileName = _ref.fileName,
|
|
39
|
+
fileType = _ref.fileType,
|
|
40
|
+
token = _ref.token,
|
|
41
|
+
accessToken = _ref.accessToken,
|
|
34
42
|
valChange = _ref.valChange,
|
|
35
43
|
del = _ref.del;
|
|
36
44
|
var _useState = (0, _react.useState)(false),
|
|
@@ -48,6 +56,12 @@ var FileItem = function FileItem(_ref) {
|
|
|
48
56
|
var _useState5 = (0, _react.useState)(),
|
|
49
57
|
material = _useState5[0],
|
|
50
58
|
setMaterial = _useState5[1];
|
|
59
|
+
var _useState6 = (0, _react.useState)(false),
|
|
60
|
+
isShowSignPage = _useState6[0],
|
|
61
|
+
setIsShowSignPage = _useState6[1];
|
|
62
|
+
var _useState7 = (0, _react.useState)(false),
|
|
63
|
+
isShowSealPage = _useState7[0],
|
|
64
|
+
setIsShowSealPage = _useState7[1];
|
|
51
65
|
var list = materialList || [{
|
|
52
66
|
name: '图片1',
|
|
53
67
|
value: 1
|
|
@@ -92,7 +106,10 @@ var FileItem = function FileItem(_ref) {
|
|
|
92
106
|
}).then(function (res) {
|
|
93
107
|
document.body.removeChild(inputEl);
|
|
94
108
|
if (res.fileId) {
|
|
95
|
-
valChange(res
|
|
109
|
+
valChange((0, _extends2["default"])({}, res, {
|
|
110
|
+
name: fileData.name,
|
|
111
|
+
type: fileData.type
|
|
112
|
+
}));
|
|
96
113
|
_message["default"].notice('上传成功');
|
|
97
114
|
} else {
|
|
98
115
|
_message["default"].error('上传失败,请重试');
|
|
@@ -102,6 +119,10 @@ var FileItem = function FileItem(_ref) {
|
|
|
102
119
|
});
|
|
103
120
|
});
|
|
104
121
|
};
|
|
122
|
+
var getRes = function getRes(val) {
|
|
123
|
+
console.log('val---', val);
|
|
124
|
+
valChange(val);
|
|
125
|
+
};
|
|
105
126
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
106
127
|
className: "file_item"
|
|
107
128
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -170,10 +191,16 @@ var FileItem = function FileItem(_ref) {
|
|
|
170
191
|
style: {
|
|
171
192
|
marginTop: '20px'
|
|
172
193
|
}
|
|
173
|
-
},
|
|
174
|
-
className: "operation_btn"
|
|
175
|
-
|
|
176
|
-
|
|
194
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
195
|
+
className: "operation_btn",
|
|
196
|
+
onClick: function onClick() {
|
|
197
|
+
return setIsShowSignPage(true);
|
|
198
|
+
}
|
|
199
|
+
}, "\u624B\u5199\u5BA1\u6279"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
200
|
+
className: "operation_btn",
|
|
201
|
+
onClick: function onClick() {
|
|
202
|
+
return setIsShowSealPage(true);
|
|
203
|
+
}
|
|
177
204
|
}, "\u7535\u5B50\u7B7E\u7AE0")) :
|
|
178
205
|
// 展示材料库
|
|
179
206
|
isShowLib && /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -249,7 +276,29 @@ var FileItem = function FileItem(_ref) {
|
|
|
249
276
|
}
|
|
250
277
|
}, "\u53D6\u6D88"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
251
278
|
className: "btn ok"
|
|
252
|
-
}, "\u786E\u5B9A"))))
|
|
279
|
+
}, "\u786E\u5B9A")))), isShowSignPage && /*#__PURE__*/_react["default"].createElement(_sign["default"], {
|
|
280
|
+
isShowSignPage: isShowSignPage,
|
|
281
|
+
userInfo: userInfo,
|
|
282
|
+
file: {
|
|
283
|
+
name: fileName,
|
|
284
|
+
url: file,
|
|
285
|
+
type: fileType
|
|
286
|
+
},
|
|
287
|
+
token: token,
|
|
288
|
+
getRes: getRes
|
|
289
|
+
}), isShowSealPage && /*#__PURE__*/_react["default"].createElement(_seal["default"], {
|
|
290
|
+
isShowSealPage: isShowSealPage,
|
|
291
|
+
userInfo: userInfo,
|
|
292
|
+
file: {
|
|
293
|
+
name: fileName,
|
|
294
|
+
url: file,
|
|
295
|
+
type: fileType
|
|
296
|
+
},
|
|
297
|
+
token: token
|
|
298
|
+
// getRes={getRes}
|
|
299
|
+
,
|
|
300
|
+
accessToken: accessToken
|
|
301
|
+
}));
|
|
253
302
|
};
|
|
254
303
|
FileItem.displayName = 'FileItem';
|
|
255
304
|
var _default = exports["default"] = FileItem;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports["default"] = void 0;
|
|
6
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _sealUtil = require("./sealUtil");
|
|
10
|
+
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); }
|
|
11
|
+
function SealPage(props) {
|
|
12
|
+
var isShowSealPage = props.isShowSealPage,
|
|
13
|
+
userInfo = props.userInfo,
|
|
14
|
+
file = props.file,
|
|
15
|
+
token = props.token,
|
|
16
|
+
accessToken = props.accessToken,
|
|
17
|
+
getRes = props.getRes;
|
|
18
|
+
var _useState = (0, _react.useState)(''),
|
|
19
|
+
srcUrl = _useState[0],
|
|
20
|
+
setSrcUrl = _useState[1];
|
|
21
|
+
var handleRes = /*#__PURE__*/function () {
|
|
22
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
23
|
+
var res, pageUrl;
|
|
24
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
25
|
+
while (1) switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
console.log('file', file, userInfo);
|
|
28
|
+
_context.next = 1;
|
|
29
|
+
return (0, _sealUtil.initSealPageMethod)(file, userInfo, token, accessToken);
|
|
30
|
+
case 1:
|
|
31
|
+
res = _context.sent;
|
|
32
|
+
pageUrl = res.pageUrl;
|
|
33
|
+
setSrcUrl(pageUrl);
|
|
34
|
+
// console.log(res)
|
|
35
|
+
case 2:
|
|
36
|
+
case "end":
|
|
37
|
+
return _context.stop();
|
|
38
|
+
}
|
|
39
|
+
}, _callee);
|
|
40
|
+
}));
|
|
41
|
+
return function handleRes() {
|
|
42
|
+
return _ref.apply(this, arguments);
|
|
43
|
+
};
|
|
44
|
+
}();
|
|
45
|
+
(0, _react.useEffect)(function () {
|
|
46
|
+
if (isShowSealPage) {
|
|
47
|
+
handleRes();
|
|
48
|
+
}
|
|
49
|
+
}, [isShowSealPage, userInfo, file, token, accessToken]);
|
|
50
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
51
|
+
className: "seal_page"
|
|
52
|
+
}, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
53
|
+
src: srcUrl,
|
|
54
|
+
id: "iframe",
|
|
55
|
+
frameborder: "0",
|
|
56
|
+
height: "500px",
|
|
57
|
+
width: "100%"
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
var _default = exports["default"] = SealPage;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.initSealPageMethod = initSealPageMethod;
|
|
6
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
7
|
+
var _message = _interopRequireDefault(require("@alifd/next/lib/message"));
|
|
8
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
+
var _file = require("./file.js");
|
|
10
|
+
var _api = require("../../api.js");
|
|
11
|
+
// import apiConfig from '@/config/api.cofig'
|
|
12
|
+
// const userInfo = uni.getStorageSync('userInfo')
|
|
13
|
+
// 对外的方法 获取电子签章的页面地址
|
|
14
|
+
function initSealPageMethod(_x, _x2, _x3, _x4) {
|
|
15
|
+
return _initSealPageMethod.apply(this, arguments);
|
|
16
|
+
} // [第1步] 查询当前用户是否有电子签章
|
|
17
|
+
function _initSealPageMethod() {
|
|
18
|
+
_initSealPageMethod = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(fileObj, userInfo, token, accessToken) {
|
|
19
|
+
var name, hasSeal, fileUrl, pageUrl, params;
|
|
20
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
21
|
+
while (1) switch (_context.prev = _context.next) {
|
|
22
|
+
case 0:
|
|
23
|
+
name = fileObj.name;
|
|
24
|
+
console.log('fileObj', fileObj, userInfo);
|
|
25
|
+
// 【第1步】判断当前用户是否有印章
|
|
26
|
+
_context.next = 1;
|
|
27
|
+
return querySeal(userInfo, token);
|
|
28
|
+
case 1:
|
|
29
|
+
hasSeal = _context.sent;
|
|
30
|
+
if (hasSeal) {
|
|
31
|
+
_context.next = 2;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
_message["default"].error('该单位下暂无印章,请前往“山西政务服务网”或“三晋通”小程序申领印章');
|
|
35
|
+
// return uni.showModal({
|
|
36
|
+
// title: '提示',
|
|
37
|
+
// content: '该单位下暂无印章,请前往“山西政务服务网”或“三晋通”小程序申领印章',
|
|
38
|
+
// confirmText: '知道了',
|
|
39
|
+
// showCancel: false,
|
|
40
|
+
// })
|
|
41
|
+
return _context.abrupt("return", false);
|
|
42
|
+
case 2:
|
|
43
|
+
_context.next = 3;
|
|
44
|
+
return uploadSealFile(fileObj, token);
|
|
45
|
+
case 3:
|
|
46
|
+
fileUrl = _context.sent;
|
|
47
|
+
if (fileUrl) {
|
|
48
|
+
_context.next = 4;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return _context.abrupt("return", false);
|
|
52
|
+
case 4:
|
|
53
|
+
_context.next = 5;
|
|
54
|
+
return getSealUrl(fileUrl, name, token, accessToken);
|
|
55
|
+
case 5:
|
|
56
|
+
pageUrl = _context.sent;
|
|
57
|
+
if (pageUrl) {
|
|
58
|
+
_context.next = 6;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
return _context.abrupt("return", false);
|
|
62
|
+
case 6:
|
|
63
|
+
// 将 电子签章地址/文件名称 返回
|
|
64
|
+
params = {
|
|
65
|
+
pageUrl: pageUrl,
|
|
66
|
+
name: name
|
|
67
|
+
};
|
|
68
|
+
return _context.abrupt("return", params);
|
|
69
|
+
case 7:
|
|
70
|
+
case "end":
|
|
71
|
+
return _context.stop();
|
|
72
|
+
}
|
|
73
|
+
}, _callee);
|
|
74
|
+
}));
|
|
75
|
+
return _initSealPageMethod.apply(this, arguments);
|
|
76
|
+
}
|
|
77
|
+
function querySeal(userInfo, token) {
|
|
78
|
+
console.log('querySeal', userInfo);
|
|
79
|
+
// uni.showLoading({ title: '查询印章中' })
|
|
80
|
+
var params = {
|
|
81
|
+
deptCode: userInfo.certificateSno,
|
|
82
|
+
outUserId: userInfo.legalCertno,
|
|
83
|
+
userIdType: '2'
|
|
84
|
+
};
|
|
85
|
+
return new Promise(function (resolve) {
|
|
86
|
+
(0, _api.qrySealApi)(params, {
|
|
87
|
+
token: token
|
|
88
|
+
}).then(function (res) {
|
|
89
|
+
if (res.data && res.data.length > 0) {
|
|
90
|
+
resolve(true);
|
|
91
|
+
} else {
|
|
92
|
+
resolve(false);
|
|
93
|
+
}
|
|
94
|
+
// uni.hideLoading()
|
|
95
|
+
})["catch"](function (error) {
|
|
96
|
+
resolve(false);
|
|
97
|
+
// uni.hideLoading()
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// [第2步] 上传文件
|
|
103
|
+
function uploadSealFile(_x5, _x6) {
|
|
104
|
+
return _uploadSealFile.apply(this, arguments);
|
|
105
|
+
} // [第3步] 获取电子印章页面
|
|
106
|
+
function _uploadSealFile() {
|
|
107
|
+
_uploadSealFile = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(fileObj, token) {
|
|
108
|
+
var blob, file;
|
|
109
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
110
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
111
|
+
case 0:
|
|
112
|
+
_context2.next = 1;
|
|
113
|
+
return (0, _file.getBlob)(fileObj.url);
|
|
114
|
+
case 1:
|
|
115
|
+
blob = _context2.sent;
|
|
116
|
+
file = new File([blob], fileObj.name, {
|
|
117
|
+
type: fileObj.type
|
|
118
|
+
}); // 上传接口
|
|
119
|
+
// const { baseURL } = apiConfig;
|
|
120
|
+
return _context2.abrupt("return", new Promise(function (resolve) {
|
|
121
|
+
(0, _file.upload)({
|
|
122
|
+
file: file,
|
|
123
|
+
filename: fileObj.name,
|
|
124
|
+
// 文件名称
|
|
125
|
+
headers: {
|
|
126
|
+
Authorization: token
|
|
127
|
+
},
|
|
128
|
+
action: "https://zwfwpt.sxzwfw.gov.cn/DeclarationAPI/declaration/center/signapproval/api/createbyfile",
|
|
129
|
+
// 上传文件的地址
|
|
130
|
+
onError: function onError(e) {
|
|
131
|
+
// uni.$u.toast(e.msg || '上传文件异常');
|
|
132
|
+
// uni.hideLoading();
|
|
133
|
+
_message["default"].error('上传文件异常');
|
|
134
|
+
},
|
|
135
|
+
onSuccess: function onSuccess(e) {
|
|
136
|
+
// uni.hideLoading();
|
|
137
|
+
console.log('success', e);
|
|
138
|
+
resolve(e.data);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}));
|
|
142
|
+
case 2:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context2.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee2);
|
|
147
|
+
}));
|
|
148
|
+
return _uploadSealFile.apply(this, arguments);
|
|
149
|
+
}
|
|
150
|
+
function getSealUrl(fileUrl, fileName, token, accessToken) {
|
|
151
|
+
// uni.showLoading({ title: '获取签章页面中' })
|
|
152
|
+
// const accessToken = uni.getStorageSync('access_token');
|
|
153
|
+
var params = {
|
|
154
|
+
accessToken: accessToken,
|
|
155
|
+
acctType: '20',
|
|
156
|
+
docURL: fileUrl,
|
|
157
|
+
name: fileName
|
|
158
|
+
};
|
|
159
|
+
return new Promise(function (resolve) {
|
|
160
|
+
(0, _api.getSealUrlApi)(params, {
|
|
161
|
+
token: token
|
|
162
|
+
}).then(function (res) {
|
|
163
|
+
if (res) {
|
|
164
|
+
resolve(res);
|
|
165
|
+
// uni.hideLoading()
|
|
166
|
+
} else {
|
|
167
|
+
resolve(false);
|
|
168
|
+
// uni.hideLoading()
|
|
169
|
+
}
|
|
170
|
+
})["catch"](function () {
|
|
171
|
+
resolve(false);
|
|
172
|
+
// uni.hideLoading()
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports["default"] = void 0;
|
|
6
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _signUtil = require("./signUtil");
|
|
11
|
+
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); }
|
|
12
|
+
function SignPage(props) {
|
|
13
|
+
var isShowSignPage = props.isShowSignPage,
|
|
14
|
+
userInfo = props.userInfo,
|
|
15
|
+
file = props.file,
|
|
16
|
+
token = props.token,
|
|
17
|
+
getRes = props.getRes;
|
|
18
|
+
var _useState = (0, _react.useState)(''),
|
|
19
|
+
srcUrl = _useState[0],
|
|
20
|
+
setSrcUrl = _useState[1];
|
|
21
|
+
var _useState2 = (0, _react.useState)(''),
|
|
22
|
+
documentId = _useState2[0],
|
|
23
|
+
setDocumentId = _useState2[1];
|
|
24
|
+
var _useState3 = (0, _react.useState)(''),
|
|
25
|
+
contractId = _useState3[0],
|
|
26
|
+
setContractId = _useState3[1];
|
|
27
|
+
var _useState4 = (0, _react.useState)(''),
|
|
28
|
+
name = _useState4[0],
|
|
29
|
+
setName = _useState4[1];
|
|
30
|
+
var timerRef = (0, _react.useRef)(null);
|
|
31
|
+
var handleRes = /*#__PURE__*/function () {
|
|
32
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
33
|
+
var res, documentIdVal, contractIdVal, pageUrl, nameVal;
|
|
34
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
35
|
+
while (1) switch (_context.prev = _context.next) {
|
|
36
|
+
case 0:
|
|
37
|
+
_context.next = 1;
|
|
38
|
+
return (0, _signUtil.initSignPageMethod)(file, userInfo, token);
|
|
39
|
+
case 1:
|
|
40
|
+
res = _context.sent;
|
|
41
|
+
documentIdVal = res.documentId, contractIdVal = res.contractId, pageUrl = res.pageUrl, nameVal = res.name;
|
|
42
|
+
setSrcUrl(pageUrl);
|
|
43
|
+
setDocumentId(documentIdVal);
|
|
44
|
+
setContractId(contractIdVal);
|
|
45
|
+
setName(nameVal);
|
|
46
|
+
console.log(res);
|
|
47
|
+
case 2:
|
|
48
|
+
case "end":
|
|
49
|
+
return _context.stop();
|
|
50
|
+
}
|
|
51
|
+
}, _callee);
|
|
52
|
+
}));
|
|
53
|
+
return function handleRes() {
|
|
54
|
+
return _ref.apply(this, arguments);
|
|
55
|
+
};
|
|
56
|
+
}();
|
|
57
|
+
var getSignedFile = /*#__PURE__*/function () {
|
|
58
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(documentIdVal, contractIdVal, nameVal, tokenVal) {
|
|
59
|
+
var newFile, finalFile;
|
|
60
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
61
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
62
|
+
case 0:
|
|
63
|
+
console.log('tokenVal----', tokenVal);
|
|
64
|
+
// const { autoUpload } = this
|
|
65
|
+
_context2.next = 1;
|
|
66
|
+
return (0, _signUtil.getSignRes)(documentIdVal, contractIdVal, nameVal, true, tokenVal);
|
|
67
|
+
case 1:
|
|
68
|
+
newFile = _context2.sent;
|
|
69
|
+
console.log(newFile, '签署完毕后的');
|
|
70
|
+
if (newFile) {
|
|
71
|
+
// 关闭轮询定时
|
|
72
|
+
handleClearInterval();
|
|
73
|
+
// 关闭弹框
|
|
74
|
+
// this.handleClose()
|
|
75
|
+
// 将手写签批后的新文件 传给
|
|
76
|
+
finalFile = (0, _extends2["default"])({
|
|
77
|
+
name: nameVal,
|
|
78
|
+
url: newFile.fileUrlList[0]
|
|
79
|
+
}, newFile);
|
|
80
|
+
console.log('finalFile---', finalFile);
|
|
81
|
+
getRes(finalFile);
|
|
82
|
+
}
|
|
83
|
+
case 2:
|
|
84
|
+
case "end":
|
|
85
|
+
return _context2.stop();
|
|
86
|
+
}
|
|
87
|
+
}, _callee2);
|
|
88
|
+
}));
|
|
89
|
+
return function getSignedFile(_x, _x2, _x3, _x4) {
|
|
90
|
+
return _ref2.apply(this, arguments);
|
|
91
|
+
};
|
|
92
|
+
}();
|
|
93
|
+
var handleClearInterval = function handleClearInterval() {
|
|
94
|
+
clearInterval(timerRef.current);
|
|
95
|
+
timerRef.current = null;
|
|
96
|
+
};
|
|
97
|
+
(0, _react.useEffect)(function () {
|
|
98
|
+
if (isShowSignPage) {
|
|
99
|
+
handleRes();
|
|
100
|
+
}
|
|
101
|
+
}, [isShowSignPage]);
|
|
102
|
+
(0, _react.useEffect)(function () {
|
|
103
|
+
if (srcUrl && documentId && contractId && name && token && !timerRef.current) {
|
|
104
|
+
handleClearInterval();
|
|
105
|
+
timerRef.current = setInterval(function () {
|
|
106
|
+
getSignedFile(documentId, contractId, name, token);
|
|
107
|
+
}, 3000);
|
|
108
|
+
}
|
|
109
|
+
}, [srcUrl, documentId, contractId, name, token]);
|
|
110
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
|
+
className: "sign_page"
|
|
112
|
+
}, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
113
|
+
src: srcUrl,
|
|
114
|
+
id: "iframe",
|
|
115
|
+
frameborder: "0",
|
|
116
|
+
height: "500px",
|
|
117
|
+
width: "100%"
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
var _default = exports["default"] = SignPage;
|