公共方法

main
xuechunyuan 3 years ago
parent d3b34e6af8
commit 7ad6d89bfe
  1. 170
      src/utils/aisdapp.js
  2. 42
      src/utils/axios.js
  3. 51
      src/utils/date.js

@ -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…
Cancel
Save