浏览代码

first commit

twt 2 年之前
当前提交
35fc810188
共有 13 个文件被更改,包括 656 次插入0 次删除
  1. 8 0
      .gitignore
  2. 17 0
      App.vue
  3. 9 0
      ext.json
  4. 20 0
      index.html
  5. 27 0
      main.js
  6. 77 0
      manifest.json
  7. 45 0
      pages.json
  8. 86 0
      pages/index/index.vue
  9. 70 0
      pages/user/user.vue
  10. 二进制
      static/logo.png
  11. 76 0
      uni.scss
  12. 60 0
      utils/common.js
  13. 161 0
      utils/request.js

+ 8 - 0
.gitignore

@@ -0,0 +1,8 @@
+node_modules/
+dist/**
+.project
+unpackage/
+.DS_Store
+wxcomponents/**/*.vue
+wxcomponents/**/*.css
+.hbuilderx/

+ 17 - 0
App.vue

@@ -0,0 +1,17 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>

+ 9 - 0
ext.json

@@ -0,0 +1,9 @@
+{
+	"extEnable": true,
+	"extAppid": "wx33053a645546ec31",
+	"directCommit": false,
+	"ext": {
+		"shopId": "E37BB296-5A08-4534-859D-B351BA611AF9",
+        "url":"http://api.dms.66km.com.cn"
+	}
+}

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>

+ 27 - 0
main.js

@@ -0,0 +1,27 @@
+import App from './App'
+
+import common from '@/utils/common.js'
+Vue.prototype.$common =common
+
+import request from '@/utils/request.js'
+Vue.prototype.$http = request.http
+
+// #ifndef VUE3
+import Vue from 'vue'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+    ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif

+ 77 - 0
manifest.json

@@ -0,0 +1,77 @@
+{
+    "name" : "wxThird",
+    "appid" : "__UNI__C9648E5",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "wx33053a645546ec31",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true,
+        "permission" : {
+            "scope.userLocation" : {
+                "desc" : "获取商家距离"
+            }
+        }
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 45 - 0
pages.json

@@ -0,0 +1,45 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		},
+		{
+			"path": "pages/user/user",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	],
+	"tabBar": {
+		"color": "#8a8a8a",
+		"selectedColor": "#FF4F00",
+		"borderStyle": "black",
+		"backgroundColor": "#ffffff",
+		"list": [{
+				"pagePath": "pages/index/index",
+				// "iconPath": "static/img/table_icon_homepage1.png",
+				// "selectedIconPath": "static/img/table_icon_homepage2.png",
+				"text": "首页"
+			},
+	
+	
+			{
+				"pagePath": "pages/user/user",
+				// "iconPath": "static/img/tabme1.png",
+				// "selectedIconPath": "static/img/tabme2.png",
+				"text": "我的"
+			}
+	
+		]
+	},
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	},
+	"uniIdRouter": {}
+}

+ 86 - 0
pages/index/index.vue

@@ -0,0 +1,86 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/logo.png"  @click="wxgologin"></image>
+		
+		<view >shopId:{{shopId}}</view>
+		<view>
+			url:{{url}}
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				shopId: '',
+				url:'',
+			}
+		},
+		onLoad() {
+			 this.$common.getExtStoreId()
+			 var ext=this.$common.getExtStoreId();
+			console.log(ext)
+			this.shopId=ext.shopId;
+			this.url=ext.url;
+			this.uniLogin()
+		},
+		methods: {
+             wxgologin(){
+             	var that=this;
+             	uni.getUserProfile({
+             		lang:'zh_CN',
+             		desc:'登录',
+             		success:(res)=>{
+             			console.log(res);
+             			that.wxdata=res;
+             			 uni.setStorage({
+             				key: 'wxdata',
+             				data: res,
+             				 success: function () {
+             				     that.uniLogin()
+             				 
+             				 }
+             			}); 
+             		},
+             		fail:(res)=>{
+             			console.log(res)
+             		}
+             	});
+             },
+			 uniLogin(){
+				 var that=this;
+				 uni.login({
+				   provider: 'weixin',
+				   success: function (loginRes) {
+				     console.log(loginRes);
+					 that.getWxOpenID(loginRes)
+				   }
+				 });
+			 },
+			 getWxOpenID(e){
+				 this.$http('miniApp2/sys/getWxOpenID', {
+				   code:e.code,
+				   shopId:'E37BB296-5A08-4534-859D-B351BA611AF9'
+				  },'GET').then(res => {
+				 	
+				  })
+			 },
+			 
+		}
+	}
+</script>
+
+<style>
+	
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	}
+
+</style>

+ 70 - 0
pages/user/user.vue

@@ -0,0 +1,70 @@
+<template>
+	<view class="content">
+		我的
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				shopId: '',
+				url:'',
+			}
+		},
+		onLoad() {
+			 this.$common.getExtStoreId()
+			 var ext=this.$common.getExtStoreId();
+			console.log(ext)
+			this.shopId=ext.shopId;
+			this.url=ext.url;
+			this.uniLogin()
+		},
+		methods: {
+             wxgologin(){
+             	var that=this;
+             	uni.getUserProfile({
+             		lang:'zh_CN',
+             		desc:'登录',
+             		success:(res)=>{
+             			console.log(res);
+             			that.wxdata=res;
+             			 uni.setStorage({
+             				key: 'wxdata',
+             				data: res,
+             				 success: function () {
+             				     that.uniLogin()
+             				 
+             				 }
+             			}); 
+             		},
+             		fail:(res)=>{
+             			console.log(res)
+             		}
+             	});
+             },
+			 uniLogin(){
+				 uni.login({
+				   provider: 'weixin',
+				   success: function (loginRes) {
+				     console.log(loginRes);
+				   }
+				 });
+			 }
+		}
+	}
+</script>
+
+<style>
+	
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	}
+
+</style>

二进制
static/logo.png


+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;

+ 60 - 0
utils/common.js

@@ -0,0 +1,60 @@
+
+const isUserId = function() {
+	var userId=uni.getStorageSync("logodata").uid;
+	//console.log("userId---"+userId)
+	if(!userId){
+		   uni.navigateTo({
+			  url:'../login/login'
+		   })
+	 }
+}
+/* const uid =function() {
+	var userId=uni.getStorageSync("logodata").uid;
+	return
+} */
+
+// 防止处理多次点击
+function noMultipleClicks(methods, info) {
+    // methods是点击后需要执行的函数, info是函数需要传的参数
+    let that = this;
+    if (that.noClick) {
+        // 第一次点击
+        that.noClick= false;
+        if((info && info !== '') || info ==0) {
+            // info是执行函数需要传的参数
+            methods(info);
+        } else {
+            methods();
+        }
+        setTimeout(()=> {
+            that.noClick= true;
+        }, 3000)
+    } else {
+        //  这里是重复点击的判断
+    }
+}
+
+
+function getExtStoreId(type){
+	try{
+		const extConfig = uni.getExtConfigSync ? uni.getExtConfigSync() : {shopId:'默认的门店id'}
+		console.log(extConfig,'extJson对象');
+		//return extConfig[type];
+		return extConfig
+	}catch(err){
+		console.log(err,'getExtStoreId__error')
+	}
+}
+
+
+export default {
+    commonData:{
+        companyType:1,
+    },
+    isUserId,
+	getExtStoreId,
+	noMultipleClicks,      // 禁止多次点击
+}
+
+
+

+ 161 - 0
utils/request.js

@@ -0,0 +1,161 @@
+//测试地址
+//const baseUrl = 'http://api.dms.66km.com.cn/'
+const baseUrl = 'http://192.168.0.122:20187/'
+
+//正式地址
+
+
+const http = (url = '', date = {}, type = 'POST', header = {
+}) => {
+    return new Promise((resolve, reject) => {
+		header={};
+		const logodata = uni.getStorageSync("logodata");
+		header['token']=logodata.token;
+		header['uid']=logodata.uid; 
+		//header['token']='98A9FED8814B457288166BDF623F33D1';
+		//header['uid']='39415962-C9D3-466D-A73F-5B5429A8DB2A'; 
+		header['Content-Type']='application/x-www-form-urlencoded';
+		//console.log(header)
+        uni.request({
+            method: type,
+            url: baseUrl + url,
+            data: date,
+            header: header,
+            dataType: 'json',         
+        }).then((response) => {
+           /* setTimeout(function() {
+                uni.hideLoading();
+            }, 200); */
+            let [error, res] = response;
+		 
+			if(res.data.code==401||res.data.code==403){
+				 uni.showToast({
+				     title: res.data.msg,
+				 	 icon:'none',
+				     duration: 3000,
+				 });
+				 uni.clearStorageSync()
+				 uni.navigateTo({
+					url:'../login/login'
+				}) 
+			}else if(res.data.code==409){
+				 // getToken(url,date,type,header)
+			}
+			
+            resolve(res.data);
+        }).catch(error => {
+            let [err, res] = error;
+            reject(err)
+        }) 
+    });
+}
+// 请求图片流
+const httpBinary = (url = '', date = {}, type = 'POST', header = {
+}) => {
+    return new Promise((resolve, reject) => {
+		header={};
+		const logodata = uni.getStorageSync("logodata");
+		header['token']=logodata.token;
+		header['uid']=logodata.uid; 
+		//header['token']='98A9FED8814B457288166BDF623F33D1';
+		//header['uid']='39415962-C9D3-466D-A73F-5B5429A8DB2A'; 
+		header['Content-Type']='application/x-www-form-urlencoded';
+		//console.log(header)
+        uni.request({
+            method: type,
+            url: baseUrl + url,
+            data: date,
+            header: header,
+            dataType: 'json', 
+			responseType: "arraybuffer",
+        }).then((response) => {
+           /* setTimeout(function() {
+                uni.hideLoading();
+            }, 200); */
+            let [error, res] = response;
+		 
+			if(res.data.code==401||res.data.code==403){
+				 uni.showToast({
+				     title: res.data.msg,
+				 	 icon:'none',
+				     duration: 3000,
+				 });
+				 uni.clearStorageSync()
+				 uni.navigateTo({
+					url:'../login/login'
+				}) 
+			}else if(res.data.code==409){
+				 // getToken(url,date,type,header)
+			}
+			
+            resolve(res.data);
+        }).catch(error => {
+            let [err, res] = error;
+            reject(err)
+        }) 
+    });
+}
+
+function getToken(url,date,type,header){
+	var header={};
+    //var userId=uni.getStorageSync("devData").userId;
+	//var devData=uni.getStorageSync("devData")
+	header['Content-Type']='application/x-www-form-urlencoded';
+	uni.request({
+	    method: "POST",
+	    url: baseUrl + '/sys/getTokenByUserID',
+	    data: {
+			userId:userId
+		},
+	    header: header,
+	    dataType: 'json',         
+	}).then((response) => {
+	    let [error, res] = response;
+		var accessToken=res.data.data.accessToken.accessToken;
+		devData.accessToken=accessToken;
+		uni.setStorage({
+			   key: 'devData',
+			   data:devData,
+			   success: function () {
+				   refresh(url,date,type,header) //刷新接口
+			   }
+		 });
+		  // console.log(accessToken)
+	}).catch(error => {
+	   
+	}) 
+}
+
+function refresh(url,date,type,header){
+	uni.request({
+	    method: type,
+	    url: baseUrl + url,
+	    data: date,
+	    header: header,
+	    dataType: 'json',         
+	}).then((response) => {
+	   setTimeout(function() {
+	        uni.hideLoading();
+	    }, 200); 
+	    let [error, res] = response;
+	  
+		if(res.data.code==403){
+			uni.showToast({
+			     title: res.data.msg,
+			 	 icon:'none',
+			     duration: 3000,
+			 });
+			 uni.navigateTo({
+				url:'../login/login'
+			}) 
+		}
+	    resolve(res.data);
+	}).catch(error => {
+	    let [err, res] = error;
+	    reject(err)
+	})
+}
+
+export default {
+	http,baseUrl,httpBinary
+}