Browse Source

初始化仓库代码

wzy 10 months ago
commit
9b229068ef
17 changed files with 547 additions and 0 deletions
  1. 7 0
      .gitignore
  2. 17 0
      App.vue
  3. 21 0
      README.md
  4. 2 0
      config/index.js
  5. 7 0
      config/modules/shop.js
  6. 20 0
      index.html
  7. 24 0
      main.js
  8. 92 0
      manifest.json
  9. 69 0
      package.json
  10. 54 0
      pages.json
  11. 23 0
      pages/tabbar/index/index.vue
  12. 13 0
      pages/tabbar/order/index.vue
  13. 15 0
      pages/tabbar/user/index.vue
  14. 22 0
      store/index.js
  15. 10 0
      uni.promisify.adaptor.js
  16. 76 0
      uni.scss
  17. 75 0
      utils/request.js

+ 7 - 0
.gitignore

@@ -0,0 +1,7 @@
+node_modules
+unpackage
+test.*
+.vscode
+.hbuilder
+.idea
+*.zip

+ 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>

+ 21 - 0
README.md

@@ -0,0 +1,21 @@
+# 团蜂商家端独立
+
+
+## 文件描述
+
+- `components` 里面是**公共**的组件模块 由于需要适配小程序 我们需要做分包 这里的根目录下面是所有页面都能使用到的组件模块 在分包里面会另外有 components 组件 ,这些组件是我们自定义封装的组件 ,专门用于使用到该分包里面的组件
+
+- `config` 里面是接口文件 分为 module 文件 可以根据自己喜好自定义模块 但是需要再 index.js 里面做统一导出处理
+
+- `mixins` 混入的使用 根据自己需求使用混入
+
+- `pages` 在 pages 里面 ,打包的文件会放到主包里面,我们尽量在这里面只放入 tabbar 页面 以及较少的页面
+
+- `static` 静态资源文件 里面一般是一些图片资源或者一些字体资源外部引入的 js 资源,以及 icon 图标资源等
+
+- `store` vuex 文件 可以根据 modules 在 index.js 制定自己导出的模块文件
+
+- `utils` 工具类文件 里面放置一些工具类函数 初始换只有请求函数 后续自己添加
+
+- `uni.scss` 里面写入的是全局的 css 变量以及函数等
+

+ 2 - 0
config/index.js

@@ -0,0 +1,2 @@
+//  导出所有模块的请求
+// export * from "./module/shop"

+ 7 - 0
config/modules/shop.js

@@ -0,0 +1,7 @@
+import { request,BASE_URL } from '@/utils/request.js'
+
+
+//  获取该分类下的商品列表
+// export function getProductList(params) {
+//     return NET.request(`${BASE_URL}/classify/getClaasifyProducts`, params, "GET");
+// }

+ 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>

+ 24 - 0
main.js

@@ -0,0 +1,24 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+import store from './store'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+  ...App,
+  store,
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif

+ 92 - 0
manifest.json

@@ -0,0 +1,92 @@
+{
+    "name" : "tf-business",
+    "appid" : "__UNI__89C501A",
+    "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,
+            "es6" : true,
+            "postcss" : true,
+            "minified" : true
+        },
+        "usingComponents" : true,
+        //  配置代码分割
+        "optimization" : {
+            "subPackages" : true
+        },
+        "lazyCodeLoading" : "requiredComponents",
+        "permission" : {}
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2",
+    "h5" : {
+        "title" : "团蜂商家端",
+        "template" : "index.html",
+        "router" : {
+            "mode" : "hash",
+            "base" : "/"
+        },
+        "devServer" : {
+            "port" : 8080
+        }
+    }
+}

+ 69 - 0
package.json

@@ -0,0 +1,69 @@
+{
+  "uni-app": {
+    "scripts": {
+      "dev-h5": {
+        "title": "开发版H5",
+        "browser": "chrome",
+        "env": {
+          "UNI_PLATFORM": "h5",
+          "UNI_BASE_URL": "https://mtrappapi.tfcliao.com"
+        },
+        "define": {
+          "DEV-H5": true
+        }
+      },
+      "prod-h5": {
+        "title": "正式H5",
+        "browser": "chrome",
+        "env": {
+          "UNI_PLATFORM": "h5",
+          "UNI_BASE_URL": "https://mtrappapi.tfcliao.com"
+        },
+        "define": {
+          "DEV-H5": true
+        }
+      },
+      "test-h5": {
+        "title": "测试H5",
+        "browser": "chrome",
+        "env": {
+          "UNI_PLATFORM": "h5",
+          "UNI_BASE_URL": "https://mtrappapitest.tfcliao.com"
+        },
+        "define": {
+          "DEV-H5": true
+        }
+      },
+      "devwx": {
+        "title": "开发版微信",
+        "env": {
+          "UNI_PLATFORM": "mp-weixin",
+          "UNI_BASE_URL": "https://mtrappapi.tfcliao.com"
+        },
+        "define": {
+          "MP-DINGTALK": true
+        }
+      },
+      "prewx": {
+        "title": "正式版微信",
+        "env": {
+          "UNI_PLATFORM": "mp-weixin",
+          "UNI_BASE_URL": "https://mtrappapi.tfcliao.com"
+        },
+        "define": {
+          "MP-DINGTALK": true
+        }
+      },
+      "testvx": {
+        "title": "测试版微信",
+        "env": {
+          "UNI_PLATFORM": "mp-weixin",
+          "UNI_BASE_URL": "https://mtrappapitest.tfcliao.com"
+        },
+        "define": {
+          "MP-DINGTALK": true
+        }
+      }
+    }
+  }
+}

+ 54 - 0
pages.json

@@ -0,0 +1,54 @@
+{
+	"easycom": {
+		"autoscan": true,
+		"custom": {
+			"tui-(.*)": "@/components/thorui/tui-$1/tui-$1.vue"
+		}
+	},
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/tabbar/index/index",
+			"style": {
+				"navigationBarTitleText": "首页"
+			}
+		},
+		{
+			"path": "pages/tabbar/order/index",
+			"style": {
+				"navigationBarTitleText": "订单"
+			}
+		},
+		{
+			"path": "pages/tabbar/user/index",
+			"style": {
+				"navigationBarTitleText": "我的"
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	},
+	"tabBar": {
+		"borderStyle": "white",
+		"backgroundColor": "white",
+		"color": "#000",
+		"selectedColor": "#ef530e",
+		"list": [{
+				"pagePath": "pages/tabbar/index/index",
+				"text": "首页"
+			},
+			{
+				"pagePath": "pages/tabbar/order/index",
+				"text": "订单"
+			},
+			{
+				"pagePath": "pages/tabbar/user/index",
+				"text": "我的"
+			}
+		]
+	},
+	"uniIdRouter": {}
+}

+ 23 - 0
pages/tabbar/index/index.vue

@@ -0,0 +1,23 @@
+<template>
+	<view class="content">
+		首页
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style>
+</style>

+ 13 - 0
pages/tabbar/order/index.vue

@@ -0,0 +1,13 @@
+<template>
+  <div class="order">这里是订单页面</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 15 - 0
pages/tabbar/user/index.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="user">
+    这里是我的页面
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 22 - 0
store/index.js

@@ -0,0 +1,22 @@
+import Vue from "vue";
+import Vuex from "vuex";
+//  这里可以引入模块文件
+// import location from "./modules/location";
+
+Vue.use(Vuex);
+
+const store = new Vuex.Store({
+  state: {
+    //公共的变量,这里的变量不能随便修改,只能通过触发mutations的方法才能改变
+  },
+  mutations: {
+    //相当于同步的操作
+  },
+  actions: {
+    //相当于异步的操作,不能直接改变state的值,只能通过触发mutations的方法才能改变
+  },
+  modules: {
+    // location,
+  },
+});
+export default store;

+ 10 - 0
uni.promisify.adaptor.js

@@ -0,0 +1,10 @@
+uni.addInterceptor({
+  returnValue (res) {
+    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+      return res;
+    }
+    return new Promise((resolve, reject) => {
+      res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+    });
+  },
+});

+ 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;

+ 75 - 0
utils/request.js

@@ -0,0 +1,75 @@
+
+//  配置请求根路径
+const BASE_URL = process.env.UNI_BASE_URL;
+
+const request = (url, data, method = 'GET') => {
+	return new Promise((resolve, reject) => {
+		let header = {
+			"Content-Type": "application/json"
+		}
+		const res = uni.getStorageSync('storage_key');
+		const token = res.token
+		if (token) {
+			header['Authorization'] = token
+		}
+		uni.request({
+			url: url,
+			data: data,
+			method: method,
+			header: header,
+			success: res => {
+				if (res.statusCode == 200) {
+					if (res.data.code === "200" || res.data.code === "") {
+						resolve(res.data)
+					} else if (res.data.code === "20004" || res.data.code === "20005") {
+						uni.removeStorageSync("storage_key")
+						uni.navigateTo({
+							url: '/pages/login/index'
+						})
+					} else {
+						uni.showToast({
+							title: res.data.message,
+							icon: "none"
+						})
+					}
+				} else {
+					reject(res)
+				}
+			},
+			fail: res => {
+				reject(res)
+			},
+		})
+	});
+}
+//不带token接口请求,首页
+const request1 = (url, data, method = 'GET') => {
+	return new Promise((resolve, reject) => {
+		let header = {
+			'Content-Type': 'application/json',
+			'tenant': 'MDAwMA==',
+		}
+		uni.request({
+			url: url,
+			data: data,
+			method: method,
+			header: header,
+			success: res => {
+				if (res.data.code === "200" || res.data.code == "" || data.code === "") {
+					resolve(res.data)
+				} else {
+					reject(res)
+				}
+			},
+			fail: res => {
+				reject(res)
+			}
+		})
+	});
+}
+
+export {
+	request,
+	request1,
+	BASE_URL
+}