diff --git a/common/js/util.js b/common/js/util.js
index b376076..6af8ab7 100644
--- a/common/js/util.js
+++ b/common/js/util.js
@@ -1,299 +1,321 @@
-import request from './request'
-import cache from './cacheKey.js'
-import { getImageUrl } from '@/common/api/basic'
-import { apiUpdatePush } from '@/common/api/user'
-import { queryDictDataCache } from '../api/dictionary.js'
-import cacheKey from './cacheKey.js'
-import config from '@/common/js/config'
-import jsrsasign from 'jsrsasign'
-
-const toast = (title, duration = 1500, call, mask = false, icon = 'none') => {
- if (Boolean(title) === false) {
- return
- }
- uni.showToast({
- title,
- duration,
- mask,
- icon,
- })
- setTimeout(() => {
- call && call()
- }, duration)
-}
-
-/**
- * @description 格式化时间
- * @param time
- * @param cFormat
- * @returns {string|null}
- */
-function parseTime(time, cFormat) {
- if (arguments.length === 0) {
- return null
- }
- const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
- time = parseInt(time)
- }
- if (typeof time === 'number' && time.toString().length === 10) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay(),
- }
- return format.replace(/{([ymdhisa])+}/g, (result, key) => {
- let value = formatObj[key]
- if (key === 'a') {
- return ['日', '一', '二', '三', '四', '五', '六'][value]
- }
- if (result.length > 0 && value < 10) {
- value = '0' + value
- }
- return value || 0
- })
-}
-
-/**
- * @description 格式化时间
- * @param time
- * @param option
- * @returns {string}
- */
-function formatTime(time, option) {
- if (('' + time).length === 10) {
- time = parseInt(time) * 1000
- } else {
- time = +time
- }
- if (option) {
- return parseTime(time, option)
- } else {
- const d = new Date(time)
- const now = Date.now()
- const diff = (now - d) / 1000
- if (diff < 30) {
- return '刚刚'
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + '分钟前'
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + '小时前'
- } else if (diff < 3600 * 24 * 2) {
- return '1天前'
- }
- return (
- d.getMonth() + 1 + '月' + d.getDate() + '日'
- // +
- // d.getHours() +
- // '时'
- // +
- // d.getMinutes() +
- // '分'
- )
- }
-}
-
-const h5Helper = {
- isAndroid: function () {
- return window.navigator.appVersion.toLowerCase().indexOf('android') != -1
- },
- isIOS: function () {
- return window.navigator.appVersion.toLowerCase().indexOf('iphone') != -1
- },
- isWeiXinWeb: function () {
- var ua = window.navigator.userAgent.toLowerCase()
- return ua.match(/MicroMessenger/i) == 'micromessenger'
- },
-}
-
-// 验证手机号格式
-const validatePhoneNumber = (phone) => {
- if (!phone) return false
- var testReg = /^1[23456789]\d{9}$/
- return testReg.test(phone)
-}
-
-const getUserLocation = (call) => {
- uni.getLocation({
- type: 'wgs84',
- success: function (address) {
- call(address)
- },
- fail: (err) => {
- uni.showModal({
- title: '提示',
- content: '定位失败,请打开定位权限',
- success: function (res) {
- if (res.confirm) {
- uni.openSetting({
- success: (resSett) => {
- if (resSett.authSetting['scope.userLocation']) {
- uni.getLocation({
- success: (address) => {
- call && call(address)
- },
- })
- }
- },
- })
- }
- },
- })
- },
- })
-}
-
-// 加载用户配置
-var globalConfigIsLoading = false,
- global_config = null,
- globalConfigCallbacks = []
-/**
- * 加载用户配置
- * @param call 加载成功后的回调
- * @param need_fresh 是否及时刷新用户配置
- */
-const loadConfig = (call, need_fresh = false) => {
- if (call && global_config && !need_fresh) {
- call(global_config)
- return
- }
- if (globalConfigIsLoading) {
- globalConfigCallbacks.push(call)
- return
- }
- globalConfigIsLoading = true
- request({
- url: '/org/userResource/userMsg',
- })
- .then((rs) => {
- globalConfigIsLoading = false
- global_config = rs.data
- uni.setStorage({
- key: 'userInfo',
- data: global_config,
- })
- if (call) {
- call(global_config)
- }
- for (var i = 0; i < globalConfigCallbacks.length; i++) {
- globalConfigCallbacks[i](global_config)
- }
- globalConfigCallbacks = []
- })
- .catch((err) => {
- globalConfigIsLoading = false
- console.warn(err)
- // uni.reLaunch({ url: '/pages/user/login' })
- })
-}
-
-const prePage = () => {
- let pages = getCurrentPages()
- let prePage = pages[pages.length - 2]
- return prePage
-}
-
-const loginSuccess = (data, jump = true) => {
- return new Promise((resolve, reject) => {
- console.log(data)
- uni.setStorageSync('access_token', data.token_type + ' ' + data.access_token)
- uni.setStorageSync('refresh_token', data.refresh_token)
- let userInfo = decodeToken(data.access_token)
- console.log(userInfo)
- // let strings = data.access_token.split('.') //截取token,获取载体
- // console.log(escape, atob)
- // var userInfo = JSON.parse(decodeURIComponent(escape(atob(strings[1].replace(/-/g, '+').replace(/_/g, '/')))))
- userInfo.authorities = userInfo.authorities[0]
- if (userInfo.headSculpture) {
- userInfo.avatar = config.static + userInfo.headSculpture
- }
- console.log(userInfo)
- uni.setStorageSync(cache.userInfo, userInfo)
- apiUpdatePush()
- resolve(userInfo)
- if (jump) {
- queryDictDataCache().then((res) => {
- uni.setStorageSync(cacheKey.dictData, res.data)
- })
- console.log('reLaunch')
- uni.reLaunch({
- url: '/pages/index/index',
- fail: (err) => {
- console.log(err)
- },
- })
- }
- })
-}
-/**
- * 只针对列表页的刷新
- * @param {*} number
- * @param {*} time
- */
-const refreshPrePage = (number = 1, time = 1500) => {
- let pages = getCurrentPages()
- let prePage = pages[pages.length - number - 1]
- if (prePage && time) {
- prePage.$vm.store?.reload()
- setTimeout(() => {
- uni.navigateBack({
- delta: number,
- })
- }, time)
- }
-}
-
-const decodeToken = (token) => {
- let obj = null
- if (token !== '') {
- const payload = jsrsasign.KJUR.jws.JWS.parse(token)
- if (payload.hasOwnProperty('payloadObj')) {
- obj = payload.payloadObj
- }
- }
- return obj
-}
-
-const getDictData = (key) => {
- return new Promise((resolve, reject) => {
- let dictData = uni.getStorageSync(cacheKey.dictData)
- if (dictData) {
- resolve(dictData.filter((item) => item.code === key)[0]?.children || [])
- } else {
- // 查询字典
- queryDictDataCache().then((res) => {
- uni.setStorageSync(cacheKey.dictData, res.data)
- resolve(res.data.filter((item) => item.code === key)[0]?.children || [])
- }).catch(err=>{
- reject(err)
- })
- }
- })
-}
-
-export default {
- validatePhoneNumber,
- toast,
- formatTime,
- parseTime,
- h5Helper,
- getUserLocation,
- loadConfig,
- prePage,
- loginSuccess,
- refreshPrePage,
- getDictData,
-}
+import request from './request'
+import cache from './cacheKey.js'
+import { getImageUrl } from '@/common/api/basic'
+import { apiUpdatePush } from '@/common/api/user'
+import { queryDictDataCache } from '../api/dictionary.js'
+import cacheKey from './cacheKey.js'
+import config from '@/common/js/config'
+import jsrsasign from 'jsrsasign'
+
+const toast = (title, duration = 1500, call, mask = false, icon = 'none') => {
+ if (Boolean(title) === false) {
+ return
+ }
+ uni.showToast({
+ title,
+ duration,
+ mask,
+ icon,
+ })
+ setTimeout(() => {
+ call && call()
+ }, duration)
+}
+
+/**
+ * @description 格式化时间
+ * @param time
+ * @param cFormat
+ * @returns {string|null}
+ */
+function parseTime(time, cFormat) {
+ if (arguments.length === 0) {
+ return null
+ }
+ const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
+ let date
+ if (typeof time === 'object') {
+ date = time
+ } else {
+ if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
+ time = parseInt(time)
+ }
+ if (typeof time === 'number' && time.toString().length === 10) {
+ time = time * 1000
+ }
+ date = new Date(time)
+ }
+ const formatObj = {
+ y: date.getFullYear(),
+ m: date.getMonth() + 1,
+ d: date.getDate(),
+ h: date.getHours(),
+ i: date.getMinutes(),
+ s: date.getSeconds(),
+ a: date.getDay(),
+ }
+ return format.replace(/{([ymdhisa])+}/g, (result, key) => {
+ let value = formatObj[key]
+ if (key === 'a') {
+ return ['日', '一', '二', '三', '四', '五', '六'][value]
+ }
+ if (result.length > 0 && value < 10) {
+ value = '0' + value
+ }
+ return value || 0
+ })
+}
+
+/**
+ * @description 格式化时间
+ * @param time
+ * @param option
+ * @returns {string}
+ */
+function formatTime(time, option) {
+ if (('' + time).length === 10) {
+ time = parseInt(time) * 1000
+ } else {
+ time = +time
+ }
+ if (option) {
+ return parseTime(time, option)
+ } else {
+ const d = new Date(time)
+ const now = Date.now()
+ const diff = (now - d) / 1000
+ if (diff < 30) {
+ return '刚刚'
+ } else if (diff < 3600) {
+ // less 1 hour
+ return Math.ceil(diff / 60) + '分钟前'
+ } else if (diff < 3600 * 24) {
+ return Math.ceil(diff / 3600) + '小时前'
+ } else if (diff < 3600 * 24 * 2) {
+ return '1天前'
+ }
+ return (
+ d.getMonth() + 1 + '月' + d.getDate() + '日'
+ // +
+ // d.getHours() +
+ // '时'
+ // +
+ // d.getMinutes() +
+ // '分'
+ )
+ }
+}
+// 获取当天日期(年月日)
+function getToday() {
+ const today = new Date();
+ const year = today.getFullYear();
+ const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1
+ const day = String(today.getDate()).padStart(2, '0');
+ return `${year}-${month}-${day}`;
+}
+
+// 获取3个月前的日期
+function getThreeMonthsAgo() {
+ const threeMonthsAgo = new Date();
+ threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3); // 月份减3
+ const year = threeMonthsAgo.getFullYear();
+ const month = String(threeMonthsAgo.getMonth() + 1).padStart(2, '0');
+ const day = String(threeMonthsAgo.getDate()).padStart(2, '0');
+ return `${year}-${month}-${day}`;
+}
+
+
+
+const h5Helper = {
+ isAndroid: function () {
+ return window.navigator.appVersion.toLowerCase().indexOf('android') != -1
+ },
+ isIOS: function () {
+ return window.navigator.appVersion.toLowerCase().indexOf('iphone') != -1
+ },
+ isWeiXinWeb: function () {
+ var ua = window.navigator.userAgent.toLowerCase()
+ return ua.match(/MicroMessenger/i) == 'micromessenger'
+ },
+}
+
+// 验证手机号格式
+const validatePhoneNumber = (phone) => {
+ if (!phone) return false
+ var testReg = /^1[23456789]\d{9}$/
+ return testReg.test(phone)
+}
+
+const getUserLocation = (call) => {
+ uni.getLocation({
+ type: 'wgs84',
+ success: function (address) {
+ call(address)
+ },
+ fail: (err) => {
+ uni.showModal({
+ title: '提示',
+ content: '定位失败,请打开定位权限',
+ success: function (res) {
+ if (res.confirm) {
+ uni.openSetting({
+ success: (resSett) => {
+ if (resSett.authSetting['scope.userLocation']) {
+ uni.getLocation({
+ success: (address) => {
+ call && call(address)
+ },
+ })
+ }
+ },
+ })
+ }
+ },
+ })
+ },
+ })
+}
+
+// 加载用户配置
+var globalConfigIsLoading = false,
+ global_config = null,
+ globalConfigCallbacks = []
+/**
+ * 加载用户配置
+ * @param call 加载成功后的回调
+ * @param need_fresh 是否及时刷新用户配置
+ */
+const loadConfig = (call, need_fresh = false) => {
+ if (call && global_config && !need_fresh) {
+ call(global_config)
+ return
+ }
+ if (globalConfigIsLoading) {
+ globalConfigCallbacks.push(call)
+ return
+ }
+ globalConfigIsLoading = true
+ request({
+ url: '/org/userResource/userMsg',
+ })
+ .then((rs) => {
+ globalConfigIsLoading = false
+ global_config = rs.data
+ uni.setStorage({
+ key: 'userInfo',
+ data: global_config,
+ })
+ if (call) {
+ call(global_config)
+ }
+ for (var i = 0; i < globalConfigCallbacks.length; i++) {
+ globalConfigCallbacks[i](global_config)
+ }
+ globalConfigCallbacks = []
+ })
+ .catch((err) => {
+ globalConfigIsLoading = false
+ console.warn(err)
+ // uni.reLaunch({ url: '/pages/user/login' })
+ })
+}
+
+const prePage = () => {
+ let pages = getCurrentPages()
+ let prePage = pages[pages.length - 2]
+ return prePage
+}
+
+const loginSuccess = (data, jump = true) => {
+ return new Promise((resolve, reject) => {
+ console.log(data)
+ uni.setStorageSync('access_token', data.token_type + ' ' + data.access_token)
+ uni.setStorageSync('refresh_token', data.refresh_token)
+ let userInfo = decodeToken(data.access_token)
+ console.log(userInfo)
+ // let strings = data.access_token.split('.') //截取token,获取载体
+ // console.log(escape, atob)
+ // var userInfo = JSON.parse(decodeURIComponent(escape(atob(strings[1].replace(/-/g, '+').replace(/_/g, '/')))))
+ userInfo.authorities = userInfo.authorities[0]
+ if (userInfo.headSculpture) {
+ userInfo.avatar = config.static + userInfo.headSculpture
+ }
+ console.log(userInfo)
+ uni.setStorageSync(cache.userInfo, userInfo)
+ apiUpdatePush()
+ resolve(userInfo)
+ if (jump) {
+ queryDictDataCache().then((res) => {
+ uni.setStorageSync(cacheKey.dictData, res.data)
+ })
+ console.log('reLaunch')
+ uni.reLaunch({
+ url: '/pages/index/index',
+ fail: (err) => {
+ console.log(err)
+ },
+ })
+ }
+ })
+}
+/**
+ * 只针对列表页的刷新
+ * @param {*} number
+ * @param {*} time
+ */
+const refreshPrePage = (number = 1, time = 1500) => {
+ let pages = getCurrentPages()
+ let prePage = pages[pages.length - number - 1]
+ if (prePage && time) {
+ prePage.$vm.store?.reload()
+ setTimeout(() => {
+ uni.navigateBack({
+ delta: number,
+ })
+ }, time)
+ }
+}
+
+const decodeToken = (token) => {
+ let obj = null
+ if (token !== '') {
+ const payload = jsrsasign.KJUR.jws.JWS.parse(token)
+ if (payload.hasOwnProperty('payloadObj')) {
+ obj = payload.payloadObj
+ }
+ }
+ return obj
+}
+
+const getDictData = (key) => {
+ return new Promise((resolve, reject) => {
+ let dictData = uni.getStorageSync(cacheKey.dictData)
+ if (dictData) {
+ resolve(dictData.filter((item) => item.code === key)[0]?.children || [])
+ } else {
+ // 查询字典
+ queryDictDataCache().then((res) => {
+ uni.setStorageSync(cacheKey.dictData, res.data)
+ resolve(res.data.filter((item) => item.code === key)[0]?.children || [])
+ }).catch(err=>{
+ reject(err)
+ })
+ }
+ })
+}
+
+export default {
+ validatePhoneNumber,
+ toast,
+ formatTime,
+ parseTime,
+ h5Helper,
+ getUserLocation,
+ loadConfig,
+ prePage,
+ loginSuccess,
+ refreshPrePage,
+ getDictData,
+ getToday,
+ getThreeMonthsAgo
+}
diff --git a/manifest.json b/manifest.json
index f91453f..c612493 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "灿能物联",
"appid" : "__UNI__88BC25B",
"description" : "",
- "versionName" : "1.6.7",
- "versionCode" : 167,
+ "versionName" : "1.6.8",
+ "versionCode" : 168,
"transformPx" : false,
"sassImplementationName" : "node-sass",
/* 5+App特有相关 */
@@ -70,13 +70,7 @@
/* SDK配置 */
"sdkConfigs" : {
"ad" : {},
- "maps" : {
- "amap" : {
- "name" : "",
- "appkey_ios" : "73262624599d79ee4ad8bba2ab4a0958",
- "appkey_android" : "c93dd87e087f3686a9d4463ce5ebcbe1"
- }
- },
+ "maps" : {},
"push" : {
"unipush" : {
"version" : "2",
@@ -156,6 +150,9 @@
},
"router" : {
"base" : ""
+ },
+ "unipush" : {
+ "enable" : false
}
},
"mp-toutiao" : {
diff --git a/pages/device/APF/report.vue b/pages/device/APF/report.vue
index 189cc17..e5bbca0 100644
--- a/pages/device/APF/report.vue
+++ b/pages/device/APF/report.vue
@@ -1,230 +1,240 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/message/message.vue b/pages/message/message.vue
index 3500c72..d9da134 100644
--- a/pages/message/message.vue
+++ b/pages/message/message.vue
@@ -1,236 +1,249 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/mine/about.vue b/pages/mine/about.vue
index 250f10b..ca47114 100644
--- a/pages/mine/about.vue
+++ b/pages/mine/about.vue
@@ -4,7 +4,7 @@
灿能物联
- Version 1.6.6
+ Version 1.6.7
diff --git a/pages/mine/setup.vue b/pages/mine/setup.vue
index cd5ddab..44dcec2 100644
--- a/pages/mine/setup.vue
+++ b/pages/mine/setup.vue
@@ -48,7 +48,7 @@
版本信息
- 当前版本V1.6.6
+ 当前版本V<1.6.7/view>