|
|
@ -6,25 +6,59 @@ import store from '@/store/index.js' |
|
|
* @param fmt string 转化的格式 yyyy-mm-dd hh:MM:ss |
|
|
* @param fmt string 转化的格式 yyyy-mm-dd hh:MM:ss |
|
|
*/ |
|
|
*/ |
|
|
export const dateTimeFormat = (date, fmt) => { |
|
|
export const dateTimeFormat = (date, fmt) => { |
|
|
if (!date) { |
|
|
|
|
|
throw new Error('日期不正确') |
|
|
|
|
|
} |
|
|
|
|
|
let ret |
|
|
|
|
|
const opt = { |
|
|
|
|
|
'y+': date.getFullYear().toString(), // 年
|
|
|
|
|
|
'm+': (date.getMonth() + 1).toString(), // 月
|
|
|
|
|
|
'd+': date.getDate().toString(), // 日
|
|
|
|
|
|
'h+': date.getHours().toString(), // 时
|
|
|
|
|
|
'M+': date.getMinutes().toString(), // 分
|
|
|
|
|
|
's+': date.getSeconds().toString() // 秒
|
|
|
|
|
|
} |
|
|
|
|
|
for (let k in opt) { |
|
|
|
|
|
ret = new RegExp('(' + k + ')').exec(fmt) |
|
|
|
|
|
if (ret) { |
|
|
|
|
|
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return fmt |
|
|
|
|
|
|
|
|
if (!date) { |
|
|
|
|
|
throw new Error('日期不正确') |
|
|
|
|
|
} |
|
|
|
|
|
let ret |
|
|
|
|
|
const opt = { |
|
|
|
|
|
'y+': date.getFullYear().toString(), // 年
|
|
|
|
|
|
'm+': (date.getMonth() + 1).toString(), // 月
|
|
|
|
|
|
'd+': date.getDate().toString(), // 日
|
|
|
|
|
|
'h+': date.getHours().toString(), // 时
|
|
|
|
|
|
'M+': date.getMinutes().toString(), // 分
|
|
|
|
|
|
's+': date.getSeconds().toString() // 秒
|
|
|
|
|
|
} |
|
|
|
|
|
for (let k in opt) { |
|
|
|
|
|
ret = new RegExp('(' + k + ')').exec(fmt) |
|
|
|
|
|
if (ret) { |
|
|
|
|
|
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return fmt |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
* 日期格式化文字描述,样例 yyyy-mm-dd hh:MM:ss |
|
|
|
|
|
* @param stringTime 需要转换的日期 |
|
|
|
|
|
*/ |
|
|
|
|
|
export const getTimer = (stringTime) => { |
|
|
|
|
|
var minute = 1000 * 60; |
|
|
|
|
|
var hour = minute * 60; |
|
|
|
|
|
var day = hour * 24; |
|
|
|
|
|
var week = day * 7; |
|
|
|
|
|
var month = day * 30; |
|
|
|
|
|
var time1 = new Date().getTime(); //当前的时间戳
|
|
|
|
|
|
console.log(time1); |
|
|
|
|
|
var time2 = Date.parse(new Date(stringTime)); //指定时间的时间戳
|
|
|
|
|
|
console.log(time2); |
|
|
|
|
|
var time = time1 - time2; |
|
|
|
|
|
|
|
|
|
|
|
var result = null; |
|
|
|
|
|
if (time < 0) { |
|
|
|
|
|
|
|
|
|
|
|
} else if (time / month >= 1) { |
|
|
|
|
|
result = parseInt(time / month) + "月前"; |
|
|
|
|
|
} else if (time / week >= 1) { |
|
|
|
|
|
result = parseInt(time / week) + "周前"; |
|
|
|
|
|
} else if (time / day >= 1) { |
|
|
|
|
|
result = parseInt(time / day) + "天前"; |
|
|
|
|
|
} else if (time / hour >= 1) { |
|
|
|
|
|
result = parseInt(time / hour) + "小时前"; |
|
|
|
|
|
} else if (time / minute >= 1) { |
|
|
|
|
|
result = parseInt(time / minute) + "分钟前"; |
|
|
|
|
|
} else { |
|
|
|
|
|
result = "刚刚"; |
|
|
|
|
|
} |
|
|
|
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -34,81 +68,88 @@ export const dateTimeFormat = (date, fmt) => { |
|
|
* @value {true} retry 是否重连,默认false |
|
|
* @value {true} retry 是否重连,默认false |
|
|
* @returns 一个websocket实例 |
|
|
* @returns 一个websocket实例 |
|
|
*/ |
|
|
*/ |
|
|
export const makeSocket = async ({ pageInfo = '', retry = false }) => { |
|
|
|
|
|
const socket = { |
|
|
|
|
|
sockTask: null, |
|
|
|
|
|
close: function () { |
|
|
|
|
|
this.sockTask.close({ code: 1000 }) |
|
|
|
|
|
closeFlag = true |
|
|
|
|
|
}, |
|
|
|
|
|
onMessage: function () {} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
export const makeSocket = async ({ |
|
|
|
|
|
pageInfo = '', |
|
|
|
|
|
retry = false |
|
|
|
|
|
}) => { |
|
|
|
|
|
const socket = { |
|
|
|
|
|
sockTask: null, |
|
|
|
|
|
close: function() { |
|
|
|
|
|
this.sockTask.close({ |
|
|
|
|
|
code: 1000 |
|
|
|
|
|
}) |
|
|
|
|
|
closeFlag = true |
|
|
|
|
|
}, |
|
|
|
|
|
onMessage: function() {} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
let limitedNum = 0 |
|
|
|
|
|
let closeFlag = false |
|
|
|
|
|
let timer = null |
|
|
|
|
|
|
|
|
let limitedNum = 0 |
|
|
|
|
|
let closeFlag = false |
|
|
|
|
|
let timer = null |
|
|
|
|
|
|
|
|
async function createSocket() { |
|
|
|
|
|
let url = '' |
|
|
|
|
|
if (env == 'production') { |
|
|
|
|
|
url = 'wss://api-client-yyt.qniao.cn/qn-websocket-service/wechatwebsock?token=' |
|
|
|
|
|
} else if (env == 'test') { |
|
|
|
|
|
url = 'wss://api-client-yyt-test.qniao.cn/qn-websocket-service/wechatwebsock?token=' |
|
|
|
|
|
} |
|
|
|
|
|
// if (env == 'production') {
|
|
|
|
|
|
// url = 'wss://api-client-yyt.qniao.cn/trading-center/wechatwebsock?token='
|
|
|
|
|
|
// } else if (env == 'test') {
|
|
|
|
|
|
// url = 'wss://api-client-yyt-test.qniao.cn/trading-center/wechatwebsock?token='
|
|
|
|
|
|
// }
|
|
|
|
|
|
const token = store.state.qnToken |
|
|
|
|
|
const socketTask = await uni.connectSocket({ |
|
|
|
|
|
url: `${url}${token}`, |
|
|
|
|
|
header: { |
|
|
|
|
|
'content-type': 'application/json' |
|
|
|
|
|
}, |
|
|
|
|
|
success: () => { |
|
|
|
|
|
console.log('websocket连接成功') |
|
|
|
|
|
}, |
|
|
|
|
|
fail: () => { |
|
|
|
|
|
console.log('websocket连接失败') |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
socketTask.onOpen(() => { |
|
|
|
|
|
console.log(pageInfo + ' onOpen') |
|
|
|
|
|
timer = setInterval(() => { |
|
|
|
|
|
socketTask.send({ data: 'ping' }) |
|
|
|
|
|
}, 10000) |
|
|
|
|
|
}) |
|
|
|
|
|
socketTask.onClose(() => { |
|
|
|
|
|
console.log(pageInfo + ' onClose') |
|
|
|
|
|
clearInterval(timer) |
|
|
|
|
|
timer = null |
|
|
|
|
|
if (!closeFlag && retry && limitedNum < 20) { |
|
|
|
|
|
limitedNum++ |
|
|
|
|
|
console.log('重连次数:' + limitedNum) |
|
|
|
|
|
createSocket() |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
async function createSocket() { |
|
|
|
|
|
let url = '' |
|
|
|
|
|
if (env == 'production') { |
|
|
|
|
|
url = 'wss://api-client-yyt.qniao.cn/qn-websocket-service/wechatwebsock?token=' |
|
|
|
|
|
} else if (env == 'test') { |
|
|
|
|
|
url = 'wss://api-client-yyt-test.qniao.cn/qn-websocket-service/wechatwebsock?token=' |
|
|
|
|
|
} |
|
|
|
|
|
// if (env == 'production') {
|
|
|
|
|
|
// url = 'wss://api-client-yyt.qniao.cn/trading-center/wechatwebsock?token='
|
|
|
|
|
|
// } else if (env == 'test') {
|
|
|
|
|
|
// url = 'wss://api-client-yyt-test.qniao.cn/trading-center/wechatwebsock?token='
|
|
|
|
|
|
// }
|
|
|
|
|
|
const token = store.state.qnToken |
|
|
|
|
|
const socketTask = await uni.connectSocket({ |
|
|
|
|
|
url: `${url}${token}`, |
|
|
|
|
|
header: { |
|
|
|
|
|
'content-type': 'application/json' |
|
|
|
|
|
}, |
|
|
|
|
|
success: () => { |
|
|
|
|
|
console.log('websocket连接成功') |
|
|
|
|
|
}, |
|
|
|
|
|
fail: () => { |
|
|
|
|
|
console.log('websocket连接失败') |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
socketTask.onOpen(() => { |
|
|
|
|
|
console.log(pageInfo + ' onOpen') |
|
|
|
|
|
timer = setInterval(() => { |
|
|
|
|
|
socketTask.send({ |
|
|
|
|
|
data: 'ping' |
|
|
|
|
|
}) |
|
|
|
|
|
}, 10000) |
|
|
|
|
|
}) |
|
|
|
|
|
socketTask.onClose(() => { |
|
|
|
|
|
console.log(pageInfo + ' onClose') |
|
|
|
|
|
clearInterval(timer) |
|
|
|
|
|
timer = null |
|
|
|
|
|
if (!closeFlag && retry && limitedNum < 20) { |
|
|
|
|
|
limitedNum++ |
|
|
|
|
|
console.log('重连次数:' + limitedNum) |
|
|
|
|
|
createSocket() |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
socketTask.onError(() => { |
|
|
|
|
|
console.log(pageInfo + ' error') |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
socketTask.onError(() => { |
|
|
|
|
|
console.log(pageInfo + ' error') |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
socket.sockTask = socketTask |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
socket.sockTask = socketTask |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
await createSocket() |
|
|
|
|
|
if (socket) { |
|
|
|
|
|
socket.onMessage = (fn) => { |
|
|
|
|
|
socket.sockTask.onMessage((res) => { |
|
|
|
|
|
let data = JSON.parse(res.data) |
|
|
|
|
|
console.log(pageInfo + '接收到消息:', data) |
|
|
|
|
|
if (data.type != 'heartbeat') { |
|
|
|
|
|
fn(data) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
await createSocket() |
|
|
|
|
|
if (socket) { |
|
|
|
|
|
socket.onMessage = (fn) => { |
|
|
|
|
|
socket.sockTask.onMessage((res) => { |
|
|
|
|
|
let data = JSON.parse(res.data) |
|
|
|
|
|
console.log(pageInfo + '接收到消息:', data) |
|
|
|
|
|
if (data.type != 'heartbeat') { |
|
|
|
|
|
fn(data) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return socket |
|
|
|
|
|
|
|
|
return socket |
|
|
} |
|
|
} |