李万涛 il y a 1 an
Parent
commit
9c20e651d1
100 fichiers modifiés avec 3022 ajouts et 529 suppressions
  1. 11 1
      App.vue
  2. 26 0
      common/config.js
  3. 9 6
      components/navBar/index.scss
  4. 36 10
      components/navBar/index.vue
  5. 61 0
      components/privacyPopup/index.scss
  6. 61 0
      components/privacyPopup/index.vue
  7. 76 0
      components/tabBar/index.scss
  8. 54 0
      components/tabBar/index.vue
  9. 9 0
      main.js
  10. 64 66
      manifest.json
  11. 46 14
      pages.json
  12. 320 0
      pages/index/genHuiBen/index.scss
  13. 245 0
      pages/index/genHuiBen/index.vue
  14. 140 0
      pages/index/genRes/index.scss
  15. 59 0
      pages/index/genRes/index.vue
  16. 153 0
      pages/index/index.scss
  17. 149 6
      pages/index/index.vue
  18. 186 0
      pages/my/charge/index.scss
  19. 82 0
      pages/my/charge/index.vue
  20. 9 0
      pages/my/huiBen_record - 副本/index.scss
  21. 33 0
      pages/my/huiBen_record - 副本/index.vue
  22. 90 0
      pages/my/huiBen_record/index.scss
  23. 54 0
      pages/my/huiBen_record/index.vue
  24. 151 73
      pages/my/index.scss
  25. 118 68
      pages/my/index.vue
  26. 112 0
      pages/my/userInfo/index.scss
  27. 146 0
      pages/my/userInfo/index.vue
  28. 29 0
      project.config.json
  29. 7 0
      project.private.config.json
  30. BIN
      static/other/arrR.png
  31. BIN
      static/other/arrR2.png
  32. BIN
      static/other/edit.png
  33. BIN
      static/other/edit2.png
  34. BIN
      static/other/kefu.png
  35. BIN
      static/other/logo.png
  36. BIN
      static/other/upCamera.png
  37. BIN
      static/tabbar/cat.png
  38. BIN
      static/tabbar/cat_a.png
  39. BIN
      static/tabbar/index.png
  40. BIN
      static/tabbar/index_a.png
  41. BIN
      static/tabbar/my.png
  42. BIN
      static/tabbar/my_a.png
  43. BIN
      static/tabbar/service.png
  44. BIN
      static/tabbar/service_a.png
  45. 77 73
      uni_modules/uview-ui/components/u-picker/props.js
  46. 186 212
      uni_modules/uview-ui/components/u-picker/u-picker.vue
  47. 0 0
      unpackage/dist/build/.automator/mp-weixin/.automator.json
  48. 4 0
      unpackage/dist/build/mp-weixin/app.js
  49. 66 0
      unpackage/dist/build/mp-weixin/app.json
  50. 3 0
      unpackage/dist/build/mp-weixin/app.wxss
  51. 0 0
      unpackage/dist/build/mp-weixin/common/main.js
  52. 0 0
      unpackage/dist/build/mp-weixin/common/main.wxss
  53. 2 0
      unpackage/dist/build/mp-weixin/common/runtime.js
  54. 0 0
      unpackage/dist/build/mp-weixin/common/vendor.js
  55. 10 0
      unpackage/dist/build/mp-weixin/components/navBar/index.js
  56. 6 0
      unpackage/dist/build/mp-weixin/components/navBar/index.json
  57. 1 0
      unpackage/dist/build/mp-weixin/components/navBar/index.wxml
  58. 1 0
      unpackage/dist/build/mp-weixin/components/navBar/index.wxss
  59. 1 0
      unpackage/dist/build/mp-weixin/pages/category/index.js
  60. 6 0
      unpackage/dist/build/mp-weixin/pages/category/index.json
  61. 1 0
      unpackage/dist/build/mp-weixin/pages/category/index.wxml
  62. 0 0
      unpackage/dist/build/mp-weixin/pages/category/index.wxss
  63. 0 0
      unpackage/dist/build/mp-weixin/pages/index/index.js
  64. 6 0
      unpackage/dist/build/mp-weixin/pages/index/index.json
  65. 1 0
      unpackage/dist/build/mp-weixin/pages/index/index.wxml
  66. 0 0
      unpackage/dist/build/mp-weixin/pages/index/index.wxss
  67. 1 0
      unpackage/dist/build/mp-weixin/pages/map/index.js
  68. 4 0
      unpackage/dist/build/mp-weixin/pages/map/index.json
  69. 1 0
      unpackage/dist/build/mp-weixin/pages/map/index.wxml
  70. 0 0
      unpackage/dist/build/mp-weixin/pages/map/index.wxss
  71. 0 0
      unpackage/dist/build/mp-weixin/pages/my/index.js
  72. 6 0
      unpackage/dist/build/mp-weixin/pages/my/index.json
  73. 1 0
      unpackage/dist/build/mp-weixin/pages/my/index.wxml
  74. 4 0
      unpackage/dist/build/mp-weixin/pages/my/index.wxss
  75. 1 0
      unpackage/dist/build/mp-weixin/pages/service/index.js
  76. 4 0
      unpackage/dist/build/mp-weixin/pages/service/index.json
  77. 1 0
      unpackage/dist/build/mp-weixin/pages/service/index.wxml
  78. 0 0
      unpackage/dist/build/mp-weixin/pages/service/index.wxss
  79. 36 0
      unpackage/dist/build/mp-weixin/project.config.json
  80. 7 0
      unpackage/dist/build/mp-weixin/project.private.config.json
  81. 20 0
      unpackage/dist/build/mp-weixin/static/customicons.css
  82. BIN
      unpackage/dist/build/mp-weixin/static/customicons.ttf
  83. BIN
      unpackage/dist/build/mp-weixin/static/other/arrR.png
  84. BIN
      unpackage/dist/build/mp-weixin/static/other/edit.png
  85. BIN
      unpackage/dist/build/mp-weixin/static/tabbar/index.png
  86. BIN
      unpackage/dist/build/mp-weixin/static/tabbar/index_a.png
  87. BIN
      unpackage/dist/build/mp-weixin/static/tabbar/my.png
  88. BIN
      unpackage/dist/build/mp-weixin/static/tabbar/my_a.png
  89. 10 0
      unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js
  90. 4 0
      unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json
  91. 1 0
      unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml
  92. 0 0
      unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss
  93. 0 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.js
  94. 7 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.json
  95. 1 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.wxml
  96. 0 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.wxss
  97. 0 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.js
  98. 4 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.json
  99. 1 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.wxml
  100. 1 0
      unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.wxss

+ 11 - 1
App.vue

xqd xqd xqd
@@ -1,5 +1,11 @@
 <script>
 	export default {
+		globalData: {
+			showPrivacy: false,
+			priceConfig: {},
+
+			userInfo: {}
+		},
 		onLaunch: function() {
 			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
 			console.log('App Launch')
@@ -24,7 +30,7 @@
 
 	// 设置整个项目的背景色
 	page {
-		background-color: #f5f5f5;
+		// background-color: #f5f5f5;
 	}
 
 	/* #endif */
@@ -33,4 +39,8 @@
 		color: #333;
 		padding: 10px;
 	}
+
+	::-webkit-scrollbar {
+		display: none;
+	}
 </style>

+ 26 - 0
common/config.js

xqd
@@ -0,0 +1,26 @@
+let configUrl = {}
+if (process.env.NODE_ENV === 'development') {
+	configUrl = {
+		// baseUrl: 'https://t23.9026.com',
+		// picUrl: 'https://t23.9026.com',
+		// picBase: 'https://t23.9026.com/uploads/',
+
+		baseUrl: 'https://jgs.9026.com',
+		picUrl: 'https://jgs.9026.com',
+		picBase: 'https://jgs.9026.com/uploads/',
+
+		appId: 'wx03acaa2776bdaceb',
+		shareModel: 0
+	}
+} else {
+	configUrl = {
+		baseUrl: 'https://jgs.9026.com',
+		picUrl: 'https://jgs.9026.com',
+		picBase: 'https://jgs.9026.com/uploads/',
+
+		appId: 'wx03acaa2776bdaceb',
+		shareModel: 0
+	}
+}
+
+module.exports = configUrl

+ 9 - 6
components/navBar/index.scss

xqd xqd
@@ -2,6 +2,8 @@
 			// background-image: url('https://img-home.csdnimg.cn/images/20230817060237.png') !important;
 			// background-size: 100% 100% !important;
 			background: green;
+			position: relative;
+			// z-index: 99;
 			.narbar-flexd {
 				// background-image: url('https://img-home.csdnimg.cn/images/20230817060237.png') !important;
 				// background-size: 100% 100% !important;
@@ -14,22 +16,23 @@
 				width: 100%;
 				// padding-bottom: 10rpx;
 				.narbar-content {
-					// height: 45px;
-					padding: 0 30px;
-					// margin-bottom: 10px;
+					padding: 0 40rpx;
 					display: flex;
 					box-sizing: border-box;
-					justify-content:center;
+					// justify-content:center;
 					align-items: center;
 					.left{
-						position: absolute;
-						left: 5%;
+						// position: absolute;
+						// left: 5%;
 						font-weight: 600;
+						display: flex;
+						align-items: center;
 					}
 					.title{
 						font-size: 16px;
 						color: #fff;
 						font-weight: 600;
+						// line-height: 40px;
 					}
 					
 				}

+ 36 - 10
components/navBar/index.vue

xqd xqd xqd xqd
@@ -2,15 +2,19 @@
 	<view class="navbar" :style="{height:statusBarHeight+navBareight +'px',background}"> <!-- 如若不写 高度始终为44 没有找到原因 -->
 		<view class="narbar-flexd" :style="[{background}]">
 			<view :style=" {height:statusBarHeight+'px'}"></view>
-			<view class="narbar-content" :style="{height:navBareight+'px'}">
+			<view class="narbar-content" :style="{height:navBareight+'px','justify-content':flex=='cen'?'center':''}">
 
 				<!-- 左侧返回按钮 -->
 				<view class="left" @click="onBack" v-if="back" :style="[{color},{paddingTop}]">
 					<uni-icons type="arrowleft" size="25" :color='color'></uni-icons>
-					<!-- <u--image :showLoading="true" src="https://bsl-lj-rent.oss-cn-shanghai.aliyuncs.com/idn-mac/indexs/lianxi.png" width="60rpx" height="71rpx" @click="click"></u--image> -->
 				</view>
-				<view class="title" :style="[{color}]">
-					{{title}}
+				<view class="left" @click="" v-if="!back&&navImg">
+					<image :showLoading="true" mode="heightFix" :src="navImg"
+						style="width:40rpx;height:60rpx;margin-right: 8rpx;" @click="">
+					</image>
+				</view>
+				<view class="title" :style="[{color}]" v-if="title">
+					{{title.replace('true','')}}
 				</view>
 			</view>
 		</view>
@@ -28,10 +32,22 @@
 			};
 		},
 		props: {
-			title: { // 标题文字(默认为空)
+			backType: { // 标题文字(默认为空)
+				type: String,
+				default: ''
+			},
+			navImg: { // 标题文字(默认为空)
 				type: String,
 				default: ''
 			},
+			flex: { // 标题文字(默认为空)
+				type: String,
+				default: 'left'
+			},
+			title: { // 标题文字(默认为空)
+				type: String,
+				default: ' '
+			},
 			color: { // 标题和返回按钮颜色(默认白色)
 				type: String,
 				default: '#fff'
@@ -45,6 +61,11 @@
 				type: Boolean,
 				default: false
 			},
+			backHome: { // 是否显示返回按钮(不传值默认不显示)
+				type: Boolean,
+				default: false
+			},
+
 		},
 
 		created() {
@@ -72,11 +93,16 @@
 		methods: {
 			// 左侧返回按钮调用
 			onBack() {
-				this.$emit("onBack");
-				uni.navigateBack({
-					delta: 1, //返回层数,2则上上页
-				})
-
+				if (this.backType) {
+					uni.switchTab({
+						url: '/pages/index'
+					})
+				} else {
+					this.$emit("onBack");
+					uni.navigateBack({
+						delta: 1, //返回层数,2则上上页
+					})
+				}
 			}
 		}
 

+ 61 - 0
components/privacyPopup/index.scss

xqd
@@ -0,0 +1,61 @@
+// ::v-deep .u-popup__content{
+// }
+
+.popup-box {
+		width: 90vw;
+		// height: 40vh;
+		overflow: hidden;
+		background: #ffffff;
+		padding: 30rpx;
+		border-radius: 24rpx;
+		z-index: 99999999999999999999999999999!important;
+
+		.weui-half-screen-dialog__hd {
+			font-size: 34rpx;
+			font-family: Source Han Sans CN-Bold, Source Han Sans CN;
+			font-weight: bold;
+			color: #000000;
+			line-height: 56rpx;
+		}
+
+		.weui-half-screen-dialog__bd {
+			margin-top: 48rpx;
+			text-indent: 2em;
+			.weui-half-screen-dialog__tips {
+				font-size: 28rpx;
+				font-family: Source Han Sans CN-Normal, Source Han Sans CN;
+				font-weight: 400;
+				color: #000000;
+				line-height: 33rpx;
+			}
+		}
+
+		.weui-half-screen-dialog__ft {
+			display: flex;
+			justify-content: space-evenly;
+			align-items: center;
+			margin-top: 48rpx;
+			.weui-btn {
+				padding: 0 60rpx;
+				margin: 0;
+				background: none;
+				font-size: 32rpx;
+				font-family: Source Han Sans CN-Normal, Source Han Sans CN;
+				font-weight: 400;
+				color:#017FFF;
+				line-height: 80rpx;
+				// border: 2rpx solid #8BC21F;
+			}
+
+			.agree {
+				color: #ffffff;
+				// background: linear-gradient(90deg, orange 0%, orangered 100%);
+				
+background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+			}
+		}
+
+		.color-8BC21F {
+			color: #017FFF !important;
+		}
+	}

+ 61 - 0
components/privacyPopup/index.vue

xqd
@@ -0,0 +1,61 @@
+<template>
+	<u-popup :show="showPrivateBox" @close="" @open="" :round="10">
+		<view class="popup-box">
+			<view class="weui-half-screen-dialog__hd">
+				{{title}}
+			</view>
+			<view class="weui-half-screen-dialog__bd">
+				<text class="weui-half-screen-dialog__tips">{{desc1}}</text>
+				<text class="weui-half-screen-dialog__tips color-8BC21F" @click="openPrivacyContract">
+					{{urlTitle}}
+				</text>
+				<text class="weui-half-screen-dialog__tips">{{desc2}}</text>
+			</view>
+			<view class="weui-half-screen-dialog__ft">
+				<button class="weui-btn" @click="handleDisagree">拒绝</button>
+				<button id="agree-btn" type="default" open-type="agreePrivacyAuthorization" class="weui-btn agree"
+					@agreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
+			</view>
+		</view>
+	</u-popup>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: "用户隐私保护提示",
+				desc1: "感谢您使用本产品,您使用本产品前应当仔细阅读并同意",
+				// urlTitle: "《小程序隐私保护指引》",
+				desc2: "当您点击同意并开始使用产品服务时,即表示你已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法更好的体验产品。",
+			};
+		},
+
+		props: ['showPrivateBox', 'urlTitle'],
+		created() {
+			console.log('showPrivateBox-----', this.showPrivateBox);
+		},
+		methods: {
+			openPrivacyContract() {
+				wx.openPrivacyContract({
+					// success: () => {}, // 打开成功
+					// fail: () => {}, // 打开失败
+					// complete() => {}
+				});
+			},
+			handleAgreePrivacyAuthorization() {
+				getApp().globalData.showPrivacy = false;
+				this.$emit('confirmP');
+			},
+			handleDisagree() {
+
+				console.log('handleDisagree()');
+				this.$emit('cancleP');
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 76 - 0
components/tabBar/index.scss

xqd
@@ -0,0 +1,76 @@
+.tab-bar {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100vw;
+		padding-top: 10rpx;
+		padding-bottom: calc(10rpx + constant(safe-area-inset-bottom));
+		padding-bottom: calc(10rpx + env(safe-area-inset-bottom));
+		background-color: #fff;
+		
+		// background-color: red;
+		
+		box-shadow: 0rpx -2rpx 20rpx 0rpx rgba(0,0,0,0.05);
+		border-radius: 40rpx 40rpx 0 0;
+		z-index:9;
+
+		.content {
+			display: flex;
+			// .one-tab_a{
+			// 	background: red;
+			// }
+			.one-tab {
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				width: 50%;
+				
+				.tabItem{
+					// background: red;
+					width: 100rpx;
+					display: flex;
+					justify-content: center;
+					flex-direction:column;
+					align-items: center;
+					position: relative;
+					
+					.tabItem_c{
+						background: #fff;
+						width: 100rpx;
+						height: 100rpx;
+						position: absolute;
+						border-radius: 50%;
+						transform: translateY(-30%);
+						z-index: 1;
+						// box-shadow: 0rpx -2rpx 20rpx 0rpx rgba(0,0,0,0.05);
+					}
+				}
+				.tab-img {
+					width: 50rpx;
+					height: 50rpx;
+
+					.img {
+						width: 100%;
+						height: 100%;
+						position: relative;
+						z-index: 9;
+					}
+				}
+
+				.tit {
+					font-size: 30rpx;
+					transform: scale(0.7);
+					position: relative;
+					z-index: 9;
+				}
+
+				.selectTexts {
+					color:#007AFF;
+				}
+
+				.texts {
+					color: block;
+				}
+			}
+		}
+	}

+ 54 - 0
components/tabBar/index.vue

xqd
@@ -0,0 +1,54 @@
+<template>
+	<view class="tab-bar">
+		<view class="content">
+			<view class="one-tab" v-for="(item, index) in tabBarList" :key="index" @click="selectTabBar(item.pagePath)">
+				<view class="tabItem">
+					<view class="tabItem_c" v-if="routePath === item.pagePath">
+					</view>
+
+					<view>
+						<view class="tab-img">
+							<image v-if="routePath === item.pagePath" class="img" :src="item.selectedIconPath"></image>
+							<image v-else class="img" :src="item.iconPath"></image>
+						</view>
+					</view>
+					<view v-if="routePath === item.pagePath" class="tit selectTexts">{{ item.text }}</view>
+					<view v-else class="tit texts">{{ item.text }}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			// 底部导航栏数据
+			tabBarList: {
+				type: Array,
+				required: true
+			},
+			// 当前页面路径
+			routePath: {
+				type: String,
+				required: true
+			}
+		},
+		data() {
+			return {};
+		},
+		methods: {
+			selectTabBar(path) {
+				this.$emit('onTabBar', path)
+			}
+		},
+		created() {
+			console.log('tabBarList----', this.tabBarList);
+			console.log('routePath---', this.routePath);
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 9 - 0
main.js

xqd xqd
@@ -2,7 +2,9 @@
 import Vue from 'vue'
 import App from './App'
 import navBar from '@/components/navBar/index.vue'
+import tabBar from '@/components/tabBar/index.vue'
 Vue.component('navBar', navBar)
+Vue.component('tabBar', tabBar)
 
 import uView from '@/uni_modules/uview-ui'
 Vue.use(uView)
@@ -12,6 +14,13 @@ Vue.use(uView)
 import store from 'store/index.js'
 Vue.prototype.$store = store
 
+Vue.prototype.$picBase = '../../static/other/'
+Vue.prototype.$picBase2 = '../../../static/other/'
+
+import uploadUrl from '@/common/config.js'
+// Vue.prototype.$picUrl = uploadUrl.picUrl
+// Vue.prototype.$picBase = uploadUrl.picBase
+
 // import store from "@/store";
 
 // let vuexStore = require('@/store/$t.mixin.js');

+ 64 - 66
manifest.json

xqd
@@ -1,67 +1,65 @@
 {
-	"name": "jiancaiPro",
-	"appid": "__UNI__C046D51",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	"app-plus": {
-		/* 5+App特有相关 */
-		"usingComponents": true,
-		"nvueCompiler": "uni-app",
-		"nvueStyleCompiler": "uni-app",
-		"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打包配置 */
-			"sdkConfigs": {}
-		}
-	},
-	/* SDK配置 */
-	"quickapp": {},
-	/* 快应用特有相关 */
-	"mp-weixin": {
-		/* 小程序特有相关 */
-		"appid": "",
-		"setting": {
-			"urlCheck": false
-		},
-		"usingComponents": true,
-		"permission": {
-			"scope.userLocation": {
-				"desc": "用于小程序使用中为您提供位置信息"
-			}
-
-		},
-		"requiredPrivateInfos": ["getLocation", "choosePoi", "chooseAddress", "chooseLocation"]
-	},
-	"vueVersion": "2"
-}
+    "name" : "huiben",
+    "appid" : "__UNI__C046D51",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    "app-plus" : {
+        /* 5+App特有相关 */
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "nvueStyleCompiler" : "uni-app",
+        "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打包配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* SDK配置 */
+    "quickapp" : {},
+    /* 快应用特有相关 */
+    "mp-weixin" : {
+        "appid" : "wx98ab2939999e13de",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true,
+        "permission" : {
+            "scope.userLocation" : {
+                "desc" : "用于小程序使用中为您提供位置信息"
+            }
+        },
+        "requiredPrivateInfos" : [ "getLocation", "choosePoi", "chooseAddress", "chooseLocation" ]
+    },
+    "vueVersion" : "2"
+}

+ 46 - 14
pages.json

xqd xqd xqd
@@ -28,6 +28,37 @@
 			"style": {
 				"navigationBarTitleText": "地图"
 			}
+		},
+
+		{
+			"path": "pages/my/huiBen_record/index",
+			"style": {
+				"navigationBarTitleText": "绘本记录"
+			}
+		},
+		{
+			"path": "pages/my/charge/index",
+			"style": {
+				"navigationBarTitleText": "充值次数"
+			}
+		},
+		{
+			"path": "pages/my/userInfo/index",
+			"style": {
+				"navigationBarTitleText": "个人资料"
+			}
+		},
+		{
+			"path": "pages/index/genHuiBen/index",
+			"style": {
+				"navigationBarTitleText": "绘本生成"
+			}
+		},
+		{
+			"path": "pages/index/genRes/index",
+			"style": {
+				"navigationBarTitleText": "绘本生成"
+			}
 		}
 	],
 	"globalStyle": {
@@ -42,10 +73,11 @@
 	},
 
 	"tabBar": {
+		"custom": true,
 		"color": "black", //字体颜色
-		"selectedColor": "#1afa29", //选中时字体颜色
+		"selectedColor": "#0000ff", //选中时字体颜色
 		"borderStyle": "black", //底部的上边框线条
-		"backgroundColor": "#F8F8F8", //底部背景色
+		"backgroundColor": "#fff", //底部背景色
 		"fontSize": "12px", //字体大小
 		"spacing": "5px", //字体到图标的距离
 		"height": "50px", //底部高
@@ -55,18 +87,18 @@
 				"iconPath": "static/tabbar/index.png",
 				"selectedIconPath": "static/tabbar/index_a.png"
 			},
-			{
-				"pagePath": "pages/category/index",
-				"text": "分类",
-				"iconPath": "static/tabbar/cat.png",
-				"selectedIconPath": "static/tabbar/cat_a.png"
-			},
-			{
-				"pagePath": "pages/service/index",
-				"text": "售后",
-				"iconPath": "static/tabbar/service.png",
-				"selectedIconPath": "static/tabbar/service_a.png"
-			},
+			// {
+			// 	"pagePath": "pages/category/index",
+			// 	"text": "分类",
+			// 	"iconPath": "static/tabbar/cat.png",
+			// 	"selectedIconPath": "static/tabbar/cat_a.png"
+			// },
+			// {
+			// 	"pagePath": "pages/service/index",
+			// 	"text": "售后",
+			// 	"iconPath": "static/tabbar/service.png",
+			// 	"selectedIconPath": "static/tabbar/service_a.png"
+			// },
 			{
 				"pagePath": "pages/my/index",
 				"text": "我的",

+ 320 - 0
pages/index/genHuiBen/index.scss

xqd
@@ -0,0 +1,320 @@
+	view {
+		box-sizing: border-box;
+	}
+	::v-deep .u-upload__wrap__preview__image{
+		width: calc(100vw - 128rpx)!important;
+		height: 626rpx!important;
+		border-radius: 20rpx!important;
+		
+	}
+	::v-deep .u-upload__deletable{
+		
+		background: rgba(0,0,0,0)!important;
+	}
+	::v-deep .u-upload__deletable__icon{
+		width: 40rpx!important;
+		height: 40rpx!important;
+		border-radius: 50%!important;
+		display: flex!important;
+		align-items: center!important;
+		justify-content: center!important;
+	}
+	::v-deep .u-upload__wrap__preview{
+		margin: 0!important;
+	}
+	::v-deep .u-upload__deletable__icon{
+		// display: flex!important;
+		// align-items: center!important;
+		// justify-content: center!important;
+	}
+	::v-deep .u-icon__icon{
+		font-size:40rpx!important;
+	}
+	
+	::v-deep .u-upload__success{
+		display: none!important;
+	}
+ 
+	.container {
+ .topBox{
+	height: 194rpx;
+	background: deepskyblue;
+	border-radius: 0 0 40rpx 0;
+	
+	padding-top: 48rpx;
+	padding-left: 48rpx;
+	display: flex;
+	
+	.left{
+		.aiIcon{
+			width: 62rpx;
+			height: 52rpx;
+		}
+	}
+	.right{
+		margin-left: 15rpx;
+		.label1{
+			font-size: 40rpx;
+			font-family: DOUYUFont;
+			color: #FFFFFF;
+			text-shadow: 0px 4px 8px rgba(0,67,181,0.16);
+		}
+		.label2{
+			font-size: 32rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: bold;
+			color: #FFFFFF;
+			text-shadow: 0px 4px 8px rgba(0,67,181,0.16);
+		}
+	}
+		}
+		
+		.mainBox{
+			margin-top: 52rpx;
+			padding: 0 30rpx;
+			.titleBox{
+				background: #F0F1F4;
+				background: linear-gradient(90deg,#F0F1F4,#fff);
+				height: 62rpx;
+				width: 60%;
+				border-radius: 32rpx 0rpx 0rpx 0rpx;
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: bold;
+				color: #333333;
+				display: flex;
+				align-items: center;
+				padding-left: 32rpx;
+			}
+			.uploadBox{
+				padding: 40rpx 32rpx;
+				min-height: 798rpx;
+				background: #F0F1F4;
+				border-radius: 0rpx 32rpx 32rpx 32rpx;
+				.tipBox{
+					height: 60rpx;
+					background: #FFFFFF;
+					border-radius: 8rpx;
+					
+					display: flex;
+					align-items: center;
+					padding-left: 24rpx;
+					
+					font-size: 24rpx;
+					font-family: PingFang-SC, PingFang-SC;
+					font-weight: bold;
+					color: #333333;
+					width: 90%;
+					
+					.tipIcon{
+						width: 78rpx;
+						height: 34rpx;
+						margin-right: 12rpx;
+					}
+				}
+				.selBox{
+					width: 100%;
+					margin-top: 32rpx;
+					.myUpArea{
+						font-size: 26rpx;
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						color: #696969;
+						
+						display: flex;
+						flex-direction: column;
+						justify-content: center;
+						align-items: center;
+						
+						height: 626rpx;
+						width: calc(100vw - 128rpx);
+						background: red;
+						background: #FFFFFF;
+						border-radius: 20rpx;
+						
+					}
+					.upIcon{
+						height: 96rpx;
+						margin-bottom: 16rpx;
+					}
+				}
+			}
+		}
+		
+		.parmasBox{
+			margin-top: 40rpx;
+			padding: 0 30rpx;
+			.titleBox{
+				background: #F0F1F4;
+				background: linear-gradient(90deg,#F0F1F4,#fff);
+				height: 62rpx;
+				width: 60%;
+				border-radius: 32rpx 0rpx 0rpx 0rpx;
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: bold;
+				color: #333333;
+				display: flex;
+				align-items: center;
+				padding-left: 32rpx;
+			}
+			.inputBox{
+				width: 100%;
+				min-height: 452rpx;
+				background: #F0F1F4;
+				border-radius: 0rpx 32rpx 32rpx 32rpx;
+				padding: 40rpx 32rpx;
+				
+				font-size: 30rpx;
+				font-family: PingFang-SC, PingFang-SC;
+				font-weight: 500;
+				// color: #CCCCCC;
+				.nickname{
+					height: 108rpx;
+					background: #FFFFFF;
+					border-radius: 20rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					padding: 0 24rpx;
+					.nackI{
+						
+					}
+					.arrIcon{
+						width: 12rpx;
+						height: 20rpx;
+					}
+				}
+				.otherBox{
+					margin-top: 24rpx;
+					display: flex;
+					flex-wrap: wrap;
+					justify-content: space-between;
+					.item{
+						height: 108rpx;
+						background: #FFFFFF;
+						border-radius: 20rpx;
+						display: flex;
+						align-items: center;
+						justify-content: space-between;
+						padding: 0 24rpx;
+						width: 45%;
+						margin-bottom: 24rpx;
+						.nackI{
+							
+						}
+						.arrIcon{
+							width: 12rpx;
+							height: 20rpx;
+						}
+					}
+					.item:nth-child(3),.item:nth-child(4){
+						margin-bottom: 0rpx;
+					}
+				
+				}
+			}
+		}
+	}
+	
+	.pos{
+		height: 212rpx;
+	}
+	
+	
+	
+	.btnBox{
+		height: 188rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx -2rpx 20rpx 0rpx rgba(0,0,0,0.05);
+		border-radius: 32rpx 32rpx 0rpx 0rpx;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		z-index: 1;
+		
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		
+		padding-left: 66rpx;
+		padding-right: 30rpx;
+		.left{
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			font-size: 20rpx;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: 500;
+			color: #333333;
+			.kfIcon{
+				width: 38rpx;
+				height: 40rpx;
+				margin-bottom: 4rpx;
+			}
+		}
+		.right{
+			width: 552rpx;
+			height: 108rpx;
+			background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+			box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,122,255,0.2);
+			border-radius: 54rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			.top{
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: bold;
+				color: #FFFFFF;
+				margin-bottom: 10rpx;
+			}
+			.bot{
+				font-size: 24rpx;
+				font-family: PingFang-SC, PingFang-SC;
+				font-weight: bold;
+				color: #FFFFFF;
+			}
+		}
+	}
+	
+	
+	.topBar{
+		display: flex;
+		align-items: center;
+		margin-top: 36rpx;
+		padding: 0 28rpx;
+		
+		.left{
+			width: 20%;
+			font-size: 32rpx;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: 500;
+			color: #999999;
+		}
+		.mid{
+			width: 60%;
+			text-align: center;
+			font-size: 32rpx;
+			font-family: PingFangSC, PingFang SC;
+			font-weight: 500;
+			color: #080F18;
+		}
+		.right{
+			width: 20%;
+			text-align: right;
+			font-size: 32rpx;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: 500;
+			color: #007AFF;
+		}
+	}
+	::v-deep .u-popup__content{
+		border-radius: 20rpx 20rpx 0rpx 0rpx!important;
+	}
+	
+	::v-deep .u-picker__view__column__item{
+		// color: #007AFF!important;
+	}

+ 245 - 0
pages/index/genHuiBen/index.vue

xqd
@@ -0,0 +1,245 @@
+<template>
+	<view class="container">
+		<navBar title="绘本生成" :back="true" color="#333333" background="#FFFFFF" />
+
+		<view class="topBox">
+			<view class="left">
+				<image :src="picBase+'upCamera.png'" mode="heightFix" class="aiIcon" @click="upload"></image>
+			</view>
+			<view class="right">
+				<view class="label1">
+					纯AI制作
+				</view>
+				<view class="label2">
+					创作独一无二的绘本
+				</view>
+			</view>
+		</view>
+		<view class="mainBox">
+			<view class="titleBox">
+				上传一张故事主角的照片
+			</view>
+			<view class="uploadBox">
+				<view class="tipBox">
+					<image :src="picBase+'upCamera.png'" mode="heightFix" class="tipIcon" @click="upload"></image>
+					绘本内容会根据您所上传的照片进行创作
+				</view>
+
+				<view class="selBox">
+					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
+						:maxCount="1">
+						<view class="myUpArea">
+							<image :src="picBase+'upCamera.png'" mode="heightFix" class="upIcon">
+							</image>
+							上传图片
+						</view>
+					</u-upload>
+				</view>
+			</view>
+		</view>
+
+		<view class="parmasBox">
+			<view class="titleBox">
+				故事主角信息
+			</view>
+			<view class="inputBox">
+				<view class="nickname">
+					<input type="text" class="nackI" v-model="formData.nickName" placeholder="请输入昵称" />
+					<image :src="picBase+'arrR2.png'" mode="heightFix" class="arrIcon">
+					</image>
+				</view>
+
+				<view class="otherBox">
+					<view class="item" @click="show=true">
+						<input type="text" class="nackI" disabled v-model="formData.sex" placeholder="选择性别" />
+						<image :src="picBase+'arrR2.png'" mode="heightFix" class="arrIcon">
+						</image>
+					</view>
+					<view class="item" @click="show2=true">
+						<input type="text" class="nackI" disabled v-model="formData.age" placeholder="选择年龄" />
+						<image :src="picBase+'arrR2.png'" mode="heightFix" class="arrIcon">
+						</image>
+					</view>
+					<view class="item" @click="show3=true">
+						<input type="text" class="nackI" disabled v-model="formData.star" placeholder="选择星座" />
+						<image :src="picBase+'arrR2.png'" mode="heightFix" class="arrIcon">
+						</image>
+					</view>
+					<view class="item" @click="show4=true">
+						<input type="text" class="nackI" disabled v-model="formData.class" placeholder="选择年级" />
+						<image :src="picBase+'arrR2.png'" mode="heightFix" class="arrIcon">
+						</image>
+					</view>
+				</view>
+			</view>
+		</view>
+
+
+
+		<view class="pos">
+		</view>
+		<view class="btnBox">
+			<view class="left">
+				<image :src="picBase+'kefu.png'" mode="heightFix" class="kfIcon">
+				</image>
+				客服
+			</view>
+			<view class="right">
+				<view class="top">
+					立即生成
+				</view>
+				<view class="bot">
+					绘本生成剩余次数:8次
+				</view>
+			</view>
+		</view>
+
+
+
+		<!-- 性别弹框 -->
+		<!-- <u-popup :show="show" @close="close" @open="open" :round="10">
+			<view class="topBar">
+				<view class="left">
+					取消
+				</view>
+				<view class="mid">
+					昵称选择
+				</view>
+				<view class="right">
+					确定
+				</view>
+			</view>
+			<view class="content">
+				<text>出淤泥而不染,濯清涟而不妖</text>
+			</view>
+		</u-popup> -->
+		<u-picker :show="show" title="性别选择" aColor="#007AFF" :columns="columns" confirmColor="#007AFF"
+			@confirm="confirm1" @cancel="show=false"></u-picker>
+		<u-picker :show="show2" title="年龄选择" aColor="#007AFF" :columns="columns2" confirmColor="#007AFF"
+			@confirm="confirm2" @cancel="show2=false"></u-picker>
+		<u-picker :show="show3" title="星座选择" aColor="#007AFF" :columns="columns3" confirmColor="#007AFF"
+			@confirm="confirm3" @cancel="show3=false"></u-picker>
+		<u-picker :show="show4" title="班级选择" aColor="#007AFF" :columns="columns4" confirmColor="#007AFF"
+			@confirm="confirm4" @cancel="show4=false"></u-picker>
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+
+	import uploadUrl from '@/common/config.js'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+				picBase: this.$picBase2,
+				fileList1: [],
+
+				formData: {
+					nickName: '',
+					sex: '',
+					age: '',
+					star: '',
+					class: ''
+				},
+				show: false,
+				columns: [
+					['男', '女']
+				],
+				show2: false,
+				columns2: [
+					['一岁', '两岁']
+				],
+				show3: false,
+				columns3: [
+					['金牛', '双子']
+				],
+				show4: false,
+				columns4: [
+					['蒙大一', '蒙大二', '蒙小一', '蒙小二', '蒙小三']
+				],
+
+
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			confirm1(e) {
+				console.log('e', e);
+				this.formData.sex = e.value[0]
+				this.show = false
+			},
+			confirm2(e) {
+				console.log('e', e);
+				this.formData.age = e.value[0]
+				this.show2 = false
+			},
+			confirm3(e) {
+				console.log('e', e);
+				this.formData.star = e.value[0]
+				this.show3 = false
+			},
+			confirm4(e) {
+				console.log('e', e);
+				this.formData.class = e.value[0]
+				this.show4 = false
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(url) {
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						// url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
+						url: uploadUrl.baseUrl + '/api/upload', // 仅为示例,非真实的接口地址
+						filePath: url,
+						name: 'file',
+						formData: {
+							user: 'test',
+							'tag': 'lamp'
+						},
+						success: (res) => {
+
+							console.log('uploadFilePromise返回值', res);
+							setTimeout(() => {
+								resolve(JSON.parse(res.data).file)
+							}, 1000)
+						}
+					});
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 140 - 0
pages/index/genRes/index.scss

xqd
@@ -0,0 +1,140 @@
+	view {
+		box-sizing: border-box;
+	}
+ 
+	.container {
+ .mainBox{
+	 margin-top: 24rpx;
+	 padding: 0 40rpx;
+	 padding-bottom: 384rpx;
+	 .titleBox{
+	 	background: #F0F1F4;
+	 	background: linear-gradient(90deg,#DCEBFF,#fff);
+	 	height: 62rpx;
+	 	width: 80%;
+	 	border-radius: 32rpx 0rpx 0rpx 0rpx;
+	 	font-size: 32rpx;
+	 	font-family: SourceHanSansCN, SourceHanSansCN;
+	 	font-weight: bold;
+	 	color: #333333;
+	 	display: flex;
+	 	align-items: center;
+	 	padding-left: 32rpx;
+	 }
+	 
+	 .contentBox{
+		 min-height: 1004rpx;
+		 background: linear-gradient(180deg, #DCEBFF 0%, #FFFFFF 100%);
+		 box-shadow: 0rpx 8rpx 16rpx -8rpx rgba(0,71,190,0.4);
+		 border-radius:0 32rpx 32rpx 32rpx;
+		 padding: 0 40rpx;
+		 
+		 .bgTag{
+		 			 width: 434rpx;
+		 			 height: 54rpx;
+		 			 background: linear-gradient(132deg, #4FDDFF 0%, #5ECFFF 49%, #017AFF 100%);
+		 			 // filter: blur(0.5px);
+		 			 font-size: 36rpx;
+		 			 font-family: SourceHanSansCN, SourceHanSansCN;
+		 			 font-weight: bold;
+		 			 color: #333333;
+		 			 display: flex;
+		 			 align-items: center;
+		 			 justify-content: center;
+		 			 
+		 			 margin-left: 50%;
+		 			 transform: translate(-50%,-50%);
+		 }
+		 
+			 .storeBox{
+		
+			// overflow: hidden;
+			position: relative;
+			 overflow: auto; /* 清除float的影响 */
+			
+				 text{
+					 font-size: 28rpx;
+					 font-family: SourceHanSansCN, SourceHanSansCN;
+					 font-weight: 500;
+					 color: #333333;
+					 line-height: 66rpx;
+					 margin-top: 48rpx;
+					  text-wrap: wrap;
+					  
+					   text-align: justify; 
+					 // float: left;
+				 }
+				 .img1{
+					 width: 256rpx;
+					 height: 256rpx;
+					 border-radius: 30rpx;
+					 float: left;
+					 margin-right: 24rpx;
+					 clear: both;
+					 
+				 }
+				 .img2{
+					 width: 256rpx;
+					 height: 356rpx;
+					 border-radius: 30rpx;
+					 float: right;
+					 
+					 clear: both;
+					// margin-bottom: 1px;
+					// margin-bottom: 500rpx;
+					 
+					 // position: absolute;
+					 // bottom: 0;
+					 // right: 0;
+					 
+					     // height: auto; /* 保持图片比例 */
+				 }
+		 }
+	 }
+	
+		}
+	}
+	
+	
+	
+	.btnBox{
+		padding-top: 32rpx;
+		padding-left: 40rpx;
+		padding-right: 40rpx;
+		padding-bottom: 40rpx;
+		height: 312rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx -2rpx 20rpx 0rpx rgba(0,0,0,0.05);
+		border-radius: 32rpx 32rpx 0rpx 0rpx;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		
+		.btn{
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+		.b1{
+			// width: 670rpx;
+			height: 108rpx;
+			background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+			box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,122,255,0.2);
+			border-radius: 54rpx;
+			font-size: 32rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: bold;
+			color: #FFFFFF;
+			margin-bottom: 24rpx;
+		}
+		.b2{
+			// width: 670rpx;
+			height: 108rpx;
+			border-radius: 54rpx;
+			border: 2rpx solid #017AFF;
+			font-size: 32rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: bold;
+			color: #017AFF;
+		}
+	}

+ 59 - 0
pages/index/genRes/index.vue

xqd
@@ -0,0 +1,59 @@
+<template>
+	<view class="container">
+		<navBar title="绘本生成" :back="true" color="#333333" background="#FFFFFF" />
+		<view class="mainBox">
+			<view class="titleBox">
+			</view>
+
+			<view class="contentBox">
+				<view class="bgTag">
+					图图与大橡树的其妙冒险
+				</view>
+				<view class="storeBox">
+					<image class="img1"
+						src="https://img1.baidu.com/it/u=1890390320,3399874998&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800"
+						mode=""></image>
+					<!-- 		<image class="img2"
+						src="https://img1.baidu.com/it/u=1890390320,3399874998&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800"
+						mode=""></image> -->
+					<text>{{storeTxt}}</text>
+				</view>
+			</view>
+		</view>
+
+
+
+		<view class="btnBox">
+			<view class="btn b1">
+				下载PDF
+			</view>
+			<view class="btn b2">
+				下载图片
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+				storeTxt: '好好好好红红火火恍恍惚惚或或或或或或或或或或或或或或或或或或或或或或红红火火好好好好红红火火恍恍惚惚或或或或或或或或或或或或或或或或或或或或或或红红火火恍恍惚惚或或或或或或或或或或或或或好好好好红红火火恍恍惚惚或或或或或或或或或或或或或或或或或或或或或或红红火火恍恍惚惚或或或或或或或或或或或或或红红火好好好好红红火火恍恍惚惚或或或或或或或或或或或或或或或或或或或或或或红红火火恍恍惚惚或或或或或或或或或或或或或红红火火恍恍惚惚好好好好红红火火恍恍惚惚或或或或或或或或或或或或或或或或或或或或或或红红火火恍恍惚惚或或或或或或或或或或或或或红红火火恍恍惚惚或或或或或或或或或或或或或或或或或'
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 153 - 0
pages/index/index.scss

xqd
@@ -0,0 +1,153 @@
+::v-deep .u-swiper__wrapper__item__wrapper__image{
+	border-radius: 0!important;
+}
+
+::v-deep .u-swiper__wrapper__item{
+		z-index: 0!important;
+	}
+	
+	::v-deep .u-swiper__wrapper__item__wrapper{
+		z-index: 0!important;
+	}
+
+.container::-webkit-scrollbar {
+    display: none!important;
+} 
+.swiperBox{
+	position: relative;
+	z-index: 0;
+	
+}
+.mainContent{
+	padding-top: 32rpx;
+	padding-right: 32rpx;
+	padding-left: 20rpx;
+	
+	margin-top:-38rpx;
+	position: relative;
+	z-index: 9;
+	background:#CCDBE9;
+	min-height:calc(100vh - 450rpx);
+	border-radius: 0rpx 56rpx 0rpx 0rpx;
+	
+	border: 4rpx solid #FFFFFF;
+	
+	padding-bottom: 180rpx;
+	.topBox{
+		height: 220rpx;
+		background: white;
+		border-radius: 32rpx;
+		display: flex;
+		border: 4rpx solid #FFFFFF;
+		.left{
+			width: 60%;
+			height: 100%;
+			display: flex;
+			align-items: center;
+			flex-wrap: nowrap;
+			overflow-x: scroll;
+			.item{
+				width: 164rpx;
+				height: 164rpx;
+				border-radius: 32rpx;
+				margin-right: 20rpx;
+				flex-shrink:0
+			}
+			.item:last-child{
+				margin-right: 32rpx;
+			}
+		}
+		
+		.right{
+			height: 220rpx;
+			width: 42%;
+			background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+			border-radius: 0rpx 32rpx 32rpx 0rpx;
+			
+			padding-left: 32rpx;
+			padding-top: 50rpx;
+			box-sizing: border-box;
+			.t1{
+				font-size: 20rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 500;
+				color: #FFFFFF;
+			}
+			.t2{
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 800;
+				color: #FFFFFF;
+				// margin-top: 6rpx;
+			}
+			.btnBox{
+				width: 198rpx;
+				height: 54rpx;
+				background: linear-gradient(180deg, #90E5FF 0%, #4EDCFF 100%);
+				border-radius: 8rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 500;
+				color: #FFFFFF;
+				margin-top: 24rpx;
+				
+				// .txt{
+				// 	width: 100%;
+				// }
+				.arrIcon{
+					width: 28rpx;
+					height: 28rpx;
+					background: #FFFFFF;
+					opacity: 0.19;
+					margin-left: 8rpx;
+				}
+			}
+		}
+	}
+	.botBox{
+		.title{
+			font-size: 36rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: 800;
+			color: #333333;
+			.bookIcon{
+				width: 35rpx;
+				height: 35rpx;
+			}
+		}
+		.list{
+			display: flex;
+			flex-wrap: wrap;
+			justify-content:space-between;
+			
+			.item{
+				width: 48%;
+				// height: 408rpx;
+				background: #FFFFFF;
+				box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,14,83,0.02);
+				border-radius: 16rpx;
+				margin-bottom: 18rpx;
+				.pic{
+					width: 100%;
+					min-height: 336rpx;
+					border-radius: 20rpx;
+					
+				}
+				.des{
+					font-size: 24rpx;
+					font-family: PingFang-SC, PingFang-SC;
+					font-weight: bold;
+					color: #333333;
+					height: 72rpx;
+					display: flex;
+					align-items: center;
+					padding-left: 20rpx;
+				}
+			}
+		}
+	}
+}

+ 149 - 6
pages/index/index.vue

xqd xqd
@@ -1,11 +1,62 @@
 <template>
 	<view class="container">
-		<navBar title="首页" :back="true" color="white" background="green" />
-		首页
-		<u-button text="测试网络请求" @click="testReq" type="primary"></u-button>
-		<u-button text="测试vuex仓库" @click="testStore" type="primary"></u-button>
-		<u-button text="测试登录-vuex仓库" @click="testLogin" type="primary"></u-button>
-		<u-button text="测试登录退出登录" @click="testLogout" type="primary"></u-button>
+		<navBar title="" :navImg="navImg" :back="false" color="#333333" background="#FFFFFF" />
+
+		<!-- 轮播图 -->
+		<view class="swiperBox">
+			<u-swiper height="514rpx" :autoplay="false" :list="list1" @change="change" @click="click">
+			</u-swiper>
+		</view>
+
+
+
+		<view class="mainContent">
+			<view class="topBox">
+				<view class="left">
+					<image class="item" v-for="(item,index) in list1" :src="item"
+						:style="{'margin-left':index==0?'32rpx':'0'}">
+					</image>
+				</view>
+
+				<view class="right">
+					<view class="t1">
+						CHILDREN PICTURE BOO
+					</view>
+					<view class="t2">
+						专属故事
+					</view>
+					<view class="btnBox" @click="toGen">
+						即刻代写
+						<image class="arrIcon">
+						</image>
+					</view>
+				</view>
+			</view>
+
+			<view class="botBox">
+				<view class="title">
+					精选绘本故事
+					<image class="bookIcon">
+					</image>
+				</view>
+				<view class="list">
+					<view class="item" v-for="(item,index) in list1">
+						<image class="pic" :src="item" mode="widthFix">
+						</image>
+						<view class="des">
+							图图与大橡树的其妙冒险
+						</view>
+					</view>
+				</view>
+			</view>
+			<tabBar :tabBarList="tabBarList" :routePath="routePath" @onTabBar="onTabBar" />
+
+			<!-- 隐私弹框 -->
+			<privacy-popup @confirmP="confirmP" :urlTitle="urlTitle" @cancleP="cancleP"
+				:showPrivateBox="showPop"></privacy-popup>
+		</view>
+
+
 	</view>
 </template>
 
@@ -13,13 +64,105 @@
 	import {
 		getValidateCode
 	} from '@/api/index/index.js'
+	import PrivacyPopup from "@/components/privacyPopup/index.vue";
 	export default {
+		components: {
+			PrivacyPopup
+		},
 		data() {
 			return {
+				navImg: require('@/static/other/logo.png'),
+				showPop: false,
+				urlTitle: '',
+
+				list1: [
+					'https://cdn.uviewui.com/uview/swiper/swiper1.png',
+					'https://cdn.uviewui.com/uview/swiper/swiper2.png',
+					'https://cdn.uviewui.com/uview/swiper/swiper3.png',
+				],
 
+				tabBarList: [{
+						"pagePath": "pages/index/index",
+						"iconPath": "../../static/tabbar/index.png",
+						"selectedIconPath": "../../static/tabbar/index_a.png",
+						"text": "首页"
+					},
+					{
+						"pagePath": "pages/my/index",
+						"iconPath": "../../static/tabbar/my.png",
+						"selectedIconPath": "../../static/tabbar/my_a.png",
+						"text": "我的"
+					}
+				],
+				routePath: ''
 			}
 		},
+
+		onLoad() {
+			uni.hideTabBar()
+			let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
+			let curRoute = routes[routes.length - 1].route // 获取当前页面路由,也就是最后一个打开的页面路由
+			this.routePath = curRoute;
+			console.log('routePath', this.routePath);
+		},
+		onShow() {
+			this.handlePrivate()
+		},
 		methods: {
+			toGen() {
+				uni.navigateTo({
+					url: '/pages/index/genRes/index'
+				})
+			},
+			handlePrivate() {
+				let _this = this
+				if (uni.getPrivacySetting) {
+					uni.getPrivacySetting({
+						success: res => {
+							console.log("是否需要授权--首页:", res.needAuthorization, "隐私协议的名称为:", res
+								.privacyContractName)
+							_this.urlTitle = res
+								.privacyContractName
+							if (res.needAuthorization) {
+								getApp().globalData.showPrivacy = true;
+								_this.showPop = true
+							} else {
+								getApp().globalData.showPrivacy = false;
+							}
+						},
+						fail: () => {},
+						complete: () => {},
+					})
+				}
+			},
+			confirmP() {
+				this.showPop = false
+			},
+			cancleP() {
+				let _this = this
+				uni.showModal({
+					title: '提示',
+					content: '拒绝将退出小程序,确定退出?',
+					success: function(res) {
+						if (res.confirm) {
+							_this.showPop = false
+							wx.exitMiniProgram({
+								success: function() {
+									// uni.removeStorageSync('iv'); //清除缓存	
+								}
+							})
+						} else if (res.cancel) {
+
+						}
+					}
+				});
+			},
+			onTabBar(e) {
+				console.log('e------------', e);
+				uni.switchTab({
+					url: '/' + e
+				})
+			},
 			async testReq() {
 
 				console.log('testStore()111111', this.$store.getters['user/testInfo']);

+ 186 - 0
pages/my/charge/index.scss

xqd
@@ -0,0 +1,186 @@
+	view {
+		box-sizing: border-box;
+	}
+ 
+	.container {
+		.addBg{
+			background: skyblue;
+			
+			min-height: 100vh;
+			
+			padding: 38rpx 30rpx;
+			.topBox{
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				.btn{
+					width: 116rpx;
+					height: 52rpx;
+					background: linear-gradient(180deg, #90E5FF 0%, #4EDCFF 100%);
+					box-shadow: 0rpx 4rpx 8rpx -4rpx rgba(0,109,243,0.5);
+					border-radius: 26rpx;
+					
+					font-size: 26rpx;
+					font-family: SourceHanSansCN, SourceHanSansCN;
+					font-weight: 500;
+					color: #FFFFFF;
+					
+					display: flex;
+					align-items: center;
+					justify-content: center;
+				}
+				.userBox{
+						 display: flex;
+						 align-items: center;
+						 .avatar{
+							 width: 120rpx;
+							 height: 120rpx;
+							 border-radius: 50%;
+							 border: 2rpx solid #fff;
+							 margin-right: 20rpx;
+						 }
+						 
+						 .right{
+							
+							 .nickname{
+							 							 font-size: 36rpx;
+							 							 font-family: PingFang-SC, PingFang-SC;
+							 							 font-weight: 800;
+							 							 color: #FFFFFF;
+							 							 margin-right: 20rpx;
+							 }
+							
+							 
+							 .bot{
+								 display: flex;
+								 align-items: center;
+								 font-size: 26rpx;
+								 font-family: PingFang-SC, PingFang-SC;
+								 font-weight: 500;
+								 color: #FFFFFF;
+								 
+								 margin-top: 16rpx;
+								 .icon{
+								 							 width: 28rpx;
+								 							 height: 28rpx;
+								 							 // max-lines: 20rpx;
+															 
+															 margin-right: 8rpx;
+								 }
+							 }
+						 }
+						 
+						
+				}
+					}
+					
+					
+					
+					
+					.mainBox{
+						
+						height: 934rpx;
+						background: #FFFFFF;
+						box-shadow: 0rpx 4rpx 16rpx -8rpx rgba(0,103,104,0.16);
+						border-radius: 32rpx;
+						
+						margin-top: 48rpx;
+						
+						padding: 16rpx 24rpx;
+						display: flex;
+						flex-direction: column;
+						
+						flex-wrap: nowrap;
+						
+						overflow-y: scroll;
+						.tagLine{
+							width: 72rpx;
+							height: 10rpx;
+							background: #EFF3F8;
+							border-radius: 5rpx;
+							
+							margin-left: 50%;
+							
+							transform: translateX(-50%);
+							
+							margin-bottom: 32rpx;
+						}
+						.bor{
+							border: 4rpx solid #007AFF;
+						}
+						
+						.carItem{
+							flex-shrink: 0;
+							
+							height: 148rpx;
+							background: #F7F8FB;
+							border-radius: 20rpx;
+							
+							display: flex;
+							justify-content: space-between;
+							align-items: center;
+							
+							padding: 0 32rpx;
+							
+							margin-bottom: 24rpx;
+							.left{
+								.name{
+									font-size: 30rpx;
+									font-family: SourceHanSansCN, SourceHanSansCN;
+									font-weight: bold;
+									color: #333333;
+									
+									margin-bottom: 20rpx;
+								}
+								.count{
+									font-size: 24rpx;
+									font-family: SourceHanSansCN, SourceHanSansCN;
+									font-weight: 400;
+									color: #666666;
+								}
+							}
+							.right{
+								font-size: 48rpx;
+								font-family: SourceHanSansCN, SourceHanSansCN;
+								font-weight: bold;
+								color: #444444;
+							}
+						}
+					}
+					
+		}
+		
+		.btnBox{
+			height: 176rpx;
+			background: #FFFFFF;
+			box-shadow: 0rpx -2rpx 20rpx 0rpx rgba(0,0,0,0.05);
+			border-radius: 32rpx 32rpx 0rpx 0rpx;
+			
+			
+			position: fixed;
+			bottom: 0;
+			width: 100%;
+			
+			padding-left: 30rpx;
+			padding-right: 30rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			.btn{
+				height: 96rpx;
+				background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+				box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,122,255,0.2);
+				border-radius: 54rpx;
+				
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 100%;
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: bold;
+				color: #FFFFFF;
+			}
+		}
+		
+	}

+ 82 - 0
pages/my/charge/index.vue

xqd
@@ -0,0 +1,82 @@
+<template>
+	<view class="container">
+		<navBar title="充值次数" :back="true" color="#333333" background="#FFFFFF" />
+
+		<view class="addBg">
+			<view class="topBox">
+				<view class="userBox">
+					<image class="avatar" :src="picBase+'edit.png'" mode=""></image>
+
+					<view class="right">
+						<view class="nickname">
+							刘晓艺
+						</view>
+						<view class="bot">
+							<image class="icon" :src="picBase+'edit.png'" mode=""></image>
+							绘画次数:3
+						</view>
+					</view>
+				</view>
+
+				<view class="btn">
+					记录
+				</view>
+			</view>
+
+
+
+			<view class="mainBox">
+				<view class="tagLine">
+
+				</view>
+				<view class="carItem " :class="[index==curIndex?'bor':'']" v-for="(item,index) in 8"
+					@click="selTaocan(index)">
+					<view class="left">
+						<view class="name">
+							新用户专享套餐
+						</view>
+						<view class="count">
+							次数:1
+						</view>
+					</view>
+					<view class="right">
+						¥1
+					</view>
+				</view>
+			</view>
+
+		</view>
+		<view class="btnBox">
+			<view class="btn">
+				立即购买
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+				picBase: this.$picBase2,
+				curIndex: 0,
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			selTaocan(i) {
+				this.curIndex = i
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 9 - 0
pages/my/huiBen_record - 副本/index.scss

xqd
@@ -0,0 +1,9 @@
+	view {
+		box-sizing: border-box;
+	}
+ 
+	.container {
+ .topBox{
+	
+		}
+	}

+ 33 - 0
pages/my/huiBen_record - 副本/index.vue

xqd
@@ -0,0 +1,33 @@
+<template>
+	<view class="container">
+		<navBar title="" :navImg="navImg" :back="false" color="#333333" background="#FFFFFF" />
+
+		<view class="topBox">
+			hbjl
+		</view>
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 90 - 0
pages/my/huiBen_record/index.scss

xqd
@@ -0,0 +1,90 @@
+	view {
+		box-sizing: border-box;
+	}
+ 
+	.container {
+ .bgBox{
+	background: skyblue;
+	min-height: 100vh;
+	
+	padding-top: 54rpx;
+	padding-left: 30rpx;
+	padding-right: 30rpx;
+	
+	
+	.item{
+		background: #FFFFFF;
+		box-shadow: 0rpx 4rpx 16rpx -8rpx rgba(0,103,104,0.16);
+		border-radius: 32rpx;
+		// border-radius: 30rpx;
+		
+		padding-top: 24rpx;
+		padding-left: 28rpx;
+		padding-bottom: 40rpx;
+		padding-right: 28rpx;
+		
+		margin-bottom: 24rpx;
+		.mainPic{
+			// width: 689rpx;
+			// height: 284rpx;
+			width: 100%;
+			border-radius: 32rpx 32rpx 0 0;
+		}
+		.name{
+			font-size: 30rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: bold;
+			color: #333333;
+			margin-bottom: 16rpx;
+		}
+		.des{
+			font-size: 30rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: 400;
+			color: #333333;
+			margin-bottom: 16rpx;
+		}
+		
+		.time{
+			font-size: 24rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
+			font-weight: 400;
+			color: #999999;
+		}
+		
+		.btnBox{
+			display: flex;
+			justify-content: space-between;
+			
+			margin-top: 48rpx;
+			height: 84rpx;
+			.item1{
+				
+				width: 306rpx;
+				height: 84rpx;
+				border-radius: 54rpx;
+				border: 1rpx solid #999999;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 400;
+				color: #333333;
+				line-height: 48rpx;
+			}
+			
+			.bg{
+				font-size: 32rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 500;
+				color: #FFFFFF;
+				background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+				border-radius: 54rpx;
+				border: none;
+			}
+		}
+	}
+		}
+	}

+ 54 - 0
pages/my/huiBen_record/index.vue

xqd
@@ -0,0 +1,54 @@
+<template>
+	<view class="container">
+		<navBar title="绘本记录" :back="true" color="#333333" background="#FFFFFF" />
+
+		<view class="bgBox">
+			<view class="item" v-for="i in 3">
+				<image class="mainPic" src="../../../static/other/logo.png" mode="widthFix"></image>
+				<view class="name">
+					图图与大橡树的其妙冒险
+				</view>
+				<view class="des">
+					主角:图图
+				</view>
+				<view class="time">
+					创建时间:2023-12-01 12:3
+				</view>
+
+
+				<view class="btnBox">
+					<view class="item1">
+						绘本下载
+					</view>
+					<view class="item1 bg">
+						绘本详情
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 151 - 73
pages/my/index.scss

xqd
@@ -3,89 +3,167 @@
 	}
  
 	.container {
- 
-		width: 100%;
-		height: 100%;
-		position: absolute;
-		left: 0;
-		bottom: 0;
-		padding: 0 20px;
-		box-sizing: border-box;
-		display: flex;
-		flex-direction: column;
-		background-color: #fff;
-		border-top-left-radius: 10px;
-		border-top-right-radius: 10px;
- 
-		.title {
-			width: 100%;
-			height: 12%;
-			font-size: 20px;
+ .topBox{
+	 height: 370rpx;
+	 padding-top: 38rpx;
+	 padding-left: 30rpx;
+	padding-right: 30rpx;
+	background: #028BFC;
+	display: flex;
+	flex-direction: column;
+	justify-content:space-between;
+	 
+	 .userBox{
+		 display: flex;
+		 align-items: center;
+		 .avatar{
+			 width: 120rpx;
+			 height: 120rpx;
+			 border-radius: 50%;
+			 border: 2rpx solid #fff;
+			 margin-right: 24rpx;
+		 }
+		 .nickname{
+			 font-size: 36rpx;
+			 font-family: PingFang-SC, PingFang-SC;
+			 font-weight: 800;
+			 color: #FFFFFF;
+			 margin-right: 20rpx;
+		 }
+		 .icon{
+			 width: 28rpx;
+			 height: 28rpx;
+			 // max-lines: 20rpx;
+		 }
+		
+	 }
+	 .infoBox{
+	 		background: rgba(31,48,69,0.7);
+	 		box-shadow: 0rpx 4rpx 16rpx -8rpx rgba(0,103,104,0.16);
+	 		border-radius: 32rpx 32rpx 0rpx 0rpx;
+	 		border: 2rpx solid rgba(112,193,255,0.81);
+	 		backdrop-filter: blur(10px);	
+			font-size: 30rpx;
+			font-family: SourceHanSansCN, SourceHanSansCN;
 			font-weight: bold;
-			padding-top: 20px;
- 
-			text:nth-child(2) {
-				display: block;
-				font-size: 14px;
-				font-weight: normal;
-				margin-top: 5px;
-			}
-		}
- 
-		.choose-avatar-row,
-		.choose-nickname-row {
-			width: 100%;
-			height: 9%;
+			color: #FFFFFF;
 			display: flex;
-			justify-content: flex-start;
 			align-items: center;
-			padding: 10px 2px;
-			font-size: 14px;
-			border-top: 1px solid #ccc;
-			border-bottom: 1px solid #ccc;
- 
-			.avatar-wrapper {
-				width: 40px;
-				height: 40px;
-				margin: 0;
-				padding: 0;
-				margin-right: 10px;
- 
-				.avatar {
-					width: 100%;
-					height: 100%;
+			height: 145rpx;
+			
+			padding-left: 48rpx;
+			padding-right: 48rpx;
+			justify-content: space-between;
+			position: relative;
+			z-index: 1;
+			.left{
+				display: flex;
+				align-items: center;
+				.icon{
+					width: 48rpx;
+					height: 48rpx;
+					margin-right: 16rpx;
 				}
 			}
-		}
- 
-		.choose-nickname-row {
-			border-top: none;
- 
-			text {
-				width: 45px;
-				margin-right: 10px;
+			
+			
+			.btn{
+				width: 130rpx;
+				height: 46rpx;
+				background: #F7E0AB;
+				border-radius: 23rpx;
+				
+				font-size: 24rpx;
+				font-family: SourceHanSansCN, SourceHanSansCN;
+				font-weight: 500;
+				color: #1F3045;
+				display: flex;
+				align-items: center;
+				justify-content: center;
 			}
-		}
- 
-		.login-row {
-			width: 100%;
-			height: 30%;
-			padding-top: 20px;
+	 }
+ }
+ }
+	
+	
+	
+	.contentBox{
+		min-height: 970rpx;
+		background: #F7F8FB;
+		box-shadow: 0rpx 4rpx 16rpx -8rpx rgba(0,103,104,0.16);
+		border-radius: 30rpx 30rpx 0 0;
+		// background: red;
+		margin-top: -20rpx;
+		position: relative;
+		z-index: 2;
+		padding-top: 40rpx;
+		padding-left:30rpx;
+		padding-right: 30rpx;
+		
+		
+		
+		.tabBox{
 			display: flex;
- 
-			button {
-				font-size: 14px;
-				width: 30%;
-				height: 40px;
+			justify-content: space-between;
+			.item{
+				width: 48%;
+				height: 150rpx;
+				background: #FFFFFF;
+				box-shadow: 0rpx 4rpx 20rpx -14rpx rgba(1,135,255,0.38);
+				border-radius: 28rpx;
+				
 				display: flex;
 				align-items: center;
-				justify-content: center;
-				border-color: transparent;
-				color: #07c160;
+				padding-left: 24rpx;
+				.icon{
+					width: 50rpx;
+					height: 50rpx;
+					margin-right: 16rpx;
+				}
+				.t1{
+					font-size: 30rpx;
+					font-family: SourceHanSansCN, SourceHanSansCN;
+					font-weight: bold;
+					color: #333333;
+					margin-bottom: 12rpx;
+				}
+				.t2{
+					font-size: 22rpx;
+					font-family: SourceHanSansCN, SourceHanSansCN;
+					font-weight: 400;
+					color: #999999;
+				}
 			}
- 
-			.inactive {
-				color: #ccc;
+		}
+		
+		.serListBox{
+			.item{
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				height: 142rpx;
+				// background: red;
+				
+				border-bottom: 1rpx solid #E6E6E6;
+				.left{
+					height: 100%;
+					display: flex;
+					align-items: center;
+					
+					font-size: 32rpx;
+					font-family: PingFang-SC, PingFang-SC;
+					font-weight: 500;
+					color: #333333;
+					.icon{
+						width: 40rpx;
+						height: 40rpx;
+						margin-right: 8rpx;
+					}
+				}
+				.icon_r{
+					width: 14rpx;
+					height: 24rpx;
+				}
 			}
 		}
 	}

+ 118 - 68
pages/my/index.vue

xqd xqd
@@ -1,26 +1,68 @@
 <template>
 	<view class="container">
-		<navBar title="我的" :back="true" color="white" background="green" />
-		我的
+		<navBar title="" :navImg="navImg" :back="false" color="#333333" background="#FFFFFF" />
+		<tabBar :tabBarList="tabBarList" :routePath="routePath" @onTabBar="onTabBar" />
 
-		<u-button text="测试获取用户信息" @click="testGetUserInfo" type="primary"></u-button>
 
-		<!-- 选择头像 -->
-		<view class="choose-avatar-row">
-			<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
-				<image class="avatar" :src="avatarUrl"></image>
-			</button>
-			<text>点击选择头像</text>
-		</view>
+		<view class="topBox">
+			<view class="userBox">
+				<image class="avatar" @click="toUserInfo" :src="picBase+'edit.png'" mode=""></image>
+				<view class="nickname" @click="toUserInfo">
+					刘晓艺
+				</view>
+				<image class="icon" @click="toUserInfo" :src="picBase+'edit.png'" mode=""></image>
+			</view>
+
+			<view class="infoBox">
+				<view class="left">
+					<image class="icon" :src="picBase+'edit.png'" mode=""></image>
+					当前剩余次数:2
+				</view>
 
-		<!-- 选择昵称 -->
-		<view class="choose-nickname-row">
-			<text>昵称</text>
-			<input v-model="nickName" @input="inputName" type="nickname" placeholder="请输入昵称" />
+				<view class="btn" @click="toCharge">
+					立即充值
+				</view>
+			</view>
 		</view>
 
 
-		<button open-type="getPhoneNumber" @getphonenumber="getphonenumber">获取用户手机号</button>
+		<view class="contentBox">
+			<view class="tabBox">
+				<view class="item" @click="toHuibenJilu">
+					<image class="icon" :src="picBase+'edit.png'" mode=""></image>
+					<view class="right">
+						<view class="t1">
+							绘本记录
+						</view>
+						<view class="t2">
+							绘本历史记录
+						</view>
+					</view>
+				</view>
+
+				<view class="item">
+					<image class="icon" :src="picBase+'edit.png'" mode=""></image>
+					<view class="right">
+						<view class="t1">
+							推广大使
+						</view>
+						<view class="t2">
+							推广大使招募
+						</view>
+					</view>
+				</view>
+			</view>
+
+			<view class="serListBox">
+				<view class="item" v-for="(item,index) in serList">
+					<view class="left">
+						<image class="icon" src="../../static/other/edit.png" mode=""></image>
+						{{item.name}}
+					</view>
+					<image class="icon_r" src="../../static/other/arrR.png" mode=""></image>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -32,66 +74,74 @@
 		// },
 		data() {
 			return {
-				avatarUrl: '',
-				nickName: '',
-				PhoneCode: '',
-				imgUrl: '',
-				isPhone: false
+				picBase: this.$picBase,
+				navImg: require('@/static/other/logo.png'),
+				tabBarList: [{
+						"pagePath": "pages/index/index",
+						"iconPath": "../../static/tabbar/index.png",
+						"selectedIconPath": "../../static/tabbar/index_a.png",
+						"text": "首页"
+					},
+					{
+						"pagePath": "pages/my/index",
+						"iconPath": "../../static/tabbar/my.png",
+						"selectedIconPath": "../../static/tabbar/my_a.png",
+						"text": "我的"
+					}
+				],
+				routePath: '',
+
+
+
+				serList: [{
+						name: '推荐奖励',
+						icon: this.$picBase + 'edit.png',
+					},
+					{
+						name: '消费记录',
+						icon: this.$picBase + 'edit.png',
+					},
+					{
+						name: '客服中心',
+						icon: this.$picBase + 'edit.png',
+					},
+					{
+						name: '关于我们',
+						icon: this.$picBase + 'edit.png',
+					},
+				]
 			}
 		},
+		onLoad() {
+			uni.hideTabBar()
+			let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
+			let curRoute = routes[routes.length - 1].route // 获取当前页面路由,也就是最后一个打开的页面路由
+			this.routePath = curRoute;
+			console.log('routePath', this.routePath);
+
+		},
 		methods: {
-			onChooseAvatar(e) {
-				this.avatarUrl = e.detail.avatarUrl
-				// this.upImg(this.avatarUrl)
+			onTabBar(e) {
+				console.log('e------------', e);
+				uni.switchTab({
+					url: '/' + e
+				})
 			},
 
-			onChooseAvatar(e) {
-				this.avatarUrl = e.detail.avatarUrl
-				// this.upImg(this.avatarUrl)
-			},
-			inputName(e) {
-				this.nickName = e.detail.value
+			toCharge() {
+				uni.navigateTo({
+					url: '/pages/my/charge/index'
+				})
 			},
-
-			testGetUserInfo() {
-				console.log('testGetUserInfo()------------');
-				uni.login({
-					provider: 'weixin',
-					success: res => {
-						console.log('uni.login返回值:', res)
-						if (res.errMsg == 'login:ok') {
-							// 获取密钥 === 需要登录才可以获取密钥
-							return
-							uni.request({
-								url: 'https://api.weixin.qq.com/sns/jscode2session', // 请求微信服务器
-								method: 'GET',
-								data: {
-									appid: 'wx98ab2939999e13de', //你的小程序的APPID
-									secret: '35d1d76914237d6c5d8ecd6d80271c20', //你的小程序秘钥secret,  
-									js_code: res.code, //wx.login 登录成功后的code
-									grant_type: 'authorization_code' //此处为固定值
-								},
-								success: (res1) => {
-									console.log('uni.request获取信息', res1);
-
-									if (res1.errMsg == 'request:ok') {
-										console.log('openid和session_key', res1.data);
-									}
-								}
-							});
-						}
-
-					}
-				});
+			toHuibenJilu() {
+				uni.navigateTo({
+					url: '/pages/my/huiBen_record/index'
+				})
 			},
-			getphonenumber(e) {
-				console.log('getphonenumber返回值', e);
-				if (e.errMsg = 'getPhoneNumber:ok') {
-					console.log('getphonenumber需要传给后端的参数:', {
-						encryptedData: e.encryptedData,
-						iv: e.iv
-					});
-				}
+			toUserInfo() {
+				uni.navigateTo({
+					url: '/pages/my/userInfo/index'
+				})
 			}
 		}
 	}

+ 112 - 0
pages/my/userInfo/index.scss

xqd
@@ -0,0 +1,112 @@
+	view {
+		box-sizing: border-box;
+	}
+	
+	
+ 
+	.container {
+		background: #F7F8FB;
+		.outerBox{
+			padding: 42rpx 30rpx;
+			min-height: 100vh;
+			.upBox{
+				display: flex;
+				justify-content: center;
+				.upIcon{
+					height: 124rpx;
+					width: 124rpx;
+					border-radius: 50%;
+					border: 2rpx solid #fff;
+				}
+				.upIcon1{
+					height: 124rpx;
+				}
+					}
+					
+					.label{
+						font-size: 32rpx;
+						font-family: SourceHanSansCN, SourceHanSansCN;
+						font-weight: bold;
+						color: #333333;
+						margin-top: 36rpx;
+						margin-bottom: 24rpx;
+					}
+					
+					.editBox{
+						background: #FFFFFF;
+						border-radius: 32rpx;
+						padding: 0 24rpx;
+						.item{
+							display: flex;
+							justify-content: space-between;
+							align-items: center;
+							height: 110rpx;
+							border-bottom: 1rpx solid #E6E7E8;
+							.left{
+								font-size: 28rpx;
+								font-family: SourceHanSansCN, SourceHanSansCN;
+								font-weight: 500;
+								color: #333333;
+							}
+							.right{
+								font-size: 28rpx;
+								font-family: SourceHanSansCN, SourceHanSansCN;
+								font-weight: 500;
+								color: #333333;
+								display: flex;
+								align-items: center;
+								
+								input{
+									// background: red;
+									text-align: right;
+									
+								}
+								.editIcon{
+									height: 24rpx;
+									margin-left: 24rpx;
+								}
+							}
+						}
+						.item:last-child{
+							border: none;
+						}
+					}
+					
+					.btnBox{
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						margin-top: 550rpx;
+						.btn{
+							width: 670rpx;
+							height: 96rpx;
+							background: linear-gradient(132deg, #0298FF 0%, #017AFF 100%);
+							box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,122,255,0.2);
+							border-radius: 54rpx;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+						}
+						.b1{
+							font-size: 32rpx;
+							font-family: SourceHanSansCN, SourceHanSansCN;
+							font-weight: bold;
+							color: #FFFFFF;
+							
+							margin-bottom: 24rpx;
+						}
+						.b2{
+							font-size: 32rpx;
+							font-family: SourceHanSansCN, SourceHanSansCN;
+							font-weight: 500;
+							color: #666666;
+							border: 2rpx solid #999999;
+							background: none;
+							box-shadow:none;
+						}
+					}
+				}
+		}
+		
+	
+ 

+ 146 - 0
pages/my/userInfo/index.vue

xqd
@@ -0,0 +1,146 @@
+<template>
+	<view class="container">
+		<navBar title="个人资料" :back="true" color="#333333" background="#FFFFFF" />
+		<view class="outerBox">
+			<view class="upBox">
+
+				<image v-if="userInfo.avatar" :src="userInfo.avatar" mode="" class="upIcon" @click="upload"></image>
+				<image v-else :src="picBase+'upCamera.png'" mode="heightFix" class="upIcon1" @click="upload"></image>
+
+			</view>
+
+			<view class="label">
+				推荐奖励
+			</view>
+
+			<view class="editBox">
+				<view class="item">
+					<view class="left">
+						昵称
+					</view>
+					<view class="right">
+						<input type="text" placeholder="请输入昵称" v-model="userInfo.nackname" />
+						<image :src="picBase+'edit2.png'" mode="heightFix" class="editIcon"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="left">
+						手机号
+					</view>
+					<view class="right">
+						<input type="number" placeholder="请输入手机号" v-model="userInfo.phone" />
+						<image :src="picBase+'edit2.png'" mode="heightFix" class="editIcon"></image>
+					</view>
+				</view>
+				<view class="item">
+					<view class="left">
+						ID号
+					</view>
+					<view class="right">
+						{{userInfo.id}}
+					</view>
+				</view>
+			</view>
+
+
+			<view class="btnBox">
+				<view class="btn b1">
+					保存修改
+				</view>
+				<view class="btn b2" @click="logoOut">
+					退出登录
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	// import navBar from '@/components/navBar/index.vue'
+	import uploadUrl from '@/common/config.js'
+	export default {
+		// components: {
+		// 	navBar
+		// },
+		data() {
+			return {
+				picBase: this.$picBase2,
+				userInfo: {
+					// avatar: this.$picBase2 + 'logo.png',
+					avatar: '',
+					nackname: '海绵宝',
+					phone: '10928309109',
+					id: '237429302'
+				},
+				mode: 0
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+			logoOut() {
+				uni.showModal({
+					title: '提示',
+					content: '确认退出登录?',
+					confirmColor: '#017AFF',
+					success: function(res) {
+						if (res.confirm) {
+							uni.removeStorageSync('token')
+							uni.reLaunch({
+								url: '/pages/my/index'
+							})
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				});
+			},
+			upload() {
+				let _this = this
+				uni.chooseImage({
+					count: 1,
+					success(res) {
+						console.log('res', res.tempFilePaths[0]);
+						_this.upImg(res.tempFilePaths[0])
+					}
+				})
+
+			},
+
+			upImg(file) {
+				console.log('upImg的file', file)
+				let _this = this
+				uni.uploadFile({
+					url: uploadUrl.baseUrl + '/api/upload',
+					filePath: file,
+					name: 'file',
+					header: {
+						'Content-Type': 'multipart/form-data'
+					},
+					formData: {
+						'fileType': 'images',
+						'dirName': 'cert',
+						'tag': 'lamp'
+					},
+					success: function(uploadRes) {
+						let result = JSON.parse(uploadRes.data)
+						if (result.code == 0) {
+							_this.userInfo.avatar = result.data.file
+							console.log('上传后的头像url地址', result.data.file)
+						}
+					},
+					fail: function(err) {
+						console.log('upload failed:', err)
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./index.scss";
+</style>

+ 29 - 0
project.config.json

xqd
@@ -0,0 +1,29 @@
+{
+  "compileType": "miniprogram",
+  "setting": {
+    "coverView": true,
+    "es6": true,
+    "postcss": true,
+    "minified": true,
+    "enhance": true,
+    "showShadowRootInWxmlPanel": true,
+    "packNpmRelationList": [],
+    "babelSetting": {
+      "ignore": [],
+      "disablePlugins": [],
+      "outputPath": ""
+    },
+    "ignoreUploadUnusedFiles": true
+  },
+  "condition": {},
+  "editorSetting": {
+    "tabIndent": "insertSpaces",
+    "tabSize": 2
+  },
+  "libVersion": "3.2.4",
+  "packOptions": {
+    "ignore": [],
+    "include": []
+  },
+  "appid": "wx98ab2939999e13de"
+}

+ 7 - 0
project.private.config.json

xqd
@@ -0,0 +1,7 @@
+{
+  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+  "projectname": "huibenPro",
+  "setting": {
+    "compileHotReLoad": true
+  }
+}

BIN
static/other/arrR.png


BIN
static/other/arrR2.png


BIN
static/other/edit.png


BIN
static/other/edit2.png


BIN
static/other/kefu.png


BIN
static/other/logo.png


BIN
static/other/upCamera.png


BIN
static/tabbar/cat.png


BIN
static/tabbar/cat_a.png


BIN
static/tabbar/index.png


BIN
static/tabbar/index_a.png


BIN
static/tabbar/my.png


BIN
static/tabbar/my_a.png


BIN
static/tabbar/service.png


BIN
static/tabbar/service_a.png


+ 77 - 73
uni_modules/uview-ui/components/u-picker/props.js

xqd
@@ -1,79 +1,83 @@
 export default {
-    props: {
-        // 是否展示picker弹窗
-        show: {
-            type: Boolean,
-            default: uni.$u.props.picker.show
-        },
-        // 是否展示顶部的操作栏
-        showToolbar: {
-            type: Boolean,
-            default: uni.$u.props.picker.showToolbar
-        },
-        // 顶部标题
-        title: {
-            type: String,
-            default: uni.$u.props.picker.title
-        },
-        // 对象数组,设置每一列的数据
-        columns: {
-            type: Array,
-            default: uni.$u.props.picker.columns
-        },
-        // 是否显示加载中状态
-        loading: {
-            type: Boolean,
-            default: uni.$u.props.picker.loading
-        },
-        // 各列中,单个选项的高度
-        itemHeight: {
-            type: [String, Number],
-            default: uni.$u.props.picker.itemHeight
-        },
-        // 取消按钮的文字
-        cancelText: {
-            type: String,
-            default: uni.$u.props.picker.cancelText
-        },
-        // 确认按钮的文字
-        confirmText: {
-            type: String,
-            default: uni.$u.props.picker.confirmText
-        },
-        // 取消按钮的颜色
-        cancelColor: {
-            type: String,
-            default: uni.$u.props.picker.cancelColor
-        },
-        // 确认按钮的颜色
-        confirmColor: {
-            type: String,
-            default: uni.$u.props.picker.confirmColor
-        },
-        // 每列中可见选项的数量
-        visibleItemCount: {
-            type: [String, Number],
-            default: uni.$u.props.picker.visibleItemCount
-        },
-        // 选项对象中,需要展示的属性键名
-        keyName: {
-            type: String,
-            default: uni.$u.props.picker.keyName
-        },
-        // 是否允许点击遮罩关闭选择器
-        closeOnClickOverlay: {
-            type: Boolean,
-            default: uni.$u.props.picker.closeOnClickOverlay
-        },
-        // 各列的默认索引
-        defaultIndex: {
-            type: Array,
-            default: uni.$u.props.picker.defaultIndex
-        },
+	props: {
+		// 是否展示picker弹窗
+		aColor: {
+			type: String,
+			default: 'black'
+		},
+		show: {
+			type: Boolean,
+			default: uni.$u.props.picker.show
+		},
+		// 是否展示顶部的操作栏
+		showToolbar: {
+			type: Boolean,
+			default: uni.$u.props.picker.showToolbar
+		},
+		// 顶部标题
+		title: {
+			type: String,
+			default: uni.$u.props.picker.title
+		},
+		// 对象数组,设置每一列的数据
+		columns: {
+			type: Array,
+			default: uni.$u.props.picker.columns
+		},
+		// 是否显示加载中状态
+		loading: {
+			type: Boolean,
+			default: uni.$u.props.picker.loading
+		},
+		// 各列中,单个选项的高度
+		itemHeight: {
+			type: [String, Number],
+			default: uni.$u.props.picker.itemHeight
+		},
+		// 取消按钮的文字
+		cancelText: {
+			type: String,
+			default: uni.$u.props.picker.cancelText
+		},
+		// 确认按钮的文字
+		confirmText: {
+			type: String,
+			default: uni.$u.props.picker.confirmText
+		},
+		// 取消按钮的颜色
+		cancelColor: {
+			type: String,
+			default: uni.$u.props.picker.cancelColor
+		},
+		// 确认按钮的颜色
+		confirmColor: {
+			type: String,
+			default: uni.$u.props.picker.confirmColor
+		},
+		// 每列中可见选项的数量
+		visibleItemCount: {
+			type: [String, Number],
+			default: uni.$u.props.picker.visibleItemCount
+		},
+		// 选项对象中,需要展示的属性键名
+		keyName: {
+			type: String,
+			default: uni.$u.props.picker.keyName
+		},
+		// 是否允许点击遮罩关闭选择器
+		closeOnClickOverlay: {
+			type: Boolean,
+			default: uni.$u.props.picker.closeOnClickOverlay
+		},
+		// 各列的默认索引
+		defaultIndex: {
+			type: Array,
+			default: uni.$u.props.picker.defaultIndex
+		},
 		// 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效
 		immediateChange: {
 			type: Boolean,
 			default: uni.$u.props.picker.immediateChange
 		}
-    }
-}
+	}
+}

+ 186 - 212
uni_modules/uview-ui/components/u-picker/u-picker.vue

xqd xqd xqd
@@ -1,51 +1,24 @@
 <template>
-	<u-popup
-		:show="show"
-		@close="closeHandler"
-	>
+	<u-popup :show="show" @close="closeHandler">
 		<view class="u-picker">
-			<u-toolbar
-				v-if="showToolbar"
-				:cancelColor="cancelColor"
-				:confirmColor="confirmColor"
-				:cancelText="cancelText"
-				:confirmText="confirmText"
-				:title="title"
-				@cancel="cancel"
-				@confirm="confirm"
-			></u-toolbar>
-			<picker-view
-				class="u-picker__view"
-				:indicatorStyle="`height: ${$u.addUnit(itemHeight)}`"
-				:value="innerIndex"
-				:immediateChange="immediateChange"
-				:style="{
+			<u-toolbar v-if="showToolbar" :cancelColor="cancelColor" :confirmColor="confirmColor"
+				:cancelText="cancelText" :confirmText="confirmText" :title="title" @cancel="cancel"
+				@confirm="confirm"></u-toolbar>
+			<picker-view class="u-picker__view" :indicatorStyle="`height: ${$u.addUnit(itemHeight)}`"
+				:value="innerIndex" :immediateChange="immediateChange" :style="{
 					height: `${$u.addUnit(visibleItemCount * itemHeight)}`
-				}"
-				@change="changeHandler"
-			>
-				<picker-view-column
-					v-for="(item, index) in innerColumns"
-					:key="index"
-					class="u-picker__view__column"
-				>
-					<text
-						v-if="$u.test.array(item)"
-						class="u-picker__view__column__item u-line-1"
-						v-for="(item1, index1) in item"
-						:key="index1"
-						:style="{
+				}" @change="changeHandler">
+				<picker-view-column v-for="(item, index) in innerColumns" :key="index" class="u-picker__view__column">
+					<text v-if="$u.test.array(item)" class="u-picker__view__column__item u-line-1"
+						v-for="(item1, index1) in item" :key="index1" :style="{
 							height: $u.addUnit(itemHeight),
 							lineHeight: $u.addUnit(itemHeight),
-							fontWeight: index1 === innerIndex[index] ? 'bold' : 'normal'
-						}"
-					>{{ getItemText(item1) }}</text>
+							fontWeight: index1 === innerIndex[index] ? '' : 'normal',
+							color:index1 === innerIndex[index] ? aColor : ''
+						}">{{ getItemText(item1) }}</text>
 				</picker-view-column>
 			</picker-view>
-			<view
-				v-if="loading"
-				class="u-picker--loading"
-			>
+			<view v-if="loading" class="u-picker--loading">
 				<u-loading-icon mode="circle"></u-loading-icon>
 			</view>
 		</view>
@@ -53,184 +26,185 @@
 </template>
 
 <script>
-/**
- * u-picker
- * @description 选择器
- * @property {Boolean}			show				是否显示picker弹窗(默认 false )
- * @property {Boolean}			showToolbar			是否显示顶部的操作栏(默认 true )
- * @property {String}			title				顶部标题
- * @property {Array}			columns				对象数组,设置每一列的数据
- * @property {Boolean}			loading				是否显示加载中状态(默认 false )
- * @property {String | Number}	itemHeight			各列中,单个选项的高度(默认 44 )
- * @property {String}			cancelText			取消按钮的文字(默认 '取消' )
- * @property {String}			confirmText			确认按钮的文字(默认 '确定' )
- * @property {String}			cancelColor			取消按钮的颜色(默认 '#909193' )
- * @property {String}			confirmColor		确认按钮的颜色(默认 '#3c9cff' )
- * @property {String | Number}	visibleItemCount	每列中可见选项的数量(默认 5 )
- * @property {String}			keyName				选项对象中,需要展示的属性键名(默认 'text' )
- * @property {Boolean}			closeOnClickOverlay	是否允许点击遮罩关闭选择器(默认 false )
- * @property {Array}			defaultIndex		各列的默认索引
- * @property {Boolean}			immediateChange		是否在手指松开时立即触发change事件(默认 false )
- * @event {Function} close		关闭选择器时触发
- * @event {Function} cancel		点击取消按钮触发
- * @event {Function} change		当选择值变化时触发
- * @event {Function} confirm	点击确定按钮,返回当前选择的值
- */
-import props from './props.js';
-export default {
-	name: 'u-picker',
-	mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
-	data() {
-		return {
-			// 上一次选择的列索引
-			lastIndex: [],
-			// 索引值 ,对应picker-view的value
-			innerIndex: [],
-			// 各列的值
-			innerColumns: [],
-			// 上一次的变化列索引
-			columnIndex: 0,
-		}
-	},
-	watch: {
-		// 监听默认索引的变化,重新设置对应的值
-		defaultIndex: {
-			immediate: true,
-			handler(n) {
-				this.setIndexs(n, true)
-			}
-		},
-		// 监听columns参数的变化
-		columns: {
-			immediate: true,
-			handler(n) {
-				this.setColumns(n)
-			}
-		},
-	},
-	methods: {
-		// 获取item需要显示的文字,判别为对象还是文本
-		getItemText(item) {
-			if (uni.$u.test.object(item)) {
-				return item[this.keyName]
-			} else {
-				return item
-			}
-		},
-		// 关闭选择器
-		closeHandler() {
-			if (this.closeOnClickOverlay) {
-				this.$emit('close')
+	/**
+	 * u-picker
+	 * @description 选择器
+	 * @property {Boolean}			show				是否显示picker弹窗(默认 false )
+	 * @property {Boolean}			showToolbar			是否显示顶部的操作栏(默认 true )
+	 * @property {String}			title				顶部标题
+	 * @property {Array}			columns				对象数组,设置每一列的数据
+	 * @property {Boolean}			loading				是否显示加载中状态(默认 false )
+	 * @property {String | Number}	itemHeight			各列中,单个选项的高度(默认 44 )
+	 * @property {String}			cancelText			取消按钮的文字(默认 '取消' )
+	 * @property {String}			confirmText			确认按钮的文字(默认 '确定' )
+	 * @property {String}			cancelColor			取消按钮的颜色(默认 '#909193' )
+	 * @property {String}			confirmColor		确认按钮的颜色(默认 '#3c9cff' )
+	 * @property {String | Number}	visibleItemCount	每列中可见选项的数量(默认 5 )
+	 * @property {String}			keyName				选项对象中,需要展示的属性键名(默认 'text' )
+	 * @property {Boolean}			closeOnClickOverlay	是否允许点击遮罩关闭选择器(默认 false )
+	 * @property {Array}			defaultIndex		各列的默认索引
+	 * @property {Boolean}			immediateChange		是否在手指松开时立即触发change事件(默认 false )
+	 * @event {Function} close		关闭选择器时触发
+	 * @event {Function} cancel		点击取消按钮触发
+	 * @event {Function} change		当选择值变化时触发
+	 * @event {Function} confirm	点击确定按钮,返回当前选择的值
+	 */
+	import props from './props.js';
+	export default {
+		name: 'u-picker',
+		mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
+		// props: ['aColor'],
+		data() {
+			return {
+				// 上一次选择的列索引
+				lastIndex: [],
+				// 索引值 ,对应picker-view的value
+				innerIndex: [],
+				// 各列的值
+				innerColumns: [],
+				// 上一次的变化列索引
+				columnIndex: 0,
 			}
 		},
-		// 点击工具栏的取消按钮
-		cancel() {
-			this.$emit('cancel')
-		},
-		// 点击工具栏的确定按钮
-		confirm() {
-			this.$emit('confirm', {
-				indexs: this.innerIndex,
-				value: this.innerColumns.map((item, index) => item[this.innerIndex[index]]),
-				values: this.innerColumns
-			})
+		watch: {
+			// 监听默认索引的变化,重新设置对应的值
+			defaultIndex: {
+				immediate: true,
+				handler(n) {
+					this.setIndexs(n, true)
+				}
+			},
+			// 监听columns参数的变化
+			columns: {
+				immediate: true,
+				handler(n) {
+					this.setColumns(n)
+				}
+			},
 		},
-		// 选择器某一列的数据发生变化时触发
-		changeHandler(e) {
-			const {
-				value
-			} = e.detail
-			let index = 0,
-				columnIndex = 0
-			// 通过对比前后两次的列索引,得出当前变化的是哪一列
-			for (let i = 0; i < value.length; i++) {
-				let item = value[i]
-				if (item !== (this.lastIndex[i] || 0)) { // 把undefined转为合法假值0
-					// 设置columnIndex为当前变化列的索引
-					columnIndex = i
-					// index则为变化列中的变化项的索引
-					index = item
-					break // 终止循环,即使少一次循环,也是性能的提升
+		methods: {
+			// 获取item需要显示的文字,判别为对象还是文本
+			getItemText(item) {
+				if (uni.$u.test.object(item)) {
+					return item[this.keyName]
+				} else {
+					return item
 				}
-			}
-			this.columnIndex = columnIndex
-			const values = this.innerColumns
-			// 将当前的各项变化索引,设置为"上一次"的索引变化值
-			this.setLastIndex(value)
-			this.setIndexs(value)
+			},
+			// 关闭选择器
+			closeHandler() {
+				if (this.closeOnClickOverlay) {
+					this.$emit('close')
+				}
+			},
+			// 点击工具栏的取消按钮
+			cancel() {
+				this.$emit('cancel')
+			},
+			// 点击工具栏的确定按钮
+			confirm() {
+				this.$emit('confirm', {
+					indexs: this.innerIndex,
+					value: this.innerColumns.map((item, index) => item[this.innerIndex[index]]),
+					values: this.innerColumns
+				})
+			},
+			// 选择器某一列的数据发生变化时触发
+			changeHandler(e) {
+				const {
+					value
+				} = e.detail
+				let index = 0,
+					columnIndex = 0
+				// 通过对比前后两次的列索引,得出当前变化的是哪一列
+				for (let i = 0; i < value.length; i++) {
+					let item = value[i]
+					if (item !== (this.lastIndex[i] || 0)) { // 把undefined转为合法假值0
+						// 设置columnIndex为当前变化列的索引
+						columnIndex = i
+						// index则为变化列中的变化项的索引
+						index = item
+						break // 终止循环,即使少一次循环,也是性能的提升
+					}
+				}
+				this.columnIndex = columnIndex
+				const values = this.innerColumns
+				// 将当前的各项变化索引,设置为"上一次"的索引变化值
+				this.setLastIndex(value)
+				this.setIndexs(value)
 
-			this.$emit('change', {
-				// #ifndef MP-WEIXIN || MP-LARK
-				// 微信小程序不能传递this,会因为循环引用而报错
-				picker: this,
-				// #endif
-				value: this.innerColumns.map((item, index) => item[value[index]]),
-				index,
-				indexs: value,
-				// values为当前变化列的数组内容
-				values,
-				columnIndex
-			})
-		},
-		// 设置index索引,此方法可被外部调用设置
-		setIndexs(index, setLastIndex) {
-			this.innerIndex = uni.$u.deepClone(index)
-			if (setLastIndex) {
-				this.setLastIndex(index)
-			}
-		},
-		// 记录上一次的各列索引位置
-		setLastIndex(index) {
-			// 当能进入此方法,意味着当前设置的各列默认索引,即为“上一次”的选中值,需要记录,是因为changeHandler中
-			// 需要拿前后的变化值进行对比,得出当前发生改变的是哪一列
-			this.lastIndex = uni.$u.deepClone(index)
-		},
-		// 设置对应列选项的所有值
-		setColumnValues(columnIndex, values) {
-			// 替换innerColumns数组中columnIndex索引的值为values,使用的是数组的splice方法
-			this.innerColumns.splice(columnIndex, 1, values)
-			// 拷贝一份原有的innerIndex做临时变量,将大于当前变化列的所有的列的默认索引设置为0
-			let tmpIndex = uni.$u.deepClone(this.innerIndex)
-			for (let i = 0; i < this.innerColumns.length; i++) {
-				if (i > this.columnIndex) {
-					tmpIndex[i] = 0
+				this.$emit('change', {
+					// #ifndef MP-WEIXIN || MP-LARK
+					// 微信小程序不能传递this,会因为循环引用而报错
+					picker: this,
+					// #endif
+					value: this.innerColumns.map((item, index) => item[value[index]]),
+					index,
+					indexs: value,
+					// values为当前变化列的数组内容
+					values,
+					columnIndex
+				})
+			},
+			// 设置index索引,此方法可被外部调用设置
+			setIndexs(index, setLastIndex) {
+				this.innerIndex = uni.$u.deepClone(index)
+				if (setLastIndex) {
+					this.setLastIndex(index)
 				}
-			}
-			// 一次性赋值,不能单个修改,否则无效
-			this.setIndexs(tmpIndex)
-		},
-		// 获取对应列的所有选项
-		getColumnValues(columnIndex) {
-			// 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
-			// 索引如果在外部change的回调中调用getColumnValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
-			(async () => {
-				await uni.$u.sleep()
-			})()
-			return this.innerColumns[columnIndex]
-		},
-		// 设置整体各列的columns的值
-		setColumns(columns) {
-			this.innerColumns = uni.$u.deepClone(columns)
-			// 如果在设置各列数据时,没有被设置默认的各列索引defaultIndex,那么用0去填充它,数组长度为列的数量
-			if (this.innerIndex.length === 0) {
-				this.innerIndex = new Array(columns.length).fill(0)
+			},
+			// 记录上一次的各列索引位置
+			setLastIndex(index) {
+				// 当能进入此方法,意味着当前设置的各列默认索引,即为“上一次”的选中值,需要记录,是因为changeHandler中
+				// 需要拿前后的变化值进行对比,得出当前发生改变的是哪一列
+				this.lastIndex = uni.$u.deepClone(index)
+			},
+			// 设置对应列选项的所有值
+			setColumnValues(columnIndex, values) {
+				// 替换innerColumns数组中columnIndex索引的值为values,使用的是数组的splice方法
+				this.innerColumns.splice(columnIndex, 1, values)
+				// 拷贝一份原有的innerIndex做临时变量,将大于当前变化列的所有的列的默认索引设置为0
+				let tmpIndex = uni.$u.deepClone(this.innerIndex)
+				for (let i = 0; i < this.innerColumns.length; i++) {
+					if (i > this.columnIndex) {
+						tmpIndex[i] = 0
+					}
+				}
+				// 一次性赋值,不能单个修改,否则无效
+				this.setIndexs(tmpIndex)
+			},
+			// 获取对应列的所有选项
+			getColumnValues(columnIndex) {
+				// 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
+				// 索引如果在外部change的回调中调用getColumnValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
+				(async () => {
+					await uni.$u.sleep()
+				})()
+				return this.innerColumns[columnIndex]
+			},
+			// 设置整体各列的columns的值
+			setColumns(columns) {
+				this.innerColumns = uni.$u.deepClone(columns)
+				// 如果在设置各列数据时,没有被设置默认的各列索引defaultIndex,那么用0去填充它,数组长度为列的数量
+				if (this.innerIndex.length === 0) {
+					this.innerIndex = new Array(columns.length).fill(0)
+				}
+			},
+			// 获取各列选中值对应的索引
+			getIndexs() {
+				return this.innerIndex
+			},
+			// 获取各列选中的值
+			getValues() {
+				// 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
+				// 索引如果在外部change的回调中调用getValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
+				(async () => {
+					await uni.$u.sleep()
+				})()
+				return this.innerColumns.map((item, index) => item[this.innerIndex[index]])
 			}
 		},
-		// 获取各列选中值对应的索引
-		getIndexs() {
-			return this.innerIndex
-		},
-		// 获取各列选中的值
-		getValues() {
-			// 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
-			// 索引如果在外部change的回调中调用getValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
-			(async () => {
-				await uni.$u.sleep()
-			})()
-			return this.innerColumns.map((item, index) => item[this.innerIndex[index]])
-		}
-	},
-}
+	}
 </script>
 
 <style lang="scss" scoped>
@@ -280,4 +254,4 @@ export default {
 			z-index: 1000;
 		}
 	}
-</style>
+</style>

+ 0 - 0
unpackage/dist/build/.automator/mp-weixin/.automator.json


+ 4 - 0
unpackage/dist/build/mp-weixin/app.js

xqd
@@ -0,0 +1,4 @@
+
+require('./common/runtime.js')
+require('./common/vendor.js')
+require('./common/main.js')

+ 66 - 0
unpackage/dist/build/mp-weixin/app.json

xqd
@@ -0,0 +1,66 @@
+{
+  "pages": [
+    "pages/index/index",
+    "pages/category/index",
+    "pages/service/index",
+    "pages/my/index",
+    "pages/map/index"
+  ],
+  "subPackages": [],
+  "window": {
+    "navigationBarTextStyle": "black",
+    "navigationBarTitleText": "uni-app",
+    "navigationBarBackgroundColor": "#F8F8F8",
+    "backgroundColor": "#F8F8F8",
+    "navigationStyle": "custom"
+  },
+  "tabBar": {
+    "color": "black",
+    "selectedColor": "#1afa29",
+    "borderStyle": "black",
+    "backgroundColor": "#F8F8F8",
+    "fontSize": "12px",
+    "spacing": "5px",
+    "height": "50px",
+    "list": [
+      {
+        "pagePath": "pages/index/index",
+        "text": "首页",
+        "iconPath": "static/tabbar/index.png",
+        "selectedIconPath": "static/tabbar/index_a.png"
+      },
+      {
+        "pagePath": "pages/category/index",
+        "text": "分类",
+        "iconPath": "static/tabbar/cat.png",
+        "selectedIconPath": "static/tabbar/cat_a.png"
+      },
+      {
+        "pagePath": "pages/service/index",
+        "text": "售后",
+        "iconPath": "static/tabbar/service.png",
+        "selectedIconPath": "static/tabbar/service_a.png"
+      },
+      {
+        "pagePath": "pages/my/index",
+        "text": "我的",
+        "iconPath": "static/tabbar/my.png",
+        "selectedIconPath": "static/tabbar/my_a.png"
+      }
+    ]
+  },
+  "permission": {
+    "scope.userLocation": {
+      "desc": "用于小程序使用中为您提供位置信息"
+    }
+  },
+  "requiredPrivateInfos": [
+    "getLocation",
+    "choosePoi",
+    "chooseAddress",
+    "chooseLocation"
+  ],
+  "usingComponents": {
+    "nav-bar": "/components/navBar/index"
+  }
+}

+ 3 - 0
unpackage/dist/build/mp-weixin/app.wxss

xqd
@@ -0,0 +1,3 @@
+@import './common/main.wxss';
+
+[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/common/main.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/common/main.wxss


Fichier diff supprimé car celui-ci est trop grand
+ 2 - 0
unpackage/dist/build/mp-weixin/common/runtime.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/common/vendor.js


+ 10 - 0
unpackage/dist/build/mp-weixin/components/navBar/index.js

xqd
@@ -0,0 +1,10 @@
+(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/navBar/index"],{"471b":function(t,n,e){"use strict";var i=e("b154"),a=e.n(i);a.a},"58e7":function(t,n,e){"use strict";e.d(n,"b",(function(){return a})),e.d(n,"c",(function(){return o})),e.d(n,"a",(function(){return i}));var i={uniIcons:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(e.bind(null,"34b7"))}},a=function(){var t=this.$createElement;this._self._c},o=[]},b011:function(t,n,e){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e={data:function(){return{statusBarHeight:20,navBareight:45,windowWidth:375}},props:{title:{type:String,default:""},color:{type:String,default:"#fff"},background:{type:String,default:"transparent"},back:{type:Boolean,default:!1}},created:function(){var n=t.getSystemInfoSync(),e=n.statusBarHeight,i=n.windowWidth;this.statusBarHeight=e,this.windowWidth=i;var a=t.getMenuButtonBoundingClientRect(),o=a.top,u=a.bottom,r=a.left;this.navBareight=u-e+(o-e),this.windowWidth=r},methods:{onBack:function(){this.$emit("onBack"),t.navigateBack({delta:1})}}};n.default=e}).call(this,e("543d")["default"])},b154:function(t,n,e){},b8df:function(t,n,e){"use strict";e.r(n);var i=e("b011"),a=e.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(o);n["default"]=a.a},e2bc:function(t,n,e){"use strict";e.r(n);var i=e("58e7"),a=e("b8df");for(var o in a)["default"].indexOf(o)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(o);e("471b");var u=e("f0c5"),r=Object(u["a"])(a["default"],i["b"],i["c"],!1,null,"d336c544",null,!1,i["a"],void 0);n["default"]=r.exports}}]);
+;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
+    'components/navBar/index-create-component',
+    {
+        'components/navBar/index-create-component':(function(module, exports, __webpack_require__){
+            __webpack_require__('543d')['createComponent'](__webpack_require__("e2bc"))
+        })
+    },
+    [['components/navBar/index-create-component']]
+]);

+ 6 - 0
unpackage/dist/build/mp-weixin/components/navBar/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  },
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/components/navBar/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="navbar data-v-d336c544" style="{{'height:'+(statusBarHeight+navBareight+'px')+';'+('background:'+(background)+';')}}"><view class="narbar-flexd data-v-d336c544" style="{{'background:'+(background)+';'}}"><view style="{{'height:'+(statusBarHeight+'px')+';'}}" class="data-v-d336c544"></view><view class="narbar-content data-v-d336c544" style="{{'height:'+(navBareight+'px')+';'}}"><block wx:if="{{back}}"><view data-event-opts="{{[['tap',[['onBack',['$event']]]]]}}" class="left data-v-d336c544" style="{{'color:'+(color)+';'+('padding-top:'+(paddingTop)+';')}}" bindtap="__e"><uni-icons vue-id="3a6d4f98-1" type="arrowleft" size="25" color="{{color}}" class="data-v-d336c544" bind:__l="__l"></uni-icons></view></block><view class="title data-v-d336c544" style="{{'color:'+(color)+';'}}">{{''+title+''}}</view></view></view><view class="navHeight data-v-d336c544" style="{{'height:'+(statusBarHeight+navBareight+'px')+';'}}"></view></view>

+ 1 - 0
unpackage/dist/build/mp-weixin/components/navBar/index.wxss

xqd
@@ -0,0 +1 @@
+.navbar.data-v-d336c544{background:green}.navbar .narbar-flexd.data-v-d336c544{background:green;position:fixed;top:0;left:0;z-index:99;width:100%}.navbar .narbar-flexd .narbar-content.data-v-d336c544{padding:0 30px;display:flex;box-sizing:border-box;justify-content:center;align-items:center}.navbar .narbar-flexd .narbar-content .left.data-v-d336c544{position:absolute;left:5%;font-weight:600}.navbar .narbar-flexd .narbar-content .title.data-v-d336c544{font-size:16px;color:#fff;font-weight:600}.navbar .navHeight.data-v-d336c544{height:60px}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/category/index.js

xqd
@@ -0,0 +1 @@
+(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/category/index"],{"0c89":function(n,t,e){"use strict";e.r(t);var u=e("1c85"),a=e.n(u);for(var c in u)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(c);t["default"]=a.a},"186e":function(n,t,e){"use strict";e.r(t);var u=e("36de"),a=e("0c89");for(var c in a)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return a[n]}))}(c);e("4a09");var o=e("f0c5"),r=Object(o["a"])(a["default"],u["b"],u["c"],!1,null,"1dd13ac2",null,!1,u["a"],void 0);t["default"]=r.exports},"1c85":function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={data:function(){return{}},methods:{testMap:function(){console.log("testMap()"),n.navigateTo({url:"/pages/map/index"})}}};t.default=e}).call(this,e("543d")["default"])},"28a5":function(n,t,e){},"36de":function(n,t,e){"use strict";e.d(t,"b",(function(){return a})),e.d(t,"c",(function(){return c})),e.d(t,"a",(function(){return u}));var u={uButton:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uview-ui/components/u-button/u-button")]).then(e.bind(null,"60b9"))}},a=function(){var n=this.$createElement;this._self._c},c=[]},"4a09":function(n,t,e){"use strict";var u=e("28a5"),a=e.n(u);a.a},"6d85":function(n,t,e){"use strict";(function(n,t){var u=e("4ea4");e("1c90");u(e("66fd"));var a=u(e("186e"));n.__webpack_require_UNI_MP_PLUGIN__=e,t(a.default)}).call(this,e("bc2e")["default"],e("543d")["createPage"])}},[["6d85","common/runtime","common/vendor"]]]);

+ 6 - 0
unpackage/dist/build/mp-weixin/pages/category/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "分类",
+  "usingComponents": {
+    "u-button": "/uni_modules/uview-ui/components/u-button/u-button"
+  }
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/category/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="container data-v-1dd13ac2"><nav-bar vue-id="819668e8-1" title="分类" back="{{true}}" color="white" background="green" class="data-v-1dd13ac2" bind:__l="__l"></nav-bar>分类<u-button vue-id="819668e8-2" text="测试打开地图并导航" type="primary" data-event-opts="{{[['^click',[['testMap']]]]}}" bind:click="__e" class="data-v-1dd13ac2" bind:__l="__l"></u-button></view>

+ 0 - 0
unpackage/dist/build/mp-weixin/pages/category/index.wxss


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/pages/index/index.js


+ 6 - 0
unpackage/dist/build/mp-weixin/pages/index/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "首页",
+  "usingComponents": {
+    "u-button": "/uni_modules/uview-ui/components/u-button/u-button"
+  }
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/index/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="container data-v-798dbc30"><nav-bar vue-id="8dd740cc-1" title="首页" back="{{true}}" color="white" background="green" class="data-v-798dbc30" bind:__l="__l"></nav-bar>首页<u-button vue-id="8dd740cc-2" text="测试网络请求" type="primary" data-event-opts="{{[['^click',[['testReq']]]]}}" bind:click="__e" class="data-v-798dbc30" bind:__l="__l"></u-button><u-button vue-id="8dd740cc-3" text="测试vuex仓库" type="primary" data-event-opts="{{[['^click',[['testStore']]]]}}" bind:click="__e" class="data-v-798dbc30" bind:__l="__l"></u-button><u-button vue-id="8dd740cc-4" text="测试登录-vuex仓库" type="primary" data-event-opts="{{[['^click',[['testLogin']]]]}}" bind:click="__e" class="data-v-798dbc30" bind:__l="__l"></u-button><u-button vue-id="8dd740cc-5" text="测试登录退出登录" type="primary" data-event-opts="{{[['^click',[['testLogout']]]]}}" bind:click="__e" class="data-v-798dbc30" bind:__l="__l"></u-button></view>

+ 0 - 0
unpackage/dist/build/mp-weixin/pages/index/index.wxss


+ 1 - 0
unpackage/dist/build/mp-weixin/pages/map/index.js

xqd
@@ -0,0 +1 @@
+(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/map/index"],{"269a":function(n,e,t){"use strict";t.r(e);var o=t("7353"),a=t.n(o);for(var c in o)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return o[n]}))}(c);e["default"]=a.a},"2a33":function(n,e,t){"use strict";(function(n,e){var o=t("4ea4");t("1c90");o(t("66fd"));var a=o(t("b959"));n.__webpack_require_UNI_MP_PLUGIN__=t,e(a.default)}).call(this,t("bc2e")["default"],t("543d")["createPage"])},7353:function(n,e,t){"use strict";(function(n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t("2016"),a={data:function(){return{}},onLoad:function(){new o({key:"W4IBZ-EVOCV-GJVPF-5QVLU-5ZJTJ-CNFUD"})},onShow:function(){},methods:{testQQMap:function(){n.chooseLocation({success:function(e){console.log("位置名称:"+e.name),console.log("详细地址:"+e.address),console.log("纬度:"+e.latitude),console.log("经度:"+e.longitude),n.openLocation({name:e.name,address:e.address,latitude:e.latitude,longitude:e.longitude,success:function(){console.log("success")}})}})}}};e.default=a}).call(this,t("543d")["default"])},a9ed:function(n,e,t){},aa9f:function(n,e,t){"use strict";var o=t("a9ed"),a=t.n(o);a.a},b959:function(n,e,t){"use strict";t.r(e);var o=t("e0ff"),a=t("269a");for(var c in a)["default"].indexOf(c)<0&&function(n){t.d(e,n,(function(){return a[n]}))}(c);t("aa9f");var u=t("f0c5"),i=Object(u["a"])(a["default"],o["b"],o["c"],!1,null,"6d7ba81d",null,!1,o["a"],void 0);e["default"]=i.exports},e0ff:function(n,e,t){"use strict";t.d(e,"b",(function(){return o})),t.d(e,"c",(function(){return a})),t.d(e,"a",(function(){}));var o=function(){var n=this.$createElement;this._self._c},a=[]}},[["2a33","common/runtime","common/vendor"]]]);

+ 4 - 0
unpackage/dist/build/mp-weixin/pages/map/index.json

xqd
@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "地图",
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/map/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="container data-v-6d7ba81d"><nav-bar vue-id="011aa5e0-1" title="地图" back="{{true}}" color="white" background="green" class="data-v-6d7ba81d" bind:__l="__l"></nav-bar><button data-event-opts="{{[['tap',[['testQQMap',['$event']]]]]}}" bindtap="__e" class="data-v-6d7ba81d">测试SDK</button></view>

+ 0 - 0
unpackage/dist/build/mp-weixin/pages/map/index.wxss


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/pages/my/index.js


+ 6 - 0
unpackage/dist/build/mp-weixin/pages/my/index.json

xqd
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "我的",
+  "usingComponents": {
+    "u-button": "/uni_modules/uview-ui/components/u-button/u-button"
+  }
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/my/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="container data-v-0b119d25"><nav-bar vue-id="4a180d5e-1" title="我的" back="{{true}}" color="white" background="green" class="data-v-0b119d25" bind:__l="__l"></nav-bar>我的<u-button vue-id="4a180d5e-2" text="测试获取用户信息" type="primary" data-event-opts="{{[['^click',[['testGetUserInfo']]]]}}" bind:click="__e" class="data-v-0b119d25" bind:__l="__l"></u-button><view class="choose-avatar-row data-v-0b119d25"><button class="avatar-wrapper data-v-0b119d25" open-type="chooseAvatar" data-event-opts="{{[['chooseavatar',[['onChooseAvatar',['$event']]]]]}}" bindchooseavatar="__e"><image class="avatar data-v-0b119d25" src="{{avatarUrl}}"></image></button><text class="data-v-0b119d25">点击选择头像</text></view><view class="choose-nickname-row data-v-0b119d25"><text class="data-v-0b119d25">昵称</text><input type="nickname" placeholder="请输入昵称" data-event-opts="{{[['input',[['__set_model',['','nickName','$event',[]]],['inputName',['$event']]]]]}}" value="{{nickName}}" bindinput="__e" class="data-v-0b119d25"/></view><button open-type="getPhoneNumber" data-event-opts="{{[['getphonenumber',[['getphonenumber',['$event']]]]]}}" bindgetphonenumber="__e" class="data-v-0b119d25">获取用户手机号</button></view>

+ 4 - 0
unpackage/dist/build/mp-weixin/pages/my/index.wxss

xqd
@@ -0,0 +1,4 @@
+view.data-v-0b119d25{box-sizing:border-box}.container.data-v-0b119d25{width:100%;height:100%;position:absolute;left:0;bottom:0;padding:0 20px;box-sizing:border-box;display:flex;flex-direction:column;background-color:#fff;border-top-left-radius:10px;border-top-right-radius:10px}.container .title.data-v-0b119d25{width:100%;height:12%;font-size:20px;font-weight:700;padding-top:20px}.container .title text.data-v-0b119d25:nth-child(2){display:block;font-size:14px;font-weight:400;margin-top:5px}.container .choose-avatar-row.data-v-0b119d25,
+.container .choose-nickname-row.data-v-0b119d25{width:100%;height:9%;display:flex;justify-content:flex-start;align-items:center;padding:10px 2px;font-size:14px;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.container .choose-avatar-row .avatar-wrapper.data-v-0b119d25,
+.container .choose-nickname-row .avatar-wrapper.data-v-0b119d25{width:40px;height:40px;margin:0;padding:0;margin-right:10px}.container .choose-avatar-row .avatar-wrapper .avatar.data-v-0b119d25,
+.container .choose-nickname-row .avatar-wrapper .avatar.data-v-0b119d25{width:100%;height:100%}.container .choose-nickname-row.data-v-0b119d25{border-top:none}.container .choose-nickname-row text.data-v-0b119d25{width:45px;margin-right:10px}.container .login-row.data-v-0b119d25{width:100%;height:30%;padding-top:20px;display:flex}.container .login-row button.data-v-0b119d25{font-size:14px;width:30%;height:40px;display:flex;align-items:center;justify-content:center;border-color:transparent;color:#07c160}.container .login-row .inactive.data-v-0b119d25{color:#ccc}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/service/index.js

xqd
@@ -0,0 +1 @@
+(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/service/index"],{"309f":function(e,n,t){"use strict";t.r(n);var u=t("86e7"),c=t.n(u);for(var r in u)["default"].indexOf(r)<0&&function(e){t.d(n,e,(function(){return u[e]}))}(r);n["default"]=c.a},4055:function(e,n,t){"use strict";(function(e,n){var u=t("4ea4");t("1c90");u(t("66fd"));var c=u(t("e2f4"));e.__webpack_require_UNI_MP_PLUGIN__=t,n(c.default)}).call(this,t("bc2e")["default"],t("543d")["createPage"])},"86e7":function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default={data:function(){return{}},methods:{}}},b6eb:function(e,n,t){"use strict";var u=t("e948"),c=t.n(u);c.a},dceb:function(e,n,t){"use strict";t.d(n,"b",(function(){return u})),t.d(n,"c",(function(){return c})),t.d(n,"a",(function(){}));var u=function(){var e=this.$createElement;this._self._c},c=[]},e2f4:function(e,n,t){"use strict";t.r(n);var u=t("dceb"),c=t("309f");for(var r in c)["default"].indexOf(r)<0&&function(e){t.d(n,e,(function(){return c[e]}))}(r);t("b6eb");var a=t("f0c5"),f=Object(a["a"])(c["default"],u["b"],u["c"],!1,null,"90797e16",null,!1,u["a"],void 0);n["default"]=f.exports},e948:function(e,n,t){}},[["4055","common/runtime","common/vendor"]]]);

+ 4 - 0
unpackage/dist/build/mp-weixin/pages/service/index.json

xqd
@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "售后",
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/pages/service/index.wxml

xqd
@@ -0,0 +1 @@
+<view class="container data-v-90797e16"><nav-bar vue-id="d0a39cd2-1" title="售后" back="{{true}}" color="white" background="green" class="data-v-90797e16" bind:__l="__l"></nav-bar>售后</view>

+ 0 - 0
unpackage/dist/build/mp-weixin/pages/service/index.wxss


+ 36 - 0
unpackage/dist/build/mp-weixin/project.config.json

xqd
@@ -0,0 +1,36 @@
+{
+  "description": "项目配置文件。",
+  "packOptions": {
+    "ignore": []
+  },
+  "setting": {
+    "urlCheck": false,
+    "es6": false,
+    "postcss": false,
+    "minified": false,
+    "newFeature": true,
+    "bigPackageSizeSupport": true
+  },
+  "compileType": "miniprogram",
+  "libVersion": "",
+  "appid": "wx98ab2939999e13de",
+  "projectname": "huiben",
+  "condition": {
+    "search": {
+      "current": -1,
+      "list": []
+    },
+    "conversation": {
+      "current": -1,
+      "list": []
+    },
+    "game": {
+      "current": -1,
+      "list": []
+    },
+    "miniprogram": {
+      "current": -1,
+      "list": []
+    }
+  }
+}

+ 7 - 0
unpackage/dist/build/mp-weixin/project.private.config.json

xqd
@@ -0,0 +1,7 @@
+{
+  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+  "projectname": "huibenPro",
+  "setting": {
+    "compileHotReLoad": true
+  }
+}

+ 20 - 0
unpackage/dist/build/mp-weixin/static/customicons.css

xqd
@@ -0,0 +1,20 @@
+@font-face {
+  font-family: "customicons"; /* Project id 2878519 */
+  src:url('/static/customicons.ttf') format('truetype');
+}
+
+.customicons {
+  font-family: "customicons" !important;
+}
+
+.youxi:before {
+  content: "\e60e";
+}
+
+.wenjian:before {
+  content: "\e60f";
+}
+
+.zhuanfa:before {
+  content: "\e610";
+}

BIN
unpackage/dist/build/mp-weixin/static/customicons.ttf


BIN
unpackage/dist/build/mp-weixin/static/other/arrR.png


BIN
unpackage/dist/build/mp-weixin/static/other/edit.png


BIN
unpackage/dist/build/mp-weixin/static/tabbar/index.png


BIN
unpackage/dist/build/mp-weixin/static/tabbar/index_a.png


BIN
unpackage/dist/build/mp-weixin/static/tabbar/my.png


BIN
unpackage/dist/build/mp-weixin/static/tabbar/my_a.png


+ 10 - 0
unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js

xqd
@@ -0,0 +1,10 @@
+(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-icons/components/uni-icons/uni-icons"],{"2dfe":function(n,t,e){"use strict";var i=e("e5f0"),u=e.n(i);u.a},"34b7":function(n,t,e){"use strict";e.r(t);var i=e("6ddf"),u=e("ac74");for(var c in u)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(c);e("2dfe");var o=e("f0c5"),f=Object(o["a"])(u["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);t["default"]=f.exports},"6ddf":function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return u})),e.d(t,"a",(function(){}));var i=function(){var n=this.$createElement;this._self._c},u=[]},ac74:function(n,t,e){"use strict";e.r(t);var i=e("d8a4"),u=e.n(i);for(var c in i)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(c);t["default"]=u.a},d8a4:function(n,t,e){"use strict";var i=e("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=i(e("f8fd")),c={name:"UniIcons",emits:["click"],props:{type:{type:String,default:""},color:{type:String,default:"#333333"},size:{type:[Number,String],default:16},customPrefix:{type:String,default:""}},data:function(){return{icons:u.default.glyphs}},computed:{unicode:function(){var n=this,t=this.icons.find((function(t){return t.font_class===n.type}));return t?unescape("%u".concat(t.unicode)):""},iconSize:function(){return function(n){return"number"===typeof n||/^[0-9]*$/g.test(n)?n+"px":n}(this.size)}},methods:{_onClick:function(){this.$emit("click")}}};t.default=c},e5f0:function(n,t,e){}}]);
+;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
+    'uni_modules/uni-icons/components/uni-icons/uni-icons-create-component',
+    {
+        'uni_modules/uni-icons/components/uni-icons/uni-icons-create-component':(function(module, exports, __webpack_require__){
+            __webpack_require__('543d')['createComponent'](__webpack_require__("34b7"))
+        })
+    },
+    [['uni_modules/uni-icons/components/uni-icons/uni-icons-create-component']]
+]);

+ 4 - 0
unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json

xqd
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml

xqd
@@ -0,0 +1 @@
+<text data-event-opts="{{[['tap',[['_onClick',['$event']]]]]}}" class="{{['uni-icons','uniui-'+type,customPrefix,customPrefix?type:'']}}" style="{{'color:'+(color)+';'+('font-size:'+(iconSize)+';')}}" bindtap="__e"></text>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.js


+ 7 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.json

xqd
@@ -0,0 +1,7 @@
+{
+  "usingComponents": {
+    "u-loading-icon": "/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon",
+    "u-icon": "/uni_modules/uview-ui/components/u-icon/u-icon"
+  },
+  "component": true
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.wxml

xqd
@@ -0,0 +1 @@
+<button class="{{['u-button','u-reset-button','data-v-21c3eb91',bemClass]}}" style="{{$root.s0}}" hover-start-time="{{$root.m0}}" hover-stay-time="{{$root.m1}}" form-type="{{formType}}" open-type="{{openType}}" app-parameter="{{appParameter}}" hover-stop-propagation="{{hoverStopPropagation}}" send-message-title="{{sendMessageTitle}}" send-message-path="{{sendMessagePath}}" lang="{{lang}}" data-name="{{dataName}}" session-from="{{sessionFrom}}" send-message-img="{{sendMessageImg}}" show-message-card="{{showMessageCard}}" hover-class="{{!disabled&&!loading?'u-button--active':''}}" data-event-opts="{{[['getphonenumber',[['getphonenumber',['$event']]]],['getuserinfo',[['getuserinfo',['$event']]]],['error',[['error',['$event']]]],['opensetting',[['opensetting',['$event']]]],['launchapp',[['launchapp',['$event']]]],['tap',[['clickHandler',['$event']]]]]}}" bindgetphonenumber="__e" bindgetuserinfo="__e" binderror="__e" bindopensetting="__e" bindlaunchapp="__e" bindtap="__e"><block wx:if="{{loading}}"><u-loading-icon vue-id="522c48bd-1" mode="{{loadingMode}}" size="{{loadingSize*1.15}}" color="{{loadingColor}}" class="data-v-21c3eb91" bind:__l="__l"></u-loading-icon><text class="u-button__loading-text data-v-21c3eb91" style="{{'font-size:'+(textSize+'px')+';'}}">{{loadingText||text}}</text></block><block wx:else><block wx:if="{{icon}}"><u-icon vue-id="522c48bd-2" name="{{icon}}" color="{{iconColorCom}}" size="{{textSize*1.35}}" customStyle="{{({marginRight:'2px'})}}" class="data-v-21c3eb91" bind:__l="__l"></u-icon></block><block wx:if="{{$slots.default}}"><slot></slot></block><block wx:else><text class="u-button__text data-v-21c3eb91" style="{{'font-size:'+(textSize+'px')+';'}}">{{text}}</text></block></block></button>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-button/u-button.wxss


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.js


+ 4 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.json

xqd
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.wxml

xqd
@@ -0,0 +1 @@
+<view data-event-opts="{{[['tap',[['clickHandler',['$event']]]]]}}" class="{{['u-icon','data-v-53601e10','u-icon--'+labelPos]}}" bindtap="__e"><block wx:if="{{isImg}}"><image class="u-icon__img data-v-53601e10" style="{{$root.s0}}" src="{{name}}" mode="{{imgMode}}"></image></block><block wx:else><text class="{{['u-icon__icon','data-v-53601e10',uClasses]}}" style="{{$root.s1}}" hover-class="{{hoverClass}}">{{icon}}</text></block><block wx:if="{{label!==''}}"><text class="u-icon__label data-v-53601e10" style="{{'color:'+(labelColor)+';'+('font-size:'+($root.g0)+';')+('margin-left:'+(labelPos=='right'?$root.g1:0)+';')+('margin-top:'+(labelPos=='bottom'?$root.g2:0)+';')+('margin-right:'+(labelPos=='left'?$root.g3:0)+';')+('margin-bottom:'+(labelPos=='top'?$root.g4:0)+';')}}">{{label}}</text></block></view>

+ 1 - 0
unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-icon/u-icon.wxss

xqd
@@ -0,0 +1 @@
+view.data-v-53601e10, scroll-view.data-v-53601e10, swiper-item.data-v-53601e10{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}@font-face{font-family:uicon-iconfont;src:url(https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf) format("truetype")}.u-icon.data-v-53601e10{display:flex;align-items:center}.u-icon--left.data-v-53601e10{flex-direction:row-reverse;align-items:center}.u-icon--right.data-v-53601e10{flex-direction:row;align-items:center}.u-icon--top.data-v-53601e10{flex-direction:column-reverse;justify-content:center}.u-icon--bottom.data-v-53601e10{flex-direction:column;justify-content:center}.u-icon__icon.data-v-53601e10{font-family:uicon-iconfont;position:relative;display:flex;flex-direction:row;align-items:center}.u-icon__icon--primary.data-v-53601e10{color:#3c9cff}.u-icon__icon--success.data-v-53601e10{color:#5ac725}.u-icon__icon--error.data-v-53601e10{color:#f56c6c}.u-icon__icon--warning.data-v-53601e10{color:#f9ae3d}.u-icon__icon--info.data-v-53601e10{color:#909399}.u-icon__img.data-v-53601e10{height:auto;will-change:transform}.u-icon__label.data-v-53601e10{line-height:1}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff