Eilly 3 år sedan
incheckning
b4c28b7110
13 ändrade filer med 462 tillägg och 0 borttagningar
  1. 17 0
      App.vue
  2. 61 0
      common/util.js
  3. 7 0
      http/api.js
  4. 10 0
      http/baseUrl.js
  5. 64 0
      http/request.js
  6. 46 0
      http/upload.js
  7. 20 0
      index.html
  8. 21 0
      main.js
  9. 72 0
      manifest.json
  10. 16 0
      pages.json
  11. 52 0
      pages/index/index.vue
  12. BIN
      static/logo.png
  13. 76 0
      uni.scss

+ 17 - 0
App.vue

xqd
@@ -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>

+ 61 - 0
common/util.js

xqd
@@ -0,0 +1,61 @@
+export default {
+	// 密码只能是6位数字
+	sixNum(str) {
+		let reg = /^\d{6}$/;
+		if (!reg.test(str)) {
+			return false
+		} else {
+			return true
+		}
+	},
+	// 密码由6-12位数字和字母组成
+	numLetter(str) {
+		let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/
+		if (!reg.test(str)) {
+			return false
+		} else {
+			return true
+		}
+	},
+	// // 字符串只能由1-10位中文、数字、英文组成,且必须有中文
+	// chineseNumLetter(str) {
+	// 	let reg = /^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9]){1,10}$/
+	// 	if (reg.test(str)) {
+	// 		// console.log('第一层通过')
+	// 		let reg1 = new RegExp("[\\u4E00-\\u9FFF]+", "g");
+	// 		if (reg1.test(str)) {
+	// 			// console.log('第二层通过')
+	// 			return true
+	// 		} else {
+	// 			return false
+	// 		}
+	// 	} else {
+	// 		return false
+	// 	}
+	// },
+	phone(str) {	
+		let reg =/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
+		if (reg.test(str)) {
+			return true
+		} else {
+			return false
+		}
+	},
+	email(str) {
+		let reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
+		if (reg.test(str)) {
+			// console.log('第二层通过')
+			return true
+		} else {
+			return false
+		}
+	},
+	idCard(str) {
+		let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; 
+		if (reg.test(str)) {
+			return true
+		} else {
+			return false
+		}
+	}
+}

+ 7 - 0
http/api.js

xqd
@@ -0,0 +1,7 @@
+const http = uni.$u.http
+
+// post请求,获取套餐列表
+export const postMenu = (params, config = {}) => http.post('/api/good/index', params, config)
+
+// get请求,获取菜单,注意:get请求的配置等,都在第二个参数中,详见前面解释
+export const getMenu = (data) => http.get('/ebapi/public_api/index', data)

+ 10 - 0
http/baseUrl.js

xqd
@@ -0,0 +1,10 @@
+
+export const imageUrl = 'http://o2o.cn/'
+// export const baseUrl = 'http://o2o.cn/api/'
+export const baseUrl = 'http://o2o.cn/api/'
+//export const mainUrl = 'http://o2o.cn'
+
+//export const imageUrl = 'http://t28.9026.com/'
+//export const baseUrl = 'http://t28.9026.com/api/'
+// export const mainUrl = 'http://t7.9026.com'
+export const mainUrl = 'https://t38.9026.com'

+ 64 - 0
http/request.js

xqd
@@ -0,0 +1,64 @@
+// 此vm参数为页面的实例,可以通过它引用vuex中的变量
+import {
+	mainUrl
+} from './baseUrl';
+module.exports = (vm) => {
+	// 初始化请求配置
+	uni.$u.http.setConfig((config) => {
+		/* config 为默认全局配置*/
+		config.baseURL = mainUrl //'http://t28.9026.com'; /* 根域名 */ //本地测试环境
+		//config.baseURL = 'http://gift.cn'; /* 根域名 */ //演示测试环境
+		//config.baseURL = 'http://gift.cn'; /* 根域名 */ //生成环境
+		return config
+	})
+
+	// 请求拦截
+	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
+	let token=uni.getStorageSync("token")
+		config.header = {
+			
+				// ...config.header,
+				// Authorization: `Bearer ${vm.$store.state.token}`
+				Authorization: `Bearer ${token}`
+			}
+		return config
+	}, config => { // 可使用async await 做异步操作
+		return Promise.reject(config)
+	})
+
+	// 响应拦截
+	uni.$u.http.interceptors.response.use((response) => {
+		/* 对响应成功做点什么 可使用async await 做异步操作*/
+		const data = response.data
+		const header = response.header
+		// if (header.token) {
+		// 	vm.$store.commit('user/setToken', header.token)
+		// }
+		//
+
+		// 自定义参数
+		const custom = response.config?.custom
+		if (data.code !== 200) {
+			if (data.code == 400) {
+				vm.$store.commit('setToken', null)
+				return Promise.reject(data)
+			}
+			// 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示
+			if (custom.toast !== false) {
+				//uni.$u.toast(data.message)
+			}
+			return Promise.reject(data)
+			// 如果需要catch返回,则进行reject
+			if (custom?.catch) {
+				return Promise.reject(data)
+			} else {
+				// 否则返回一个pending中的promise,请求不会进入catch中
+				return new Promise(() => {})
+			}
+		}
+		return data.data === undefined ? {} : data.data
+	}, (response) => {
+		// 对响应错误做点什么 (statusCode !== 200)
+		return Promise.reject(response)
+	})
+}

+ 46 - 0
http/upload.js

xqd
@@ -0,0 +1,46 @@
+import {
+	mainUrl
+} from './baseUrl';
+let fileBaseurl = mainUrl + '/api/upload/image' //你的图片上传地址
+
+export function uploadImg(url, token) { // 传参是$event
+	/*
+    let img1 = event.target.files[0];
+    let type = img1.type;
+    let size = img1.size;
+    let typelist = 'image/jpeg, image/png, image/jpg'
+    if (typelist.indexOf(type) === -1) {  
+        alert('支持上传的图片格式不对')
+        return false;  
+    }
+    if (size>5242880) {  
+        alert('上传图片不能大于5m')
+        return false;  
+    }  
+    let form = new FormData();
+    form.append('file',img1);
+	*/
+
+	return new Promise((resolve, reject) => {
+		let a = uni.uploadFile({
+			url: fileBaseurl, // 仅为示例,非真实的接口地址
+			filePath: url,
+			name: 'file',
+			formData: {
+				user: 'test'
+			},
+			header: {
+				'Authorization': 'bearer ' + token
+			},
+			success: (res) => {
+				//setTimeout(() => {
+					resolve(res.data)
+				//}, 1000)
+			},
+			fail: function(res) {
+				reject(res.data)
+			}
+		});
+	})
+
+}

+ 20 - 0
index.html

xqd
@@ -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>

+ 21 - 0
main.js

xqd
@@ -0,0 +1,21 @@
+import App from './App'
+
+// #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

+ 72 - 0
manifest.json

xqd
@@ -0,0 +1,72 @@
+{
+    "name" : "alhj-wx",
+    "appid" : "__UNI__86923A1",
+    "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" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 16 - 0
pages.json

xqd
@@ -0,0 +1,16 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	}
+}

+ 52 - 0
pages/index/index.vue

xqd
@@ -0,0 +1,52 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/logo.png"></image>
+		<view class="text-area">
+			<text class="title">{{title}}</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: 'Hello'
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	}
+
+	.text-area {
+		display: flex;
+		justify-content: center;
+	}
+
+	.title {
+		font-size: 36rpx;
+		color: #8f8f94;
+	}
+</style>

BIN
static/logo.png


+ 76 - 0
uni.scss

xqd
@@ -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;