Commit 99a3448e58cc7a0f79c376244eb6ec3090323a78
Merge branch 'dev-ft' into 'main'
fix:DEFECT-369 修改问题单号的pc端和min-pro筛选时间数据不同意问题,修改返回顶部时间为10ms,feat:新增无数据显示默认图片 See merge request huang/thingskit-app!40
Showing
19 changed files
with
210 additions
and
306 deletions
1 | 1 | <script> |
2 | 2 | import base from '@/config/baseUrl'; |
3 | 3 | import store from '@/store'; |
4 | -// #ifdef APP-PLUS | |
5 | -import APPUpdate from '@/uni_modules/zhouWei-APPUpdate/js_sdk/appUpdate'; | |
6 | -// #endif | |
7 | 4 | |
8 | 5 | import { mpUpData, scene } from '@/config/common'; |
9 | 6 | export default { |
... | ... | @@ -16,9 +13,6 @@ export default { |
16 | 13 | store.commit('setCacheData'); |
17 | 14 | //获取二维码信息 |
18 | 15 | scene(e); |
19 | - // #ifdef APP-PLUS | |
20 | - APPUpdate(); //检测app更新 | |
21 | - // #endif | |
22 | 16 | }, |
23 | 17 | onShow(e) { |
24 | 18 | // #ifdef MP | ... | ... |
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | padding: 30rpx; |
3 | 3 | } |
4 | 4 | .alarm-detail-column { |
5 | - border-radius: 20px; | |
5 | + border-radius: 10px; | |
6 | 6 | width: 688rpx; |
7 | 7 | height: 573rpx; |
8 | 8 | background-color: #ffffff; |
... | ... | @@ -54,7 +54,7 @@ |
54 | 54 | } |
55 | 55 | .hanle-main { |
56 | 56 | margin-top: 30rpx; |
57 | - border-radius: 20px; | |
57 | + border-radius: 10px; | |
58 | 58 | width: 688rpx; |
59 | 59 | height: 273rpx; |
60 | 60 | background-color: #ffffff; | ... | ... |
... | ... | @@ -128,30 +128,7 @@ export const judgeLogin = (callback) => { |
128 | 128 | } |
129 | 129 | if (!storeUserInfo.isToken) { |
130 | 130 | // #ifdef MP |
131 | - return uni.$u.toast('请登录') | |
132 | - // uni.$showModal({ | |
133 | - // title: "登录提示", | |
134 | - // confirmVal: '去登录', | |
135 | - // cancelVal: '再逛会', | |
136 | - // content: '此时此刻需要您登录喔~', | |
137 | - // }).then(res => { | |
138 | - // uni.navigateTo({ | |
139 | - // url: "/pages/personal/login" | |
140 | - // }); | |
141 | - // }).catch(res => {}) | |
142 | - // store.commit('setLoginPopupShow', true); | |
143 | - // #endif | |
144 | - // #ifdef APP-PLUS | |
145 | - uni.$showModal({ | |
146 | - title: "登录提示", | |
147 | - confirmVal: '去登录', | |
148 | - cancelVal: '再逛会', | |
149 | - content: '此时此刻需要您登录喔~', | |
150 | - }).then(res => { | |
151 | - uni.navigateTo({ | |
152 | - url: "/pages/personal/login" | |
153 | - }); | |
154 | - }).catch(res => {}) | |
131 | + return | |
155 | 132 | // #endif |
156 | 133 | // #ifdef H5 |
157 | 134 | h5Login(); | ... | ... |
... | ... | @@ -31,6 +31,11 @@ uni.$u.http.setConfig((config) => { |
31 | 31 | // 请求拦截 |
32 | 32 | uni.$u.http.interceptors.request.use( |
33 | 33 | (config) => { |
34 | + if (store.state.userInfo.isThirdLogin) { | |
35 | + uni.switchTab({ | |
36 | + url: "../pages/personal/personal", | |
37 | + }); | |
38 | + } | |
34 | 39 | // 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{} |
35 | 40 | config.data = config.data || {}; |
36 | 41 | // 根据custom参数中配置的是否需要token,添加对应的请求头 |
... | ... | @@ -71,7 +76,6 @@ uni.$u.http.interceptors.response.use( |
71 | 76 | } else {} |
72 | 77 | }, |
73 | 78 | (response) => { |
74 | - console.log('Response error', response) | |
75 | 79 | // 关闭加载动画 |
76 | 80 | store.commit("setLoadingShow", false); |
77 | 81 | let show = true; |
... | ... | @@ -82,12 +86,19 @@ uni.$u.http.interceptors.response.use( |
82 | 86 | } else if (message == "request:fail timeout") { |
83 | 87 | errorData = "请求超时:请检查网络"; |
84 | 88 | } else if (response.data.status == 401) { |
85 | - uni.reLaunch({ | |
86 | - url: "/publicLoginSubPage/public/login", | |
87 | - }); | |
88 | - // 清空登录信息 | |
89 | - store.commit("emptyUserInfo"); | |
90 | - show = false; | |
89 | + if (!store.state.userInfo.isThirdLogin) { | |
90 | + uni.reLaunch({ | |
91 | + url: "/publicLoginSubPage/public/login", | |
92 | + }); | |
93 | + // 清空登录信息 | |
94 | + store.commit("emptyUserInfo"); | |
95 | + show = false; | |
96 | + } else { | |
97 | + uni.switchTab({ | |
98 | + url: "../pages/personal/personal", | |
99 | + }); | |
100 | + show = false; | |
101 | + } | |
91 | 102 | } else { |
92 | 103 | errorData = message || ""; |
93 | 104 | } | ... | ... |
... | ... | @@ -30,7 +30,12 @@ |
30 | 30 | <!-- 吸顶组件 --> |
31 | 31 | <!-- 自带分页组件 --> |
32 | 32 | <mescroll-body ref="mescrollRef" :up="upOption" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback"> |
33 | - <view class="device-list"> | |
33 | + <!-- 无数据图片 --> | |
34 | + <view v-if="list.length == 0" style="position: relative;top: 100rpx;flex-direction: column;" class="u-flex"> | |
35 | + <view><image style="width: 280rpx;height: 250rpx;" src="../../static/empty.png"></image></view> | |
36 | + <view style="text-align: center;"><text style="font-size: 12px;color: gray;">~ 空空如也 ~</text></view> | |
37 | + </view> | |
38 | + <view v-else class="device-list"> | |
34 | 39 | <view @click="openAlertDetail(item)" class="list-item" v-for="(item, index) in list" :key="index"> |
35 | 40 | <view class="u-flex item"> |
36 | 41 | <view class="item-text text-clip"> |
... | ... | @@ -164,7 +169,7 @@ |
164 | 169 | <view class="u-flex popup-alarm-child"> |
165 | 170 | <view class="home-text-muted">选择日期</view> |
166 | 171 | <view style="width: 623rpx;margin-left: 5rpx;margin-right: 70rpx;margin-top: 35rpx;"> |
167 | - <uni-datetime-picker v-model="range" type="daterange" /> | |
172 | + <uni-datetime-picker v-model="range" type="datetimerange" rangeSeparator="至" /> | |
168 | 173 | </view> |
169 | 174 | </view> |
170 | 175 | </view> |
... | ... | @@ -197,7 +202,7 @@ export default { |
197 | 202 | }, |
198 | 203 | data() { |
199 | 204 | return { |
200 | - range: ['', ''], | |
205 | + range: [], | |
201 | 206 | alertStatusVal: '', |
202 | 207 | deviceTypeVal: '', |
203 | 208 | alertLevelVal: '', |
... | ... | @@ -378,7 +383,7 @@ export default { |
378 | 383 | topBack() { |
379 | 384 | uni.pageScrollTo({ |
380 | 385 | scrollTop: 0, // 滚动到页面的目标位置 这个是滚动到顶部, 0 |
381 | - duration: 300 // 滚动动画的时长 | |
386 | + duration: 10 // 滚动动画的时长 | |
382 | 387 | }); |
383 | 388 | }, |
384 | 389 | /*下拉刷新的回调 */ |
... | ... | @@ -451,7 +456,6 @@ export default { |
451 | 456 | } |
452 | 457 | }) |
453 | 458 | .catch(e => { |
454 | - uni.$u.toast(e.data?.message); | |
455 | 459 | //联网失败, 结束加载 |
456 | 460 | that.mescroll.endErr(); |
457 | 461 | }); | ... | ... |
... | ... | @@ -125,14 +125,17 @@ |
125 | 125 | justify-content: space-between; |
126 | 126 | |
127 | 127 | .item { |
128 | - margin: 30rpx; | |
129 | 128 | justify-content: flex-start; |
130 | 129 | flex-direction: column; |
131 | 130 | align-items: center; |
131 | + height: 211rpx; | |
132 | + margin-top: 8rpx; | |
133 | + margin-left: 37rpx; | |
132 | 134 | |
133 | 135 | .item-text { |
134 | 136 | width: 400rpx; |
135 | 137 | text-align: left; |
138 | + margin-top: 13rpx; | |
136 | 139 | |
137 | 140 | .text { |
138 | 141 | color: #666666; |
... | ... | @@ -152,7 +155,8 @@ |
152 | 155 | |
153 | 156 | .item-right { |
154 | 157 | flex-direction: row; |
155 | - margin-top: -15rpx; | |
158 | + margin-top: -3rpx; | |
159 | + margin-right: 25rpx; | |
156 | 160 | |
157 | 161 | .right-image { |
158 | 162 | width: 30rpx; | ... | ... |
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | <view class="u-flex org-contact"><text class="text">组织关系</text></view> |
8 | 8 | <view class="u-flex org-device"> |
9 | 9 | <image class="device-image" src="../../../static/org.png"></image> |
10 | - <text class="device-text">设备数:{{ deviceTotal }}</text> | |
10 | + <text class="device-text">摄像头数:{{ cameraTotal }}</text> | |
11 | 11 | </view> |
12 | 12 | </view> |
13 | 13 | <view class="org-item"><image class="image" src="../../../static/arrow-right.png"></image></view> |
... | ... | @@ -54,7 +54,7 @@ export default { |
54 | 54 | auto: false // 不自动加载 |
55 | 55 | }, |
56 | 56 | current: 0, |
57 | - deviceTotal: 0, | |
57 | + cameraTotal: 0, | |
58 | 58 | list: [], |
59 | 59 | ordId: '' |
60 | 60 | }; |
... | ... | @@ -72,7 +72,7 @@ export default { |
72 | 72 | onLoad() { |
73 | 73 | // 隐藏原生的tabbar |
74 | 74 | uni.hideTabBar(); |
75 | - this.getDeviceTotalData(); | |
75 | + this.getcameraTotalData(); | |
76 | 76 | }, |
77 | 77 | methods: { |
78 | 78 | /*下拉刷新的回调 */ |
... | ... | @@ -98,6 +98,7 @@ export default { |
98 | 98 | .then(res => { |
99 | 99 | uni.stopPullDownRefresh(); |
100 | 100 | this.mescroll.endByPage(res.items.length, res.total); |
101 | + this.cameraTotal = res.total; | |
101 | 102 | if (pageNo == 1) { |
102 | 103 | this.list = res.items; |
103 | 104 | } else { |
... | ... | @@ -105,7 +106,6 @@ export default { |
105 | 106 | } |
106 | 107 | }) |
107 | 108 | .catch(e => { |
108 | - uni.$u.toast(e.data?.message); | |
109 | 109 | //联网失败, 结束加载 |
110 | 110 | this.mescroll.endErr(); |
111 | 111 | }); |
... | ... | @@ -113,22 +113,6 @@ export default { |
113 | 113 | hideImageUrl(item, index) { |
114 | 114 | this.current = index; |
115 | 115 | }, |
116 | - getDeviceTotalData() { | |
117 | - let httpData = { | |
118 | - page: 1, | |
119 | - pageSize: 10 | |
120 | - }; | |
121 | - uni.$u.http | |
122 | - .get('/yt/device', { params: httpData, custom: { load: false } }) | |
123 | - .then(res => { | |
124 | - if (res) { | |
125 | - this.deviceTotal = res.total; | |
126 | - } | |
127 | - }) | |
128 | - .catch(e => { | |
129 | - uni.$u.toast(e.data?.message); | |
130 | - }); | |
131 | - }, | |
132 | 116 | openCameraDetail(e) { |
133 | 117 | console.log(e); |
134 | 118 | }, | ... | ... |
... | ... | @@ -144,9 +144,9 @@ export default { |
144 | 144 | }); |
145 | 145 | }, |
146 | 146 | openOrgStatus() { |
147 | - uni.navigateTo({ | |
148 | - url: 'configuration/configuration' | |
149 | - }); | |
147 | + // uni.navigateTo({ | |
148 | + // url: 'configuration/configuration' | |
149 | + // }); | |
150 | 150 | }, |
151 | 151 | //告警状态查询 |
152 | 152 | navigatorAlarmStatus(e) { | ... | ... |
... | ... | @@ -67,11 +67,11 @@ |
67 | 67 | width: 330rpx; |
68 | 68 | height: 200rpx; |
69 | 69 | background-color: #fff; |
70 | - border-radius: 20px; | |
70 | + border-radius: 10px; | |
71 | 71 | margin-left: 25rpx; |
72 | 72 | margin-right: 21rpx; |
73 | 73 | .video { |
74 | - border-radius: 20px; | |
74 | + border-radius: 10px; | |
75 | 75 | width: 330rpx; |
76 | 76 | height: 200rpx; |
77 | 77 | } |
... | ... | @@ -92,7 +92,7 @@ |
92 | 92 | .image { |
93 | 93 | width: 330rpx; |
94 | 94 | height: 200rpx; |
95 | - border-radius: 20px; | |
95 | + border-radius: 10px; | |
96 | 96 | } |
97 | 97 | } |
98 | 98 | } | ... | ... |
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | background-color: #fff; |
21 | 21 | border: 0.01rpx solid #fff; |
22 | 22 | padding: 40rpx; |
23 | - border-radius: 20px; | |
23 | + border-radius: 10px; | |
24 | 24 | .item-center { |
25 | 25 | width: 290rpx; |
26 | 26 | height: 150rpx; |
... | ... | @@ -80,7 +80,7 @@ |
80 | 80 | justify-content: space-between; |
81 | 81 | align-items: flex-start; |
82 | 82 | flex-direction: column; |
83 | - border-radius: 20px; | |
83 | + border-radius: 10px; | |
84 | 84 | .item-child-top { |
85 | 85 | justify-content: space-between; |
86 | 86 | padding: 30rpx; | ... | ... |
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | <view class="u-flex u-p-l-30 u-p-r-20 u-p-t-75 u-p-b-30"> |
9 | 9 | <block v-if="userInfo.isToken || userInfo.isThirdLogin"> |
10 | 10 | <view @click="openPersonalInfo" class="u-m-r-20"> |
11 | - <image class="avatar" mode="aspectFill" :src="userInfo.avatar == '' ? '/static/logo.png' : userInfo.avatar"></image> | |
11 | + <image class="avatar" mode="aspectFill" :src="!userInfo.avatar ? '../../static/logo.png' : userInfo.avatar"></image> | |
12 | 12 | </view> |
13 | 13 | <view class="u-flex-1"> |
14 | 14 | <view class="nickName u-flex"> | ... | ... |
1 | 1 | import Vue from 'vue'; |
2 | 2 | import moment from 'moment'; |
3 | -// #ifdef APP-PLUS | |
4 | -import {judgePermission} from './permission' | |
5 | -// #endif | |
6 | 3 | const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'; |
7 | 4 | //金额过滤 |
8 | 5 | Vue.filter('money', function(val) { |
... | ... | @@ -26,68 +23,68 @@ Vue.filter('money', function(val) { |
26 | 23 | }); |
27 | 24 | //手机号中间4位为* |
28 | 25 | Vue.filter('phone', function(val) { |
29 | - var tel = val; | |
30 | - tel = "" + tel; | |
31 | - var telShort = tel.replace(tel.substring(3, 7), "****") | |
32 | - return telShort | |
26 | + var tel = val; | |
27 | + tel = "" + tel; | |
28 | + var telShort = tel.replace(tel.substring(3, 7), "****") | |
29 | + return telShort | |
33 | 30 | }) |
34 | 31 | //获取系统信息、判断ipX安全距离 |
35 | 32 | export const getTabbarHeight = function() { |
36 | - var systemInfo = uni.getSystemInfoSync() | |
37 | - var data = { | |
38 | - ...systemInfo, | |
39 | - tabbarH: 50,//tabbar高度--单位px | |
40 | - tabbarPaddingB: 0,//tabbar底部安全距离高度--单位px | |
41 | - device: systemInfo.system.indexOf('iOS') != -1?'iOS':'Android', //苹果或者安卓设备 | |
42 | - } | |
43 | - let modelArr = ['10,3','10,6','X', 'XR', 'XS', '11', '12', '13', '14', '15', '16']; | |
44 | - let model = systemInfo.model; | |
45 | - model && modelArr.forEach(item => { | |
46 | - //适配iphoneX以上的底部,给tabbar一定高度的padding-bottom | |
47 | - if(model.indexOf(item) != -1 && (model.indexOf('iPhone') != -1 || model.indexOf('iphone') != -1)) { | |
48 | - data.tabbarH = 70 | |
49 | - data.tabbarPaddingB = 20 | |
50 | - } | |
51 | - }) | |
52 | - return data; | |
33 | + var systemInfo = uni.getSystemInfoSync() | |
34 | + var data = { | |
35 | + ...systemInfo, | |
36 | + tabbarH: 50, //tabbar高度--单位px | |
37 | + tabbarPaddingB: 0, //tabbar底部安全距离高度--单位px | |
38 | + device: systemInfo.system.indexOf('iOS') != -1 ? 'iOS' : 'Android', //苹果或者安卓设备 | |
39 | + } | |
40 | + let modelArr = ['10,3', '10,6', 'X', 'XR', 'XS', '11', '12', '13', '14', '15', '16']; | |
41 | + let model = systemInfo.model; | |
42 | + model && modelArr.forEach(item => { | |
43 | + //适配iphoneX以上的底部,给tabbar一定高度的padding-bottom | |
44 | + if (model.indexOf(item) != -1 && (model.indexOf('iPhone') != -1 || model.indexOf('iphone') != -1)) { | |
45 | + data.tabbarH = 70 | |
46 | + data.tabbarPaddingB = 20 | |
47 | + } | |
48 | + }) | |
49 | + return data; | |
53 | 50 | } |
54 | 51 | |
55 | 52 | //计算两点距离 |
56 | -export const commonDistance = function(lat1, lng1, lat2, lng2) { | |
57 | - var f = ((lat1 + lat2) / 2) * Math.PI / 180.0; | |
58 | - var g = ((lat1 - lat2) / 2) * Math.PI / 180.0; | |
59 | - var l = ((lng1 - lng2) / 2) * Math.PI / 180.0; | |
60 | - var sg = Math.sin(g); | |
61 | - var sl = Math.sin(l); | |
62 | - var sf = Math.sin(f); | |
63 | - var s, c, w, r, d, h1, h2; | |
64 | - var a = 6378137.0; //地球的直径 | |
65 | - var fl = 1 / 298.257; | |
66 | - sg = sg * sg; | |
67 | - sl = sl * sl; | |
68 | - sf = sf * sf; | |
69 | - s = sg * (1 - sl) + (1 - sf) * sl; | |
70 | - c = (1 - sg) * (1 - sl) + sf * sl; | |
71 | - w = Math.atan(Math.sqrt(s / c)); | |
72 | - r = Math.sqrt(s * c) / w; | |
73 | - d = 2 * w * a; | |
74 | - h1 = (3 * r - 1) / 2 / c; | |
75 | - h2 = (3 * r + 1) / 2 / s; | |
76 | - var num = d * (1 + fl * (h1 * sf * (1 - sg) - h2 * (1 - sf) * sg)) | |
77 | - // 换算单位 | |
78 | - if (num == undefined) { | |
79 | - num = "0.0 m" | |
80 | - }; | |
81 | - if (num < 1000) { | |
82 | - num = (Math.round(num)).toFixed(1) + "m" | |
83 | - } else if (num > 1000) { | |
84 | - num = (Math.round(num / 100) / 10).toFixed(1) + "km" | |
85 | - } | |
86 | - return num | |
53 | +export const commonDistance = function(lat1, lng1, lat2, lng2) { | |
54 | + var f = ((lat1 + lat2) / 2) * Math.PI / 180.0; | |
55 | + var g = ((lat1 - lat2) / 2) * Math.PI / 180.0; | |
56 | + var l = ((lng1 - lng2) / 2) * Math.PI / 180.0; | |
57 | + var sg = Math.sin(g); | |
58 | + var sl = Math.sin(l); | |
59 | + var sf = Math.sin(f); | |
60 | + var s, c, w, r, d, h1, h2; | |
61 | + var a = 6378137.0; //地球的直径 | |
62 | + var fl = 1 / 298.257; | |
63 | + sg = sg * sg; | |
64 | + sl = sl * sl; | |
65 | + sf = sf * sf; | |
66 | + s = sg * (1 - sl) + (1 - sf) * sl; | |
67 | + c = (1 - sg) * (1 - sl) + sf * sl; | |
68 | + w = Math.atan(Math.sqrt(s / c)); | |
69 | + r = Math.sqrt(s * c) / w; | |
70 | + d = 2 * w * a; | |
71 | + h1 = (3 * r - 1) / 2 / c; | |
72 | + h2 = (3 * r + 1) / 2 / s; | |
73 | + var num = d * (1 + fl * (h1 * sf * (1 - sg) - h2 * (1 - sf) * sg)) | |
74 | + // 换算单位 | |
75 | + if (num == undefined) { | |
76 | + num = "0.0 m" | |
77 | + }; | |
78 | + if (num < 1000) { | |
79 | + num = (Math.round(num)).toFixed(1) + "m" | |
80 | + } else if (num > 1000) { | |
81 | + num = (Math.round(num / 100) / 10).toFixed(1) + "km" | |
82 | + } | |
83 | + return num | |
87 | 84 | } |
88 | 85 | // px转upx |
89 | -export const px2upx = function(n){ | |
90 | - return n/(uni.upx2px(n)/n); | |
86 | +export const px2upx = function(n) { | |
87 | + return n / (uni.upx2px(n) / n); | |
91 | 88 | } |
92 | 89 | |
93 | 90 | // 判断两时间段之间活动状态、判断活动还有多长时间开始、多长时间结束----添加定时器运行此方法可倒计时 |
... | ... | @@ -95,53 +92,59 @@ export const px2upx = function(n){ |
95 | 92 | // var closeTime = new Date(item.closeTime.replace(/-/g, '/')).getTime(); //转时间戳 |
96 | 93 | // var djs = this.djsTime(startTime, closeTime); |
97 | 94 | export const djsTime = function(startTime, endTime) { |
98 | - var bbb = new Date().getTime(), | |
99 | - leftTime = startTime - bbb, | |
100 | - rightTime = endTime - bbb, | |
101 | - djsTime = '', | |
102 | - speed = 0, | |
103 | - activityStatus = 0, //活动状态 1:未开始 2:进行中 3:已结束 | |
104 | - dd,hh,mm,ss; | |
105 | - if (leftTime > 0) { //还未开始 | |
106 | - activityStatus = 1 | |
107 | - dd = Math.floor(leftTime / 1000 / 60 / 60 / 24); | |
108 | - hh = Math.floor((leftTime / 1000 / 60 / 60) % 24) < 10 ? '0' + Math.floor((leftTime / 1000 / 60 / 60) % 24) : Math.floor((leftTime / 1000 / 60 / 60) % 24); | |
109 | - mm = Math.floor((leftTime / 1000 / 60) % 60) < 10 ? '0' + Math.floor((leftTime / 1000 / 60) % 60) : Math.floor((leftTime / 1000 / 60) % 60); | |
110 | - ss = Math.floor((leftTime / 1000) % 60) < 10 ? '0' + Math.floor((leftTime / 1000) % 60) : Math.floor((leftTime / 1000) % 60); | |
111 | - if (dd != 0) { | |
112 | - djsTime = dd + "天 " + hh + ":" + mm + ":" + ss; | |
113 | - } else { | |
114 | - djsTime = hh + ":" + mm + ":" + ss; | |
115 | - } | |
116 | - } else if (leftTime <= 0) { | |
117 | - if (rightTime > 0) { //进行中 | |
118 | - activityStatus = 2; | |
119 | - speed = (1 - rightTime / (endTime - startTime)) * 100; | |
120 | - dd = Math.floor(rightTime / 1000 / 60 / 60 / 24); | |
121 | - hh = Math.floor((rightTime / 1000 / 60 / 60) % 24) < 10 ? '0' + Math.floor((rightTime / 1000 / 60 / 60) % 24) : Math.floor((rightTime / 1000 / 60 / 60) % 24); | |
122 | - mm = Math.floor((rightTime / 1000 / 60) % 60) < 10 ? '0' + Math.floor((rightTime / 1000 / 60) % 60) : Math.floor((rightTime / 1000 / 60) % 60); | |
123 | - ss = Math.floor((rightTime / 1000) % 60) < 10 ? '0' + Math.floor((rightTime / 1000) % 60) : Math.floor((rightTime / 1000) % 60); | |
124 | - if (dd != 0) { | |
125 | - djsTime = dd + "天 " + hh + ":" + mm + ":" + ss; | |
126 | - } else { | |
127 | - djsTime = hh + ":" + mm + ":" + ss; | |
128 | - } | |
129 | - } else { //已结束 | |
130 | - speed = 100; | |
131 | - djsTime = '已结束'; | |
132 | - activityStatus = 3; | |
133 | - } | |
134 | - } | |
135 | - var item = { | |
136 | - djsTime: djsTime, //距离当前时间差 | |
137 | - activityStatus: activityStatus, //活动状态 1:未开始 2:进行中 3:已结束 | |
138 | - speed: speed, //进度(单位%) | |
139 | - dd: dd, //天 | |
140 | - hh: hh, //小时 | |
141 | - mm: mm, //分 | |
142 | - ss: ss, //秒 | |
143 | - } | |
144 | - return item; | |
95 | + var bbb = new Date().getTime(), | |
96 | + leftTime = startTime - bbb, | |
97 | + rightTime = endTime - bbb, | |
98 | + djsTime = '', | |
99 | + speed = 0, | |
100 | + activityStatus = 0, //活动状态 1:未开始 2:进行中 3:已结束 | |
101 | + dd, hh, mm, ss; | |
102 | + if (leftTime > 0) { //还未开始 | |
103 | + activityStatus = 1 | |
104 | + dd = Math.floor(leftTime / 1000 / 60 / 60 / 24); | |
105 | + hh = Math.floor((leftTime / 1000 / 60 / 60) % 24) < 10 ? '0' + Math.floor((leftTime / 1000 / 60 / 60) % | |
106 | + 24) : Math.floor((leftTime / 1000 / 60 / 60) % 24); | |
107 | + mm = Math.floor((leftTime / 1000 / 60) % 60) < 10 ? '0' + Math.floor((leftTime / 1000 / 60) % 60) : Math | |
108 | + .floor((leftTime / 1000 / 60) % 60); | |
109 | + ss = Math.floor((leftTime / 1000) % 60) < 10 ? '0' + Math.floor((leftTime / 1000) % 60) : Math.floor(( | |
110 | + leftTime / 1000) % 60); | |
111 | + if (dd != 0) { | |
112 | + djsTime = dd + "天 " + hh + ":" + mm + ":" + ss; | |
113 | + } else { | |
114 | + djsTime = hh + ":" + mm + ":" + ss; | |
115 | + } | |
116 | + } else if (leftTime <= 0) { | |
117 | + if (rightTime > 0) { //进行中 | |
118 | + activityStatus = 2; | |
119 | + speed = (1 - rightTime / (endTime - startTime)) * 100; | |
120 | + dd = Math.floor(rightTime / 1000 / 60 / 60 / 24); | |
121 | + hh = Math.floor((rightTime / 1000 / 60 / 60) % 24) < 10 ? '0' + Math.floor((rightTime / 1000 / 60 / | |
122 | + 60) % 24) : Math.floor((rightTime / 1000 / 60 / 60) % 24); | |
123 | + mm = Math.floor((rightTime / 1000 / 60) % 60) < 10 ? '0' + Math.floor((rightTime / 1000 / 60) % 60) : | |
124 | + Math.floor((rightTime / 1000 / 60) % 60); | |
125 | + ss = Math.floor((rightTime / 1000) % 60) < 10 ? '0' + Math.floor((rightTime / 1000) % 60) : Math.floor(( | |
126 | + rightTime / 1000) % 60); | |
127 | + if (dd != 0) { | |
128 | + djsTime = dd + "天 " + hh + ":" + mm + ":" + ss; | |
129 | + } else { | |
130 | + djsTime = hh + ":" + mm + ":" + ss; | |
131 | + } | |
132 | + } else { //已结束 | |
133 | + speed = 100; | |
134 | + djsTime = '已结束'; | |
135 | + activityStatus = 3; | |
136 | + } | |
137 | + } | |
138 | + var item = { | |
139 | + djsTime: djsTime, //距离当前时间差 | |
140 | + activityStatus: activityStatus, //活动状态 1:未开始 2:进行中 3:已结束 | |
141 | + speed: speed, //进度(单位%) | |
142 | + dd: dd, //天 | |
143 | + hh: hh, //小时 | |
144 | + mm: mm, //分 | |
145 | + ss: ss, //秒 | |
146 | + } | |
147 | + return item; | |
145 | 148 | } |
146 | 149 | |
147 | 150 | // 小程序获取定位权限判断 |
... | ... | @@ -151,14 +154,14 @@ function getMpLocation(successCallback, errCallback, isOpenSetting) { |
151 | 154 | success: res => { |
152 | 155 | if (res.authSetting['scope.userLocation'] || !isOpenSetting) { |
153 | 156 | uni.getLocation({ |
154 | - // #ifndef MP-ALIPAY | |
155 | - type: 'gcj02', | |
156 | - // #endif | |
157 | - success(res){ | |
158 | - console.log('successCallback') | |
157 | + // #ifndef MP-ALIPAY | |
158 | + type: 'gcj02', | |
159 | + // #endif | |
160 | + success(res) { | |
161 | + console.log('successCallback') | |
159 | 162 | successCallback(res); |
160 | 163 | }, |
161 | - fail(err){ | |
164 | + fail(err) { | |
162 | 165 | console.log("位置信息错误", err); |
163 | 166 | errCallback("位置信息获取失败"); |
164 | 167 | } |
... | ... | @@ -200,40 +203,24 @@ export const getAppLatLon = function(successCallback, errCallback, isOpenSetting |
200 | 203 | getMpLocation(successCallback, errCallback, isOpenSetting); |
201 | 204 | } |
202 | 205 | // #endif |
203 | - // #ifdef MP-ALIPAY | |
204 | - getMpLocation(successCallback, errCallback, false); | |
205 | - // #endif | |
206 | - // #ifdef H5 | |
207 | - uni.getLocation({ | |
208 | - type: 'gcj02', | |
209 | - success(res){ | |
210 | - console.log('successCallback') | |
211 | - successCallback(res); | |
212 | - }, | |
213 | - fail(err){ | |
214 | - console.log("位置信息错误", err); | |
215 | - errCallback("位置信息获取失败"); | |
216 | - } | |
217 | - }); | |
218 | - // #endif | |
219 | - // #ifdef APP-PLUS | |
220 | - judgePermission("location", function(result) { | |
221 | - if (result == 1) { | |
222 | - uni.getLocation({ | |
223 | - type: 'gcj02', | |
224 | - success: res => { | |
225 | - successCallback(res); | |
226 | - }, | |
227 | - fail: (err) => { | |
228 | - console.log("位置信息错误", err); | |
229 | - errCallback("位置信息获取失败"); | |
230 | - } | |
231 | - }); | |
206 | + // #ifdef MP-ALIPAY | |
207 | + getMpLocation(successCallback, errCallback, false); | |
208 | + // #endif | |
209 | + // #ifdef H5 | |
210 | + uni.getLocation({ | |
211 | + type: 'gcj02', | |
212 | + success(res) { | |
213 | + console.log('successCallback') | |
214 | + successCallback(res); | |
215 | + }, | |
216 | + fail(err) { | |
217 | + console.log("位置信息错误", err); | |
218 | + errCallback("位置信息获取失败"); | |
232 | 219 | } |
233 | 220 | }); |
234 | 221 | // #endif |
235 | 222 | } |
236 | 223 | |
237 | 224 | export function formatToDate(date = undefined, format = DATE_TIME_FORMAT) { |
238 | - return moment(date).format(format); | |
239 | -} | |
\ No newline at end of file | ||
225 | + return moment(date).format(format); | |
226 | +} | ... | ... |
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | </view> |
9 | 9 | <view class="u-m-t-20 basic-text"><text class="text">基本资料</text></view> |
10 | 10 | <view class="basic-main"> |
11 | - <u--form labelPosition="left" :model="myInfoModel" :rules="rules" ref="myInfoFormRef"> | |
11 | + <u--form labelPosition="left" :model="myInfoModel"> | |
12 | 12 | <u-form-item labelWidth="80px" label="真实姓名" prop="userInfo.realName" borderBottom ref="item1"> |
13 | 13 | <u--input placeholder="请输入真实姓名" v-model="myInfoModel.userInfo.realName" border="none"></u--input> |
14 | 14 | </u-form-item> |
... | ... | @@ -86,54 +86,6 @@ export default { |
86 | 86 | dateTime: Number(new Date()), |
87 | 87 | avatar: '', |
88 | 88 | id: '', |
89 | - rules: { | |
90 | - 'userInfo.realName': [ | |
91 | - { | |
92 | - type: 'string', | |
93 | - required: true, | |
94 | - message: '请填写姓名', | |
95 | - trigger: ['blur', 'change'] | |
96 | - }, | |
97 | - { | |
98 | - validator: (rule, value, callback) => { | |
99 | - return uni.$u.test.chinese(value); | |
100 | - }, | |
101 | - message: '姓名必须为中文', | |
102 | - trigger: ['change', 'blur'] | |
103 | - } | |
104 | - ], | |
105 | - 'userInfo.phoneNumber': [ | |
106 | - { | |
107 | - type: 'string', | |
108 | - required: true, | |
109 | - message: '请填写手机号码', | |
110 | - trigger: ['blur', 'change'] | |
111 | - }, | |
112 | - { | |
113 | - // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明 | |
114 | - validator: (rule, value, callback) => { | |
115 | - return uni.$u.test.mobile(value); | |
116 | - }, | |
117 | - message: '手机必须为数字', | |
118 | - trigger: ['change', 'blur'] | |
119 | - } | |
120 | - ], | |
121 | - 'userInfo.email': [ | |
122 | - { | |
123 | - type: 'string', | |
124 | - required: true, | |
125 | - message: '请填写邮箱', | |
126 | - trigger: ['blur', 'change'] | |
127 | - }, | |
128 | - { | |
129 | - validator: (rule, value, callback) => { | |
130 | - return uni.$u.test.email(value); | |
131 | - }, | |
132 | - message: '邮箱必须带有@', | |
133 | - trigger: ['change', 'blur'] | |
134 | - } | |
135 | - ] | |
136 | - }, | |
137 | 89 | info: {}, |
138 | 90 | openIds: '' |
139 | 91 | }; |
... | ... | @@ -153,7 +105,6 @@ export default { |
153 | 105 | }, |
154 | 106 | onShow() { |
155 | 107 | let getOpenId = getApp().globalData.openId; |
156 | - console.log('获取全局openId', getOpenId); | |
157 | 108 | if (getOpenId) { |
158 | 109 | this.openIds = getOpenId; |
159 | 110 | } |
... | ... | @@ -161,7 +112,6 @@ export default { |
161 | 112 | methods: { |
162 | 113 | confrimBind(e) { |
163 | 114 | if (e) { |
164 | - console.log('Bind', e.third?.thirdUserId); | |
165 | 115 | //解绑 |
166 | 116 | let httpData = { |
167 | 117 | appUserId: e.data?.userId, |
... | ... | @@ -231,37 +181,30 @@ export default { |
231 | 181 | }); |
232 | 182 | }, |
233 | 183 | onSubmitFunc() { |
234 | - this.$refs.myInfoFormRef | |
235 | - .validate() | |
184 | + let httpData = { | |
185 | + avatar: this.avatar, | |
186 | + email: this.myInfoModel.userInfo.email, | |
187 | + id: this.id, | |
188 | + phoneNumber: this.myInfoModel.userInfo.phoneNumber, | |
189 | + realName: this.myInfoModel.userInfo.realName | |
190 | + }; | |
191 | + uni.$u.http | |
192 | + .put('/yt/user/center', httpData) | |
236 | 193 | .then(res => { |
237 | - let httpData = { | |
238 | - avatar: this.avatar, | |
239 | - email: this.myInfoModel.userInfo.email, | |
240 | - id: this.id, | |
241 | - phoneNumber: this.myInfoModel.userInfo.phoneNumber, | |
242 | - realName: this.myInfoModel.userInfo.realName | |
243 | - }; | |
244 | - uni.$u.http | |
245 | - .put('/yt/user/center', httpData) | |
246 | - .then(res => { | |
247 | - if (res) { | |
248 | - uni.showToast({ | |
249 | - title: '更新个人资料成功~', | |
250 | - icon: 'none' | |
251 | - }); | |
252 | - setTimeout(() => { | |
253 | - uni.navigateBack({ | |
254 | - delta: 1 | |
255 | - }); | |
256 | - }, 500); | |
257 | - } | |
258 | - }) | |
259 | - .catch(e => { | |
260 | - uni.$u.toast(e.data.message); | |
194 | + if (res) { | |
195 | + uni.showToast({ | |
196 | + title: '更新个人资料成功~', | |
197 | + icon: 'none' | |
261 | 198 | }); |
199 | + setTimeout(() => { | |
200 | + uni.navigateBack({ | |
201 | + delta: 1 | |
202 | + }); | |
203 | + }, 500); | |
204 | + } | |
262 | 205 | }) |
263 | - .catch(errors => { | |
264 | - uni.$u.toast('校验失败'); | |
206 | + .catch(e => { | |
207 | + uni.$u.toast(e.data.message); | |
265 | 208 | }); |
266 | 209 | }, |
267 | 210 | dateClose() { | ... | ... |
... | ... | @@ -118,7 +118,8 @@ export default { |
118 | 118 | url: '../../pages/personal/personal' |
119 | 119 | }); |
120 | 120 | let userInfo = { |
121 | - isThirdLogin: true //token用于判断是否登录 | |
121 | + isThirdLogin: true, //token用于判断是否登录 | |
122 | + avatar: data.avatarUrl | |
122 | 123 | }; |
123 | 124 | this.setUserInfo(userInfo); |
124 | 125 | } else { |
... | ... | @@ -130,7 +131,8 @@ export default { |
130 | 131 | }; |
131 | 132 | let userInfo = { |
132 | 133 | ...resObj, |
133 | - token: true //token用于判断是否登录 | |
134 | + token: true, //token用于判断是否登录 | |
135 | + isThirdLogin: false | |
134 | 136 | }; |
135 | 137 | if (userInfo.token) { |
136 | 138 | this.setUserInfo(userInfo); | ... | ... |
... | ... | @@ -25,6 +25,7 @@ export const mutations = { |
25 | 25 | // #endif |
26 | 26 | // #ifndef H5 |
27 | 27 | uni.removeStorageSync("userInfo"); |
28 | + uni.removeStorageSync('storagePre'); | |
28 | 29 | // #endif |
29 | 30 | }, |
30 | 31 | }; |
... | ... | @@ -35,6 +36,5 @@ export const actions = { |
35 | 36 | commit |
36 | 37 | }, data) { |
37 | 38 | state.badgeInfo = data |
38 | - console.log('Change total', data); | |
39 | 39 | } |
40 | 40 | }; | ... | ... |
... | ... | @@ -64,7 +64,7 @@ button { |
64 | 64 | .text-bold { |
65 | 65 | color: #333333; |
66 | 66 | font-family: PingFangSC-Medium, PingFang SC; |
67 | - font-weight: 500; | |
67 | + font-weight: bold; | |
68 | 68 | font-size: 15px; |
69 | 69 | } |
70 | 70 | //(设备、告警,适用设备详情基础信息文本(右边的值的文本))第二个文本 |
... | ... | @@ -132,7 +132,7 @@ button { |
132 | 132 | .home-text-total { |
133 | 133 | font-size: 17px; |
134 | 134 | font-family: PingFangSC-Regular, PingFang SC; |
135 | - font-weight: 500; | |
135 | + font-weight: bold; | |
136 | 136 | color: #333333; |
137 | 137 | } |
138 | 138 | .home-text-total-bottom { | ... | ... |
... | ... | @@ -116,6 +116,8 @@ export default { |
116 | 116 | this.list.length = 0; |
117 | 117 | this.page.num = 1; |
118 | 118 | this.loadData(1); |
119 | + this.isJudgeNextPage = ''; | |
120 | + this.model1.userInfo.type = ''; | |
119 | 121 | }, |
120 | 122 | /*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */ |
121 | 123 | upCallback() { | ... | ... |