瀏覽代碼

编写地址管理页面,新建地址页面

mabaoyi 10 月之前
父節點
當前提交
eb34dc15f0
共有 63 個文件被更改,包括 3056 次插入232 次删除
  1. 50 2
      commont/messages.js
  2. 17 3
      pageC/accountSetup/accountSetup.vue
  3. 182 0
      pageC/addEditAddress/addEditAddress.vue
  4. 157 0
      pageC/addEditAddress/component/selectCity.vue
  5. 152 9
      pageC/addressManagement/addressManagement.vue
  6. 108 0
      pageC/addressManagement/component/address.vue
  7. 189 0
      pageC/internationalAddress/internationalAddress.vue
  8. 72 0
      pageC/orderForm/orderForm.vue
  9. 21 0
      pages.json
  10. 2 0
      pages/mine/component/mallOrderForm.vue
  11. 6 1
      pages/mine/component/mineMoney.vue
  12. 2 0
      pages/mine/component/personalFunction.vue
  13. 2 0
      pages/mine/component/teamFunction.vue
  14. 二進制
      static/mine/327.png
  15. 二進制
      static/mine/328 .png
  16. 二進制
      static/mine/329.png
  17. 二進制
      static/mine/330.png
  18. 二進制
      static/mine/331.png
  19. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/mine.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-badge/u-badge.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-icon/u-icon.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-loading-icon/u-loading-icon.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-navbar/u-navbar.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-safe-bottom/u-safe-bottom.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-status-bar/u-status-bar.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-subsection/u-subsection.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swiper/u-swiper.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabbar-item/u-tabbar-item.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabbar/u-tabbar.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabs/u-tabs.js.map
  39. 4 1
      unpackage/dist/dev/mp-weixin/app.json
  40. 1 1
      unpackage/dist/dev/mp-weixin/common/runtime.js
  41. 1994 118
      unpackage/dist/dev/mp-weixin/common/vendor.js
  42. 4 4
      unpackage/dist/dev/mp-weixin/components/kj-tabbar/kj-tabbar.js
  43. 6 6
      unpackage/dist/dev/mp-weixin/pageD/index.js
  44. 1 1
      unpackage/dist/dev/mp-weixin/pages/cart/cart.js
  45. 1 1
      unpackage/dist/dev/mp-weixin/pages/express/express.js
  46. 7 7
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  47. 2 2
      unpackage/dist/dev/mp-weixin/pages/login/login.js
  48. 5 5
      unpackage/dist/dev/mp-weixin/pages/mine/mine.js
  49. 1 1
      unpackage/dist/dev/mp-weixin/pages/shopping/shopping.js
  50. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-badge/u-badge.js
  51. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js
  52. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js
  53. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-icon/u-icon.js
  54. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-loading-icon/u-loading-icon.js
  55. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-navbar/u-navbar.js
  56. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-safe-bottom/u-safe-bottom.js
  57. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-status-bar/u-status-bar.js
  58. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-subsection/u-subsection.js
  59. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js
  60. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-swiper/u-swiper.js
  61. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabbar-item/u-tabbar-item.js
  62. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabbar/u-tabbar.js
  63. 5 5
      unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabs/u-tabs.js

+ 50 - 2
commont/messages.js

@@ -18,7 +18,31 @@ export default {
 			headerImg:"头像",
 			nickname:"昵称",
 			prompt:"限4-24个字符(1汉字=2字符,1英文活数字=1字符)",
-			editNextname:'编辑昵称'
+			editNextname:'编辑昵称',
+			inland:"中国内地",
+			international:"国际",
+			initial:"默认地址",
+			edit:"编辑",
+			delete:"删除",
+			wx:"微信导入",
+			add:"新增地址",
+			contacts:"联系人信息",
+			wxAddress:"微信地址薄",
+			newAddress:"新建地址",
+			name:"姓名",
+			phone:"手机号",
+			city:"省市区",
+			detailed:"详细地址",
+			goods:"请填写收货人信息",
+			pleasePhoneNumber:"请填写收货人手机号",
+			township:"省市区县、乡镇等",
+			sect:"请输入详细地址精确到门牌号",
+			company:"公司名称(选填)",
+			preserve:"保存",
+			empty:"清空",
+			country:"国家",
+			postalCode:"邮编",
+			email:"电子邮箱",
 		}
 	},
 	"en-US": {
@@ -40,7 +64,31 @@ export default {
 			headerImg:"Avatar",
 			nickname:"Nickname",
 			prompt:"Limited to 4-24 characters (1 Chinese character=2 characters, 1 English live number=1 character)",
-			editNextname:'Edit Nickname'
+			editNextname:'Edit Nickname',
+			inland:"Mainland China",
+			international:"International",
+			initial:"Default Address",
+			edit:'Edit',
+			delete:"Delete",
+			wx:"WeChat import",
+			add:"Add Address",
+			contacts:"Contact Information ",
+			wxAddress:"WeChat Address Book",
+			newAddress:"New Address",
+			name:"Name",
+			phone:"Mobile phone number",
+			city:"Provinces, cities, and districts",
+			detailed:"Detailed address",
+			goods:"Please fill in the recipient information",
+			pleasePhoneNumber:"Please fill in the recipient's mobile phone number",
+			township:"Provinces, cities, counties, townships, etc",
+			sect:"Please enter a detailed address accurate to the house number",
+			company:"Company name (optional)",
+			preserve:"Preserve",
+			empty:"Empty",
+			country:"Country",
+			postalCode:"Postal code",
+			email:"E-mail",
 		}
 	}
 }

+ 17 - 3
pageC/accountSetup/accountSetup.vue

@@ -11,18 +11,24 @@
 				</view>
 				<image class="right-icon" src="../../static/mine/325.png" mode=""></image>
 			</view>
-			<view class="address">
+			<view class="address" @click="toNextPage('/pageC/addressManagement/addressManagement')">
 				<view class="address-manage">
 					{{i18n.address}}
 				</view>
-				<AllRight :name="i18n.addAndEdit"></AllRight>
+				<view class="text-right">
+					<text>{{i18n.addAndEdit}}</text>
+				<image src="../../static/mine/325.png" class="right-icon" mode=""></image>
+				</view>
 			</view>
 		</view>
 
 		<view class="set-center">
 			<view class="security">
 				<text>{{i18n.account}}</text>
-				<AllRight :name="i18n.password"></AllRight>
+				<view class="text-right">
+					<text>{{i18n.password}}</text>
+				<image src="../../static/mine/325.png" class="right-icon" mode=""></image>
+				</view>
 			</view>
 			<view class="switch" @click="toNextPage('/pageC/switchLanguage/switchLanguage')">
 				<text>{{i18n.switch}}</text>
@@ -192,5 +198,13 @@
 			width: 32rpx;
 			height: 32rpx;
 		}
+		.text-right{
+			display: flex;
+			align-items: center;
+			text{
+				font-size: 30rpx;
+				color: rgba(34, 34, 34, .5);
+			}
+		}
 	}
 </style>

+ 182 - 0
pageC/addEditAddress/addEditAddress.vue

@@ -0,0 +1,182 @@
+<template>
+	<view class="page">
+		<view class="content">
+			<view class="title">
+				<text class="title-left">{{ i18n.contacts }}</text>
+				<view class="title-right">
+					<image src="../../static/mine/331.png" class="title-icon" mode=""></image>
+					<text>{{ i18n.wxAddress }}</text>
+				</view>
+			</view>
+			<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
+			<u--form labelPosition="left" :model="model1" ref="uForm">
+				<u-form-item labelWidth="150rpx" :label="i18n.name"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.goods" border="none"></u--input>
+				</u-form-item>
+
+				<u-form-item labelWidth="150rpx" :label="i18n.phone"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.pleasePhoneNumber" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth="150rpx" :label="i18n.city"  borderBottom
+					@click="show = true" ref="item1">
+					<u--input v-model="model1.userInfo.sex" disabled disabledColor="#ffffff" :placeholder="i18n.township"
+						border="none"></u--input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+
+				<u-form-item labelWidth="150rpx" :label="i18n.detailed"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.sect" border="none"></u--input>
+				</u-form-item>
+				<view class="company">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.company" border="none"></u--input>
+				</view>
+				<view style="display: flex;justify-content: space-between;align-items: center;">
+					<view class="item-left">
+						<image src="../../static/mine/327.png" class="address-icon" mode=""></image>
+						<text>{{ i18n.initial }}</text>
+					</view>
+					<text style="font-size: 24rpx; color: #333;">{{i18n.empty}}</text>
+				</view>
+			</u--form>
+
+		</view>
+		<SelectCity :show="show" @close="close"/>
+		<view class="footer">
+			<button class="save">{{i18n.preserve}}</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import SelectCity from './component/selectCity.vue';
+	export default {
+		components:{
+			SelectCity
+		},
+		computed: {
+			i18n() {
+				return this.$t('index')
+			}
+		},
+		data() {
+			return {
+				show: false,
+				model1: {
+					userInfo: {
+						name: '',
+						sex: '',
+					},
+				},
+				rules: {
+					'userInfo.name': {
+						type: 'string',
+						required: true,
+						message: '请填写姓名',
+						trigger: ['blur', 'change']
+					},
+					'userInfo.sex': {
+						type: 'string',
+						max: 1,
+						required: true,
+						message: '请选择男或女',
+						trigger: ['blur', 'change']
+					},
+				},
+			};
+		},
+		methods: {
+			sexSelect(e) {
+				this.model1.userInfo.sex = e.name
+				this.$refs.uForm.validateField('userInfo.sex')
+			},
+			close(){
+				this.show = false
+			}
+		},
+		mounted() {
+				uni.setNavigationBarTitle({
+					title:this.i18n.newAddress
+				})
+		},
+		onReady() {
+			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
+			this.$refs.uForm.setRules(this.rules)
+		},
+	};
+</script>
+
+<style lang="scss" scoped>
+	.page {
+		padding: 20rpx 24rpx;
+
+		.content {
+			background-color: #fff;
+			border-radius: 16rpx;
+			padding: 0 24rpx;
+
+			.title {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				height: 100rpx;
+				border-bottom: 2rpx solid rgba(151, 151, 151, .1);
+
+				.title-left {
+					font-size: 32rpx;
+					color: #333;
+					font-weight: 600;
+				}
+
+				.title-icon {
+					width: 26rpx;
+					height: 26rpx;
+					margin-right: 10rpx;
+				}
+
+				.title-right {
+					display: flex;
+					align-items: center;
+					font-size: 24rpx;
+					color: rgba(51, 51, 51, .6);
+				}
+			}
+
+			.company {
+				height: 102rpx;
+				display: flex;
+				align-items: center;
+				border-bottom: 2rpx solid rgba(151, 151, 151, .1);
+			}
+		}
+
+		.item-left {
+			font-size: 24rpx;
+			color: #333;
+			display: flex;
+			align-items: center;
+			height: 86rpx;
+
+			.address-icon {
+				width: 26rpx;
+				height: 26rpx;
+				margin-right: 10rpx;
+			}
+		}
+		.footer{
+			background-color: #fff;
+			position: fixed;
+			bottom: 0;
+			height: 146rpx;
+			width: 750rpx;
+			left: 0;
+			padding-top: 20rpx;
+			.save{
+				width: 702rpx;
+				margin: 0 auto;
+				background-color: #f83224;
+				color: #fff;
+				border-radius: 40rpx;
+			}
+		}
+	}
+</style>

+ 157 - 0
pageC/addEditAddress/component/selectCity.vue

@@ -0,0 +1,157 @@
+<template>
+	<view class="">
+		<u-popup :show="show" mode="bottom" @close="$emit('close')" :round="10" :closeable="true">
+			<view style="height: 100rpx;line-height: 100rpx;
+			text-align: center;font-size: 36rpx;color: #222;">
+				选择省市区
+			</view>
+			<view>
+				<input type="text" class="inp" />
+				<view class="title">
+					热门城市
+				</view>
+				<view class="city-list">
+					<view class="city" v-for="(item,index) in cityList" :key="index">
+						{{item}}
+					</view>
+				</view>
+				<picker-view class="picker-view" :indicator-style="indicatorStyle" :value="value" @change="bindChange"
+					:mask-top-style="maskTopStyle" :mask-bottom-style="maskBottomStyle">
+					<picker-view-column class="picker-view-column">
+						<view class="item" v-for="(item,index) in years" :key="index"><text
+								class="text">{{item}}年</text></view>
+					</picker-view-column>
+					<picker-view-column class="picker-view-column">
+						<view class="item" v-for="(item,index) in months" :key="index"><text
+								class="text">{{item}}月</text>
+						</view>
+					</picker-view-column>
+					<picker-view-column class="picker-view-column">
+						<view class="item" v-for="(item,index) in days" :key="index"><text class="text">{{item}}日</text>
+						</view>
+					</picker-view-column>
+				</picker-view>
+				<button @click="$emit('close')" class="confirm">确定</button>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			show: {
+				typeof: Boolean,
+				default: false
+			}
+		},
+		data() {
+			const date = new Date()
+			const years = []
+			const _year = date.getFullYear()
+			const _months = []
+			const _month = date.getMonth() + 1
+			const _days = []
+			const day1 = date.getDate()
+			for (let i = 2000; i <= _year; i++) {
+				years.push(i)
+			}
+			for (let i = 1; i <= 12; i++) {
+				_months.push(i)
+			}
+			for (let i = 1; i <= 31; i++) {
+				_days.push(i)
+			}
+			return {
+				cityList: ['北京', '上海', '深圳', '广州', '天津', '青岛', '长沙', '成都'],
+				title: 'picker-view',
+				years: years,
+				year: _year,
+				months: _months,
+				month: _month,
+				days: _days,
+				day: day1,
+				value: [_year - 2000, _month - 1, day1 - 1],
+				result: [],
+				indicatorStyle: 'height: 50px;',
+				maskTopStyle: '',
+				maskBottomStyle: ''
+			}
+		},
+		methods: {
+			bindChange(e) {
+				const val = e.detail.value
+				this.result = val
+				this.year = this.years[val[0]]
+				this.month = this.months[val[1]]
+				this.day = this.days[val[2]]
+			},
+			setValue() {
+				this.value = [0, 0, 0]
+			},
+			setValue1() {
+				this.value = [10, 10, 10]
+			},
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.title {
+		margin: 32rpx 26rpx;
+	}
+
+	.inp {
+		background-color: #f4f4f4;
+		border-radius: 36rpx;
+		height: 72rpx;
+		width: 694rpx;
+		margin: 30rpx auto 0;
+		padding-left: 20rpx;
+	}
+
+	.city-list {
+		display: flex;
+		justify-content: space-around;
+		flex-wrap: wrap;
+
+		.city {
+			width: 156rpx;
+			height: 68rpx;
+			text-align: center;
+			line-height: 68rpx;
+			background-color: #f4f4f4;
+			border-radius: 36rpx;
+			margin-bottom: 20rpx;
+			color: #222;
+			font-size: 28rpx;
+		}
+	}
+
+	.confirm {
+		background-color: #f83224;
+		border-radius: 40rpx;
+		color: #fff;
+		width: 702rpx;
+		margin: 0 auto;
+	}
+
+	.picker-view {
+		width: 100%;
+		height: 180px;
+		margin-top: 10px;
+	}
+
+	.item {
+		height: 50px;
+	}
+
+	.text {
+		line-height: 50px;
+		text-align: center;
+	}
+
+	.picker-view-column {
+		text-align: center;
+	}
+</style>

+ 152 - 9
pageC/addressManagement/addressManagement.vue

@@ -1,32 +1,175 @@
 <template>
 	<view>
-		
+		<view class="top-tab">
+			<view :class="{select:manage == 1}" @click="switchTab(1)">
+				{{i18n.inland}}
+			</view>
+			<view :class="{select:manage == 2}" @click="switchTab(2)">
+				{{i18n.international}}
+			</view>
+		</view>
+		<view class="content" v-if="addressList.length !=0">
+			<addressVue @deleteAddress="deleteAddress" @setDefault='setDefault' v-for="item in addressList"
+				:itemInfo="item" :key="item.id" />
+		</view>
+		<view class="" v-else>
+			空空如也
+		</view>
+		<view class="footer" v-if="manage == 1">
+			<button class="wx">{{i18n.wx}}</button>
+			<button class="add" @click="toAddRess('/pageC/addEditAddress/addEditAddress')">{{i18n.add}}</button>
+		</view>
+		<view class="footer" v-else>
+			<button class="add-international"
+				@click="toAddRess('/pageC/internationalAddress/internationalAddress')">{{i18n.add}}</button>
+		</view>
 	</view>
 </template>
 
 <script>
+	import addressVue from './component/address.vue'
 	export default {
+		components: {
+			addressVue
+		},
 		data() {
 			return {
-				
+				manage: 1,
+				addressList: [{
+						name: "张三",
+						address: "临沂市兰山区长沙路与蜀河路交叉口东430米路南奥克斯·创智1号B1栋",
+						id: "1",
+						phone: "188****0000",
+						isDefault: true
+					},
+					{
+						name: "张三",
+						address: "临沂市兰山区长沙路与蜀河路交叉口东430米路南奥克斯·创智1号B1栋",
+						id: "2",
+						phone: "188****0000",
+						isDefault: false
+					},
+				]
 			}
 		},
-		computed:{
-			i18n(){
+		computed: {
+			i18n() {
 				return this.$t('index')
 			}
 		},
 		methods: {
-			
+			switchTab(num) {
+				this.manage = num
+			},
+			//设置默认地址
+			setDefault(value) {
+				this.addressList.forEach(item => {
+					//先将所有的地址取消默认
+					item.isDefault = false
+					//挑选出点击的地址,默认置反
+					if (item.id == value.id) {
+						item.isDefault = !item.isDefault
+					}
+				})
+			},
+			//删除地址
+			deleteAddress(value) {
+				this.addressList.forEach((item, index) => {
+					//挑选出点击的地址,删除地址
+					if (item.id == value.id) {
+						this.addressList.splice(index, 1)
+					}
+				})
+			},
+			toAddRess(url) {
+				uni.navigateTo({
+					url
+				})
+			}
 		},
-		mounted(){
+		mounted() {
 			uni.setNavigationBarTitle({
-				title:this.i18n.address
+				title: this.i18n.address
 			})
 		},
 	}
 </script>
 
-<style>
+<style scoped lang="scss">
+	.top-tab {
+		display: flex;
+		font-size: 32rpx;
+		color: rgba(34, 34, 34, .8);
+		justify-content: space-around;
+		background-color: #fff;
+		height: 80rpx;
+		align-items: center;
 
-</style>
+		.select {
+			position: relative;
+			font-weight: 600;
+		}
+
+		.select::before {
+			content: '';
+			display: block;
+			width: 50%;
+			height: 4rpx;
+			background-color: #f83224;
+			position: absolute;
+			bottom: -20rpx;
+			left: 50%;
+			transform: translate(-50%, -50%);
+		}
+	}
+
+	.content {
+		padding: 20rpx 24rpx;
+		padding-bottom: 200rpx;
+
+	}
+
+	.footer {
+		position: fixed;
+		bottom: 0;
+		background-color: #fff;
+		display: flex;
+		justify-content: space-around;
+		width: 750rpx;
+		padding: 20rpx 0 66rpx;
+
+		.wx {
+			width: 338rpx;
+			background-color: #fff;
+			border-radius: 40rpx;
+			height: 80rpx;
+			font-size: 32rpx;
+			color: #222;
+			padding: 0;
+			margin: 0;
+			border: 2rpx solid #979797;
+		}
+
+		.add {
+			width: 338rpx;
+			background-color: #f83224;
+			border-radius: 40rpx;
+			height: 80rpx;
+			font-size: 32rpx;
+			color: #fff;
+			padding: 0;
+			margin: 0;
+
+		}
+
+		.add-international {
+			width: 702rpx;
+			background-color: #f83224;
+			border-radius: 40rpx;
+			height: 80rpx;
+			font-size: 32rpx;
+			color: #fff;
+			margin: 0 auto;
+		}
+	}
+</style>

+ 108 - 0
pageC/addressManagement/component/address.vue

@@ -0,0 +1,108 @@
+<template>
+	<view class="item-list">
+		<view class="item-top">
+			<view class="name">
+				{{itemInfo.name}}
+			</view>
+			<text class="phone">
+				{{itemInfo.phone}}
+			</text>
+		</view>
+		<view class="item-content">
+			{{itemInfo.address}}
+		</view>
+		<view class="item-bottom">
+			<view class="item-left" @click="$emit('setDefault',itemInfo)">
+				<image v-if="!itemInfo.isDefault" src="../../../static/mine/327.png" class="address-icon" mode=""></image> 
+				<image v-else src="../../../static/mine/330.png" class="address-icon" mode=""></image>
+				<text >{{i18n.initial}}</text>
+			</view>
+			<view class="item-right">
+				<view class="item-left" style="margin-right: 24rpx;">
+					<image src="../../../static/mine/328 .png" class="address-icon" mode=""></image>
+					<text>{{i18n.edit}}</text>
+				</view>
+				<view class="item-left" @click="$emit('deleteAddress',itemInfo)">
+					<image src="../../../static/mine/329.png" class="address-icon" mode=""></image>
+					<text>{{i18n.delete}}</text>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{}
+		},
+		props:{
+			itemInfo:{
+				type:Object,
+				default:{}
+			}
+		},
+		computed:{
+			i18n(){
+				return this.$t("index")
+			}
+		},
+		methods:{
+			
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.item-list{
+		background-color: #fff;
+		border-radius: 16rpx;
+		padding: 28rpx 20rpx 0;
+		margin-bottom: 20rpx;
+		.item-top{
+			display: flex;
+			.name{
+				margin-right: 16rpx;
+				font-size: 30rpx;
+				color: #222;
+				font-weight: 600;
+			}
+			.phone{
+				opacity: 0.8;
+				font-size: 26rpx;
+				color: #222;
+				line-height: 50rpx;
+			}
+		}
+		.item-content{
+			margin-top: 16rpx;
+			font-size: 24rpx;
+			color: #222;
+			opacity: .7;
+		}
+		.item-bottom{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 82rpx;
+			border-top: 2rpx solid rgba(151, 151, 151, 0.2);
+			.item-right{
+				display: flex;
+				align-items: center;
+			}
+			.item-left{
+				font-size: 24rpx;
+				color: #222;
+				opacity: .7;
+				display: flex;
+				align-items: center;
+			}
+		}
+		.address-icon{
+			width: 26rpx;
+			height: 26rpx;
+			margin-right: 10rpx;
+		}
+	}
+	
+</style>

+ 189 - 0
pageC/internationalAddress/internationalAddress.vue

@@ -0,0 +1,189 @@
+<template>
+	<view class="page">
+		<view class="content">
+			<view class="title">
+				<text class="title-left">{{ i18n.contacts }}</text>
+			</view>
+			<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
+			<u--form labelPosition="left" :model="model1" ref="uForm">
+				<u-form-item labelWidth="150rpx" :label="i18n.country"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.goods" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth="150rpx" :label="i18n.name"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.goods" border="none"></u--input>
+				</u-form-item>
+
+				<u-form-item labelWidth="150rpx" :label="i18n.phone"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.pleasePhoneNumber" border="none"></u--input>
+				</u-form-item>
+				
+					<u-form-item labelWidth="150rpx" :label="i18n.postalCode"  borderBottom ref="item1">
+						<u--input v-model="model1.userInfo.name" :placeholder="i18n.goods" border="none"></u--input>
+					</u-form-item>
+				<u-form-item labelWidth="150rpx" :label="i18n.city"  borderBottom
+					@click="show = true" ref="item1">
+					<u--input v-model="model1.userInfo.sex" disabled disabledColor="#ffffff" :placeholder="i18n.township"
+						border="none"></u--input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+
+				<u-form-item labelWidth="150rpx" :label="i18n.detailed"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.sect" border="none"></u--input>
+				</u-form-item>
+				
+				<u-form-item labelWidth="150rpx" :label="i18n.detailed"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.company" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth="150rpx" :label="i18n.email"  borderBottom ref="item1">
+					<u--input v-model="model1.userInfo.name" :placeholder="i18n.sect" border="none"></u--input>
+				</u-form-item>
+				<view style="display: flex;justify-content: space-between;align-items: center;">
+					<view class="item-left">
+						<image src="../../static/mine/330.png" class="address-icon" mode=""></image>
+						<text>{{ i18n.initial }}</text>
+					</view>
+					<text style="font-size: 24rpx; color: #333;">{{i18n.empty}}</text>
+				</view>
+			</u--form>
+
+		</view>
+		<SelectCity :show="show" @close="close"/>
+		<view class="footer">
+			<button class="save">{{i18n.preserve}}</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import SelectCity from '../addEditAddress/component/selectCity.vue';
+	export default {
+		components:{
+			SelectCity
+		},
+		computed: {
+			i18n() {
+				return this.$t('index')
+			}
+		},
+		data() {
+			return {
+				show: false,
+				model1: {
+					userInfo: {
+						name: '',
+						sex: '',
+					},
+				},
+				rules: {
+					'userInfo.name': {
+						type: 'string',
+						required: true,
+						message: '请填写姓名',
+						trigger: ['blur', 'change']
+					},
+					'userInfo.sex': {
+						type: 'string',
+						max: 1,
+						required: true,
+						message: '请选择男或女',
+						trigger: ['blur', 'change']
+					},
+				},
+			};
+		},
+		methods: {
+			sexSelect(e) {
+				this.model1.userInfo.sex = e.name
+				this.$refs.uForm.validateField('userInfo.sex')
+			},
+			close(){
+				this.show = false
+			}
+		},
+		mounted() {
+				uni.setNavigationBarTitle({
+					title:this.i18n.newAddress
+				})
+		},
+		onReady() {
+			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
+			this.$refs.uForm.setRules(this.rules)
+		},
+	};
+</script>
+
+<style lang="scss" scoped>
+	.page {
+		padding: 20rpx 24rpx;
+
+		.content {
+			background-color: #fff;
+			border-radius: 16rpx;
+			padding: 0 24rpx;
+
+			.title {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				height: 100rpx;
+				border-bottom: 2rpx solid rgba(151, 151, 151, .1);
+
+				.title-left {
+					font-size: 32rpx;
+					color: #333;
+					font-weight: 600;
+				}
+
+				.title-icon {
+					width: 26rpx;
+					height: 26rpx;
+					margin-right: 10rpx;
+				}
+
+				.title-right {
+					display: flex;
+					align-items: center;
+					font-size: 24rpx;
+					color: rgba(51, 51, 51, .6);
+				}
+			}
+
+			.company {
+				height: 102rpx;
+				display: flex;
+				align-items: center;
+				border-bottom: 2rpx solid rgba(151, 151, 151, .1);
+			}
+		}
+
+		.item-left {
+			font-size: 24rpx;
+			color: #333;
+			display: flex;
+			align-items: center;
+			height: 86rpx;
+
+			.address-icon {
+				width: 26rpx;
+				height: 26rpx;
+				margin-right: 10rpx;
+			}
+		}
+		.footer{
+			background-color: #fff;
+			position: fixed;
+			bottom: 0;
+			height: 146rpx;
+			width: 750rpx;
+			left: 0;
+			padding-top: 20rpx;
+			.save{
+				width: 702rpx;
+				margin: 0 auto;
+				background-color: #f83224;
+				color: #fff;
+				border-radius: 40rpx;
+			}
+		}
+	}
+</style>

+ 72 - 0
pageC/orderForm/orderForm.vue

@@ -0,0 +1,72 @@
+<template>
+	<view>
+		<view class="uni-title uni-common-pl">地区选择器</view>
+		<view class="uni-list">
+			<view class="uni-list-cell">
+				<view class="uni-list-cell-left">
+					当前选择
+				</view>
+				<view class="uni-list-cell-db">
+					<picker @change="bindPickerChange" :value="index" :range="array">
+						<view class="uni-input">{{array[index]}}</view>
+					</picker>
+				</view>
+			</view>
+		</view>
+</template>
+
+<script>
+export default {
+    data() {
+        const currentDate = this.getDate({
+            format: true
+        })
+        return {
+            title: 'picker',
+            array: ['中国', '美国', '巴西', '日本'],
+            index: 0,
+            date: currentDate,
+            time: '12:01'
+        }
+    },
+    computed: {
+        startDate() {
+            return this.getDate('start');
+        },
+        endDate() {
+            return this.getDate('end');
+        }
+    },
+    methods: {
+        bindPickerChange: function(e) {
+            console.log('picker发送选择改变,携带值为', e.detail.value)
+            this.index = e.detail.value
+        },
+        bindDateChange: function(e) {
+            this.date = e.detail.value
+        },
+        bindTimeChange: function(e) {
+            this.time = e.detail.value
+        },
+        getDate(type) {
+            const date = new Date();
+            let year = date.getFullYear();
+            let month = date.getMonth() + 1;
+            let day = date.getDate();
+
+            if (type === 'start') {
+                year = year - 60;
+            } else if (type === 'end') {
+                year = year + 2;
+            }
+            month = month > 9 ? month : '0' + month;
+            day = day > 9 ? day : '0' + day;
+            return `${year}-${month}-${day}`;
+        }
+    }
+}
+</script>
+
+<style lang="scss">
+
+</style>

+ 21 - 0
pages.json

@@ -223,6 +223,27 @@
 					{
 						"navigationBarTitleText" : ""
 					}
+				},
+				{
+					"path" : "addEditAddress/addEditAddress",
+					"style" : 
+					{
+						"navigationBarTitleText" : ""
+					}
+				},
+				{
+					"path" : "orderForm/orderForm",
+					"style" : 
+					{
+						"navigationBarTitleText" : ""
+					}
+				},
+				{
+					"path" : "internationalAddress/internationalAddress",
+					"style" : 
+					{
+						"navigationBarTitleText" : ""
+					}
 				}
 			]
 		}, {

+ 2 - 0
pages/mine/component/mallOrderForm.vue

@@ -71,6 +71,8 @@
 				display: flex;
 				flex-wrap: wrap;
 				justify-content: center;
+				flex-direction: column;
+				align-items: center;
 			}
 			.form-icon{
 				width: 24px;

+ 6 - 1
pages/mine/component/mineMoney.vue

@@ -17,7 +17,7 @@
 				<view class="num">225</view>
 				<view class="characters">我的关注</view>
 			</view>
-			<view class="basis">
+			<view class="basis" @click="aaa">
 				<view class="num">13</view>
 				<view class="characters">我的包裹</view>
 			</view>
@@ -52,6 +52,11 @@
 				uni.navigateTo({
 					url:'/pageC/mineFollow/mineFollow'
 				})
+			},
+			aaa(){
+				uni.navigateTo({
+					url:"/pageC/orderForm/orderForm"
+				})
 			}
 		},
 		created() {

+ 2 - 0
pages/mine/component/personalFunction.vue

@@ -63,6 +63,8 @@
 				flex-wrap: wrap;
 				padding: 0 10px;
 				justify-content: center;
+				flex-direction: column;
+				align-items: center;
 			}
 			.form-icon{
 				width: 24px;

+ 2 - 0
pages/mine/component/teamFunction.vue

@@ -83,6 +83,8 @@
 				flex-wrap: wrap;
 				padding: 0 10px;
 				justify-content: center;
+				flex-direction: column;
+				align-items: center;
 			}
 			.form-icon{
 				width: 24px;

二進制
static/mine/327.png


二進制
static/mine/328 .png


二進制
static/mine/329.png


二進制
static/mine/330.png


二進制
static/mine/331.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/mine.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-badge/u-badge.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-icon/u-icon.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-loading-icon/u-loading-icon.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-navbar/u-navbar.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-safe-bottom/u-safe-bottom.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-status-bar/u-status-bar.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-subsection/u-subsection.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-swiper/u-swiper.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabbar-item/u-tabbar-item.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabbar/u-tabbar.js.map


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uview-ui/components/u-tabs/u-tabs.js.map


+ 4 - 1
unpackage/dist/dev/mp-weixin/app.json

@@ -42,7 +42,10 @@
         "switchLanguage/switchLanguage",
         "personalInformation/personalInformation",
         "editName/editName",
-        "addressManagement/addressManagement"
+        "addressManagement/addressManagement",
+        "addEditAddress/addEditAddress",
+        "orderForm/orderForm",
+        "internationalAddress/internationalAddress"
       ]
     },
     {

File diff suppressed because it is too large
+ 1 - 1
unpackage/dist/dev/mp-weixin/common/runtime.js


+ 1994 - 118
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -21576,7 +21576,31 @@ var _default = {
       headerImg: "头像",
       nickname: "昵称",
       prompt: "限4-24个字符(1汉字=2字符,1英文活数字=1字符)",
-      editNextname: '编辑昵称'
+      editNextname: '编辑昵称',
+      inland: "中国内地",
+      international: "国际",
+      initial: "默认地址",
+      edit: "编辑",
+      delete: "删除",
+      wx: "微信导入",
+      add: "新增地址",
+      contacts: "联系人信息",
+      wxAddress: "微信地址薄",
+      newAddress: "新建地址",
+      name: "姓名",
+      phone: "手机号",
+      city: "省市区",
+      detailed: "详细地址",
+      goods: "请填写收货人信息",
+      pleasePhoneNumber: "请填写收货人手机号",
+      township: "省市区县、乡镇等",
+      sect: "请输入详细地址精确到门牌号",
+      company: "公司名称(选填)",
+      preserve: "保存",
+      empty: "清空",
+      country: "国家",
+      postalCode: "邮编",
+      email: "电子邮箱"
     }
   },
   "en-US": {
@@ -21598,7 +21622,31 @@ var _default = {
       headerImg: "Avatar",
       nickname: "Nickname",
       prompt: "Limited to 4-24 characters (1 Chinese character=2 characters, 1 English live number=1 character)",
-      editNextname: 'Edit Nickname'
+      editNextname: 'Edit Nickname',
+      inland: "Mainland China",
+      international: "International",
+      initial: "Default Address",
+      edit: 'Edit',
+      delete: "Delete",
+      wx: "WeChat import",
+      add: "Add Address",
+      contacts: "Contact Information ",
+      wxAddress: "WeChat Address Book",
+      newAddress: "New Address",
+      name: "Name",
+      phone: "Mobile phone number",
+      city: "Provinces, cities, and districts",
+      detailed: "Detailed address",
+      goods: "Please fill in the recipient information",
+      pleasePhoneNumber: "Please fill in the recipient's mobile phone number",
+      township: "Provinces, cities, counties, townships, etc",
+      sect: "Please enter a detailed address accurate to the house number",
+      company: "Company name (optional)",
+      preserve: "Preserve",
+      empty: "Empty",
+      country: "Country",
+      postalCode: "Postal code",
+      email: "E-mail"
     }
   }
 };
@@ -21824,7 +21872,9 @@ exports.default = _default;
 /* 377 */,
 /* 378 */,
 /* 379 */,
-/* 380 */
+/* 380 */,
+/* 381 */,
+/* 382 */
 /*!**************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-navbar/props.js ***!
   \**************************************************************************/
@@ -21926,14 +21976,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 381 */,
-/* 382 */,
 /* 383 */,
 /* 384 */,
 /* 385 */,
 /* 386 */,
 /* 387 */,
-/* 388 */
+/* 388 */,
+/* 389 */,
+/* 390 */
 /*!******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-subsection/props.js ***!
   \******************************************************************************/
@@ -22000,14 +22050,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 389 */,
-/* 390 */,
 /* 391 */,
 /* 392 */,
 /* 393 */,
 /* 394 */,
 /* 395 */,
-/* 396 */
+/* 396 */,
+/* 397 */,
+/* 398 */
 /*!************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-icon/icons.js ***!
   \************************************************************************/
@@ -22238,7 +22288,7 @@ var _default = {
 exports.default = _default;
 
 /***/ }),
-/* 397 */
+/* 399 */
 /*!************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-icon/props.js ***!
   \************************************************************************/
@@ -22345,14 +22395,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 398 */,
-/* 399 */,
 /* 400 */,
 /* 401 */,
 /* 402 */,
 /* 403 */,
 /* 404 */,
-/* 405 */
+/* 405 */,
+/* 406 */,
+/* 407 */
 /*!************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-tabs/props.js ***!
   \************************************************************************/
@@ -22434,14 +22484,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 406 */,
-/* 407 */,
 /* 408 */,
 /* 409 */,
 /* 410 */,
 /* 411 */,
 /* 412 */,
-/* 413 */
+/* 413 */,
+/* 414 */,
+/* 415 */
 /*!**************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-swiper/props.js ***!
   \**************************************************************************/
@@ -22584,14 +22634,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 414 */,
-/* 415 */,
 /* 416 */,
 /* 417 */,
 /* 418 */,
 /* 419 */,
 /* 420 */,
-/* 421 */
+/* 421 */,
+/* 422 */,
+/* 423 */
 /*!*************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-popup/props.js ***!
   \*************************************************************************/
@@ -22688,14 +22738,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 422 */,
-/* 423 */,
 /* 424 */,
 /* 425 */,
 /* 426 */,
 /* 427 */,
 /* 428 */,
-/* 429 */
+/* 429 */,
+/* 430 */,
+/* 431 */
 /*!**************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js ***!
   \**************************************************************************************/
@@ -23951,8 +24001,6 @@ module.exports = index_cjs;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 3)))
 
 /***/ }),
-/* 430 */,
-/* 431 */,
 /* 432 */,
 /* 433 */,
 /* 434 */,
@@ -23984,7 +24032,9 @@ module.exports = index_cjs;
 /* 460 */,
 /* 461 */,
 /* 462 */,
-/* 463 */
+/* 463 */,
+/* 464 */,
+/* 465 */
 /*!**********************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-checkbox-group/props.js ***!
   \**********************************************************************************/
@@ -24081,14 +24131,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 464 */,
-/* 465 */,
 /* 466 */,
 /* 467 */,
 /* 468 */,
 /* 469 */,
 /* 470 */,
-/* 471 */
+/* 471 */,
+/* 472 */,
+/* 473 */
 /*!****************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-checkbox/props.js ***!
   \****************************************************************************/
@@ -24175,14 +24225,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 472 */,
-/* 473 */,
 /* 474 */,
 /* 475 */,
 /* 476 */,
 /* 477 */,
 /* 478 */,
-/* 479 */
+/* 479 */,
+/* 480 */,
+/* 481 */
 /*!******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-number-box/props.js ***!
   \******************************************************************************/
@@ -24309,14 +24359,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 480 */,
-/* 481 */,
 /* 482 */,
 /* 483 */,
 /* 484 */,
 /* 485 */,
 /* 486 */,
-/* 487 */
+/* 487 */,
+/* 488 */,
+/* 489 */
 /*!**************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-picker/props.js ***!
   \**************************************************************************/
@@ -24413,8 +24463,6 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 488 */,
-/* 489 */,
 /* 490 */,
 /* 491 */,
 /* 492 */,
@@ -24434,7 +24482,9 @@ exports.default = _default;
 /* 506 */,
 /* 507 */,
 /* 508 */,
-/* 509 */
+/* 509 */,
+/* 510 */,
+/* 511 */
 /*!*************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-input/props.js ***!
   \*************************************************************************/
@@ -24639,12 +24689,12 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 510 */,
-/* 511 */,
 /* 512 */,
 /* 513 */,
 /* 514 */,
-/* 515 */
+/* 515 */,
+/* 516 */,
+/* 517 */
 /*!************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-rate/props.js ***!
   \************************************************************************/
@@ -24731,14 +24781,19 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 516 */,
-/* 517 */,
 /* 518 */,
 /* 519 */,
 /* 520 */,
 /* 521 */,
 /* 522 */,
-/* 523 */
+/* 523 */,
+/* 524 */,
+/* 525 */,
+/* 526 */,
+/* 527 */,
+/* 528 */,
+/* 529 */,
+/* 530 */
 /*!******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-status-bar/props.js ***!
   \******************************************************************************/
@@ -24764,14 +24819,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 524 */,
-/* 525 */,
-/* 526 */,
-/* 527 */,
-/* 528 */,
-/* 529 */,
-/* 530 */,
-/* 531 */
+/* 531 */,
+/* 532 */,
+/* 533 */,
+/* 534 */,
+/* 535 */,
+/* 536 */,
+/* 537 */,
+/* 538 */
 /*!*************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-badge/props.js ***!
   \*************************************************************************/
@@ -24861,14 +24916,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 532 */,
-/* 533 */,
-/* 534 */,
-/* 535 */,
-/* 536 */,
-/* 537 */,
-/* 538 */,
-/* 539 */
+/* 539 */,
+/* 540 */,
+/* 541 */,
+/* 542 */,
+/* 543 */,
+/* 544 */,
+/* 545 */,
+/* 546 */
 /*!********************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-loading-icon/props.js ***!
   \********************************************************************************/
@@ -24945,14 +25000,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 540 */,
-/* 541 */,
-/* 542 */,
-/* 543 */,
-/* 544 */,
-/* 545 */,
-/* 546 */,
-/* 547 */
+/* 547 */,
+/* 548 */,
+/* 549 */,
+/* 550 */,
+/* 551 */,
+/* 552 */,
+/* 553 */,
+/* 554 */
 /*!************************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-swiper-indicator/props.js ***!
   \************************************************************************************/
@@ -24999,14 +25054,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 548 */,
-/* 549 */,
-/* 550 */,
-/* 551 */,
-/* 552 */,
-/* 553 */,
-/* 554 */,
-/* 555 */
+/* 555 */,
+/* 556 */,
+/* 557 */,
+/* 558 */,
+/* 559 */,
+/* 560 */,
+/* 561 */,
+/* 562 */
 /*!***************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-overlay/props.js ***!
   \***************************************************************************/
@@ -25048,14 +25103,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 556 */,
-/* 557 */,
-/* 558 */,
-/* 559 */,
-/* 560 */,
-/* 561 */,
-/* 562 */,
-/* 563 */
+/* 563 */,
+/* 564 */,
+/* 565 */,
+/* 566 */,
+/* 567 */,
+/* 568 */,
+/* 569 */,
+/* 570 */
 /*!******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-transition/props.js ***!
   \******************************************************************************/
@@ -25097,7 +25152,7 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 564 */
+/* 571 */
 /*!***********************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-transition/transition.js ***!
   \***********************************************************************************/
@@ -25114,7 +25169,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.default = void 0;
 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 56));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 58));
-var _nvueAniMap = _interopRequireDefault(__webpack_require__(/*! ./nvue.ani-map.js */ 565));
+var _nvueAniMap = _interopRequireDefault(__webpack_require__(/*! ./nvue.ani-map.js */ 572));
 // 定义一个一定时间后自动成功的promise,让调用nextTick方法处,进入下一个then方法
 var nextTick = function nextTick() {
   return new Promise(function (resolve) {
@@ -25206,7 +25261,7 @@ var _default = {
 exports.default = _default;
 
 /***/ }),
-/* 565 */
+/* 572 */
 /*!*************************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-transition/nvue.ani-map.js ***!
   \*************************************************************************************/
@@ -25399,14 +25454,14 @@ var _default = {
 exports.default = _default;
 
 /***/ }),
-/* 566 */,
-/* 567 */,
-/* 568 */,
-/* 569 */,
-/* 570 */,
-/* 571 */,
-/* 572 */,
-/* 573 */
+/* 573 */,
+/* 574 */,
+/* 575 */,
+/* 576 */,
+/* 577 */,
+/* 578 */,
+/* 579 */,
+/* 580 */
 /*!*******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-safe-bottom/props.js ***!
   \*******************************************************************************/
@@ -25426,14 +25481,14 @@ var _default = {
 exports.default = _default;
 
 /***/ }),
-/* 574 */,
-/* 575 */,
-/* 576 */,
-/* 577 */,
-/* 578 */,
-/* 579 */,
-/* 580 */,
-/* 581 */
+/* 581 */,
+/* 582 */,
+/* 583 */,
+/* 584 */,
+/* 585 */,
+/* 586 */,
+/* 587 */,
+/* 588 */
 /*!**************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-tabbar/props.js ***!
   \**************************************************************************/
@@ -25495,14 +25550,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 582 */,
-/* 583 */,
-/* 584 */,
-/* 585 */,
-/* 586 */,
-/* 587 */,
-/* 588 */,
-/* 589 */
+/* 589 */,
+/* 590 */,
+/* 591 */,
+/* 592 */,
+/* 593 */,
+/* 594 */,
+/* 595 */,
+/* 596 */
 /*!*******************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-tabbar-item/props.js ***!
   \*******************************************************************************/
@@ -25554,14 +25609,14 @@ exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
 /***/ }),
-/* 590 */,
-/* 591 */,
-/* 592 */,
-/* 593 */,
-/* 594 */,
-/* 595 */,
-/* 596 */,
-/* 597 */
+/* 597 */,
+/* 598 */,
+/* 599 */,
+/* 600 */,
+/* 601 */,
+/* 602 */,
+/* 603 */,
+/* 604 */
 /*!***************************************************************************!*\
   !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-toolbar/props.js ***!
   \***************************************************************************/
@@ -25612,6 +25667,1827 @@ var _default = {
 exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
 
+/***/ }),
+/* 605 */,
+/* 606 */,
+/* 607 */,
+/* 608 */,
+/* 609 */,
+/* 610 */,
+/* 611 */,
+/* 612 */,
+/* 613 */,
+/* 614 */,
+/* 615 */,
+/* 616 */,
+/* 617 */,
+/* 618 */,
+/* 619 */,
+/* 620 */,
+/* 621 */,
+/* 622 */,
+/* 623 */,
+/* 624 */,
+/* 625 */,
+/* 626 */,
+/* 627 */,
+/* 628 */,
+/* 629 */,
+/* 630 */,
+/* 631 */,
+/* 632 */,
+/* 633 */,
+/* 634 */,
+/* 635 */,
+/* 636 */,
+/* 637 */,
+/* 638 */,
+/* 639 */,
+/* 640 */,
+/* 641 */,
+/* 642 */,
+/* 643 */,
+/* 644 */,
+/* 645 */,
+/* 646 */,
+/* 647 */,
+/* 648 */,
+/* 649 */,
+/* 650 */,
+/* 651 */,
+/* 652 */,
+/* 653 */,
+/* 654 */,
+/* 655 */,
+/* 656 */,
+/* 657 */,
+/* 658 */,
+/* 659 */,
+/* 660 */,
+/* 661 */,
+/* 662 */,
+/* 663 */,
+/* 664 */,
+/* 665 */,
+/* 666 */,
+/* 667 */,
+/* 668 */,
+/* 669 */,
+/* 670 */,
+/* 671 */,
+/* 672 */,
+/* 673 */,
+/* 674 */,
+/* 675 */,
+/* 676 */,
+/* 677 */,
+/* 678 */
+/*!************************************************************************!*\
+  !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-form/props.js ***!
+  \************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(uni) {
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _default = {
+  props: {
+    // 当前form的需要验证字段的集合
+    model: {
+      type: Object,
+      default: uni.$u.props.form.model
+    },
+    // 验证规则
+    rules: {
+      type: [Object, Function, Array],
+      default: uni.$u.props.form.rules
+    },
+    // 有错误时的提示方式,message-提示信息,toast-进行toast提示
+    // border-bottom-下边框呈现红色,none-无提示
+    errorType: {
+      type: String,
+      default: uni.$u.props.form.errorType
+    },
+    // 是否显示表单域的下划线边框
+    borderBottom: {
+      type: Boolean,
+      default: uni.$u.props.form.borderBottom
+    },
+    // label的位置,left-左边,top-上边
+    labelPosition: {
+      type: String,
+      default: uni.$u.props.form.labelPosition
+    },
+    // label的宽度,单位px
+    labelWidth: {
+      type: [String, Number],
+      default: uni.$u.props.form.labelWidth
+    },
+    // lable字体的对齐方式
+    labelAlign: {
+      type: String,
+      default: uni.$u.props.form.labelAlign
+    },
+    // lable的样式,对象形式
+    labelStyle: {
+      type: Object,
+      default: uni.$u.props.form.labelStyle
+    }
+  }
+};
+exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
+
+/***/ }),
+/* 679 */,
+/* 680 */,
+/* 681 */,
+/* 682 */,
+/* 683 */,
+/* 684 */
+/*!*****************************************************************************!*\
+  !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-form-item/props.js ***!
+  \*****************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(uni) {
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _default = {
+  props: {
+    // input的label提示语
+    label: {
+      type: String,
+      default: uni.$u.props.formItem.label
+    },
+    // 绑定的值
+    prop: {
+      type: String,
+      default: uni.$u.props.formItem.prop
+    },
+    // 是否显示表单域的下划线边框
+    borderBottom: {
+      type: [String, Boolean],
+      default: uni.$u.props.formItem.borderBottom
+    },
+    // label的位置,left-左边,top-上边
+    labelPosition: {
+      type: String,
+      default: uni.$u.props.formItem.labelPosition
+    },
+    // label的宽度,单位px
+    labelWidth: {
+      type: [String, Number],
+      default: uni.$u.props.formItem.labelWidth
+    },
+    // 右侧图标
+    rightIcon: {
+      type: String,
+      default: uni.$u.props.formItem.rightIcon
+    },
+    // 左侧图标
+    leftIcon: {
+      type: String,
+      default: uni.$u.props.formItem.leftIcon
+    },
+    // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置
+    required: {
+      type: Boolean,
+      default: uni.$u.props.formItem.required
+    },
+    leftIconStyle: {
+      type: [String, Object],
+      default: uni.$u.props.formItem.leftIconStyle
+    }
+  }
+};
+exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
+
+/***/ }),
+/* 685 */,
+/* 686 */,
+/* 687 */,
+/* 688 */,
+/* 689 */,
+/* 690 */,
+/* 691 */,
+/* 692 */,
+/* 693 */,
+/* 694 */,
+/* 695 */,
+/* 696 */,
+/* 697 */,
+/* 698 */,
+/* 699 */,
+/* 700 */,
+/* 701 */,
+/* 702 */
+/*!**************************************************************************!*\
+  !*** D:/www/uniapp-project/wx-qhb/uview-ui/libs/util/async-validator.js ***!
+  \**************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {
+
+var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4);
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
+var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13));
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+function _extends() {
+  _extends = Object.assign || function (target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i];
+      for (var key in source) {
+        if (Object.prototype.hasOwnProperty.call(source, key)) {
+          target[key] = source[key];
+        }
+      }
+    }
+    return target;
+  };
+  return _extends.apply(this, arguments);
+}
+
+/* eslint no-console:0 */
+var formatRegExp = /%[sdj%]/g;
+var warning = function warning() {}; // don't print warning message when in production env or node runtime
+
+if (typeof process !== 'undefined' && Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"wx","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}) && "development" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
+  warning = function warning(type, errors) {
+    if (typeof console !== 'undefined' && console.warn) {
+      if (errors.every(function (e) {
+        return typeof e === 'string';
+      })) {
+        console.warn(type, errors);
+      }
+    }
+  };
+}
+function convertFieldsError(errors) {
+  if (!errors || !errors.length) return null;
+  var fields = {};
+  errors.forEach(function (error) {
+    var field = error.field;
+    fields[field] = fields[field] || [];
+    fields[field].push(error);
+  });
+  return fields;
+}
+function format() {
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+  var i = 1;
+  var f = args[0];
+  var len = args.length;
+  if (typeof f === 'function') {
+    return f.apply(null, args.slice(1));
+  }
+  if (typeof f === 'string') {
+    var str = String(f).replace(formatRegExp, function (x) {
+      if (x === '%%') {
+        return '%';
+      }
+      if (i >= len) {
+        return x;
+      }
+      switch (x) {
+        case '%s':
+          return String(args[i++]);
+        case '%d':
+          return Number(args[i++]);
+        case '%j':
+          try {
+            return JSON.stringify(args[i++]);
+          } catch (_) {
+            return '[Circular]';
+          }
+          break;
+        default:
+          return x;
+      }
+    });
+    for (var arg = args[i]; i < len; arg = args[++i]) {
+      str += " ".concat(arg);
+    }
+    return str;
+  }
+  return f;
+}
+function isNativeStringType(type) {
+  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';
+}
+function isEmptyValue(value, type) {
+  if (value === undefined || value === null) {
+    return true;
+  }
+  if (type === 'array' && Array.isArray(value) && !value.length) {
+    return true;
+  }
+  if (isNativeStringType(type) && typeof value === 'string' && !value) {
+    return true;
+  }
+  return false;
+}
+function asyncParallelArray(arr, func, callback) {
+  var results = [];
+  var total = 0;
+  var arrLength = arr.length;
+  function count(errors) {
+    results.push.apply(results, errors);
+    total++;
+    if (total === arrLength) {
+      callback(results);
+    }
+  }
+  arr.forEach(function (a) {
+    func(a, count);
+  });
+}
+function asyncSerialArray(arr, func, callback) {
+  var index = 0;
+  var arrLength = arr.length;
+  function next(errors) {
+    if (errors && errors.length) {
+      callback(errors);
+      return;
+    }
+    var original = index;
+    index += 1;
+    if (original < arrLength) {
+      func(arr[original], next);
+    } else {
+      callback([]);
+    }
+  }
+  next([]);
+}
+function flattenObjArr(objArr) {
+  var ret = [];
+  Object.keys(objArr).forEach(function (k) {
+    ret.push.apply(ret, objArr[k]);
+  });
+  return ret;
+}
+function asyncMap(objArr, option, func, callback) {
+  if (option.first) {
+    var _pending = new Promise(function (resolve, reject) {
+      var next = function next(errors) {
+        callback(errors);
+        return errors.length ? reject({
+          errors: errors,
+          fields: convertFieldsError(errors)
+        }) : resolve();
+      };
+      var flattenArr = flattenObjArr(objArr);
+      asyncSerialArray(flattenArr, func, next);
+    });
+    _pending.catch(function (e) {
+      return e;
+    });
+    return _pending;
+  }
+  var firstFields = option.firstFields || [];
+  if (firstFields === true) {
+    firstFields = Object.keys(objArr);
+  }
+  var objArrKeys = Object.keys(objArr);
+  var objArrLength = objArrKeys.length;
+  var total = 0;
+  var results = [];
+  var pending = new Promise(function (resolve, reject) {
+    var next = function next(errors) {
+      results.push.apply(results, errors);
+      total++;
+      if (total === objArrLength) {
+        callback(results);
+        return results.length ? reject({
+          errors: results,
+          fields: convertFieldsError(results)
+        }) : resolve();
+      }
+    };
+    if (!objArrKeys.length) {
+      callback(results);
+      resolve();
+    }
+    objArrKeys.forEach(function (key) {
+      var arr = objArr[key];
+      if (firstFields.indexOf(key) !== -1) {
+        asyncSerialArray(arr, func, next);
+      } else {
+        asyncParallelArray(arr, func, next);
+      }
+    });
+  });
+  pending.catch(function (e) {
+    return e;
+  });
+  return pending;
+}
+function complementError(rule) {
+  return function (oe) {
+    if (oe && oe.message) {
+      oe.field = oe.field || rule.fullField;
+      return oe;
+    }
+    return {
+      message: typeof oe === 'function' ? oe() : oe,
+      field: oe.field || rule.fullField
+    };
+  };
+}
+function deepMerge(target, source) {
+  if (source) {
+    for (var s in source) {
+      if (source.hasOwnProperty(s)) {
+        var value = source[s];
+        if ((0, _typeof2.default)(value) === 'object' && (0, _typeof2.default)(target[s]) === 'object') {
+          target[s] = _objectSpread(_objectSpread({}, target[s]), value);
+        } else {
+          target[s] = value;
+        }
+      }
+    }
+  }
+  return target;
+}
+
+/**
+ *  Rule for validating required fields.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function required(rule, value, source, errors, options, type) {
+  if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {
+    errors.push(format(options.messages.required, rule.fullField));
+  }
+}
+
+/**
+ *  Rule for validating whitespace.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function whitespace(rule, value, source, errors, options) {
+  if (/^\s+$/.test(value) || value === '') {
+    errors.push(format(options.messages.whitespace, rule.fullField));
+  }
+}
+
+/* eslint max-len:0 */
+
+var pattern = {
+  // http://emailregex.com/
+  email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
+  url: new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", 'i'),
+  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i
+};
+var types = {
+  integer: function integer(value) {
+    return /^(-)?\d+$/.test(value);
+  },
+  float: function float(value) {
+    return /^(-)?\d+(\.\d+)?$/.test(value);
+  },
+  array: function array(value) {
+    return Array.isArray(value);
+  },
+  regexp: function regexp(value) {
+    if (value instanceof RegExp) {
+      return true;
+    }
+    try {
+      return !!new RegExp(value);
+    } catch (e) {
+      return false;
+    }
+  },
+  date: function date(value) {
+    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';
+  },
+  number: function number(value) {
+    if (isNaN(value)) {
+      return false;
+    }
+
+    // 修改源码,将字符串数值先转为数值
+    return typeof +value === 'number';
+  },
+  object: function object(value) {
+    return (0, _typeof2.default)(value) === 'object' && !types.array(value);
+  },
+  method: function method(value) {
+    return typeof value === 'function';
+  },
+  email: function email(value) {
+    return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;
+  },
+  url: function url(value) {
+    return typeof value === 'string' && !!value.match(pattern.url);
+  },
+  hex: function hex(value) {
+    return typeof value === 'string' && !!value.match(pattern.hex);
+  }
+};
+/**
+ *  Rule for validating the type of a value.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function type(rule, value, source, errors, options) {
+  if (rule.required && value === undefined) {
+    required(rule, value, source, errors, options);
+    return;
+  }
+  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];
+  var ruleType = rule.type;
+  if (custom.indexOf(ruleType) > -1) {
+    if (!types[ruleType](value)) {
+      errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));
+    } // straight typeof check
+  } else if (ruleType && (0, _typeof2.default)(value) !== rule.type) {
+    errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));
+  }
+}
+
+/**
+ *  Rule for validating minimum and maximum allowed values.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function range(rule, value, source, errors, options) {
+  var len = typeof rule.len === 'number';
+  var min = typeof rule.min === 'number';
+  var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)
+
+  var spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+  var val = value;
+  var key = null;
+  var num = typeof value === 'number';
+  var str = typeof value === 'string';
+  var arr = Array.isArray(value);
+  if (num) {
+    key = 'number';
+  } else if (str) {
+    key = 'string';
+  } else if (arr) {
+    key = 'array';
+  } // if the value is not of a supported type for range validation
+  // the validation rule rule should use the
+  // type property to also test for a particular type
+
+  if (!key) {
+    return false;
+  }
+  if (arr) {
+    val = value.length;
+  }
+  if (str) {
+    // 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3
+    val = value.replace(spRegexp, '_').length;
+  }
+  if (len) {
+    if (val !== rule.len) {
+      errors.push(format(options.messages[key].len, rule.fullField, rule.len));
+    }
+  } else if (min && !max && val < rule.min) {
+    errors.push(format(options.messages[key].min, rule.fullField, rule.min));
+  } else if (max && !min && val > rule.max) {
+    errors.push(format(options.messages[key].max, rule.fullField, rule.max));
+  } else if (min && max && (val < rule.min || val > rule.max)) {
+    errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));
+  }
+}
+var ENUM = 'enum';
+/**
+ *  Rule for validating a value exists in an enumerable list.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function enumerable(rule, value, source, errors, options) {
+  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];
+  if (rule[ENUM].indexOf(value) === -1) {
+    errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));
+  }
+}
+
+/**
+ *  Rule for validating a regular expression pattern.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param source The source object being validated.
+ *  @param errors An array of errors that this rule may add
+ *  validation errors to.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function pattern$1(rule, value, source, errors, options) {
+  if (rule.pattern) {
+    if (rule.pattern instanceof RegExp) {
+      // if a RegExp instance is passed, reset `lastIndex` in case its `global`
+      // flag is accidentally set to `true`, which in a validation scenario
+      // is not necessary and the result might be misleading
+      rule.pattern.lastIndex = 0;
+      if (!rule.pattern.test(value)) {
+        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
+      }
+    } else if (typeof rule.pattern === 'string') {
+      var _pattern = new RegExp(rule.pattern);
+      if (!_pattern.test(value)) {
+        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
+      }
+    }
+  }
+}
+var rules = {
+  required: required,
+  whitespace: whitespace,
+  type: type,
+  range: range,
+  enum: enumerable,
+  pattern: pattern$1
+};
+
+/**
+ *  Performs validation for string types.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function string(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value, 'string') && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options, 'string');
+    if (!isEmptyValue(value, 'string')) {
+      rules.type(rule, value, source, errors, options);
+      rules.range(rule, value, source, errors, options);
+      rules.pattern(rule, value, source, errors, options);
+      if (rule.whitespace === true) {
+        rules.whitespace(rule, value, source, errors, options);
+      }
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a function.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function method(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a number.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function number(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (value === '') {
+      value = undefined;
+    }
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+      rules.range(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a boolean.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function _boolean(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates the regular expression type.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function regexp(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (!isEmptyValue(value)) {
+      rules.type(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a number is an integer.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function integer(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+      rules.range(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a number is a floating point number.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function floatFn(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+      rules.range(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates an array.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function array(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value, 'array') && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options, 'array');
+    if (!isEmptyValue(value, 'array')) {
+      rules.type(rule, value, source, errors, options);
+      rules.range(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates an object.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function object(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules.type(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+var ENUM$1 = 'enum';
+/**
+ *  Validates an enumerable list.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function enumerable$1(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (value !== undefined) {
+      rules[ENUM$1](rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Validates a regular expression pattern.
+ *
+ *  Performs validation when a rule only contains
+ *  a pattern property but is not declared as a string type.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function pattern$2(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value, 'string') && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (!isEmptyValue(value, 'string')) {
+      rules.pattern(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+function date(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+    if (!isEmptyValue(value)) {
+      var dateObject;
+      if (typeof value === 'number') {
+        dateObject = new Date(value);
+      } else {
+        dateObject = value;
+      }
+      rules.type(rule, dateObject, source, errors, options);
+      if (dateObject) {
+        rules.range(rule, dateObject.getTime(), source, errors, options);
+      }
+    }
+  }
+  callback(errors);
+}
+function required$1(rule, value, callback, source, options) {
+  var errors = [];
+  var type = Array.isArray(value) ? 'array' : (0, _typeof2.default)(value);
+  rules.required(rule, value, source, errors, options, type);
+  callback(errors);
+}
+function type$1(rule, value, callback, source, options) {
+  var ruleType = rule.type;
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value, ruleType) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options, ruleType);
+    if (!isEmptyValue(value, ruleType)) {
+      rules.type(rule, value, source, errors, options);
+    }
+  }
+  callback(errors);
+}
+
+/**
+ *  Performs validation for any type.
+ *
+ *  @param rule The validation rule.
+ *  @param value The value of the field on the source object.
+ *  @param callback The callback function.
+ *  @param source The source object being validated.
+ *  @param options The validation options.
+ *  @param options.messages The validation messages.
+ */
+
+function any(rule, value, callback, source, options) {
+  var errors = [];
+  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
+  if (validate) {
+    if (isEmptyValue(value) && !rule.required) {
+      return callback();
+    }
+    rules.required(rule, value, source, errors, options);
+  }
+  callback(errors);
+}
+var validators = {
+  string: string,
+  method: method,
+  number: number,
+  boolean: _boolean,
+  regexp: regexp,
+  integer: integer,
+  float: floatFn,
+  array: array,
+  object: object,
+  enum: enumerable$1,
+  pattern: pattern$2,
+  date: date,
+  url: type$1,
+  hex: type$1,
+  email: type$1,
+  required: required$1,
+  any: any
+};
+function newMessages() {
+  return {
+    default: 'Validation error on field %s',
+    required: '%s is required',
+    enum: '%s must be one of %s',
+    whitespace: '%s cannot be empty',
+    date: {
+      format: '%s date %s is invalid for format %s',
+      parse: '%s date could not be parsed, %s is invalid ',
+      invalid: '%s date %s is invalid'
+    },
+    types: {
+      string: '%s is not a %s',
+      method: '%s is not a %s (function)',
+      array: '%s is not an %s',
+      object: '%s is not an %s',
+      number: '%s is not a %s',
+      date: '%s is not a %s',
+      boolean: '%s is not a %s',
+      integer: '%s is not an %s',
+      float: '%s is not a %s',
+      regexp: '%s is not a valid %s',
+      email: '%s is not a valid %s',
+      url: '%s is not a valid %s',
+      hex: '%s is not a valid %s'
+    },
+    string: {
+      len: '%s must be exactly %s characters',
+      min: '%s must be at least %s characters',
+      max: '%s cannot be longer than %s characters',
+      range: '%s must be between %s and %s characters'
+    },
+    number: {
+      len: '%s must equal %s',
+      min: '%s cannot be less than %s',
+      max: '%s cannot be greater than %s',
+      range: '%s must be between %s and %s'
+    },
+    array: {
+      len: '%s must be exactly %s in length',
+      min: '%s cannot be less than %s in length',
+      max: '%s cannot be greater than %s in length',
+      range: '%s must be between %s and %s in length'
+    },
+    pattern: {
+      mismatch: '%s value %s does not match pattern %s'
+    },
+    clone: function clone() {
+      var cloned = JSON.parse(JSON.stringify(this));
+      cloned.clone = this.clone;
+      return cloned;
+    }
+  };
+}
+var messages = newMessages();
+
+/**
+ *  Encapsulates a validation schema.
+ *
+ *  @param descriptor An object declaring validation rules
+ *  for this schema.
+ */
+
+function Schema(descriptor) {
+  this.rules = null;
+  this._messages = messages;
+  this.define(descriptor);
+}
+Schema.prototype = {
+  messages: function messages(_messages) {
+    if (_messages) {
+      this._messages = deepMerge(newMessages(), _messages);
+    }
+    return this._messages;
+  },
+  define: function define(rules) {
+    if (!rules) {
+      throw new Error('Cannot configure a schema with no rules');
+    }
+    if ((0, _typeof2.default)(rules) !== 'object' || Array.isArray(rules)) {
+      throw new Error('Rules must be an object');
+    }
+    this.rules = {};
+    var z;
+    var item;
+    for (z in rules) {
+      if (rules.hasOwnProperty(z)) {
+        item = rules[z];
+        this.rules[z] = Array.isArray(item) ? item : [item];
+      }
+    }
+  },
+  validate: function validate(source_, o, oc) {
+    var _this = this;
+    if (o === void 0) {
+      o = {};
+    }
+    if (oc === void 0) {
+      oc = function oc() {};
+    }
+    var source = source_;
+    var options = o;
+    var callback = oc;
+    if (typeof options === 'function') {
+      callback = options;
+      options = {};
+    }
+    if (!this.rules || Object.keys(this.rules).length === 0) {
+      if (callback) {
+        callback();
+      }
+      return Promise.resolve();
+    }
+    function complete(results) {
+      var i;
+      var errors = [];
+      var fields = {};
+      function add(e) {
+        if (Array.isArray(e)) {
+          var _errors;
+          errors = (_errors = errors).concat.apply(_errors, e);
+        } else {
+          errors.push(e);
+        }
+      }
+      for (i = 0; i < results.length; i++) {
+        add(results[i]);
+      }
+      if (!errors.length) {
+        errors = null;
+        fields = null;
+      } else {
+        fields = convertFieldsError(errors);
+      }
+      callback(errors, fields);
+    }
+    if (options.messages) {
+      var messages$1 = this.messages();
+      if (messages$1 === messages) {
+        messages$1 = newMessages();
+      }
+      deepMerge(messages$1, options.messages);
+      options.messages = messages$1;
+    } else {
+      options.messages = this.messages();
+    }
+    var arr;
+    var value;
+    var series = {};
+    var keys = options.keys || Object.keys(this.rules);
+    keys.forEach(function (z) {
+      arr = _this.rules[z];
+      value = source[z];
+      arr.forEach(function (r) {
+        var rule = r;
+        if (typeof rule.transform === 'function') {
+          if (source === source_) {
+            source = _objectSpread({}, source);
+          }
+          value = source[z] = rule.transform(value);
+        }
+        if (typeof rule === 'function') {
+          rule = {
+            validator: rule
+          };
+        } else {
+          rule = _objectSpread({}, rule);
+        }
+        rule.validator = _this.getValidationMethod(rule);
+        rule.field = z;
+        rule.fullField = rule.fullField || z;
+        rule.type = _this.getType(rule);
+        if (!rule.validator) {
+          return;
+        }
+        series[z] = series[z] || [];
+        series[z].push({
+          rule: rule,
+          value: value,
+          source: source,
+          field: z
+        });
+      });
+    });
+    var errorFields = {};
+    return asyncMap(series, options, function (data, doIt) {
+      var rule = data.rule;
+      var deep = (rule.type === 'object' || rule.type === 'array') && ((0, _typeof2.default)(rule.fields) === 'object' || (0, _typeof2.default)(rule.defaultField) === 'object');
+      deep = deep && (rule.required || !rule.required && data.value);
+      rule.field = data.field;
+      function addFullfield(key, schema) {
+        return _objectSpread(_objectSpread({}, schema), {}, {
+          fullField: "".concat(rule.fullField, ".").concat(key)
+        });
+      }
+      function cb(e) {
+        if (e === void 0) {
+          e = [];
+        }
+        var errors = e;
+        if (!Array.isArray(errors)) {
+          errors = [errors];
+        }
+        if (!options.suppressWarning && errors.length) {
+          Schema.warning('async-validator:', errors);
+        }
+        if (errors.length && rule.message) {
+          errors = [].concat(rule.message);
+        }
+        errors = errors.map(complementError(rule));
+        if (options.first && errors.length) {
+          errorFields[rule.field] = 1;
+          return doIt(errors);
+        }
+        if (!deep) {
+          doIt(errors);
+        } else {
+          // if rule is required but the target object
+          // does not exist fail at the rule level and don't
+          // go deeper
+          if (rule.required && !data.value) {
+            if (rule.message) {
+              errors = [].concat(rule.message).map(complementError(rule));
+            } else if (options.error) {
+              errors = [options.error(rule, format(options.messages.required, rule.field))];
+            } else {
+              errors = [];
+            }
+            return doIt(errors);
+          }
+          var fieldsSchema = {};
+          if (rule.defaultField) {
+            for (var k in data.value) {
+              if (data.value.hasOwnProperty(k)) {
+                fieldsSchema[k] = rule.defaultField;
+              }
+            }
+          }
+          fieldsSchema = _objectSpread(_objectSpread({}, fieldsSchema), data.rule.fields);
+          for (var f in fieldsSchema) {
+            if (fieldsSchema.hasOwnProperty(f)) {
+              var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];
+              fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));
+            }
+          }
+          var schema = new Schema(fieldsSchema);
+          schema.messages(options.messages);
+          if (data.rule.options) {
+            data.rule.options.messages = options.messages;
+            data.rule.options.error = options.error;
+          }
+          schema.validate(data.value, data.rule.options || options, function (errs) {
+            var finalErrors = [];
+            if (errors && errors.length) {
+              finalErrors.push.apply(finalErrors, errors);
+            }
+            if (errs && errs.length) {
+              finalErrors.push.apply(finalErrors, errs);
+            }
+            doIt(finalErrors.length ? finalErrors : null);
+          });
+        }
+      }
+      var res;
+      if (rule.asyncValidator) {
+        res = rule.asyncValidator(rule, data.value, cb, data.source, options);
+      } else if (rule.validator) {
+        res = rule.validator(rule, data.value, cb, data.source, options);
+        if (res === true) {
+          cb();
+        } else if (res === false) {
+          cb(rule.message || "".concat(rule.field, " fails"));
+        } else if (res instanceof Array) {
+          cb(res);
+        } else if (res instanceof Error) {
+          cb(res.message);
+        }
+      }
+      if (res && res.then) {
+        res.then(function () {
+          return cb();
+        }, function (e) {
+          return cb(e);
+        });
+      }
+    }, function (results) {
+      complete(results);
+    });
+  },
+  getType: function getType(rule) {
+    if (rule.type === undefined && rule.pattern instanceof RegExp) {
+      rule.type = 'pattern';
+    }
+    if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {
+      throw new Error(format('Unknown rule type %s', rule.type));
+    }
+    return rule.type || 'string';
+  },
+  getValidationMethod: function getValidationMethod(rule) {
+    if (typeof rule.validator === 'function') {
+      return rule.validator;
+    }
+    var keys = Object.keys(rule);
+    var messageIndex = keys.indexOf('message');
+    if (messageIndex !== -1) {
+      keys.splice(messageIndex, 1);
+    }
+    if (keys.length === 1 && keys[0] === 'required') {
+      return validators.required;
+    }
+    return validators[this.getType(rule)] || false;
+  }
+};
+Schema.register = function register(type, validator) {
+  if (typeof validator !== 'function') {
+    throw new Error('Cannot register a validator by type, validator is not a function');
+  }
+  validators[type] = validator;
+};
+Schema.warning = warning;
+Schema.messages = messages;
+var _default = Schema; // # sourceMappingURL=index.js.map
+exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../Application/HBuilderX.4.04.2024031519-alpha/HBuilderX/plugins/uniapp-cli/node_modules/node-libs-browser/mock/process.js */ 703)))
+
+/***/ }),
+/* 703 */
+/*!********************************************************!*\
+  !*** ./node_modules/node-libs-browser/mock/process.js ***!
+  \********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+exports.nextTick = function nextTick(fn) {
+    var args = Array.prototype.slice.call(arguments);
+    args.shift();
+    setTimeout(function () {
+        fn.apply(null, args);
+    }, 0);
+};
+
+exports.platform = exports.arch = 
+exports.execPath = exports.title = 'browser';
+exports.pid = 1;
+exports.browser = true;
+exports.env = {};
+exports.argv = [];
+
+exports.binding = function (name) {
+	throw new Error('No such module. (Possibly not yet loaded)')
+};
+
+(function () {
+    var cwd = '/';
+    var path;
+    exports.cwd = function () { return cwd };
+    exports.chdir = function (dir) {
+        if (!path) path = __webpack_require__(/*! path */ 704);
+        cwd = path.resolve(dir, cwd);
+    };
+})();
+
+exports.exit = exports.kill = 
+exports.umask = exports.dlopen = 
+exports.uptime = exports.memoryUsage = 
+exports.uvCounters = function() {};
+exports.features = {};
+
+
+/***/ }),
+/* 704 */
+/*!***********************************************!*\
+  !*** ./node_modules/path-browserify/index.js ***!
+  \***********************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,
+// backported and transplited with Babel, with backwards-compat fixes
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// resolves . and .. elements in a path array with directory names there
+// must be no slashes, empty elements, or device names (c:\) in the array
+// (so also no leading and trailing slashes - it does not distinguish
+// relative and absolute paths)
+function normalizeArray(parts, allowAboveRoot) {
+  // if the path tries to go above the root, `up` ends up > 0
+  var up = 0;
+  for (var i = parts.length - 1; i >= 0; i--) {
+    var last = parts[i];
+    if (last === '.') {
+      parts.splice(i, 1);
+    } else if (last === '..') {
+      parts.splice(i, 1);
+      up++;
+    } else if (up) {
+      parts.splice(i, 1);
+      up--;
+    }
+  }
+
+  // if the path is allowed to go above the root, restore leading ..s
+  if (allowAboveRoot) {
+    for (; up--; up) {
+      parts.unshift('..');
+    }
+  }
+
+  return parts;
+}
+
+// path.resolve([from ...], to)
+// posix version
+exports.resolve = function() {
+  var resolvedPath = '',
+      resolvedAbsolute = false;
+
+  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+    var path = (i >= 0) ? arguments[i] : process.cwd();
+
+    // Skip empty and invalid entries
+    if (typeof path !== 'string') {
+      throw new TypeError('Arguments to path.resolve must be strings');
+    } else if (!path) {
+      continue;
+    }
+
+    resolvedPath = path + '/' + resolvedPath;
+    resolvedAbsolute = path.charAt(0) === '/';
+  }
+
+  // At this point the path should be resolved to a full absolute path, but
+  // handle relative paths to be safe (might happen when process.cwd() fails)
+
+  // Normalize the path
+  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
+    return !!p;
+  }), !resolvedAbsolute).join('/');
+
+  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+};
+
+// path.normalize(path)
+// posix version
+exports.normalize = function(path) {
+  var isAbsolute = exports.isAbsolute(path),
+      trailingSlash = substr(path, -1) === '/';
+
+  // Normalize the path
+  path = normalizeArray(filter(path.split('/'), function(p) {
+    return !!p;
+  }), !isAbsolute).join('/');
+
+  if (!path && !isAbsolute) {
+    path = '.';
+  }
+  if (path && trailingSlash) {
+    path += '/';
+  }
+
+  return (isAbsolute ? '/' : '') + path;
+};
+
+// posix version
+exports.isAbsolute = function(path) {
+  return path.charAt(0) === '/';
+};
+
+// posix version
+exports.join = function() {
+  var paths = Array.prototype.slice.call(arguments, 0);
+  return exports.normalize(filter(paths, function(p, index) {
+    if (typeof p !== 'string') {
+      throw new TypeError('Arguments to path.join must be strings');
+    }
+    return p;
+  }).join('/'));
+};
+
+
+// path.relative(from, to)
+// posix version
+exports.relative = function(from, to) {
+  from = exports.resolve(from).substr(1);
+  to = exports.resolve(to).substr(1);
+
+  function trim(arr) {
+    var start = 0;
+    for (; start < arr.length; start++) {
+      if (arr[start] !== '') break;
+    }
+
+    var end = arr.length - 1;
+    for (; end >= 0; end--) {
+      if (arr[end] !== '') break;
+    }
+
+    if (start > end) return [];
+    return arr.slice(start, end - start + 1);
+  }
+
+  var fromParts = trim(from.split('/'));
+  var toParts = trim(to.split('/'));
+
+  var length = Math.min(fromParts.length, toParts.length);
+  var samePartsLength = length;
+  for (var i = 0; i < length; i++) {
+    if (fromParts[i] !== toParts[i]) {
+      samePartsLength = i;
+      break;
+    }
+  }
+
+  var outputParts = [];
+  for (var i = samePartsLength; i < fromParts.length; i++) {
+    outputParts.push('..');
+  }
+
+  outputParts = outputParts.concat(toParts.slice(samePartsLength));
+
+  return outputParts.join('/');
+};
+
+exports.sep = '/';
+exports.delimiter = ':';
+
+exports.dirname = function (path) {
+  if (typeof path !== 'string') path = path + '';
+  if (path.length === 0) return '.';
+  var code = path.charCodeAt(0);
+  var hasRoot = code === 47 /*/*/;
+  var end = -1;
+  var matchedSlash = true;
+  for (var i = path.length - 1; i >= 1; --i) {
+    code = path.charCodeAt(i);
+    if (code === 47 /*/*/) {
+        if (!matchedSlash) {
+          end = i;
+          break;
+        }
+      } else {
+      // We saw the first non-path separator
+      matchedSlash = false;
+    }
+  }
+
+  if (end === -1) return hasRoot ? '/' : '.';
+  if (hasRoot && end === 1) {
+    // return '//';
+    // Backwards-compat fix:
+    return '/';
+  }
+  return path.slice(0, end);
+};
+
+function basename(path) {
+  if (typeof path !== 'string') path = path + '';
+
+  var start = 0;
+  var end = -1;
+  var matchedSlash = true;
+  var i;
+
+  for (i = path.length - 1; i >= 0; --i) {
+    if (path.charCodeAt(i) === 47 /*/*/) {
+        // If we reached a path separator that was not part of a set of path
+        // separators at the end of the string, stop now
+        if (!matchedSlash) {
+          start = i + 1;
+          break;
+        }
+      } else if (end === -1) {
+      // We saw the first non-path separator, mark this as the end of our
+      // path component
+      matchedSlash = false;
+      end = i + 1;
+    }
+  }
+
+  if (end === -1) return '';
+  return path.slice(start, end);
+}
+
+// Uses a mixed approach for backwards-compatibility, as ext behavior changed
+// in new Node.js versions, so only basename() above is backported here
+exports.basename = function (path, ext) {
+  var f = basename(path);
+  if (ext && f.substr(-1 * ext.length) === ext) {
+    f = f.substr(0, f.length - ext.length);
+  }
+  return f;
+};
+
+exports.extname = function (path) {
+  if (typeof path !== 'string') path = path + '';
+  var startDot = -1;
+  var startPart = 0;
+  var end = -1;
+  var matchedSlash = true;
+  // Track the state of characters (if any) we see before our first dot and
+  // after any path separator we find
+  var preDotState = 0;
+  for (var i = path.length - 1; i >= 0; --i) {
+    var code = path.charCodeAt(i);
+    if (code === 47 /*/*/) {
+        // If we reached a path separator that was not part of a set of path
+        // separators at the end of the string, stop now
+        if (!matchedSlash) {
+          startPart = i + 1;
+          break;
+        }
+        continue;
+      }
+    if (end === -1) {
+      // We saw the first non-path separator, mark this as the end of our
+      // extension
+      matchedSlash = false;
+      end = i + 1;
+    }
+    if (code === 46 /*.*/) {
+        // If this is our first dot, mark it as the start of our extension
+        if (startDot === -1)
+          startDot = i;
+        else if (preDotState !== 1)
+          preDotState = 1;
+    } else if (startDot !== -1) {
+      // We saw a non-dot and non-path separator before our dot, so we should
+      // have a good chance at having a non-empty extension
+      preDotState = -1;
+    }
+  }
+
+  if (startDot === -1 || end === -1 ||
+      // We saw a non-dot character immediately before the dot
+      preDotState === 0 ||
+      // The (right-most) trimmed path component is exactly '..'
+      preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
+    return '';
+  }
+  return path.slice(startDot, end);
+};
+
+function filter (xs, f) {
+    if (xs.filter) return xs.filter(f);
+    var res = [];
+    for (var i = 0; i < xs.length; i++) {
+        if (f(xs[i], i, xs)) res.push(xs[i]);
+    }
+    return res;
+}
+
+// String.prototype.substr - negative index don't work in IE8
+var substr = 'ab'.substr(-1) === 'b'
+    ? function (str, start, len) { return str.substr(start, len) }
+    : function (str, start, len) {
+        if (start < 0) start = str.length + start;
+        return str.substr(start, len);
+    }
+;
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/mock/process.js */ 703)))
+
+/***/ }),
+/* 705 */,
+/* 706 */,
+/* 707 */,
+/* 708 */,
+/* 709 */,
+/* 710 */
+/*!************************************************************************!*\
+  !*** D:/www/uniapp-project/wx-qhb/uview-ui/components/u-line/props.js ***!
+  \************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(uni) {
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+var _default = {
+  props: {
+    color: {
+      type: String,
+      default: uni.$u.props.line.color
+    },
+    // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等
+    length: {
+      type: [String, Number],
+      default: uni.$u.props.line.length
+    },
+    // 线条方向,col-竖向,row-横向
+    direction: {
+      type: String,
+      default: uni.$u.props.line.direction
+    },
+    // 是否显示细边框
+    hairline: {
+      type: Boolean,
+      default: uni.$u.props.line.hairline
+    },
+    // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px"
+    margin: {
+      type: [String, Number],
+      default: uni.$u.props.line.margin
+    },
+    // 是否虚线,true-虚线,false-实线
+    dashed: {
+      type: Boolean,
+      default: uni.$u.props.line.dashed
+    }
+  }
+};
+exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
+
 /***/ })
 ]]);
 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map

File diff suppressed because it is too large
+ 4 - 4
unpackage/dist/dev/mp-weixin/components/kj-tabbar/kj-tabbar.js


File diff suppressed because it is too large
+ 6 - 6
unpackage/dist/dev/mp-weixin/pageD/index.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/cart/cart.js

@@ -99,7 +99,7 @@ var components
 try {
   components = {
     kjTabbar: function () {
-      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 424))
+      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 426))
     },
   }
 } catch (e) {

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/express/express.js

@@ -99,7 +99,7 @@ var components
 try {
   components = {
     kjTabbar: function () {
-      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 424))
+      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 426))
     },
   }
 } catch (e) {

+ 7 - 7
unpackage/dist/dev/mp-weixin/pages/index/index.js

@@ -101,25 +101,25 @@ var components
 try {
   components = {
     uNavbar: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-navbar/u-navbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-navbar/u-navbar")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-navbar/u-navbar.vue */ 375))
+      return Promise.all(/*! import() | uview-ui/components/u-navbar/u-navbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-navbar/u-navbar")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-navbar/u-navbar.vue */ 377))
     },
     uSubsection: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-subsection/u-subsection */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-subsection/u-subsection")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-subsection/u-subsection.vue */ 383))
+      return Promise.all(/*! import() | uview-ui/components/u-subsection/u-subsection */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-subsection/u-subsection")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-subsection/u-subsection.vue */ 385))
     },
     uIcon: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-icon/u-icon */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-icon/u-icon")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-icon/u-icon.vue */ 391))
+      return Promise.all(/*! import() | uview-ui/components/u-icon/u-icon */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-icon/u-icon")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-icon/u-icon.vue */ 393))
     },
     uTabs: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-tabs/u-tabs */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-tabs/u-tabs")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-tabs/u-tabs.vue */ 400))
+      return Promise.all(/*! import() | uview-ui/components/u-tabs/u-tabs */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-tabs/u-tabs")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-tabs/u-tabs.vue */ 402))
     },
     uSwiper: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-swiper/u-swiper */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-swiper/u-swiper")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-swiper/u-swiper.vue */ 408))
+      return Promise.all(/*! import() | uview-ui/components/u-swiper/u-swiper */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-swiper/u-swiper")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-swiper/u-swiper.vue */ 410))
     },
     uPopup: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-popup/u-popup */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-popup/u-popup")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-popup/u-popup.vue */ 416))
+      return Promise.all(/*! import() | uview-ui/components/u-popup/u-popup */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-popup/u-popup")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-popup/u-popup.vue */ 418))
     },
     kjTabbar: function () {
-      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 424))
+      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 426))
     },
   }
 } catch (e) {

+ 2 - 2
unpackage/dist/dev/mp-weixin/pages/login/login.js

@@ -101,10 +101,10 @@ var components
 try {
   components = {
     uCheckboxGroup: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-checkbox-group/u-checkbox-group */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-checkbox-group/u-checkbox-group")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-checkbox-group/u-checkbox-group.vue */ 458))
+      return Promise.all(/*! import() | uview-ui/components/u-checkbox-group/u-checkbox-group */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-checkbox-group/u-checkbox-group")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-checkbox-group/u-checkbox-group.vue */ 460))
     },
     uCheckbox: function () {
-      return Promise.all(/*! import() | uview-ui/components/u-checkbox/u-checkbox */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-checkbox/u-checkbox")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-checkbox/u-checkbox.vue */ 466))
+      return Promise.all(/*! import() | uview-ui/components/u-checkbox/u-checkbox */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uview-ui/components/u-checkbox/u-checkbox")]).then(__webpack_require__.bind(null, /*! @/uview-ui/components/u-checkbox/u-checkbox.vue */ 468))
     },
   }
 } catch (e) {

+ 5 - 5
unpackage/dist/dev/mp-weixin/pages/mine/mine.js

@@ -101,7 +101,7 @@ var components
 try {
   components = {
     kjTabbar: function () {
-      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 424))
+      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 426))
     },
   }
 } catch (e) {
@@ -166,22 +166,22 @@ Object.defineProperty(exports, "__esModule", {
 exports.default = void 0;
 var MineMoney = function MineMoney() {
   __webpack_require__.e(/*! require.ensure | pages/mine/component/mineMoney */ "pages/mine/component/mineMoney").then((function () {
-    return resolve(__webpack_require__(/*! ./component/mineMoney.vue */ 430));
+    return resolve(__webpack_require__(/*! ./component/mineMoney.vue */ 432));
   }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
 };
 var MallOrderForm = function MallOrderForm() {
   __webpack_require__.e(/*! require.ensure | pages/mine/component/mallOrderForm */ "pages/mine/component/mallOrderForm").then((function () {
-    return resolve(__webpack_require__(/*! ./component/mallOrderForm.vue */ 437));
+    return resolve(__webpack_require__(/*! ./component/mallOrderForm.vue */ 439));
   }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
 };
 var TeamFunction = function TeamFunction() {
   __webpack_require__.e(/*! require.ensure | pages/mine/component/teamFunction */ "pages/mine/component/teamFunction").then((function () {
-    return resolve(__webpack_require__(/*! ./component/teamFunction.vue */ 444));
+    return resolve(__webpack_require__(/*! ./component/teamFunction.vue */ 446));
   }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
 };
 var PersonalFunction = function PersonalFunction() {
   __webpack_require__.e(/*! require.ensure | pages/mine/component/personalFunction */ "pages/mine/component/personalFunction").then((function () {
-    return resolve(__webpack_require__(/*! ./component/personalFunction.vue */ 451));
+    return resolve(__webpack_require__(/*! ./component/personalFunction.vue */ 453));
   }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
 };
 var _default = {

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/shopping/shopping.js

@@ -99,7 +99,7 @@ var components
 try {
   components = {
     kjTabbar: function () {
-      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 424))
+      return Promise.all(/*! import() | components/kj-tabbar/kj-tabbar */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/kj-tabbar/kj-tabbar")]).then(__webpack_require__.bind(null, /*! @/components/kj-tabbar/kj-tabbar.vue */ 426))
     },
   }
 } catch (e) {

File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-badge/u-badge.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-checkbox-group/u-checkbox-group.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-checkbox/u-checkbox.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-icon/u-icon.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-loading-icon/u-loading-icon.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-navbar/u-navbar.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-safe-bottom/u-safe-bottom.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-status-bar/u-status-bar.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-subsection/u-subsection.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-swiper/u-swiper.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabbar-item/u-tabbar-item.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabbar/u-tabbar.js


File diff suppressed because it is too large
+ 5 - 5
unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabs/u-tabs.js


Some files were not shown because too many files changed in this diff