From f17f2643910b29fdb1f6e1a905ad2d05c1350379 Mon Sep 17 00:00:00 2001 From: Jason Date: Mon, 7 Feb 2022 15:16:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A3=80=E6=9F=A5=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BD=8D=E7=BD=AE=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 12292 -> 12292 bytes pages.json | 20 - pages/im/components/sentVoice.nvue | 2 +- pages/im/private/index.vue | 499 ------------------ utils/index.js | 388 ++++++-------- {js_sdk/wa-permission => utils}/permission.js | 0 utils/sha1.js | 50 -- 7 files changed, 176 insertions(+), 783 deletions(-) delete mode 100644 pages/im/private/index.vue rename {js_sdk/wa-permission => utils}/permission.js (100%) delete mode 100644 utils/sha1.js diff --git a/.DS_Store b/.DS_Store index 08094f2b1763462ed7fd3d320c3e88ed2f92a151..d35c821c28bc22489a20b6c3256b5aa4c0cc0cb1 100644 GIT binary patch delta 51 zcmZokXi1ph<TiV7EM@(PkcnvrL;=m0z$-J}B3rlfszRP5PRr$?6stcKb G!p;EXMG{5; delta 79 zcmZokXi1ph&ls~YV7EM@@n#-{vrHOn3|S1t4Dmpm!jSEmlb@WFlb^)Ez#zcDz$go( d_5Ona!{)0>Z&)_JRTp60d{N~C)8x0};sEC_8>j#P diff --git a/pages.json b/pages.json index 91d3f80..fe8c4d6 100644 --- a/pages.json +++ b/pages.json @@ -373,26 +373,6 @@ "navigationStyle": "custom" } }, - { - "path": "pages/im/private/index", - "name": "imPrivate", - "style": { - "navigationBarTitleText": "聊天", - "navigationBarBackgroundColor": "#F3F6FB", - "disableScroll": true, - "app-plus": { - "titleNView": { - "type": "default", - "buttons": [{ - "float": "right", - "fontSrc": "/static/iconfont.ttf", - "text": "\ue607", - "fontSize": "20px" - }] - } - } - } - }, { "path": "pages/im/private/call", "name": "imPrivateCall", diff --git a/pages/im/components/sentVoice.nvue b/pages/im/components/sentVoice.nvue index 1452e8a..7c400fc 100644 --- a/pages/im/components/sentVoice.nvue +++ b/pages/im/components/sentVoice.nvue @@ -13,7 +13,7 @@ - - diff --git a/utils/index.js b/utils/index.js index 4b0264d..665e4d5 100644 --- a/utils/index.js +++ b/utils/index.js @@ -1,221 +1,183 @@ -import sha1 from './sha1.js' -import env from './conf/env.js' -import * as RongIMLib from '@rongcloud/imlib-uni' +import env from './conf/env.js' + export default { - checkPhone: (phone) => { - let re = /^[0-9]+.?[0-9]*/; - if (phone.length === 11) { - return re.test(phone) - } - return false; - }, - jumpUrl(path) { - uni.navigateTo({ - url: path - }) - }, - connectIM() { - if(uni.getStorageSync('userInfo')) { - let userInfo = JSON.parse(uni.getStorageSync('userInfo')); - const im = getApp().globalData.im; - im.connect({ - token: userInfo.rongimToken - }).then(user => { - console.log('IM链接成功, 链接用户 id 为: ', user.id); - }).catch(error => { - uni.hideLoading(); - console.log('IM链接失败: ', error.code, error.msg); - }); - } - }, - handleTimeCustom(val) { - val = this.timeStamp(val, 'Y-m-d H:i:s') - let currentDate = new Date(); - let currentD = currentDate.getDate(); - let currentYear = currentDate.getFullYear(); - let currentMonth = currentDate.getMonth() + 1; - let date = val.substring(0,19); - date = date.replace(/-/g,'/'); - let valDate = new Date(date); - let valD = valDate.getDate(); - let valYear = valDate.getFullYear(); - let valMonth = valDate.getMonth() + 1; - // 判断是否属于今天,计算时分 - let difftime = (currentDate - valDate) / 1000; - let hour = valDate.getHours(); - hour = hour > 9 ? hour : '0' + hour; - let minute = valDate.getMinutes(); - minute = minute > 9 ? minute : '0' + minute; - if(currentYear === valYear && currentMonth === valMonth && currentD === valD) { - return hour + ':' + minute; - } else { - // 计算天 - if(currentYear === valYear && currentMonth === valMonth && currentD !== valD) { - return valMonth + '月' + valD + '日 ' + hour + '时' + minute; - } else { - return valYear + '年' + valMonth + '月' + valD + '日 ' + hour + ':' + minute; - } - - } - }, - handleTimeCustomCN(val) { - val = this.timeStamp(val, 'Y-m-d H:i:s') - console.log(val, '时间0000000'); - let currentDate = new Date(); - let currentD = currentDate.getDate(); - let currentYear = currentDate.getFullYear(); - let currentMonth = currentDate.getMonth() + 1; - let date = val.substring(0,19); - date = date.replace(/-/g,'/'); - let valDate = new Date(date); - let valD = valDate.getDate(); - let valYear = valDate.getFullYear(); - let valMonth = valDate.getMonth() + 1; - // 判断是否属于今天,计算时分 - let difftime = (currentDate - valDate) / 1000; - if(currentYear === valYear && currentMonth === valMonth && currentD === valD) { - let minute = parseInt(difftime % 3600 / 60); - if(minute <= 60) { - return minute === 0 ? '刚刚' : minute + '分钟前'; - } else { - return (minute * 60).toFixed(0) + '小时前'; - } - } else { - // 计算天 - if(currentYear === valYear && currentMonth === valMonth && currentD - 1 === valD) { - return '昨天'; - } else { - let days = Math.abs(currentDate.getTime() - valDate.getTime())/(1000*60*60*24); - return Math.ceil(days) + '天前'; - } - - } - }, - timeStamp(timestamp, formats) { - /* - ** 时间戳转换成指定格式日期 - ** eg. - ** dateFormat(11111111111111, 'Y年m月d日 H时i分') - ** → "2322年02月06日 03时45分" - */ - // formats格式包括 - // 1. Y-m-d - // 2. Y-m-d H:i:s - // 3. Y年m月d日 - // 4. Y年m月d日 H时i分 - formats = formats || 'Y-m-d'; + checkPhone: (phone) => { + let re = /^[0-9]+.?[0-9]*/; + if (phone.length === 11) { + return re.test(phone) + } + return false; + }, + jumpUrl(path) { + uni.navigateTo({ + url: path + }) + }, + handleTimeCustom(val) { + val = this.timeStamp(val, 'Y-m-d H:i:s') + let currentDate = new Date(); + let currentD = currentDate.getDate(); + let currentYear = currentDate.getFullYear(); + let currentMonth = currentDate.getMonth() + 1; + let date = val.substring(0, 19); + date = date.replace(/-/g, '/'); + let valDate = new Date(date); + let valD = valDate.getDate(); + let valYear = valDate.getFullYear(); + let valMonth = valDate.getMonth() + 1; + // 判断是否属于今天,计算时分 + let difftime = (currentDate - valDate) / 1000; + let hour = valDate.getHours(); + hour = hour > 9 ? hour : '0' + hour; + let minute = valDate.getMinutes(); + minute = minute > 9 ? minute : '0' + minute; + if (currentYear === valYear && currentMonth === valMonth && currentD === valD) { + return hour + ':' + minute; + } else { + // 计算天 + if (currentYear === valYear && currentMonth === valMonth && currentD !== valD) { + return valMonth + '月' + valD + '日 ' + hour + '时' + minute; + } else { + return valYear + '年' + valMonth + '月' + valD + '日 ' + hour + ':' + minute; + } - var zero = function(value) { - if (value < 10) { - return '0' + value; - } - return value; - }; - var myDate = timestamp ? new Date(timestamp) : new Date(); + } + }, + handleTimeCustomCN(val) { + val = this.timeStamp(val, 'Y-m-d H:i:s') + console.log(val, '时间0000000'); + let currentDate = new Date(); + let currentD = currentDate.getDate(); + let currentYear = currentDate.getFullYear(); + let currentMonth = currentDate.getMonth() + 1; + let date = val.substring(0, 19); + date = date.replace(/-/g, '/'); + let valDate = new Date(date); + let valD = valDate.getDate(); + let valYear = valDate.getFullYear(); + let valMonth = valDate.getMonth() + 1; + // 判断是否属于今天,计算时分 + let difftime = (currentDate - valDate) / 1000; + if (currentYear === valYear && currentMonth === valMonth && currentD === valD) { + let minute = parseInt(difftime % 3600 / 60); + if (minute <= 60) { + return minute === 0 ? '刚刚' : minute + '分钟前'; + } else { + return (minute * 60).toFixed(0) + '小时前'; + } + } else { + // 计算天 + if (currentYear === valYear && currentMonth === valMonth && currentD - 1 === valD) { + return '昨天'; + } else { + let days = Math.abs(currentDate.getTime() - valDate.getTime()) / (1000 * 60 * 60 * 24); + return Math.ceil(days) + '天前'; + } - var year = myDate.getFullYear(); - var month = zero(myDate.getMonth() + 1); - var day = zero(myDate.getDate()); + } + }, + timeStamp(timestamp, formats) { + /* + ** 时间戳转换成指定格式日期 + ** eg. + ** dateFormat(11111111111111, 'Y年m月d日 H时i分') + ** → "2322年02月06日 03时45分" + */ + // formats格式包括 + // 1. Y-m-d + // 2. Y-m-d H:i:s + // 3. Y年m月d日 + // 4. Y年m月d日 H时i分 + formats = formats || 'Y-m-d'; - var hour = zero(myDate.getHours()); - var minite = zero(myDate.getMinutes()); - var second = zero(myDate.getSeconds()); + var zero = function(value) { + if (value < 10) { + return '0' + value; + } + return value; + }; + var myDate = timestamp ? new Date(timestamp) : new Date(); - return formats.replace(/Y|m|d|H|i|s/ig, function(matches) { - return ({ - Y: year, - m: month, - d: day, - H: hour, - i: minite, - s: second - })[matches]; - }); - }, - // 时间字符串转换中文时间 - timeToDate(str) { - let date = str.substring(0, 19); - date = date.replace(/-/g, '/'); - date = new Date(str); - let dateObj = { - year: date.getFullYear(), - month: date.getMonth() + 1, - day: date.getDate(), - hour: date.getHours(), - minute: date.getMinutes(), - second: date.getSeconds() - } - let string = dateObj.year + '年' + dateObj.month + '月' + dateObj.day + '日 ' + dateObj.hour + '时' + dateObj - .minute + '分'; - return string - }, - getAge(strAge) { - let birArr = strAge.split("-"); - let birYear = birArr[0]; - let birMonth = birArr[1]; - let birDay = birArr[2]; + var year = myDate.getFullYear(); + var month = zero(myDate.getMonth() + 1); + var day = zero(myDate.getDate()); - d = new Date(); - let nowYear = d.getFullYear(); - let nowMonth = d.getMonth() + 1; //记得加1 - let nowDay = d.getDate(); - let returnAge; + var hour = zero(myDate.getHours()); + var minite = zero(myDate.getMinutes()); + var second = zero(myDate.getSeconds()); - if (birArr == null) { - return false - }; - let d = new Date(birYear, birMonth - 1, birDay); - if (d.getFullYear() == birYear && (d.getMonth() + 1) == birMonth && d.getDate() == birDay) { - if (nowYear == birYear) { - returnAge = 0; - } else { - let ageDiff = nowYear - birYear; - if (ageDiff > 0) { - if (nowMonth == birMonth) { - let dayDiff = nowDay - birDay; - if (dayDiff < 0) { - returnAge = ageDiff - 1; - } else { - returnAge = ageDiff; - } - } else { - let monthDiff = nowMonth - birMonth; - if (monthDiff < 0) { - returnAge = ageDiff - 1; - } else { - returnAge = ageDiff; - } - } - } else { - return "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天 - } - } - return returnAge; - } else { - return ("输入的日期格式错误!"); - } - }, - getImUserInfo(targetId) { - return new Promise((resolve, reject) => { - const Nonce = Date.now(); - const Timestamp = Date.now() * 1000; - uni.request({ - url: 'https://api2-cn.ronghub.com/user/info.json', //仅为示例,并非真实接口地址。 - data: { - userId: targetId - }, - method: 'POST', - header: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'App-Key': '你的key', - 'Nonce': Nonce, - 'Timestamp': Timestamp, - 'Signature': sha1(env.IMsecret + Nonce + Timestamp) - }, - success: (res) => { - resolve(res.data) - } - }); - }) - } + return formats.replace(/Y|m|d|H|i|s/ig, function(matches) { + return ({ + Y: year, + m: month, + d: day, + H: hour, + i: minite, + s: second + })[matches]; + }); + }, + // 时间字符串转换中文时间 + timeToDate(str) { + let date = str.substring(0, 19); + date = date.replace(/-/g, '/'); + date = new Date(str); + let dateObj = { + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + hour: date.getHours(), + minute: date.getMinutes(), + second: date.getSeconds() + } + let string = dateObj.year + '年' + dateObj.month + '月' + dateObj.day + '日 ' + dateObj.hour + '时' + dateObj + .minute + '分'; + return string + }, + getAge(strAge) { + let birArr = strAge.split("-"); + let birYear = birArr[0]; + let birMonth = birArr[1]; + let birDay = birArr[2]; + + d = new Date(); + let nowYear = d.getFullYear(); + let nowMonth = d.getMonth() + 1; //记得加1 + let nowDay = d.getDate(); + let returnAge; + + if (birArr == null) { + return false + }; + let d = new Date(birYear, birMonth - 1, birDay); + if (d.getFullYear() == birYear && (d.getMonth() + 1) == birMonth && d.getDate() == birDay) { + if (nowYear == birYear) { + returnAge = 0; + } else { + let ageDiff = nowYear - birYear; + if (ageDiff > 0) { + if (nowMonth == birMonth) { + let dayDiff = nowDay - birDay; + if (dayDiff < 0) { + returnAge = ageDiff - 1; + } else { + returnAge = ageDiff; + } + } else { + let monthDiff = nowMonth - birMonth; + if (monthDiff < 0) { + returnAge = ageDiff - 1; + } else { + returnAge = ageDiff; + } + } + } else { + return "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天 + } + } + return returnAge; + } else { + return ("输入的日期格式错误!"); + } + } } diff --git a/js_sdk/wa-permission/permission.js b/utils/permission.js similarity index 100% rename from js_sdk/wa-permission/permission.js rename to utils/permission.js diff --git a/utils/sha1.js b/utils/sha1.js deleted file mode 100644 index 5fc4774..0000000 --- a/utils/sha1.js +++ /dev/null @@ -1,50 +0,0 @@ -function encodeUTF8(s) { - var i, r = [], c, x; - for (i = 0; i < s.length; i++) - if ((c = s.charCodeAt(i)) < 0x80) r.push(c); - else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F)); - else { - if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode - c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000, - r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F)); - else r.push(0xE0 + (c >> 12 & 0xF)); - r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F)); - }; - return r; -} - -// 字符串加密成 hex 字符串 -function sha1(s) { - var data = new Uint8Array(encodeUTF8(s)) - var i, j, t; - var l = ((data.length + 8) >>> 6 << 4) + 16, s = new Uint8Array(l << 2); - s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer); - for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2); - s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8); - s[l - 1] = data.length << 3; - var w = [], f = [ - function () { return m[1] & m[2] | ~m[1] & m[3]; }, - function () { return m[1] ^ m[2] ^ m[3]; }, - function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; }, - function () { return m[1] ^ m[2] ^ m[3]; } - ], rol = function (n, c) { return n << c | n >>> (32 - c); }, - k = [1518500249, 1859775393, -1894007588, -899497514], - m = [1732584193, -271733879, null, null, -1009589776]; - m[2] = ~m[0], m[3] = ~m[1]; - for (i = 0; i < s.length; i += 16) { - var o = m.slice(0); - for (j = 0; j < 80; j++) - w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1), - t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0, - m[1] = rol(m[1], 30), m.pop(), m.unshift(t); - for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0; - }; - t = new DataView(new Uint32Array(m).buffer); - for (var i = 0; i < 5; i++)m[i] = t.getUint32(i << 2); - - var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) { - return (e < 16 ? "0" : "") + e.toString(16); - }).join(""); - return hex; -} -export default sha1 \ No newline at end of file