Commit 2347d3f1 authored by xinzhedeai's avatar xinzhedeai

隐患详情

parent 4a8385c2
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</head> </head>
<body> <body>
<!-- 获取授权用户信息 本地token等操作 --> <!-- 获取授权用户信息 本地token等操作 -->
<!-- <script type="text/javascript" src="js/jssdk2/index.js"></script> --> <script type="text/javascript" src="sdk/jssdk2/index.js"></script>
<div id="app"> <div id="app">
<div class="wrapper"> <div class="wrapper">
<!-- <div class=""> <!-- <div class="">
......
...@@ -9,16 +9,16 @@ window.addEventListener("load", function() { ...@@ -9,16 +9,16 @@ window.addEventListener("load", function() {
} }
}, },
mounted() { mounted() {
http2.post({ // http2.post({
serviceId: 'gqyjglptthHiddenDanger', // serviceId: 'gqyjglptthHiddenDanger',
interfacePublicKey: "041a0802713d674bfc3db46293d83e2b3ebe99cd0ee9b5ae507a0aa07f41cd8bf1407d8c16fab3ceb28bfa233452417373ac0c7864e085895a27b4ebf14b2eb3b1", // interfacePublicKey: "041a0802713d674bfc3db46293d83e2b3ebe99cd0ee9b5ae507a0aa07f41cd8bf1407d8c16fab3ceb28bfa233452417373ac0c7864e085895a27b4ebf14b2eb3b1",
interfacePrivateKey: "73ae80b0f34740ce795821bf4354f1621e4ab7d01d9f3f7fc7c05e52c527c528", // interfacePrivateKey: "73ae80b0f34740ce795821bf4354f1621e4ab7d01d9f3f7fc7c05e52c527c528",
reqParams: {id: '4234234'} // reqParams: {id: '4234234'}
}, function(res){ // }, function(res){
if(res){ // if(res){
console.log('接口回调数据', JSON.parse(res)) // console.log('接口回调数据', JSON.parse(res))
} // }
}) // })
}, },
methods: { methods: {
nav(type){ nav(type){
......
var userInfo = {
"msg": "登录成功",
"user": {
"user": {
"avatarName": null,
"avatarPath": null,
"companyAddress": "山水园21号707",
"companyId": 1048590,
"companyName": "威海佳才景观工程有限公司",
"county": "371071000000",
"createBy": null,
"createTime": null,
"dept": null,
"deptId": null,
"email": null,
"enabled": true,
"gender": "",
"groupId": null,
"id": 13,
"jobs": [],
"nickName": "jc",
"phone": "15166149807",
"pwdResetTime": "2024-04-03 13:31:25",
"qx": "",
"remarks": null,
"roles": [{
"dataScope": "本级",
"id": 2,
"level": 2,
"name": "普通用户",
"permissions": []
}],
"tag": "1",
"thIndustryChargeDept": null,
"town": null,
"updateBy": null,
"updateTime": null,
"username": "jc",
"vNetNum": null,
"verifyStatus": null,
"wechat": null
}
},
"token": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI2MGQ1YjFhZGMzMGU0NTIyODg0NjgwM2NlNWMzMzg1YSIsInVzZXIiOiJqYyIsInN1YiI6ImpjIn0.8GA6BY4H6F7bNP4rKEMC8JV1bLlB-YbfLhuKvUGeOIhkDF1dIEl1av1POj9NAEWVOlyVrB-qUdEIoj6_14XHMA",
"status": "OK"
}
// 佳才公司下的普通用户
var token =
"Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiOGQ4OTIxNTY2ODA0ZjliOWIwMTlhZGEzZDFkNTg5MCIsInVzZXIiOiJkYWJhbyIsInN1YiI6ImRhYmFvIn0.LFyN4rsVDvT4ZA2_hDl4kDre6KdFm-p4HLVtYAreLxM5i_Y7GOKqb4S_4oWnseDJ0x8PZ4n7UN8J2p91X6VmyA";
localStorage.setItem('Authorization', token)
localStorage.setItem('appCounty', userInfo.user.user.county)
localStorage.setItem('companyId', userInfo.user.user.companyId)
localStorage.setItem('userInfo', JSON.stringify(userInfo.user.user))
// curSelectCounty: '威海火炬高技术开发区', //当前选择区域 eg:环翠
// curSelectCountyValue: '371071000000',
localStorage.setItem('appCounty', '371071000000')
console.log('ls本地信息', localStorage.getItem('companyId'))
\ No newline at end of file
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
*/ */
// const appmark = "sdzwapp" // const appmark = "sdzwapp"
// localStorage.setItem('appCounty', '371071000000')
// var token =
// "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiOGQ4OTIxNTY2ODA0ZjliOWIwMTlhZGEzZDFkNTg5MCIsInVzZXIiOiJkYWJhbyIsInN1YiI6ImRhYmFvIn0.LFyN4rsVDvT4ZA2_hDl4kDre6KdFm-p4HLVtYAreLxM5i_Y7GOKqb4S_4oWnseDJ0x8PZ4n7UN8J2p91X6VmyA";
// localStorage.setItem('Authorization', token)
var http2 = { var http2 = {
post: function(params, fn) { post: function(params, fn) {
...@@ -17,15 +21,6 @@ var http2 = { ...@@ -17,15 +21,6 @@ var http2 = {
* @param {7} = extraData 额外参数,附件,请求头一类的参数 * @param {7} = extraData 额外参数,附件,请求头一类的参数
* *
*/ */
// var params = '{"ticket":"' + ticket + '"}'
// const interfaceContent = {
// app_id: appmark,
// servicename: "ticketValidate",
// params: params
// }
// var params = '{"ticket":"' + ticket + '"}'
// debugger
const interfaceContent = { const interfaceContent = {
// app_id: appmark, // app_id: appmark,
// servicename: param.serviceId, // "ticketValidate", // servicename: param.serviceId, // "ticketValidate",
...@@ -33,26 +28,23 @@ var http2 = { ...@@ -33,26 +28,23 @@ var http2 = {
} }
const data = SM.encrypt(JSON.stringify(params.reqParams), params.interfacePublicKey) const data = SM.encrypt(JSON.stringify(params.reqParams), params.interfacePublicKey)
// const data = JSON.stringify(params.reqParams) // const data = JSON.stringify(params.reqParams)
console.log('http2方法进来了', JSON.stringify(params.reqParams)) console.log('http2方法进来了~普通请求参数', JSON.stringify(params.reqParams))
const extraData = { const extraData = { // 公共请求头设置
header: { header: {
Authorization: "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI0ODA3ODFkZmQxYmE0MmM0OGQyZDQ5NTllYzcyYTUwNCIsInVzZXIiOiJqYyIsInN1YiI6ImpjIn0.WfLq11T7iWPiMuzqDY2N54aIqdv-ciYCe6pINqQAeBdqlMiJmkufsqlD2YMmUzsHA-o4WerkiSYnPzexEMiAJA" // Authorization: "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI0ODA3ODFkZmQxYmE0MmM0OGQyZDQ5NTllYzcyYTUwNCIsInVzZXIiOiJqYyIsInN1YiI6ImpjIn0.WfLq11T7iWPiMuzqDY2N54aIqdv-ciYCe6pINqQAeBdqlMiJmkufsqlD2YMmUzsHA-o4WerkiSYnPzexEMiAJA"
Authorization: localStorage.getItem('token')
}, },
} }
if(params.extraData && params.extraData.fileList){ // 用于接口传递的额外参数 如文件流等){
extraData.fileList = params.extraData.fileList
}
console.log('http2方法进来了~extraData', JSON.stringify(extraData))
// vaildInterfacefn("jisnzjk", "ticketvalidate", JSON.stringify(interfaceContent), "1", "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => { // vaildInterfacefn("jisnzjk", "ticketvalidate", JSON.stringify(interfaceContent), "1", "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => {
// vaildInterfaceWithHeadersfn(appid, interfaceid, interfacecontent, fromport, headers, signurl, gatewayurl) // vaildInterfaceWithHeadersfn(appid, interfaceid, interfacecontent, fromport, headers, signurl, gatewayurl)
// vaildInterfaceWithHeadersfn("gqyjglptxiefn", params.serviceId, data, "1", headers, "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => { // vaildInterfaceWithHeadersfn("gqyjglptxiefn", params.serviceId, data, "1", headers, "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => {
// vaildInterfacefn("gqyjglptxiefn", params.serviceId, data, "1", "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => { // vaildInterfacefn("gqyjglptxiefn", params.serviceId, data, "1", "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => {
vaildInterfacefn("gqyjglptxiefn", params.serviceId, data, "1", extraData).then((value) => { vaildInterfacefn("gqyjglptxiefn", params.serviceId, data, "1", extraData).then((value) => {
if(value.code === '401'){
vant.Dialog.alert({
title: '信息提示',
message: value.msg,
})
return
}
console.log('vaildInterfacefn响应', value) console.log('vaildInterfacefn响应', value)
/** /**
* code: 200 * code: 200
...@@ -67,6 +59,14 @@ var http2 = { ...@@ -67,6 +59,14 @@ var http2 = {
}) })
return return
} }
if(value.code === '400' || value.code === '401'){
vant.Dialog.alert({
title: '信息提示',
message: value.msg,
})
return
}
let sm2_encrypt_result = value let sm2_encrypt_result = value
let sm2_decrypt_result = sm2_Decrypt(sm2_encrypt_result, params.interfacePrivateKey) let sm2_decrypt_result = sm2_Decrypt(sm2_encrypt_result, params.interfacePrivateKey)
console.log('vaildInterfacefn响应解密', sm2_decrypt_result) console.log('vaildInterfacefn响应解密', sm2_decrypt_result)
......
...@@ -32,7 +32,6 @@ document.write('<script type="text/javascript" src="' + contextPath + '/sdk/vue. ...@@ -32,7 +32,6 @@ document.write('<script type="text/javascript" src="' + contextPath + '/sdk/vue.
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/vant/2.12.54/vant.min.js"></script>\ <script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/vant/2.12.54/vant.min.js"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/flexible.js"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/flexible.js"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/util.js?rev=' + jsVersion + '"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/util.js?rev=' + jsVersion + '"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/common.js?rev=' + jsVersion + '"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/jssdk2/apiKeyMap.js?rev=' + jsVersion + '"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/jssdk2/apiKeyMap.js?rev=' + jsVersion + '"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/http2.js?rev=' + jsVersion + '"></script>'); <script type="text/javascript" src="' + contextPath + '/sdk/http2.js?rev=' + jsVersion + '"></script>');
......
const API_KEY_MAP = { const API_KEY_MAP = {
'login': { // 高区应急管理平台-爱山东用户和原系统用户绑定
id: 'gqyjglptbind',
publicKey: '0450567ffc64139658baa28c5c9bc0415200b476baa3bcc3f9dc9dbbf8dbcff2fb5e93319127685469c84784d235220c0347e695fbf66c5ffede33e645bea8b3f0',
privateKey: '00b92f5f2a7c40cb07d225f2e90df9b8b23569658e4f9e04dd0a4bf4a5b374063b'
},
'yh-list': { // 隐患管理-列表 'yh-list': { // 隐患管理-列表
id: 'gqyjglptthHiddenDanger', id: 'gqyjglptthHiddenDanger',
publicKey: '041a0802713d674bfc3db46293d83e2b3ebe99cd0ee9b5ae507a0aa07f41cd8bf1407d8c16fab3ceb28bfa233452417373ac0c7864e085895a27b4ebf14b2eb3b1', publicKey: '041a0802713d674bfc3db46293d83e2b3ebe99cd0ee9b5ae507a0aa07f41cd8bf1407d8c16fab3ceb28bfa233452417373ac0c7864e085895a27b4ebf14b2eb3b1',
...@@ -44,5 +49,15 @@ const API_KEY_MAP = { ...@@ -44,5 +49,15 @@ const API_KEY_MAP = {
publicKey: '04032817278e7ddf328535df4d0a9180f4006a757c8d62aabd07b89eb380c353ce6e9b5882dddd18673e2adeae840a1058321624898397bf1237240d8c5e2fdadd', publicKey: '04032817278e7ddf328535df4d0a9180f4006a757c8d62aabd07b89eb380c353ce6e9b5882dddd18673e2adeae840a1058321624898397bf1237240d8c5e2fdadd',
privateKey: '5adadd253436c736bc5036bc1399b4110df4153ffd856a574774d0a5d165a7dd' privateKey: '5adadd253436c736bc5036bc1399b4110df4153ffd856a574774d0a5d165a7dd'
}, },
'emergency': { // 高区应急管理平台-应急演练计划-列表
id: 'gqyjglptcompany',
publicKey: '04496980a74b74a564d207756881064302de45009209d36a2b283086c25bf4e16a2c4de3cebf4a83669bdda4218e273bedf49652158425e0f1ed4d2f8df6f2f38e',
privateKey: '41bf61090a6d2fa5292d50f285d1e38b91cc06c1965a715a031170ce18b6c6ad'
},
'emergency-detail': { // 高区应急管理平台-应急演练计划-详情
id: 'gqyjglptenterpriseDrills',
publicKey: '04fcdb9f752aa40e2f75078ae4817b3c4684042747d82b7bd9640146001aaf885e9b9627c2273498bc9940174132af52ed19cbe2f871bcaab52018123e5311e58f',
privateKey: '0092ba7d7629e681f4a82cede0c129749710e4f7cd2437ac83141036053896c08e'
},
} }
const appword = "aKd20dbGdFvmuwrt" // 固定值 const appword = "aKd20dbGdFvmuwrt" // 固定值
window.onload = function() { window.onload = function() {
getUserInfo() vant.Toast.loading({
message: '加载中...',
forbidClick: true,
loadingType: 'spinner',
});
if(!localStorage.getItem('token')){
getUserInfo()
}
} }
function getUserInfo() { function getUserInfo() {
...@@ -13,7 +20,7 @@ function getUserInfo() { ...@@ -13,7 +20,7 @@ function getUserInfo() {
if (typeof data == 'string') if (typeof data == 'string')
data = JSON.parse(data) data = JSON.parse(data)
console.log('请求成功的数据', data) console.log('用户授权请求成功的数据', data)
// 对于该方法的返回结果,需要进行两步解密才能得到明文用户信息, // 对于该方法的返回结果,需要进行两步解密才能得到明文用户信息,
// 先对返回结果进行sm2解密,需要用到 接入方在创建应用时,选择应用的加密方式为sm2,并成功创建应用后,拿到的应用私钥来进行解密 // 先对返回结果进行sm2解密,需要用到 接入方在创建应用时,选择应用的加密方式为sm2,并成功创建应用后,拿到的应用私钥来进行解密
const sm2_privateKey = '145e8920d0ec9b60eaaa73a208e711a68e8aa614b786e45d3eb7eca850ba7843' const sm2_privateKey = '145e8920d0ec9b60eaaa73a208e711a68e8aa614b786e45d3eb7eca850ba7843'
...@@ -27,19 +34,37 @@ console.log('请求成功的数据', data) ...@@ -27,19 +34,37 @@ console.log('请求成功的数据', data)
// aes解密需要用到 appword , 为固定值,使用示例代码中的即可 // aes解密需要用到 appword , 为固定值,使用示例代码中的即可
let aes_encrypt_result = sm2_decrypt_result.data let aes_encrypt_result = sm2_decrypt_result.data
let aes_decrypt_result = aes_Decrypt(aes_encrypt_result, appword) let aes_decrypt_result = aes_Decrypt(aes_encrypt_result, appword)
if(!aes_decrypt_result){
console.log('授权用户信息为空')
return
}
let tempResult = JSON.parse(aes_decrypt_result)
console.log('授权用户信息', tempResult)
let reqParammm ={
sex: tempResult.sex,
mobile: tempResult.mobile,
name: tempResult.name,
loginname: tempResult.loginname
// sex: 1,//aes_decrypt_result.sex,
// mobile: '18368232323',//aes_decrypt_result.mobile,
// name: '123',// aes_decrypt_result.name,
// loginname: 'zjb'// aes_decrypt_result.loginname
}
// 请求获取高区应急后台真是token,传参,授权获取的用户信息 // 请求获取高区应急后台真是token,传参,授权获取的用户信息
http2.post({ http2.post({
serviceId: 'gqyjglptthHiddenDanger', serviceId: 'gqyjglptbind',
interfacePublicKey: "041a0802713d674bfc3db46293d83e2b3ebe99cd0ee9b5ae507a0aa07f41cd8bf1407d8c16fab3ceb28bfa233452417373ac0c7864e085895a27b4ebf14b2eb3b1", interfacePublicKey: "0450567ffc64139658baa28c5c9bc0415200b476baa3bcc3f9dc9dbbf8dbcff2fb5e93319127685469c84784d235220c0347e695fbf66c5ffede33e645bea8b3f0",
interfacePrivateKey: "73ae80b0f34740ce795821bf4354f1621e4ab7d01d9f3f7fc7c05e52c527c528", interfacePrivateKey: "00b92f5f2a7c40cb07d225f2e90df9b8b23569658e4f9e04dd0a4bf4a5b374063b",
reqParams: {id: '4234234'} reqParams: reqParammm
}, function(res){ }, function(res){
if(res){ if(res){
console.log('接口回调数据', JSON.parse(res)) console.log('sdk2用户信息绑定接口回调数据', JSON.parse(res))
var result = JSON.parse(res)
// 存储后台返回token存储本地localstorage // 存储后台返回token存储本地localstorage
localStorage.setItem('token', result.token)
} }
vant.Toast.clear()
}) })
} }
......
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/util.js"></script>
</head>
<body>
<iframe id="iframe" width="100vw" style="height: 100vh;border:none;" src=""></iframe>
</body>
<script>
var iframe = document.getElementById('iframe');
iframe.src = 'http://192.168.3.37:8036'+'/' + gemhoUtil.getParameter('pdfSrc')
</script>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PDF Viewer</title>
<script src="../js/util.js"></script>
</head>
<body>
<iframe id="pdfViewer" width="100%" height="100%">
Your browser does not support iframes.
</iframe>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.11.338/pdf.min.js"></script>
<script>
loadPdf()
async function loadPdf(){
const pdfUrl = 'http://192.168.3.37:8036'+'/' + gemhoUtil.getParameter('pdfSrc'); // Replace with your PDF URL
const iframe = document.getElementById('pdfViewer');
const iframeDoc = iframe.contentDocument;
iframeDoc.open();
iframeDoc.write('<style>body, html { margin: 0; padding: 0; }</style>');
iframeDoc.write('<style>.pdfViewer { width: 100%; height: 100vh; }</style>');
iframeDoc.write('<div class="pdfViewer"></div>');
iframeDoc.close();
const pdfContainer = iframeDoc.querySelector('.pdfViewer');
// 线上文件获取流
const response = await fetch(pdfUrl, { method: 'GET' });
const pdfBlob = await response.blob();
// 加载 PDF 文件
const pdfData = new Uint8Array(await pdfBlob.arrayBuffer());
pdfjsLib.getDocument(pdfData).promise.then((pdf) => {
// pdfjsLib.getDocument(pdfUrl).promise.then((pdf) => {
pdf.getPage(1).then((page) => {
const scale = 1.5;
const viewport = page.getViewport({ scale: scale });
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({ canvasContext: context, viewport: viewport });
pdfContainer.appendChild(canvas);
});
});
}
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -21,10 +21,10 @@ window.addEventListener("load", function() { ...@@ -21,10 +21,10 @@ window.addEventListener("load", function() {
}, },
methods: { methods: {
detail(item){ detail(item){
gemhoUtil.navigatePage('./yh-list-detail.html?companyId='+localStorage.getItem('companyId')+'&hdId='+item.hdId+'&type=detail') gemhoUtil.navigatePage('./yh-list-detail.html?hdId='+item.hdId+'&type=detail')
}, },
edit(item){ edit(item){
gemhoUtil.navigatePage('./yh-list-detail.html?companyId='+localStorage.getItem('companyId')+'&hdId='+item.hdId+'&type=edit') gemhoUtil.navigatePage('./yh-list-detail.html?hdId='+item.hdId+'&type=edit')
}, },
getList(){ getList(){
http2.post({ http2.post({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment