parent
d3b34e6af8
commit
7ad6d89bfe
3 changed files with 263 additions and 0 deletions
@ -0,0 +1,170 @@ |
||||
let urlCreatesign = urldomaincreatesign |
||||
let urlGateway = urldomaingateway |
||||
const appmark = "sdzwapp" |
||||
const appword = "aKd20dbGdFvmuwrt" |
||||
let userType = "1" //用户类型 1个人 2法人
|
||||
|
||||
/** |
||||
* 通过jssdk方法获取APP本地用户票据 |
||||
*/ |
||||
export const getUserInfo = () => { |
||||
lightAppJssdk.user.getTicket({ |
||||
success: function (data) { |
||||
//成功回调
|
||||
console.log(JSON.stringify(data)) |
||||
if (data == "未登录") { |
||||
onLoginApp() //APP用户未登录,调用登录页面
|
||||
} else { |
||||
var jsonData = JSON.parse(data) |
||||
if (jsonData.retcode == "000000") { |
||||
var dataValueObj = JSON.parse(jsonData.data) |
||||
var ticket = dataValueObj.ticket //解析出用户票据信息
|
||||
userType = dataValueObj.usertype //解析保存用户类型(个人法人)
|
||||
getUserToken(ticket) |
||||
} |
||||
} |
||||
}, |
||||
fail: function (data) { |
||||
//错误返回
|
||||
console.log(JSON.stringify(data)) |
||||
} |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 使用jssdk调用登录页面 |
||||
*/ |
||||
export const onLoginApp = () => { |
||||
lightAppJssdk.user.loginapp({ |
||||
success: function (data) { |
||||
if (data == "未登录") { |
||||
//取消登录或登录失败,关闭页面
|
||||
oncloseWindow() |
||||
} else { |
||||
var dataObj = JSON.parse(data) |
||||
if (dataObj.retcode == "000000") { |
||||
//登录成功,返回用户的票据和用户类型
|
||||
var dataValueObj = JSON.parse(dataObj.data) |
||||
getUserToken(dataValueObj.ticket) //解析出用户票据信息
|
||||
userType = jsonData.usertype //解析保存用户类型(个人法人)
|
||||
} else { |
||||
//关闭页面
|
||||
oncloseWindow() |
||||
} |
||||
} |
||||
}, |
||||
fail: function (data) { |
||||
//关闭页面
|
||||
oncloseWindow() |
||||
} |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 通过用户票据获取用户的令牌数据,票据使用一次后失效,token时效性较长 |
||||
*/ |
||||
export const getUserToken = (ticket) => { |
||||
var params = '{"ticket":"' + ticket + '"}' |
||||
const interfaceContent = { |
||||
app_id: appmark, |
||||
servicename: "ticketValidate", |
||||
params: params |
||||
} |
||||
|
||||
vaildInterfacefn("jisnzjk", "ticketvalidate", JSON.stringify(interfaceContent), "2", "https://" + urlCreatesign, "https://" + urlGateway).then((value) => { |
||||
const data = JSON.parse(value) |
||||
if (data.retcode == "000000") { |
||||
const userToken = JSON.parse(data.data).token |
||||
if (userType == "1") { |
||||
//个人类型获取用户信息
|
||||
getUserInfoByToken(userToken) |
||||
} else { |
||||
//法人类型获取用户信息
|
||||
findCorUserByToken(userToken) |
||||
} |
||||
} else { |
||||
lightAppJssdk.notification.alert({ |
||||
title: "提示", //可传空
|
||||
message: data.msg, |
||||
buttonName: "确认", |
||||
success: function (data) { |
||||
oncloseWindow() |
||||
} |
||||
}) |
||||
} |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* 根据令牌获取个人完整信息 |
||||
*/ |
||||
export const getUserInfoByToken = (userToken) => { |
||||
const params = '{"token":"' + userToken + '"}' |
||||
const interfaceContent = { |
||||
app_id: appmark, |
||||
servicename: "findOutsideUserByToken", |
||||
params: params |
||||
} |
||||
|
||||
try { |
||||
vaildInterfacefn("jisnzjk", "findoutsideuserbytoken", JSON.stringify(interfaceContent), "2", "https://" + urlCreatesign, "https://" + urlGateway).then((value) => { |
||||
const data = JSON.parse(value) |
||||
if (data.retcode == "000000") { |
||||
const userInfo = data.data |
||||
const userObj = JSON.parse(userInfo) |
||||
|
||||
document.getElementById("name").innerText = userObj.name |
||||
document.getElementById("cardid").innerText = userObj.papersnumber |
||||
document.getElementById("mobile").innerText = userObj.mobile |
||||
} else { |
||||
} |
||||
}) |
||||
} catch (error) { } |
||||
} |
||||
|
||||
/** |
||||
* 根据令牌获取完整法人信息 |
||||
*/ |
||||
export const findCorUserByToken = (userToken) => { |
||||
try { |
||||
const params = '{"token":"' + userToken + '"}' |
||||
const interfaceContent = { |
||||
app_id: appmark, |
||||
servicename: "findCorUserByToken", |
||||
params: params |
||||
} |
||||
vaildInterfacefn("jisnzjk", "findcoruserytoken", JSON.stringify(interfaceContent), "2", "https://" + urlCreatesign, "https://" + urlGateway).then((value) => { |
||||
const data = JSON.parse(value) |
||||
|
||||
if (data.retcode == "000000") { |
||||
const userInfo = JSON.stringify(data.data) |
||||
document.getElementById("userinfo").innerText = userInfo |
||||
} else { |
||||
} |
||||
}) |
||||
} catch (err) { } |
||||
} |
||||
|
||||
/** |
||||
* 关闭容器 |
||||
*/ |
||||
export const oncloseWindow = () => { |
||||
lightAppJssdk.navigation.close({ |
||||
success: function (data) { }, |
||||
fail: function (data) { } |
||||
}) |
||||
} |
||||
|
||||
/** |
||||
* AES解密 |
||||
*/ |
||||
export const Decrypt = (word, key) => { |
||||
var key = CryptoJS.enc.Utf8.parse(key) //转为128bit
|
||||
var srcs = CryptoJS.enc.Hex.parse(word) //转为16进制
|
||||
var str = CryptoJS.enc.Base64.stringify(srcs) //变为Base64编码的字符串
|
||||
var decrypt = CryptoJS.AES.decrypt(str, key, { |
||||
mode: CryptoJS.mode.ECB, |
||||
spadding: CryptoJS.pad.Pkcs7 |
||||
}) |
||||
return decrypt.toString(CryptoJS.enc.Utf8) |
||||
} |
||||
@ -0,0 +1,42 @@ |
||||
import axios from "axios"; |
||||
|
||||
//跨域请求,允许保存cookie
|
||||
axios.defaults.withCredentials = true; |
||||
|
||||
//返回其他状态码
|
||||
axios.defaults.validateStatus = function (status) { |
||||
return status >= 200 && status <= 500; |
||||
}; |
||||
|
||||
//HTTP Request拦截
|
||||
axios.interceptors.request.use( |
||||
(config) => { |
||||
config.headers["Content-Type"] = "application/json"; |
||||
return config; |
||||
}, |
||||
(error) => { |
||||
console.error("Request interceptors:", error); |
||||
return Promise.reject(error); |
||||
} |
||||
); |
||||
|
||||
//HTTP Response拦截
|
||||
axios.interceptors.response.use( |
||||
(res) => { |
||||
const ok = res.data.Success || false, |
||||
status = res.status || 200, |
||||
message = res.data.AllMessages || "Internal Server Error!"; |
||||
|
||||
if (!ok && !status) { |
||||
return Promise.reject(new Error(message)); |
||||
} |
||||
|
||||
return res.data; |
||||
}, |
||||
(error) => { |
||||
console.error("Response interceptors:", error); |
||||
return Promise.reject(error); |
||||
} |
||||
); |
||||
|
||||
export default axios; |
||||
@ -0,0 +1,51 @@ |
||||
export const calcDate = (date1, date2) => { |
||||
let date3 = date2 - date1; |
||||
|
||||
let days = Math.floor(date3 / (24 * 3600 * 1000)) |
||||
|
||||
let leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
|
||||
let hours = Math.floor(leave1 / (3600 * 1000)) |
||||
|
||||
let leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
|
||||
let minutes = Math.floor(leave2 / (60 * 1000)) |
||||
|
||||
let leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
|
||||
let seconds = Math.round(date3 / 1000) |
||||
return { |
||||
leave1, |
||||
leave2, |
||||
leave3, |
||||
days: days, |
||||
hours: hours, |
||||
minutes: minutes, |
||||
seconds: seconds, |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 日期格式化 |
||||
*/ |
||||
export function dateFormat(date, format) { |
||||
format = format || 'yyyy-MM-dd hh:mm:ss'; |
||||
if (date !== 'Invalid Date') { |
||||
let o = { |
||||
"M+": date.getMonth() + 1, //month
|
||||
"d+": date.getDate(), //day
|
||||
"h+": date.getHours(), //hour
|
||||
"m+": date.getMinutes(), //minute
|
||||
"s+": date.getSeconds(), //second
|
||||
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
|
||||
"S": date.getMilliseconds() //millisecond
|
||||
} |
||||
if (/(y+)/.test(format)) format = format.replace(RegExp.$1, |
||||
(date.getFullYear() + "").substr(4 - RegExp.$1.length)); |
||||
for (let k in o) |
||||
if (new RegExp("(" + k + ")").test(format)) |
||||
format = format.replace(RegExp.$1, |
||||
RegExp.$1.length === 1 ? o[k] : |
||||
("00" + o[k]).substr(("" + o[k]).length)); |
||||
return format; |
||||
} |
||||
return ''; |
||||
|
||||
} |
||||
Loading…
Reference in new issue