Browse Source

部分逻辑拆分到tool文件中

xiaohaizhao 1 year ago
parent
commit
9fb73c3cf4
2 changed files with 81 additions and 35 deletions
  1. 7 35
      App.vue
  2. 74 0
      utils/tool.js

+ 7 - 35
App.vue

@@ -1,42 +1,14 @@
 <script>
-import Vue from 'vue'
+import tool from "./utils/tool";
 export default {
 	onLaunch: function () {
-		Vue.prototype.cutoff = (msg, title = "", mask = false, exitTime = 0, icon = 'none', duration = 2000,) => {
-			if (msg != '成功' || title) wx.showToast({
-				title: msg == '成功' ? title : msg,
-				duration,
-				icon,
-				mask: mask || exitTime,
-			})
-			if (exitTime && msg == '成功') setTimeout(uni.navigateBack, exitTime)
-			return msg != '成功';
-		};
-		Vue.prototype.tovw = (num) => (num * 100 / 375).toFixed(3) + "vw";
-		uni.getSystemInfo({
-			success: function (e) {
-				// #ifndef MP
-				Vue.prototype.StatusBar = e.statusBarHeight;
-				if (e.platform == 'android') {
-					Vue.prototype.CustomBar = e.statusBarHeight + 50;
-				} else {
-					Vue.prototype.CustomBar = e.statusBarHeight + 45;
-				};
-				// #endif
-				// #ifdef MP-WEIXIN
-				Vue.prototype.StatusBar = e.statusBarHeight;
-				let custom = wx.getMenuButtonBoundingClientRect();
-				Vue.prototype.Custom = custom;
-				Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
-				// #endif       
-				// #ifdef MP-ALIPAY
-				Vue.prototype.StatusBar = e.statusBarHeight;
-				Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
-				// #endif
-			}
-		})
+		tool.setBar();
+		tool.mount();
 	},
 	onShow: function () {
+		this.getLocation().then(res => {
+			uni.setStorageSync("location", res)
+		})
 	},
 	onHide: function () {
 	}
@@ -47,7 +19,7 @@ export default {
 @import "@/uni_modules/uview-ui/index.scss";
 @import "colorui/main.css";
 @import "colorui/icon.css";
-/* 你的项目css */
+
 @import "uni.scss";
 @import "static/iconfont/iconfont.css";
 </style>

+ 74 - 0
utils/tool.js

@@ -0,0 +1,74 @@
+import Vue from 'vue'
+
+function setBar() {
+    uni.getSystemInfo({
+        success: function (e) {
+            // #ifndef MP
+            Vue.prototype.usePort = 'h5';
+            Vue.prototype.StatusBar = e.statusBarHeight;
+            if (e.platform == 'android') {
+                Vue.prototype.CustomBar = e.statusBarHeight + 50;
+            } else {
+                Vue.prototype.CustomBar = e.statusBarHeight + 45;
+            };
+            // #endif
+            // #ifdef MP-WEIXIN
+            Vue.prototype.usePort = 'wechat';
+            Vue.prototype.StatusBar = e.statusBarHeight;
+            let custom = wx.getMenuButtonBoundingClientRect();
+            Vue.prototype.Custom = custom;
+            Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
+            // #endif       
+            // #ifdef MP-ALIPAY
+            Vue.prototype.StatusBar = e.statusBarHeight;
+            Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
+            // #endif
+        }
+    })
+}
+
+function mount() {
+    Vue.prototype.getLocation = () => {
+        return new Promise((resolve, reject) => {
+            uni.getLocation({
+                altitude: true,
+                highAccuracyExpireTime: 5000,
+                isHighAccuracy: true,
+                success: res => resolve(res),
+                fail: err => resolve(err)
+            })
+        })
+    }
+    Vue.prototype.cutoff = (msg, title = "", mask = false, exitTime = 0, icon = 'none', duration = 2000, ) => {
+        if (msg != '成功' || title) wx.showToast({
+            title: msg == '成功' ? title : msg,
+            duration,
+            icon,
+            mask: mask || exitTime,
+        })
+        if (exitTime && msg == '成功') setTimeout(uni.navigateBack, exitTime)
+        return msg != '成功';
+    };
+    Vue.prototype.tovw = (num) => (num * 100 / 375).toFixed(3) + "vw";
+}
+
+function getCity() {
+    return new Promise((resolve, reject) => {
+        // #ifdef H5
+        wx.request({
+            url: 'http://www.nmc.cn/rest/position',
+            method: "GET",
+            timeout: 30000,
+            success: res => resolve(res.data)
+        })
+        // #endif
+        // #ifndef H5
+        this.$Http.getLocationCode().then(res => resolve(res))
+        // #endif
+    })
+}
+module.exports = {
+    mount,
+    setBar,
+    getCity
+}