浏览代码

用户体系优化V1.0.0

zhengjinyi 5 年之前
父节点
当前提交
b3053368c2

+ 13 - 1
common/css/iconfont.scss

@@ -4,7 +4,7 @@
 	font-family: iconfont;
 	font-weight: normal;
 	font-style: normal;
-	src: url('https://at.alicdn.com/t/font_1519039_ubxdq0lvoxd.ttf') format('truetype');
+	src: url('https://at.alicdn.com/t/font_1519039_upect5g4aj.ttf') format('truetype');
 }
 .iconfont {
 	font-family: "iconfont" !important;
@@ -13,6 +13,18 @@
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
+.icon-iconfontguanbi:before {
+  content: "\e623";
+}
+
+.icon-iconfontweixin:before {
+  content: "\e635";
+}
+
+.icon-xiangxiajiantou:before {
+  content: "\e62b";
+}
+
 .icon-shuaxin:before {
   content: "\e622";
 }

+ 11 - 7
components/module/listTemplate/commodityList.vue

@@ -15,7 +15,7 @@
 						<view class="list-price" v-else>
 							<text>¥<text class="price-larger">{{item.retailPrice.toFixed(2)}}</text></text>
 						</view>
-						<button v-if="fromRegularPurchasePage" class="add-cart-btn" @click.stop="addCartNow(item.id, item.minBuyNumber)">加入购物车</button>
+						<button v-if="fromRegularPurchasePage" class="add-cart-btn" @click.stop="operationHanld(item)">选择数量</button>
 					</view>
 				</view>
 			</view>
@@ -170,6 +170,9 @@
 					}
 				)
 			},
+			operationHanld(prop){
+				this.$emit('operationConfim',prop)
+			},
 			addCartNow(productID, miniQuantity) {
 				this.$api.post('/details/addCart',
 					{
@@ -305,11 +308,12 @@
 			}
 		}
 		.add-cart-btn {
-			width: 144rpx;
-			height: 56rpx;
-			line-height: 56rpx;
+			width: 156rpx;
+			height: 64rpx;
+			line-height: 64rpx;
+			border-radius: 32rpx;
 			color: #fff;
-			font-size: 24rpx;
+			font-size: 26rpx;
 			margin-right: 0;
 			background:linear-gradient(45deg,rgba(255,41,41,1) 0%,rgba(255,109,27,1) 100%);
 		}
@@ -318,10 +322,10 @@
 		width: 92rpx;
 		height: 92rpx;
 		border-radius: 50%;
-		background: #E2E2E2;
+		background: rgba(255, 147, 0, 0.5);
 		position: fixed;
 		right: 24rpx;
-		bottom: 186rpx;
+		bottom: 30%;
 		display: flex;
 		align-items: center;
 		justify-content: center;

+ 12 - 13
pages.json

@@ -1,12 +1,11 @@
 {
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/user-module/register",
+			"path": "pages/user/operator/list",
 			"style": {
-				"navigationBarTitleText": "注册"
+				"navigationBarTitleText": "运营人员管理"
 			}
-		},
-		{
+		},{
 			"path": "pages/tabBar/home/home",
 			"style": {
 				"navigationBarTitleText": "采美采购商城",
@@ -182,14 +181,14 @@
 				"navigationBarTitleText": "登录"
 			}
 		},{
-			"path": "pages/user-module/password",
+			"path": "pages/user-module/register",
 			"style": {
-				"navigationBarTitleText": "修改密码"
+				"navigationBarTitleText": "注册"
 			}
 		},{
-			"path": "pages/user-module/apply",
+			"path": "pages/user-module/password",
 			"style": {
-				"navigationBarTitleText": "修改资料"
+				"navigationBarTitleText": "修改密码"
 			}
 		},{
 			"path": "pages/user-module/bindemail",
@@ -201,6 +200,11 @@
 			"style": {
 				"navigationBarTitleText": "绑定微信"
 			}
+		},{
+			"path": "pages/user-module/apply",
+			"style": {
+				"navigationBarTitleText": "修改申请资料"
+			}
 		},{
 			"path": "pages/user-module/information",
 			"style": {
@@ -211,11 +215,6 @@
 			"style": {
 				"navigationBarTitleText": "添加运营人员"
 			}
-		},{
-			"path": "pages/user/operator/list",
-			"style": {
-				"navigationBarTitleText": "运营人员管理"
-			}
 		},{
 			"path": "pages/user/setting/setting",
 			"style": {

+ 1 - 1
pages/goods/product.vue

@@ -307,7 +307,7 @@
 				isPreviewImg = true
 				let previewUrls = this.productImage
 				uni.previewImage({
-					current: index, //图片索引
+					current: index, 	//图片索引
 					urls: previewUrls, //必须是http图片,本地图片无效
 					longPressActions:''
 				})

+ 23 - 8
pages/tabBar/user/user.vue

@@ -2,7 +2,7 @@
 	<view class="container user clearfix">
 		<view class="user-section" :class="[!isShowNoLogin  ? 'show' : 'none']">
 			<view class="u-header">
-				<image src="https://img.caimei365.com/group1/M00/03/8C/Cmis215XHXSAbjn5AAltlmA1D20381.png" mode=""></image>
+				<image src="https://admin-b.caimei365.com/userfiles/1/images/photo/2020/03/%E6%88%91%E7%9A%84%20%E2%80%93%201%403x.png" mode=""></image>
 				<view class="u-header-main">
 					<view class="user-item">
 						<view class="logo-m">
@@ -76,20 +76,26 @@
 			<!-- 底部跳转 -->
 			<view class="foot-list">
 				<view class="list-cell-item">
-					<view class="list-cell" @click="navigator('/pages/user/account/account')" hover-class="cell-hover" :hover-stay-time="50">
-						<text class="cell-tit">账户余额明细</text>
+					<view class="list-cell"  v-for="(item, index) in firstList" :key="index" @click="navigator(item.path)" hover-class="cell-hover" :hover-stay-time="50">
+						<text class="cell-tit">{{item.name}}</text>
 						<text class="cell-more iconfont icon-xiayibu"></text>
 					</view>
-					<view class="list-cell" @click="navigator('/pages/user/invoice/invoice')" hover-class="cell-hover" :hover-stay-time="50">
-						<text class="cell-tit">发票信息</text>
+				</view>
+				<view class="list-cell-item">
+					<view class="list-cell"  v-for="(item, index) in twoList" :key="index" @click="navigator(item.path)" hover-class="cell-hover" :hover-stay-time="50">
+						<text class="cell-tit">{{item.name}}</text>
 						<text class="cell-more iconfont icon-xiayibu"></text>
 					</view>
+				</view>
+				<view class="list-cell-item">
 					<view class="list-cell" @click="navigator('/pages/user/regularPurchase/regularPurchase')" hover-class="cell-hover" :hover-stay-time="50">
 						<text class="cell-tit">再次购买</text>
 						<text class="cell-more iconfont icon-xiayibu"></text>
 					</view>
-					<view class="list-cell" @click="navigator('/pages/user/address/address')" hover-class="cell-hover" :hover-stay-time="50">
-						<text class="cell-tit">收货地址管理</text>
+				</view>
+				<view class="list-cell-item">
+					<view class="list-cell" @click="navigator('/pages/user/setting/setting')" hover-class="cell-hover" :hover-stay-time="50">
+						<text class="cell-tit">用户设置</text>
 						<text class="cell-more iconfont icon-xiayibu"></text>
 					</view>
 				</view>
@@ -136,7 +142,16 @@
 				waitShipmentsCount:0, //待收货角标
 				shipmentsCount:0,  //已发货角标
 				salesReturnCount:'',//退货/款角标
-				isShowNoLogin:false
+				isShowNoLogin:false,
+				firstList:[
+					{name:'运营人员管理',path:'/pages/user/operator/list'},
+					{name:'机构资料',path:'/pages/user-module/information'},
+					{name:'收货地址管理',path:'/pages/user/address/address'}
+				],
+				twoList:[
+					{name:'账户余额明细',path:'/pages/user/account/account'},
+					{name:'发票信息',path:'/pages/user/invoice/invoice'}
+				]
 			}
 		},
 		onLoad(){

+ 932 - 180
pages/user-module/apply.vue

@@ -1,51 +1,302 @@
 <template>
-	<view class="container login">
-		<view class="login-main">
-			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
-			<text class="logo-text">生美/医美采购服务平台</text>
-		</view>
-		<view class="login-input">
-			<input type="number" 
-				   v-model="invitationCode"  
-				   maxlength="6" 
-				   class="input" 
-				   placeholder="请输入邀请码"
-			/>
+	<view class="container register">
+		<view class="register-error clearfix">
+			<view class="error-top animation" @click="showOpenError" :class="{'error-top--none': isOpenError}" >
+				<view class="name">审核未通过原因:</view>
+				<view class="icon">{{isOpenError ? '' : '查看详情'}}<text class="iconfont icon-xiangxiajiantou" :class="{'icon-xiangxiajiantou-active':isOpenError}"></text></view>
+			</view>
+			<view class="error-main animation" :class="{'error-main--hide':!isOpenError}" 
+				:style="{'transform':isOpenError?'translateY(0)':'translateY(-50%)','-webkit-transform':isOpenError?'translateY(0)':'translateY(-50%)'}">
+				<view class="error-main-list">
+					<view class="item" v-for="(item, index) in errorList" :key="index">
+						<text class="num">{{index+1}}.</text>
+						<text>{{item.text}}</text>
+					</view>
+				</view>
+			</view>
 		</view>
-		<view class="login-btn"  @click="goLogin">登录</view>
-		<view v-if="isToast" class="model-warp" >
-			<view class="model-alert clearfix">
-				<view class="alert-content">
-					<view class="t-h1">{{toestText}}</view>
-					<view class="t-p">请联系客服获取{{alertText}}后再登录,联系电话{{telPhone}}</view>
+		<view class="register-main first clearfix">
+			<view class="register-row">
+				<view class="register-title">基本信息</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构名称:</view>
+					<input class="row-input" type="text" v-model="clubName" placeholder="请输入您的机构名称" maxlength="30"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">联系人:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请输入联系姓名" maxlength="6"/>
 				</view>
-				<view class="alert-btn">
-					<view class="btn btn-confirm" @click="hideToast">确定</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">手机号:</view>
+					<input class="row-input" type="number" v-model="registerEmail" placeholder="请输入手机号" maxlength="11"/>
+					<view class="row-btn" @click="showCheckPhone">{{isShowCheckPhone?'取消修改':'修改手机号'}}</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from code">
+					<input class="row-input" type="text" v-model="regEmailCode" placeholder="请输入上述手机号的验证码" maxlength="6"/>
+				</view>
+				<view class="register-from btn" :class="[isDisabled === true ? 'disabled' : 'none']">
+					<button class="row-input"  type="button" @click.stop="getEmailCode" :disabled="isDisabled">获取验证码</button>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from">
+					<input class="row-input" type="number" v-model="registerEmail" placeholder="请输入新手机号" maxlength="11"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from code">
+					<input class="row-input" type="text" v-model="regEmailCode" placeholder="请输入新手机号的验证码" maxlength="6"/>
+				</view>
+				<view class="register-from btn" :class="[isDisabled === true ? 'disabled' : 'none']">
+					<button class="row-input"  type="button" @click.stop="getEmailCode" :disabled="isDisabled">获取验证码</button>
 				</view>
 			</view>
 		</view>
-		<!-- 授权按钮 -->
-		<view class="model-warp" :class="[isUserInfo===false ? 'none':'show']">
-			<view class="model-alert">
-				<view class="alert-content">
-					<view class="t-p">采美采购商城需要获取您的微信授权才能正常提供服务</view>
+		<view class="register-main clearfix" >
+			<view class="register-row">
+				<view class="register-title">详细信息<text class="txt">(请尽量填写,有利于快速审核通过)</text></view>
+			</view>
+		</view>
+		<view class="register-main detailed clearfix">
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构简称:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请输入您的机构简称" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from"  @click="showMulLinkageThreePicker">
+					<view class="label">机构地址:</view>
+					<text class="row-input" :class="addressData.address === '请选择机构所在地区' ? 'none' : ''">
+						{{addressData.address}}
+					</text>		
+					<text class="iconfont icon-xiayibu"></text>
+				</view>
+			</view>
+			<view class="register-row text-textarea clearfix">
+				<view class="textarea show" v-if="isShowInput">{{addressData.addressDetail ? addressData.addressDetail :'详细地址:如道路、门牌号、小区等'}}</view>
+				<textarea 	v-else
+							class="textarea" 
+							type="text" 
+							v-model="addressData.addressDetail" 
+							placeholder="详细地址:如道路、门牌号、小区等" 
+							placeholder-class="placeholder"
+							maxlength="50"
+							@input="onTextareaInput"
+							:class="isShowInput ? '':''"
+				/>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">营业执照编号:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请填写社会统一信用代码" maxlength="16"/>
 				</view>
-				<view class="alert-btn">
-					<view class="btn btn-cancel" @click="hideModel">取消</view>
-					<button type="primary" size="small" open-type="getUserInfo" lang="zh_CN" @getuserinfo="getuserinfo" class="btn btn-confirm">授权</button>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">营业执照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadBusinessImage === ''"  @click="chooseBusinessImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadBusinessImage" mode="" @click="viewBusinessImage"></image>
+							<view class="upload-del" @click="delBusinessImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
 				</view>
 			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">门头照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMentuzImage === ''" @click="chooseMentuzImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMentuzImage" mode=""  @click="viewMentuzImage"></image>
+							<view class="upload-del" @click="delMentuzImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from picker">
+					<view class="label">机构类型:</view>
+					<picker @change="bindPickerChange" :value="index" :range="organizationTypeList" range-key="name">
+						<view class="row-input" :class="[isOrganizationType == 0 ? 'none' : '']">{{organizationTypeList[typtIndex].name}}</view>
+					</picker>
+					<text class="iconfont icon-xiayibu"></text>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from radio">
+					<radio-group @change="radioChange">
+						<label class="row-input" v-for="(item, index) in beautyList" :key="item.value">
+							<radio class="row-radio" :value="item.value" :checked="index === current" color="#E15616"/>
+							<view class="row-text">{{item.name}}</view>
+						</label>
+					</radio-group>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isDepartment">
+				<view class="register-from">
+					<view class="label">科室:</view>
+					<input class="row-input keshi" type="text" v-model="clubContact" placeholder="请填写经营的科室,至少三个,用逗号隔开" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-picture">
+					<view class="label zz">医疗执业许可证:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMedicalImage === ''" @click="chooseMedicalImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMedicalImage" mode=""  @click="viewMedicalImage"></image>
+							<view class="upload-del" @click="delMedicalImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLike" >
+						<label class="item" v-for="(item, index) in mentuzCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 2">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLikes">
+						<label class="item" v-for="(item, index) in medicaCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-fiexd clearfix">
+				<view class="register-agree">
+					<view class="agree-text"  @tap.stop="agreeCheck()">
+						<button class="checkbox iconfont" :class="[isCheck?'icon-gouxuan':'icon-weigouxuan']"></button> 
+						我已阅读并同意<text>《机构协议》</text><text>《用户协议》</text>及<text>《隐私权政策》</text>
+					</view>
+				</view>
+				<view class="register-row ">
+					<view class="register-btn sub">提交审核</view>
+				</view>
+			</view>
+			<mpvue-city-picker :themeColor="themeColor"
+								ref="mpvueCityPicker" 
+							    :pickerValueDefault="cityPickerValueDefault"
+								@onCancel="onCancel" 
+								@onConfirm="onConfirm">
+			</mpvue-city-picker>
 		</view>
 	</view>
 </template>
 
 <script>
 	import { mapMutations } from 'vuex';
+	import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'
+	import uniTag from '@/components/uni-tag/uni-tag.vue';
 	import authorize from '@/common/config/authorize.js' 
+	import configUrl from '@/common/config/config.js' 
 	var self;
 	export default{
+		components:{
+			uniTag,
+			mpvueCityPicker
+		},
 		data() {
 			return{
+				isOpenError:false,
+				errorList:[
+					{text:'图片模糊'},
+					{text:'营业执照错误'},
+					{text:'手机号码错误图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊'}
+				],
+				isDisabled:false,
+				isShowInput:false,
+				isCheck:true,		//勾选协议
+				uploadBusinessImage:'',
+				uploadMentuzImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
+				uploadMedicalImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
+				isOrganizationType:0,
+				organizationTypeList:[
+					{name:'请选择机构类型',value:0},
+					{name:'医美',value:1},
+					{name:'生美',value:2}
+				],
+				beautyList:[{value:'1',name:'诊所'},{value:'2',name:'门诊'},{value:'3',name:'医院'}],
+				mentuzCampList:[{value:'1',name:'整形'},{value:'2',name:'轻医美'},{value:'3',name:'皮肤科'}],
+				medicaCampList:[
+					{value:'1',name:'美容'},
+					{value:'2',name:'美体'},
+					{value:'3',name:'美发'},
+					{value:'4',name:'皮肤管理'},
+					{value:'5',name:'光电'},
+					{value:'6',name:'综合类'},
+					{value:'7',name:'中医养生'},
+					{value:'8',name:'spa'}
+				],
+				typtIndex:0,
+				organizationType:0,
+				current:0,
+				isShowCheckPhone:false,
+				isDepartment:false, //是否显示科室
+				isShowAustomItem:false, //是否显示其他添加
+				customItemValue:'', //自定义项目
 				invitationCode:'',  //获取用户登录的邀请码
 				isToast:false,		//控制显示未输入邀请码提示	
 				isUserInfo:false,	//控制显示授权弹窗
@@ -54,18 +305,28 @@
 				isSuccess:false,
 				toestText:'',
 				telPhone:'',
-				loginType:'',		//跳转类型
+				registerType:'',		//跳转类型
 				alertText:'',
 				listType: '',
 				listVal: '',
 				detilType:'',
-				id:''//商品ID
+				id:'',//商品ID
+				addressData:{
+					addressID:'',
+					address:'请选择机构所在地区',
+					userID: '',			//用户id ,只在新增收货地址时传
+					shouHuoRen: '',		//收货人
+					mobile:'',			//收货人手机
+					townID:'',			//区ID
+					addressDetail: '',	//地址
+					defaultFlag:0,		//是否默认收货地址(0 不是默认,1 默认)
+				},
 			}
 		},
 		onLoad(option) {
 			console.log(option)
 			self = this;
-			self.loginType = option.type;
+			self.registerType = option.type;
 			self.id = option.id
 			if(option.listType) {
 				self.listType = option.listType;
@@ -73,9 +334,9 @@
 			}
 		},
 		methods:{
-			...mapMutations(['login']),
-			goLogin() {
-				self.$api.get('/login/isEnabled',{userOrganizeID:self.userOrganizeID,invitationCode:self.invitationCode}, res => {
+			...mapMutations(['register']),
+			goregister() {
+				self.$api.get('/register/isEnabled',{userOrganizeID:self.userOrganizeID,invitationCode:self.invitationCode}, res => {
 					if (res.code == "1") {
 						//查看此微信用户是否已经授权过
 						authorize.getSetting().then(res =>{
@@ -108,183 +369,674 @@
 					}
 				})
 			},
-			//授权登录 
-			getuserinfo: function (e) {
-			    if (e.detail.userInfo) {
-					self.wxGetUserInfo()
-			    }else{
-					//用户按了拒绝按钮
-					uni.showModal({
-						content: '获取用户信息失败,请允许授权后才能继续使用小程序哦~',
-						showCancel: false,
-						confirmText: '授权',
-						success: function (res) {
-							 if (res.confirm) {
-								uni.openSetting({
-									 success: res => {
-										// console.log(res.authSetting)
-									 },
-									 fail: res => {
-										// console.log(res)
-									 }
-								})
-							 }
-						}
-					})
-			    }
-			 },
-			wxGetUserInfo(){
-				authorize.getCode('weixin').then(wechatcode =>{
-					wx.getUserInfo({
-						success: res => {
-							// console.log('useInfo:',res.userInfo)
-							self.userInfo = res.userInfo;
-							let params ={
-									code:wechatcode,
-									nickName:res.userInfo.nickName,
-									invitationCode:self.invitationCode,
-									userOrganizeID:self.userOrganizeID,
-								}
-							self.goUserLogininit(params);
-						}
-					});	
+			showOpenError(){
+				this.isOpenError = !this.isOpenError
+			},
+			// 三级联动选择
+			showMulLinkageThreePicker() {
+				this.isShowInput = true
+				this.$refs.mpvueCityPicker.show()
+			},
+			onConfirm(e) {
+				// console.log('地址',e);
+				this.addressData.address = e.name;
+				this.addressData.townID = e.cityCode;	
+			},	
+			bindPickerChange(e) {
+				console.log('picker发送选择改变,携带值为:' + e.target.value)
+				this.current=0
+				this.isDepartment = false
+				this.typtIndex = e.target.value
+				this.isOrganizationType = e.target.value
+			},
+			radioChange(e) {
+				let _value = e.target.value
+				if( _value == '2' || _value == '3'){
+					this.isDepartment = true
+				}else{
+					this.isDepartment = false
+				}
+				for (let i = 0; i < this.beautyList.length; i++) {
+					if (this.beautyList[i].value === _value) {
+						this.current = i;
+						break;
+					}
+				}
+			},
+			chooseMaleLike(e){
+				let items = this.mentuzCampList
+				let	values = e.detail.value
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					if(values.indexOf(item.value) >= 0){
+						this.$set(item,'checked',true)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+			},
+			chooseMaleLikes(e){
+				let items = this.medicaCampList
+				let	values = e.detail.value
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					if(values.indexOf(item.value) >= 0){
+						this.$set(item,'checked',true)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+			},
+			onTextareaInput(e){
+			   this.addressData.addressDetail = e.detail.value;
+			   // console.log(this.addressData.addressDetail)
+			},
+			chooseBusinessImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (data) {
+								console.log(data.data);
+								self.uploadBusinessImage = res.tempFilePaths
+							},
+							error : function(e){
+								 console.log(e);
+							}
+						})
+					},
+					
 				})
 			},
-			goUserLogininit(params){
-				self.$api.lodingGet('/login/register',params, response => {
-					// console.log(response)
-					if (response.code == "1") {
-						self.isUserInfo = false;
-						self.login(self.userInfo);
-						let user_key = {code:response.code,openid:response.data.openid,userID:response.data.userID}
-						uni.setStorageSync('cookieKey','JSESSIONID='+response.data.sessionId);
-						this.$store.commit('updateStatus',user_key)
-						let url;
-						if(self.loginType) {
-							if(self.loginType=='detilType'){
-								self.$api.redirectTo(`/pages/goods/product?id=${self.id}&page=2`);
-							}else if(self.loginType=='search'){
-								self.$api.redirectTo('/pages/search/search');
-							}else if(self.loginType == 1){
-								url ='/pages/tabBar/cart/cart'
-							}else if(self.loginType == 2){
-								url ='/pages/tabBar/user/user'
-							}else {
-								url ='/pages/tabBar/home/home'
+			chooseMentuzImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (res) {
+								console.log(res.data);
+								self.uploadMentuzImage = res.data
+							},
+							error : function(e){
+								 console.log(e);
 							}
-							uni.switchTab({
-								url
-							})
-						} else if(self.listType) {
-							self.$api.navToListPage({type:self.listType,value:self.listVal,lType:'4'});
-						}
-					} else {
-						this.$util.msg(response.msg,3000);
+						})
 					}
-				})
+				});
+			},
+			chooseMedicalImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (res) {
+								console.log(res.data);
+								self.uploadMedicalImage = res.data
+							},
+							error : function(e){
+								 console.log(e);
+							}
+						})
+					}
+				});
+			},
+			viewMentuzImage(e) {
+				let self = this
+				uni.previewImage({
+					urls: self.uploadMentuzImage,
+					current: e.currentTarget.dataset.url
+				});
+			},
+			viewBusinessImage(e) {
+				let self = this
+				uni.previewImage({
+					urls: self.uploadBusinessImage,
+					current: e.currentTarget.dataset.url
+				});
+			},
+			viewMedicalImage(e) {
+				let self = this
+				uni.previewImage({
+					urls: self.uploadMedicalImage,
+					current: e.currentTarget.dataset.url
+				});
 			},
-			//关闭未填邀请码弹窗
-			hideToast(){
-				self.isToast = false;
+			delBusinessImage(){
+				this.uploadBusinessImage = ''
 			},
-			//关闭未授权用户授权提示弹窗
-			hideModel(){
-				self.isUserInfo = false;
+			delMentuzImage(){
+				this.uploadMentuzImage = ''
+			},			
+			delMedicalImage(){
+				this.uploadMedicalImage = ''
+			},
+			agreeCheck() {
+				this.isCheck = !this.isCheck
+			},
+			onBlurInput(e){//
+				if(e.detail.value ===''){
+					this.isDisabled = true
+				}else{
+					this.isDisabled = false
+				}
+			},
+			getEmailCode(){
+				this.isDisabled = true
+			},
+			showAustomItem() {
+				this.isShowAustomItem = !this.isShowAustomItem
+			},
+			addCustomItem(){
+				if(this.isOrganizationType == 1){
+					let item = {value:`${this.mentuzCampList.length+1}`,name:this.customItemValue}
+					this.mentuzCampList.push(item)
+				}else{
+					let item = {value:`${this.medicaCampList.length+1}`,name:this.customItemValue}
+					this.medicaCampList.push(item)
+				}
+			},
+			showCheckPhone(){
+				this.isShowCheckPhone = !this.isShowCheckPhone
 			}
 		}
 	}
 </script>
 
 <style lang="scss">
-	.login{
+	.register{
 		width: 100%;
 		height: auto;
+		border-top: 1px solid #F7F7F7;
 		.model-warp.none{
 			display: none;			
 		}
 		.model-warp.show{
 			display: block;
 		}
-		.login-main{
+		.register-error{
 			width: 100%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			height: 198rpx;
-			padding: 170rpx 0 60rpx 0;
-			.logo{
-				width: 138rpx;
-				height: 118rpx;
-				display: block;
+			height: auto;
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: 999;
+			.error-top{
+				width: 702rpx;
+				padding: 0 24rpx;
+				height: 90rpx;
+				line-height: 90rpx;
+				background: #FF0000;
+				&.error-top--none{
+					background:#FFFFFF;
+					.name{
+						color: #333333;
+					}
+					.icon{
+						color: #333333;
+					}
+				}
+				.name{
+					font-size: $font-size-lg;
+					color: #FFFFFF;
+					float: left;
+				}
+				.icon{
+					float: right;
+					font-size: $font-size-lg;
+					color: #FFFFFF;
+				}
+				.icon-xiangxiajiantou{
+					transform: rotate(0deg);
+					transform-origin: center center;
+					float: right;
+					font-size: $font-size-lg;
+					color: #FFFFFF;
+					/* transition: transform 0.3s ease;*/
+					transition-property: transform;
+					transition-duration: 0.3s;
+					transition-timing-function: ease;
+					margin-left: 10rpx;
+				}
+				.icon-xiangxiajiantou-active{
+					transform: rotate(180deg);
+					color: #333333;
+				}
 			}
-			.logo-text{
-				font-size: 30rpx;
-				line-height: 44rpx;
-				color: $color-system;
-				font-weight: 600;
-				margin-top: 20rpx;
+			.animation{
+				/* transition: transform 0.3s ease;*/
+				transition-property: transform;
+				transition-duration: 0.2s;
+				transition-timing-function: ease;
 			}
-		}
-		.login-input{
-			width: 654rpx;
-			height: 40rpx;
-			padding: 24rpx;
-			margin: 0 auto;
-			margin-bottom: 60rpx;
-			background: #F7F7F7;
-			border-radius: 14rpx;
-			.input{
-				width: 100%;
-				height: 100%;
-				background: #F7F7F7;
-				font-size: $font-size-base;
-				line-height: 40rpx;
-				color: #333333;
-				border-radius: 14rpx;
+			.error-main{
+				width: 702rpx;
+				height: auto;
+				padding: 24rpx;
+				border-top: 1px solid #F7F7F7;
+				overflow: hidden;
+				background: #FFFFFF;
+				.error-main-list{
+					width:100% ;
+					height: auto;
+					background: #FFFFFF;
+					.item{
+						height: auto;
+						line-height: 60rpx;
+						font-size: $font-size-base;
+						color: #FF0000;
+						.num{
+							margin-right: 10rpx;
+						}
+					}
+				}
 			}
+			.error-main--hide {
+				padding: 0 0;
+				height: 0px;
+				line-height: 0px;
+			}		
 		}
-		.login-btn{
-			width: 702rpx;
-			height: 88rpx;
-			border-radius: 14rpx;
-			font-size: $font-size-base;
-			line-height: 88rpx;
-			color: #FFFFFF;
-			margin: 0 auto;
-			text-align: center;
-			background: $btn-confirm;
-		}
-		.model-authorization{
+		.register-main{
 			width: 100%;
-			height: 100%;
-			position: fixed;
-			top: 0;
-			left: 0;
-			z-index: 999;
-			.authorization{
-				width: 518rpx;
-				height: 320rpx;
-				position: absolute;
-				background: rgba(255,255,255,.7);
-				left: 0;
-				right: 0;
-				bottom: 0;
-				top: 0;
-				margin: auto;
-				.to-btn{
+			height: auto;
+			&.detailed{
+				padding-bottom: 300rpx;
+			}
+			&.first{
+				padding-top: 110rpx;
+			}
+			.register-tips{
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				line-height: 44rpx;
+				font-size: $font-size-sm;
+				color: #FF0000;
+				margin-bottom: 40rpx;
+				.iconfont{
+					font-size: $font-size-sm;
+				}
+			}
+			.register-row{
+				width: 702rpx;
+				height: auto;
+				padding: 0 24rpx;
+				margin-bottom: 20rpx;
+				.register-title{
+					line-height: 60rpx;
+					font-size: $font-size-lg;
+					color: $text-color;
+					text-align: left;
+					padding-left: 20rpx;
+					.txt{
+						font-size: $font-size-sb;
+					}
+				}
+				.row-btn{
 					position: absolute;
+					right: 24rpx;
 					top: 0;
-					left: 0;
-					right: 0;
-					bottom: 0;
-					margin: auto;
-					width: 70%;
-					height: 88rpx;
+					line-height: 88rpx;
+					text-align: center;
 					font-size: $font-size-base;
+					color: $color-system;
+				}
+				.register-from{
+					width: 654rpx;
+					height: 40rpx;
+					padding: 24rpx;
+					background: $sub-bg-color;
+					border-radius: 14rpx;
+					position: relative;
+					.label{
+						text-align: left;
+						font-size: $font-size-base;
+						color: #666666;
+						line-height: 40rpx;
+						float: left;
+					}
+					.row-input{
+						width: 440rpx;
+						padding-left:10rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+						height: 40rpx;
+						&.none{
+							color: #999999;
+						}
+						&.keshi{
+							width: 550rpx;
+						}
+					}
+					&.code{
+						width: 410rpx;
+						float: left;
+						margin-right: 20rpx;
+						.row-input{
+							width: 390rpx;
+						}
+					}
+					&.btn{
+						width: 176rpx;
+						float: left;
+						.row-input{
+							width: 176rpx;
+							padding: 0;
+							background: #F7F7F7;
+							text-align: center;
+						}
+						&.none{
+							background: $btn-confirm;
+							.row-input{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+						}
+						&.disabled{
+							.row-input{
+								color: #999999;
+							}
+						}
+					}
+					&.picker{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 88rpx;
+						line-height: 88rpx;
+						.label{
+							line-height: 88rpx;
+						}
+						.row-input{
+							width: 470rpx;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 30rpx;
+						}
+					}
+					&.radio{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 288rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.group{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: auto;
+						background: #FFFFFF;
+						margin-top: 30rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.btn{
+						margin-top: 0;
+					}
+					.content-class {
+						width: 520rpx;
+						margin: 20rpx auto;
+						display: flex;
+						flex-flow: row wrap;
+						justify-content: space-between;
+						&.btn{
+							margin: 0 auto;
+							margin-left: 126rpx;
+						}
+						.row-input{
+							display: flex;
+							width: 220rpx;
+							height: 40rpx;
+							padding: 24rpx;
+							text-align: left;
+							border-radius: 10rpx;
+							font-size: $font-size-base;
+							color: $text-color;
+						}
+						.confirm-btn{
+							width: 200rpx;
+							height: 88rpx;
+							border-radius: 10rpx;
+							line-height: 88rpx;
+							text-align: center;
+							&.none{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+							&.disabled{
+								color: #999999;
+							}
+						}
+						.item {
+						  width: 156rpx;
+						  height: 60rpx;
+						  font-size:$font-size-base;
+						  line-height: 60rpx;
+						  border-radius:10rpx;
+						  margin-bottom: 20rpx;
+						  text-align: center;
+						  box-sizing: border-box;
+						  border: 1rpx solid #EFEFEF;
+						  checkbox {
+							display: none;
+						  }
+						}
+						.on {
+						  border-color: $color-system;
+						  color:$color-system;
+						}
+					}
+				}
+				.icon-xiayibu{
+					width: 88rpx;
+					height: 88rpx;
+					position: absolute;
+					right: 0;
+					top: 0;
 					line-height: 88rpx;
-					color: #FFFFFF;
 					text-align: center;
-					border-radius: 44rpx;
+				}
+				&.text-textarea{
+					background: #FFFFFF;
+					.textarea{
+						width: 654rpx;
+						height: 180rpx;
+						background: #F7F7F7;
+						padding: 24rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						z-index: 1;
+						border-radius: 14rpx;
+					}
+					.textarea.hide{
+						opacity: 0;
+					}
+					.textarea.show{
+						color: #999999;
+					}
+				}
+			}
+			.register-picture{
+				height: 102rpx;
+				margin: 40rpx 0 0 0;
+				.label{
+					float: left;
+					font-size: $font-size-base;
+					color: $text-color;
+					line-height: 102rpx;
+					width: 150rpx;
+					text-align: right;
+					&.zz{
+						width: 230rpx;
+					}
+				}
+				.upload-picture{
+					float: left;
+					height: 100rpx;
+					.upload-none{
+						width: 100rpx;
+						height: 100rpx;
+						text-align: center;
+						line-height: 100rpx;
+						color: #999999;
+						border: 1px solid #999999;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						.iconfont{
+							font-size: $font-size-base;
+						}
+					}
+					.upload-image{
+						width: 100rpx;
+						height: 100rpx;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						position: relative;
+						image{
+							width: 100rpx;
+							height: 100rpx;
+							border-radius: 10rpx;
+						}
+						.upload-del{
+							width: 40rpx;
+							height: 40rpx;
+							position: absolute;
+							top: -20rpx;
+							right: -20rpx;
+							line-height: 40rpx;
+							text-align: center;
+							.iconfont{
+								font-size: $font-size-lg;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+			.register-input{
+				width: 654rpx;
+				height: 40rpx;
+				padding: 24rpx;
+				margin: 0 auto;
+				margin-bottom: 60rpx;
+				background: #F7F7F7;
+				border-radius: 14rpx;
+				.input{
+					width: 100%;
+					height: 100%;
+					background: #F7F7F7;
+					font-size: $font-size-base;
+					line-height: 40rpx;
+					color: #333333;
+					border-radius: 14rpx;
+				}
+			}
+			.register-fiexd{
+				width: 100%;
+				height: auto;
+				padding: 20rpx 0;
+				position: fixed;
+				bottom: 0;
+				left: 0;
+				z-index: 99;
+				background: #FFFFFF;
+				.register-agree{
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					margin: 32rpx 0;
+					.agree-text{
+						.checkbox{
+							float: left;
+							margin: 4rpx 6rpx 0 0;
+							color: #999999;
+							font-size: $font-size-lg;
+							&.icon-gouxuan{
+								color: $color-system;
+							}
+						}
+						font-size: 20rpx;
+						line-height: 44rpx;
+						color: #999999;
+						text{
+							color:#0091FF;
+						}
+					}
+				}
+			}
+			.register-btn{
+				width: 702rpx;
+				height: 88rpx;
+				border-radius: 14rpx;
+				font-size: $font-size-base;
+				line-height: 88rpx;
+				color: #FFFFFF;
+				margin: 0 auto;
+				text-align: center;
+				background: $btn-confirm;
+				margin-top: 96rpx;
+				&.none{
+					background: #FFFFFF;
+					color: $text-color;
+					margin-top: 0;
+				}
+				&.sub{
+					margin-top: 0;
 				}
 			}
 		}

+ 2 - 2
pages/user-module/bindemail.vue

@@ -194,10 +194,10 @@
 					width: 210rpx;
 					float: left;
 					&.none{
-						background: $color-system;
+						background: $btn-confirm;
 						.input{
 							color: #FFFFFF;
-							background: $color-system;
+							background: $btn-confirm;
 						}
 					}
 					&.disabled{

+ 886 - 181
pages/user-module/information.vue

@@ -1,51 +1,322 @@
 <template>
-	<view class="container login">
-		<view class="login-main">
-			<image class="logo" src="../../static/login-logo@3x.png" mode=""></image>
-			<text class="logo-text">生美/医美采购服务平台</text>
+	<view class="container register">
+		<view class="register-main first clearfix">
+			<view class="register-row">
+				<view class="register-title">账户信息</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">邮箱:</view>
+					<view class="row-input">369321048@qq.com</view>
+				</view>
+			</view>
+			<view class="register-row">
+				<view class="register-title">基本信息</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构名称:</view>
+					<input class="row-input" type="text" v-model="clubName" placeholder="请输入您的机构名称" maxlength="30"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">联系人:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请输入联系姓名" maxlength="6"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">手机号:</view>
+					<input class="row-input" type="number" v-model="registerEmail" placeholder="请输入手机号" maxlength="11"/>
+					<view class="row-btn" @click="showCheckPhone">{{isShowCheckPhone?'取消修改':'修改手机号'}}</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from code">
+					<input class="row-input" type="text" v-model="regEmailCode" placeholder="请输入上述手机号的验证码" maxlength="6"/>
+				</view>
+				<view class="register-from btn" :class="[isDisabled ? 'disabled' : 'none']">
+					<button class="row-input"  type="button" @click.stop="getEmailCode" :disabled="isDisabled">获取验证码</button>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from">
+					<input class="row-input" type="number" v-model="registerEmail" placeholder="请输入新手机号" maxlength="11"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isShowCheckPhone">
+				<view class="register-from code">
+					<input class="row-input" type="text" v-model="regEmailCode" placeholder="请输入新手机号的验证码" maxlength="6"/>
+				</view>
+				<view class="register-from btn" :class="[isDisabled ? 'disabled' : 'none']">
+					<button class="row-input"  type="button" @click.stop="getEmailCode" :disabled="isDisabled">获取验证码</button>
+				</view>
+			</view>
 		</view>
-		<view class="login-input">
-			<input type="number" 
-				   v-model="invitationCode"  
-				   maxlength="6" 
-				   class="input" 
-				   placeholder="请输入邀请码"
-			/>
+		<view class="register-main clearfix" >
+			<view class="register-row">
+				<view class="register-title">详细信息<text class="txt">(请尽量填写,有利于快速审核通过)</text></view>
+			</view>
 		</view>
-		<view class="login-btn"  @click="goLogin">登录</view>
-		<view v-if="isToast" class="model-warp" >
-			<view class="model-alert clearfix">
-				<view class="alert-content">
-					<view class="t-h1">{{toestText}}</view>
-					<view class="t-p">请联系客服获取{{alertText}}后再登录,联系电话{{telPhone}}</view>
+		<view class="register-main detailed clearfix">
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">机构简称:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请输入您的机构简称" maxlength="16"/>
 				</view>
-				<view class="alert-btn">
-					<view class="btn btn-confirm" @click="hideToast">确定</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from"  @click="showMulLinkageThreePicker">
+					<view class="label">机构地址:</view>
+					<text class="row-input" :class="addressData.address === '请选择机构所在地区' ? 'none' : ''">
+						{{addressData.address}}
+					</text>		
+					<text class="iconfont icon-xiayibu"></text>
 				</view>
 			</view>
-		</view>
-		<!-- 授权按钮 -->
-		<view class="model-warp" :class="[isUserInfo===false ? 'none':'show']">
-			<view class="model-alert">
-				<view class="alert-content">
-					<view class="t-p">采美采购商城需要获取您的微信授权才能正常提供服务</view>
+			<view class="register-row text-textarea clearfix">
+				<view class="textarea show" v-if="isShowInput">{{addressData.addressDetail ? addressData.addressDetail :'详细地址:如道路、门牌号、小区等'}}</view>
+				<textarea 	v-else
+							class="textarea" 
+							type="text" 
+							v-model="addressData.addressDetail" 
+							placeholder="详细地址:如道路、门牌号、小区等" 
+							placeholder-class="placeholder"
+							maxlength="50"
+							@input="onTextareaInput"
+							:class="isShowInput ? '':''"
+				/>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">营业执照编号:</view>
+					<input class="row-input" type="text" v-model="clubContact" placeholder="请填写社会统一信用代码" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">营业执照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadBusinessImage === ''"  @click="chooseBusinessImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadBusinessImage" mode="" @click="viewBusinessImage"></image>
+							<view class="upload-del" @click="delBusinessImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-picture">
+					<view class="label">门头照:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMentuzImage === ''" @click="chooseMentuzImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMentuzImage" mode=""  @click="viewMentuzImage"></image>
+							<view class="upload-del" @click="delMentuzImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from picker">
+					<view class="label">机构类型:</view>
+					<picker @change="bindPickerChange" :value="index" :range="organizationTypeList" range-key="name">
+						<view class="row-input" :class="[isOrganizationType == 0 ? 'none' : '']">{{organizationTypeList[typtIndex].name}}</view>
+					</picker>
+					<text class="iconfont icon-xiayibu"></text>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from radio">
+					<radio-group @change="radioChange">
+						<label class="row-input" v-for="(item, index) in beautyList" :key="item.value">
+							<radio class="row-radio" :value="item.value" :checked="index === current" color="#E15616"/>
+							<view class="row-text">{{item.name}}</view>
+						</label>
+					</radio-group>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-show="isDepartment">
+				<view class="register-from">
+					<view class="label">科室:</view>
+					<input class="row-input keshi" type="text" v-model="clubContact" placeholder="请填写经营的科室,至少三个,用逗号隔开" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-picture">
+					<view class="label zz">医疗执业许可证:</view>
+					<view class="upload-picture">
+						<view class="upload-none" v-if="uploadMedicalImage === ''" @click="chooseMedicalImage"><text class="iconfont icon-jiahao"></text></view>
+						<view class="upload-image" v-else>
+							<image :src="uploadMedicalImage" mode=""  @click="viewMedicalImage"></image>
+							<view class="upload-del" @click="delMedicalImage">
+								<text class='iconfont icon-shanchu1'></text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLike" >
+						<label class="item" v-for="(item, index) in mentuzCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 2">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
+					<checkbox-group class="content-class" @change="chooseMaleLikes">
+						<label class="item" v-for="(item, index) in medicaCampList" :key="index" :class="{on: item.checked}">
+						   <checkbox :value="item.value"></checkbox>
+						   <text class="item-text">{{item.name}}</text>
+						</label>
+				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">固定电话:</view>
+					<input class="row-input" type="text" v-model="clubName" placeholder="请填写机构的固定电话" maxlength="15"/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from">
+					<view class="label">传真:</view>
+					<input class="row-input" type="text" v-model="clubName" placeholder="请填写机构的传真" maxlength="15"/>
+				</view>
+			</view>
+			<view class="register-row text-textarea clearfix">
+				<view class="textarea show" v-if="isCompanyPprofile" @click="showTextarea">{{'请填写公司简介,最多500字'}}</view>
+				<textarea 	v-else
+							class="textarea" 
+							type="text" 
+							v-model="companyPprofile" 
+							placeholder="请填写公司简介,最多500字" 
+							placeholder-class="placeholder"
+							maxlength="500"
+							@input="onTextareaInput"
+							:class="isShowInput ? '':''"
+				/>
+			</view>
+			<view class="register-fiexd clearfix">
+				<view class="register-agree">
+					<view class="agree-text"  @tap.stop="agreeCheck()">
+						<button class="checkbox iconfont" :class="[isCheck?'icon-gouxuan':'icon-weigouxuan']"></button> 
+						我已阅读并同意<text>《机构协议》</text><text>《用户协议》</text>及<text>《隐私权政策》</text>
+					</view>
 				</view>
-				<view class="alert-btn">
-					<view class="btn btn-cancel" @click="hideModel">取消</view>
-					<button type="primary" size="small" open-type="getUserInfo" lang="zh_CN" @getuserinfo="getuserinfo" class="btn btn-confirm">授权</button>
+				<view class="register-row ">
+					<view class="register-btn sub">提交审核</view>
 				</view>
 			</view>
+			<mpvue-city-picker :themeColor="themeColor"
+								ref="mpvueCityPicker" 
+							    :pickerValueDefault="cityPickerValueDefault"
+								@onCancel="onCancel" 
+								@onConfirm="onConfirm">
+			</mpvue-city-picker>
 		</view>
 	</view>
 </template>
 
 <script>
 	import { mapMutations } from 'vuex';
+	import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'
+	import uniTag from '@/components/uni-tag/uni-tag.vue';
 	import authorize from '@/common/config/authorize.js' 
+	import configUrl from '@/common/config/config.js' 
 	var self;
 	export default{
+		components:{
+			uniTag,
+			mpvueCityPicker
+		},
 		data() {
 			return{
+				isOpenError:false,
+				errorList:[
+					{text:'图片模糊'},
+					{text:'营业执照错误'},
+					{text:'手机号码错误图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊图片模糊'}
+				],
+				isDisabled:true,
+				isShowInput:false,
+				isCheck:true,		//勾选协议
+				uploadBusinessImage:'',
+				uploadMentuzImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
+				uploadMedicalImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
+				isOrganizationType:0,
+				organizationTypeList:[
+					{name:'请选择机构类型',value:0},
+					{name:'医美',value:1},
+					{name:'生美',value:2}
+				],
+				beautyList:[{value:'1',name:'诊所'},{value:'2',name:'门诊'},{value:'3',name:'医院'}],
+				mentuzCampList:[{value:'1',name:'整形'},{value:'2',name:'轻医美'},{value:'3',name:'皮肤科'}],
+				medicaCampList:[
+					{value:'1',name:'美容'},
+					{value:'2',name:'美体'},
+					{value:'3',name:'美发'},
+					{value:'4',name:'皮肤管理'},
+					{value:'5',name:'光电'},
+					{value:'6',name:'综合类'},
+					{value:'7',name:'中医养生'},
+					{value:'8',name:'spa'}
+				],
+				typtIndex:0,
+				organizationType:0,
+				current:0,
+				isShowCheckPhone:false,
+				isDepartment:false, //是否显示科室
+				isShowAustomItem:false, //是否显示其他添加
+				customItemValue:'', //自定义项目
+				isCompanyPprofile:true,
 				invitationCode:'',  //获取用户登录的邀请码
 				isToast:false,		//控制显示未输入邀请码提示	
 				isUserInfo:false,	//控制显示授权弹窗
@@ -54,18 +325,28 @@
 				isSuccess:false,
 				toestText:'',
 				telPhone:'',
-				loginType:'',		//跳转类型
+				registerType:'',		//跳转类型
 				alertText:'',
 				listType: '',
 				listVal: '',
 				detilType:'',
-				id:''//商品ID
+				id:'',//商品ID
+				addressData:{
+					addressID:'',
+					address:'请选择机构所在地区',
+					userID: '',			//用户id ,只在新增收货地址时传
+					shouHuoRen: '',		//收货人
+					mobile:'',			//收货人手机
+					townID:'',			//区ID
+					addressDetail: '',	//地址
+					defaultFlag:0,		//是否默认收货地址(0 不是默认,1 默认)
+				},
 			}
 		},
 		onLoad(option) {
 			console.log(option)
 			self = this;
-			self.loginType = option.type;
+			self.registerType = option.type;
 			self.id = option.id
 			if(option.listType) {
 				self.listType = option.listType;
@@ -73,9 +354,9 @@
 			}
 		},
 		methods:{
-			...mapMutations(['login']),
-			goLogin() {
-				self.$api.get('/login/isEnabled',{userOrganizeID:self.userOrganizeID,invitationCode:self.invitationCode}, res => {
+			...mapMutations(['register']),
+			goregister() {
+				self.$api.get('/register/isEnabled',{userOrganizeID:self.userOrganizeID,invitationCode:self.invitationCode}, res => {
 					if (res.code == "1") {
 						//查看此微信用户是否已经授权过
 						authorize.getSetting().then(res =>{
@@ -108,183 +389,607 @@
 					}
 				})
 			},
-			//授权登录 
-			getuserinfo: function (e) {
-			    if (e.detail.userInfo) {
-					self.wxGetUserInfo()
-			    }else{
-					//用户按了拒绝按钮
-					uni.showModal({
-						content: '获取用户信息失败,请允许授权后才能继续使用小程序哦~',
-						showCancel: false,
-						confirmText: '授权',
-						success: function (res) {
-							 if (res.confirm) {
-								uni.openSetting({
-									 success: res => {
-										// console.log(res.authSetting)
-									 },
-									 fail: res => {
-										// console.log(res)
-									 }
-								})
-							 }
-						}
-					})
-			    }
-			 },
-			wxGetUserInfo(){
-				authorize.getCode('weixin').then(wechatcode =>{
-					wx.getUserInfo({
-						success: res => {
-							// console.log('useInfo:',res.userInfo)
-							self.userInfo = res.userInfo;
-							let params ={
-									code:wechatcode,
-									nickName:res.userInfo.nickName,
-									invitationCode:self.invitationCode,
-									userOrganizeID:self.userOrganizeID,
-								}
-							self.goUserLogininit(params);
-						}
-					});	
+			showOpenError(){
+				this.isOpenError = !this.isOpenError
+			},
+			// 三级联动选择
+			showMulLinkageThreePicker() {
+				this.isShowInput = true
+				this.$refs.mpvueCityPicker.show()
+			},
+			onConfirm(e) {
+				// console.log('地址',e);
+				this.addressData.address = e.name;
+				this.addressData.townID = e.cityCode;	
+			},	
+			bindPickerChange(e) {
+				console.log('picker发送选择改变,携带值为:' + e.target.value)
+				this.current=0
+				this.isDepartment = false
+				this.typtIndex = e.target.value
+				this.isOrganizationType = e.target.value
+			},
+			radioChange(e) {
+				let _value = e.target.value
+				if( _value == '2' || _value == '3'){
+					this.isDepartment = true
+				}else{
+					this.isDepartment = false
+				}
+				for (let i = 0; i < this.beautyList.length; i++) {
+					if (this.beautyList[i].value === _value) {
+						this.current = i;
+						break;
+					}
+				}
+			},
+			chooseMaleLike(e){
+				let items = this.mentuzCampList
+				let	values = e.detail.value
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					if(values.indexOf(item.value) >= 0){
+						this.$set(item,'checked',true)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+			},
+			chooseMaleLikes(e){
+				let items = this.medicaCampList
+				let	values = e.detail.value
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					if(values.indexOf(item.value) >= 0){
+						this.$set(item,'checked',true)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+			},
+			onTextareaInput(e){
+			   this.addressData.addressDetail = e.detail.value;
+			   // console.log(this.addressData.addressDetail)
+			},
+			chooseBusinessImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (data) {
+								console.log(data.data);
+								self.uploadBusinessImage = res.tempFilePaths
+							},
+							error : function(e){
+								 console.log(e);
+							}
+						})
+					},
+					
 				})
 			},
-			goUserLogininit(params){
-				self.$api.lodingGet('/login/register',params, response => {
-					// console.log(response)
-					if (response.code == "1") {
-						self.isUserInfo = false;
-						self.login(self.userInfo);
-						let user_key = {code:response.code,openid:response.data.openid,userID:response.data.userID}
-						uni.setStorageSync('cookieKey','JSESSIONID='+response.data.sessionId);
-						this.$store.commit('updateStatus',user_key)
-						let url;
-						if(self.loginType) {
-							if(self.loginType=='detilType'){
-								self.$api.redirectTo(`/pages/goods/product?id=${self.id}&page=2`);
-							}else if(self.loginType=='search'){
-								self.$api.redirectTo('/pages/search/search');
-							}else if(self.loginType == 1){
-								url ='/pages/tabBar/cart/cart'
-							}else if(self.loginType == 2){
-								url ='/pages/tabBar/user/user'
-							}else {
-								url ='/pages/tabBar/home/home'
+			chooseMentuzImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (res) {
+								console.log(res.data);
+								self.uploadMentuzImage = res.data
+							},
+							error : function(e){
+								 console.log(e);
 							}
-							uni.switchTab({
-								url
-							})
-						} else if(self.listType) {
-							self.$api.navToListPage({type:self.listType,value:self.listVal,lType:'4'});
-						}
-					} else {
-						this.$util.msg(response.msg,3000);
+						})
+					}
+				});
+			},
+			chooseMedicalImage() {
+				let self = this;
+				uni.chooseImage({
+					count: 1, //默认1
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album','camera'], //从相册选择
+					success: (res) => {
+						const tempFilePaths = res.tempFilePaths;
+						const uploadTask = uni.uploadFile({
+							url : 'https://mall-b.caimei365.com/formData/MultiPictareaddData',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'user': 'test'
+							},
+							success: function (res) {
+								console.log(res.data);
+								self.uploadMedicalImage = res.data
+							},
+							error : function(e){
+								 console.log(e);
+							}
+						})
 					}
+				});
+			},
+			viewMentuzImage(e) {
+				let self = this
+				let mentuzArray = []
+				mentuzArray.push(self.uploadMentuzImage)
+				uni.previewImage({
+					urls: mentuzArray,
+					current: 0
+				});
+			},
+			viewBusinessImage(e) {
+				let self = this
+				let businessArray = []
+				businessArray.push(self.uploadBusinessImage)
+				uni.previewImage({
+					urls: businessArray,
+					current: 0
+				});
+			},
+			viewMedicalImage(e) {
+				let self = this
+				let medicalArray = []
+				medicalArray.push(self.uploadMedicalImage)
+				uni.previewImage({
+					urls: self.medicalArray,
+					current: 0
+				});
+			},
+			delBusinessImage(){
+				this.$util.modal('提示','确定删除营业执照图片吗?',true,() =>{
+					 this.uploadBusinessImage = ''
+				})
+			},
+			delMentuzImage(){
+				this.$util.modal('提示','确定删除门头照图片吗?',true,() =>{
+					this.uploadMentuzImage = ''
+				})
+			},			
+			delMedicalImage(){
+				this.$util.modal('提示','确定删除资质图片吗?',true,() =>{
+					this.uploadMedicalImage = ''
 				})
 			},
-			//关闭未填邀请码弹窗
-			hideToast(){
-				self.isToast = false;
+			agreeCheck() {
+				this.isCheck = !this.isCheck
+			},
+			onBlurInput(e){//
+				if(e.detail.value ===''){
+					this.isDisabled = true
+				}else{
+					this.isDisabled = false
+				}
+			},
+			getEmailCode(){
+				this.isDisabled = true
+			},
+			showAustomItem() {
+				this.isShowAustomItem = !this.isShowAustomItem
 			},
-			//关闭未授权用户授权提示弹窗
-			hideModel(){
-				self.isUserInfo = false;
+			addCustomItem(){
+				if(this.isOrganizationType == 1){
+					let item = {value:`${this.mentuzCampList.length+1}`,name:this.customItemValue}
+					this.mentuzCampList.push(item)
+				}else{
+					let item = {value:`${this.medicaCampList.length+1}`,name:this.customItemValue}
+					this.medicaCampList.push(item)
+				}
+			},
+			showTextarea() {
+				this.isCompanyPprofile = false
+			},
+			showCheckPhone(){
+				this.isShowCheckPhone = !this.isShowCheckPhone
 			}
 		}
 	}
 </script>
 
 <style lang="scss">
-	.login{
+	.register{
 		width: 100%;
 		height: auto;
+		border-top: 1px solid #F7F7F7;
 		.model-warp.none{
 			display: none;			
 		}
 		.model-warp.show{
 			display: block;
 		}
-		.login-main{
+		.register-main{
 			width: 100%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			height: 198rpx;
-			padding: 170rpx 0 60rpx 0;
-			.logo{
-				width: 138rpx;
-				height: 118rpx;
-				display: block;
+			height: auto;
+			&.detailed{
+				padding-bottom: 300rpx;
 			}
-			.logo-text{
-				font-size: 30rpx;
-				line-height: 44rpx;
-				color: $color-system;
-				font-weight: 600;
-				margin-top: 20rpx;
+			&.first{
+				padding-top: 40rpx;
 			}
-		}
-		.login-input{
-			width: 654rpx;
-			height: 40rpx;
-			padding: 24rpx;
-			margin: 0 auto;
-			margin-bottom: 60rpx;
-			background: #F7F7F7;
-			border-radius: 14rpx;
-			.input{
-				width: 100%;
-				height: 100%;
-				background: #F7F7F7;
-				font-size: $font-size-base;
-				line-height: 40rpx;
-				color: #333333;
-				border-radius: 14rpx;
+			.register-tips{
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				line-height: 44rpx;
+				font-size: $font-size-sm;
+				color: #FF0000;
+				margin-bottom: 40rpx;
+				.iconfont{
+					font-size: $font-size-sm;
+				}
 			}
-		}
-		.login-btn{
-			width: 702rpx;
-			height: 88rpx;
-			border-radius: 14rpx;
-			font-size: $font-size-base;
-			line-height: 88rpx;
-			color: #FFFFFF;
-			margin: 0 auto;
-			text-align: center;
-			background: $btn-confirm;
-		}
-		.model-authorization{
-			width: 100%;
-			height: 100%;
-			position: fixed;
-			top: 0;
-			left: 0;
-			z-index: 999;
-			.authorization{
-				width: 518rpx;
-				height: 320rpx;
-				position: absolute;
-				background: rgba(255,255,255,.7);
-				left: 0;
-				right: 0;
-				bottom: 0;
-				top: 0;
-				margin: auto;
-				.to-btn{
+			.register-row{
+				width: 702rpx;
+				height: auto;
+				padding: 0 24rpx;
+				margin-bottom: 20rpx;
+				.register-title{
+					line-height: 60rpx;
+					font-size: $font-size-lg;
+					color: $text-color;
+					text-align: left;
+					padding-left: 20rpx;
+					.txt{
+						font-size: $font-size-sb;
+						font-weight: normal;
+					}
+				}
+				.row-btn{
 					position: absolute;
+					right: 24rpx;
 					top: 0;
-					left: 0;
-					right: 0;
-					bottom: 0;
-					margin: auto;
-					width: 70%;
-					height: 88rpx;
+					line-height: 88rpx;
+					text-align: center;
 					font-size: $font-size-base;
+					color: $color-system;
+				}
+				.register-from{
+					width: 654rpx;
+					height: 40rpx;
+					padding: 24rpx;
+					background: $sub-bg-color;
+					border-radius: 14rpx;
+					position: relative;
+					.label{
+						text-align: left;
+						font-size: $font-size-base;
+						color: #666666;
+						line-height: 40rpx;
+						float: left;
+					}
+					.row-input{
+						width: 440rpx;
+						padding-left:10rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+						height: 40rpx;
+						&.none{
+							color: #999999;
+						}
+						&.keshi{
+							width: 550rpx;
+						}
+					}
+					&.code{
+						width: 410rpx;
+						float: left;
+						margin-right: 20rpx;
+						.row-input{
+							width: 390rpx;
+						}
+					}
+					&.btn{
+						width: 176rpx;
+						float: left;
+						.row-input{
+							width: 176rpx;
+							padding: 0;
+							background: #F7F7F7;
+							text-align: center;
+						}
+						&.none{
+							background: $btn-confirm;
+							.row-input{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+						}
+						&.disabled{
+							.row-input{
+								color: #999999;
+							}
+						}
+					}
+					&.picker{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 88rpx;
+						line-height: 88rpx;
+						.label{
+							line-height: 88rpx;
+						}
+						.row-input{
+							width: 470rpx;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 30rpx;
+						}
+					}
+					&.radio{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 288rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.group{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: auto;
+						background: #FFFFFF;
+						margin-top: 30rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.btn{
+						margin-top: 0;
+					}
+					.content-class {
+						width: 520rpx;
+						margin: 20rpx auto;
+						display: flex;
+						flex-flow: row wrap;
+						justify-content: space-between;
+						&.btn{
+							margin: 0 auto;
+							margin-left: 126rpx;
+						}
+						.row-input{
+							display: flex;
+							width: 220rpx;
+							height: 40rpx;
+							padding: 24rpx;
+							text-align: left;
+							border-radius: 10rpx;
+							font-size: $font-size-base;
+							color: $text-color;
+						}
+						.confirm-btn{
+							width: 200rpx;
+							height: 88rpx;
+							border-radius: 10rpx;
+							line-height: 88rpx;
+							text-align: center;
+							&.none{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+							&.disabled{
+								color: #999999;
+							}
+						}
+						.item {
+						  width: 156rpx;
+						  height: 60rpx;
+						  font-size:$font-size-base;
+						  line-height: 60rpx;
+						  border-radius:10rpx;
+						  margin-bottom: 20rpx;
+						  text-align: center;
+						  box-sizing: border-box;
+						  border: 1rpx solid #EFEFEF;
+						  checkbox {
+							display: none;
+						  }
+						}
+						.on {
+						  border-color: $color-system;
+						  color:$color-system;
+						}
+					}
+				}
+				.icon-xiayibu{
+					width: 88rpx;
+					height: 88rpx;
+					position: absolute;
+					right: 0;
+					top: 0;
 					line-height: 88rpx;
-					color: #FFFFFF;
 					text-align: center;
-					border-radius: 44rpx;
+				}
+				&.text-textarea{
+					background: #FFFFFF;
+					.textarea{
+						width: 654rpx;
+						height: 180rpx;
+						background: #F7F7F7;
+						padding: 24rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						z-index: 1;
+						border-radius: 14rpx;
+					}
+					.textarea.hide{
+						opacity: 0;
+					}
+					.textarea.show{
+						color: #999999;
+					}
+				}
+			}
+			.register-picture{
+				height: 102rpx;
+				margin: 40rpx 0 0 0;
+				.label{
+					float: left;
+					font-size: $font-size-base;
+					color: $text-color;
+					line-height: 102rpx;
+					width: 150rpx;
+					text-align: right;
+					&.zz{
+						width: 230rpx;
+					}
+				}
+				.upload-picture{
+					float: left;
+					height: 100rpx;
+					.upload-none{
+						width: 100rpx;
+						height: 100rpx;
+						text-align: center;
+						line-height: 100rpx;
+						color: #999999;
+						border: 1px solid #999999;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						.iconfont{
+							font-size: $font-size-base;
+						}
+					}
+					.upload-image{
+						width: 100rpx;
+						height: 100rpx;
+						border-radius: 10rpx;
+						margin: 0 20rpx;
+						position: relative;
+						image{
+							width: 100rpx;
+							height: 100rpx;
+							border-radius: 10rpx;
+						}
+						.upload-del{
+							width: 40rpx;
+							height: 40rpx;
+							position: absolute;
+							top: -20rpx;
+							right: -20rpx;
+							line-height: 40rpx;
+							text-align: center;
+							.iconfont{
+								font-size: $font-size-lg;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+			.register-input{
+				width: 654rpx;
+				height: 40rpx;
+				padding: 24rpx;
+				margin: 0 auto;
+				margin-bottom: 60rpx;
+				background: #F7F7F7;
+				border-radius: 14rpx;
+				.input{
+					width: 100%;
+					height: 100%;
+					background: #F7F7F7;
+					font-size: $font-size-base;
+					line-height: 40rpx;
+					color: #333333;
+					border-radius: 14rpx;
+				}
+			}
+			.register-fiexd{
+				width: 100%;
+				height: auto;
+				padding: 20rpx 0;
+				position: fixed;
+				bottom: 0;
+				left: 0;
+				z-index: 99;
+				background: #FFFFFF;
+				.register-agree{
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					margin: 32rpx 0;
+					.agree-text{
+						.checkbox{
+							float: left;
+							margin: 4rpx 6rpx 0 0;
+							color: #999999;
+							font-size: $font-size-lg;
+							&.icon-gouxuan{
+								color: $color-system;
+							}
+						}
+						font-size: 20rpx;
+						line-height: 44rpx;
+						color: #999999;
+						text{
+							color:#0091FF;
+						}
+					}
+				}
+			}
+			.register-btn{
+				width: 702rpx;
+				height: 88rpx;
+				border-radius: 14rpx;
+				font-size: $font-size-base;
+				line-height: 88rpx;
+				color: #FFFFFF;
+				margin: 0 auto;
+				text-align: center;
+				background: $btn-confirm;
+				margin-top: 96rpx;
+				&.none{
+					background: #FFFFFF;
+					color: $text-color;
+					margin-top: 0;
+				}
+				&.sub{
+					margin-top: 0;
 				}
 			}
 		}

+ 21 - 18
pages/user-module/login.vue

@@ -160,24 +160,27 @@
 						uni.setStorageSync('cookieKey','JSESSIONID='+response.data.sessionId);
 						this.$store.commit('updateStatus',user_key)
 						let url;
-						if(self.loginType) {
-							if(self.loginType=='detilType'){
-								self.$api.redirectTo(`/pages/goods/product?id=${self.id}&page=2`);
-							}else if(self.loginType=='search'){
-								self.$api.redirectTo('/pages/search/search');
-							}else if(self.loginType == 1){
-								url ='/pages/tabBar/cart/cart'
-							}else if(self.loginType == 2){
-								url ='/pages/tabBar/user/user'
-							}else {
-								url ='/pages/tabBar/home/home'
-							}
-							uni.switchTab({
-								url
-							})
-						} else if(self.listType) {
-							self.$api.navToListPage({type:self.listType,value:self.listVal,lType:'4'});
-						}
+						uni.switchTab({
+							url:'/pages/tabBar/user/user'
+						})
+						// if(self.loginType) {
+						// 	if(self.loginType=='detilType'){
+						// 		self.$api.redirectTo(`/pages/goods/product?id=${self.id}&page=2`);
+						// 	}else if(self.loginType=='search'){
+						// 		self.$api.redirectTo('/pages/search/search');
+						// 	}else if(self.loginType == 1){
+						// 		url ='/pages/tabBar/cart/cart'
+						// 	}else if(self.loginType == 2){
+						// 		url ='/pages/tabBar/user/user'
+						// 	}else {
+						// 		url ='/pages/tabBar/home/home'
+						// 	}
+						// 	uni.switchTab({
+						// 		url
+						// 	})
+						// } else if(self.listType) {
+						// 	self.$api.navToListPage({type:self.listType,value:self.listVal,lType:'4'});
+						// }
 					} else {
 						this.$util.msg(response.msg,3000);
 					}

+ 157 - 31
pages/user-module/register.vue

@@ -161,12 +161,12 @@
 				<view class="register-from picker">
 					<view class="label">机构类型:</view>
 					<picker @change="bindPickerChange" :value="index" :range="organizationTypeList" range-key="name">
-						<view class="row-input">{{organizationTypeList[typtIndex].name}}</view>
+						<view class="row-input" :class="[isOrganizationType == 0 ? 'none' : '']">{{organizationTypeList[typtIndex].name}}</view>
 					</picker>
 					<text class="iconfont icon-xiayibu"></text>
 				</view>
 			</view>
-			<view class="register-row clearfix">
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
 				<view class="register-from radio">
 					<radio-group @change="radioChange">
 						<label class="row-input" v-for="(item, index) in beautyList" :key="item.value">
@@ -176,7 +176,13 @@
 					</radio-group>
 				</view>
 			</view>
-			<view class="register-row clearfix">
+			<view class="register-row clearfix" v-show="isDepartment">
+				<view class="register-from">
+					<view class="label">科室:</view>
+					<input class="row-input keshi" type="text" v-model="clubContact" placeholder="请填写经营的科室,至少三个,用逗号隔开" maxlength="16"/>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
 				<view class="register-picture">
 					<view class="label zz">医疗执业许可证:</view>
 					<view class="upload-picture">
@@ -190,21 +196,38 @@
 					</view>
 				</view>
 			</view>
-			<view class="register-row clearfix">
-				<view class="register-from">
-					<view class="label">科室:</view>
-					<input class="row-input keshi" type="text" v-model="clubContact" placeholder="请填写经营的科室,至少三个,用逗号隔开" maxlength="16"/>
-				</view>
-			</view>
-			<view class="register-row clearfix">
-				<view class="register-from radio">
+			<view class="register-row clearfix" v-if="isOrganizationType == 1">
+				<view class="register-from group">
 					<view class="label">主营内容:</view>
-					<checkbox-group class="content-class" @change="chooseMaleLike">
+					<checkbox-group class="content-class" @change="chooseMaleLike" >
 						<label class="item" v-for="(item, index) in mentuzCampList" :key="index" :class="{on: item.checked}">
 						   <checkbox :value="item.value"></checkbox>
 						   <text class="item-text">{{item.name}}</text>
 						</label>
 				    </checkbox-group>
+				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
+			</view>
+			<view class="register-row clearfix" v-if="isOrganizationType == 2">
+				<view class="register-from group">
+					<view class="label">主营内容:</view>
 					<checkbox-group class="content-class" @change="chooseMaleLikes">
 						<label class="item" v-for="(item, index) in medicaCampList" :key="index" :class="{on: item.checked}">
 						   <checkbox :value="item.value"></checkbox>
@@ -212,6 +235,24 @@
 						</label>
 				    </checkbox-group>
 				</view>	
+				<view class="register-from group btn">
+					<view class="content-class btn">
+						<view class="item" @click="showAustomItem">
+							<text class="item-text">其他</text>
+						</view>
+					</view>
+				</view>
+				<view class="register-from group btn" v-show="isShowAustomItem">
+					<view class="content-class btn">
+						<input class="row-input" type="text" v-model="customItemValue" placeholder="请输入自定义项目"  @blur="onBlurInput" maxlength="5"/>
+						<button type="default" 
+								class="confirm-btn" 
+								:class="[isDisabled === true ? 'disabled' : 'none']" 
+								:disabled="isDisabled"
+								@click.stop="addCustomItem"
+						>确认添加</button>
+					</view>
+				</view>
 			</view>
 			<view class="register-fiexd clearfix">
 				<view class="register-agree">
@@ -258,12 +299,13 @@
 				uploadBusinessImage:'',
 				uploadMentuzImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
 				uploadMedicalImage:'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1431188283,1203112303&fm=26&gp=0.jpg',
-				isVisible:false,
+				isOrganizationType:0,
 				organizationTypeList:[
-					{name:'医美',type:1},
-					{name:'生美',type:1}
+					{name:'请选择机构类型',value:0},
+					{name:'医美',value:1},
+					{name:'生美',value:2}
 				],
-				beautyList:[{name:'诊所'},{name:'门诊'},{name:'医院'}],
+				beautyList:[{value:'1',name:'诊所'},{value:'2',name:'门诊'},{value:'3',name:'医院'}],
 				mentuzCampList:[{value:'1',name:'整形'},{value:'2',name:'轻医美'},{value:'3',name:'皮肤科'}],
 				medicaCampList:[
 					{value:'1',name:'美容'},
@@ -276,7 +318,11 @@
 					{value:'8',name:'spa'}
 				],
 				typtIndex:0,
-				organizationType:'请选择机构类型',
+				organizationType:0,
+				current:0,
+				isDepartment:false, //是否显示科室
+				isShowAustomItem:false, //是否显示其他添加
+				customItemValue:'', //自定义项目
 				invitationCode:'',  //获取用户登录的邀请码
 				isToast:false,		//控制显示未输入邀请码提示	
 				isUserInfo:false,	//控制显示授权弹窗
@@ -361,12 +407,19 @@
 				this.addressData.townID = e.cityCode;	
 			},	
 			bindPickerChange(e) {
-				console.log('picker发送选择改变,携带值为:' + e.target.value)
+				console.log('picker发送选择改变,携带值为:' + e.target)
 				this.typtIndex = e.target.value
+				this.isOrganizationType = e.target.value
 			},
-			radioChange(evt) {
+			radioChange(e) {
+				let _value = e.target.value
+				if( _value == '2' || _value == '3'){
+					this.isDepartment = true
+				}else{
+					this.isDepartment = false
+				}
 				for (let i = 0; i < this.beautyList.length; i++) {
-					if (this.beautyList[i].value === evt.target.value) {
+					if (this.beautyList[i].value === _value) {
 						this.current = i;
 						break;
 					}
@@ -512,7 +565,29 @@
 			agreeCheck() {
 				this.isCheck = !this.isCheck
 			},
-			steps(index) {//tab切换
+			onBlurInput(e){//
+				if(e.detail.value ===''){
+					this.isDisabled = true
+				}else{
+					this.isDisabled = false
+				}
+			},
+			getEmailCode(){
+				this.isDisabled = true
+			},
+			showAustomItem() {
+				this.isShowAustomItem = !this.isShowAustomItem
+			},
+			addCustomItem(){
+				if(this.isOrganizationType == 1){
+					let item = {value:`${this.mentuzCampList.length+1}`,name:this.customItemValue}
+					this.mentuzCampList.push(item)
+				}else{
+					let item = {value:`${this.medicaCampList.length+1}`,name:this.customItemValue}
+					this.medicaCampList.push(item)
+				}
+			},
+			steps(index) {//$attrstab切换
 				console.log(index)
 				this.tabCurrentIndex = index;
 			}
@@ -524,6 +599,7 @@
 	.register{
 		width: 100%;
 		height: auto;
+		border-top: 1px solid #F7F7F7;
 		.model-warp.none{
 			display: none;			
 		}
@@ -534,7 +610,6 @@
 			width: 570rpx;
 			height: 60rpx;
 			padding: 60rpx 90rpx;
-			border-top: 1px solid #F7F7F7;
 			position: relative;
 			.nav-item{
 				width: 142rpx;
@@ -569,7 +644,7 @@
 			width: 100%;
 			height: auto;
 			&.detailed{
-				padding-bottom: 300rpx;
+				padding-bottom: 330rpx;
 			}
 			.register-tips{
 				display: flex;
@@ -682,10 +757,10 @@
 							text-align: center;
 						}
 						&.none{
-							background: $color-system;
+							background: $btn-confirm;
 							.row-input{
 								color: #FFFFFF;
-								background: $color-system;
+								background: $btn-confirm;
 							}
 						}
 						&.disabled{
@@ -710,10 +785,30 @@
 						}
 					}
 					&.radio{
+						padding: 0 24rpx;
+						width: 654rpx;
+						height: 288rpx;
+						.row-input{
+							width: 100%;
+							height: 88rpx;
+							line-height: 88rpx;
+							padding-left: 0;
+						}
+						.row-radio{
+							float: left;
+						}
+						.row-text{
+							width: 100rpx;
+							text-align: center;
+							float: left;
+						}
+					}
+					&.group{
 						padding: 0 24rpx;
 						width: 654rpx;
 						height: auto;
 						background: #FFFFFF;
+						margin-top: 30rpx;
 						.row-input{
 							width: 100%;
 							height: 88rpx;
@@ -729,12 +824,43 @@
 							float: left;
 						}
 					}
+					&.btn{
+						margin-top: 0;
+					}
 					.content-class {
 						width: 520rpx;
 						margin: 20rpx auto;
 						display: flex;
 						flex-flow: row wrap;
 						justify-content: space-between;
+						&.btn{
+							margin: 0 auto;
+							margin-left: 126rpx;
+						}
+						.row-input{
+							display: flex;
+							width: 220rpx;
+							height: 40rpx;
+							padding: 24rpx;
+							text-align: left;
+							border-radius: 10rpx;
+							font-size: $font-size-base;
+							color: $text-color;
+						}
+						.confirm-btn{
+							width: 200rpx;
+							height: 88rpx;
+							border-radius: 10rpx;
+							line-height: 88rpx;
+							text-align: center;
+							&.none{
+								color: #FFFFFF;
+								background: $btn-confirm;
+							}
+							&.disabled{
+								color: #999999;
+							}
+						}
 						.item {
 						  width: 156rpx;
 						  height: 60rpx;
@@ -786,16 +912,16 @@
 			}
 			.register-picture{
 				height: 102rpx;
-				margin: 30rpx 0 0 0;
+				margin: 40rpx 0 0 0;
 				.label{
 					float: left;
-					font-size: $font-size-lg;
+					font-size: $font-size-base;
 					color: $text-color;
 					line-height: 102rpx;
 					width: 150rpx;
 					text-align: right;
 					&.zz{
-						width: 240rpx;
+						width: 230rpx;
 					}
 				}
 				.upload-picture{
@@ -811,7 +937,7 @@
 						border-radius: 10rpx;
 						margin: 0 20rpx;
 						.iconfont{
-							font-size: $font-size-lg;
+							font-size: $font-size-base;
 						}
 					}
 					.upload-image{
@@ -834,7 +960,7 @@
 							line-height: 40rpx;
 							text-align: center;
 							.iconfont{
-								font-size: $font-size-base;
+								font-size: $font-size-lg;
 								color: #999999;
 							}
 						}
@@ -865,7 +991,7 @@
 				position: fixed;
 				bottom: 0;
 				left: 0;
-				z-index: 9999;
+				z-index: 999;
 				background: #FFFFFF;
 				.register-agree{
 					display: flex;

+ 518 - 1
pages/user/operator/list.vue

@@ -1,8 +1,525 @@
 <template>
+	<view class="container operator clearfix">
+		<view class="operator-top clearfix">
+			<view class="operator-title">
+				<view class="head"><image src="../../../static/temp/logo@3x.png" mode=""></image></view>
+				<view class="title">{{clubName}}</view>
+			</view>
+			<view class="operator-search">
+				<view class="search-wrap">
+					<view class="search-from name">
+						<view class="label">姓名:</view>
+						<input class="input" type="text" v-model="linkman" placeholder="请输入姓名" maxlength="6"/>
+					</view>
+					<view class="search-from phone">
+						<view class="label">手机号:</view>
+						<input class="input" type="text" v-model="clubMobile" placeholder="请输入手机号" maxlength="11"/>
+					</view>
+				</view>
+				<view class="search-wrap">
+					<button class="search-btn" type="default">搜索</button>
+				</view>
+			</view>
+		</view>
+		<view class="operator-main">
+			<view v-if="isEmpty" class="empty-container">
+				<view class="txt">暂无运营人员</view>
+				<view class="login-btn" @click="addAddress('add')">添加运营人员</view>
+			</view>
+			<view v-else class="operator-list">
+				<scroll-view scroll-y="true">
+					<view class="list" v-for="(item, index) in operatorList" :key="index" @click="checkAddress(item)">
+						<view class="list-left">
+							<view class="list-head"><image :src="item.image" mode=""></image></view>
+							<view class="list-tel">
+								<text class="txt">{{item.name}}</text>
+								<text class="txt">{{item.mobile}}</text>
+							</view>
+						</view>
+						<view class="list-opea">
+							<view class="opea-type">
+								<view class="opea-type-cell" v-if="item.status != '0'">
+									<text class="iconfont icon-iconfontweixin" :style="{color: iconStautsColor(item.status)}"></text>
+									<text :style="{color: rexpStautsColor(item.status)}">{{ rexpStautsText(item.status) }}</text>
+								</view>
+							</view>
+							<view class="opea-del">
+								<view class="opea-type-cell">
+									<text class="iconfont icon-shanchu"></text>
+									<text>删除</text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+				<view class="add-btn" @click="addAddress('add')">添加运营人员</view>
+			</view>
+		</view>
+		<view class="operator-model">
+			<view class="operator-alert">
+				<text class="iconfont icon-iconfontguanbi"></text>
+				<view class="content">
+					<view class="ciew-t">姓名:张三</view>
+					<view class="ciew-t">手机号:15888888888</view>
+					<view class="ciew-t">邀请码:456789<text>(已过期)</text></view>
+					<view class="ciew-t">邀请码有效期:5天</view>
+					<view class="ciew-t">状态:已绑定</view>
+					<view class="ciew-t">添加时间:2020-03-18 17:09:58</view>
+					<view class="ciew-t">绑定时间:2020-03-18 17:09:58</view>
+				</view>
+				<view class="btn">更新邀请码</view>
+			</view>
+		</view>
+		<!-- 删除弹窗 -->
+		<model-alert v-if="isShowDelModal"
+					 :alertText='alertText' 
+					 @btnConfirm ='confirmDetele'>
+		</model-alert>
+	</view>
 </template>
 
 <script>
+	import authorize from '@/common/config/authorize.js'	
+	import modelAlert from '@/components/module/modelAlert/modelAlert.vue'
+	export default {
+		components:{
+			modelAlert
+		},
+		data() {
+			return {
+				clubName:'采美商城采购机构按时',
+				isSelect:false,
+				isEmpty:false,
+				isLoadMore:false,
+				alertText:'确定要删除该地址?',
+				userID:'',
+				pageNum:1,
+				pageSize:10,
+				addressList: [],
+				hasNextPage:false,
+				allowDataStatus:true,
+				isShowDelModal:false,
+				wrapperHeight:'100%',
+				scrollHeight:'',
+				deleteAddressId:'',
+				currPage:'',//当前页面
+				prevPage:'',//上一个页面
+				operatorList:[
+					{image:'../../../static/temp/logo@3x.png',name:'张三',mobile:'18888888888',status:'1'},
+					{image:'../../../static/temp/logo@3x.png',name:'张三',mobile:'18888888888',status:'2'},
+					{image:'../../../static/temp/logo@3x.png',name:'张三',mobile:'18888888888',status:'3'},
+					{image:'../../../static/temp/logo@3x.png',name:'张三',mobile:'18888888888',status:'0'},
+				]
+			}
+		},
+		onLoad(option){	
+			if(option.type=='select'){this.isSelect = true;}
+			this.setScrollHeight();
+		},
+		onReachBottom() {
+			// console.log('滑动到页面底部')
+			if(this.isLoadMore) {
+				this.initAddressList();
+			}
+		},
+		methods: {
+			setScrollHeight() {
+				// 窗口高度 - 底部距离
+				setTimeout(()=> {
+					const query = wx.createSelectorQuery().in(this);
+					query.selectAll('.add-btn').boundingClientRect();
+					query.exec(res => {
+						if(res[0][0]){
+							let winHeight = this.$api.getWindowHeight(),
+								eleTop = res[0][0].top - 1;
+								this.scrollHeight =  eleTop;
+						}
+					})
+				}, 500)
+			},
+			initAddressList(){	
+				this.$api.getStorage().then((resolve) =>{
+					this.userID = resolve.userID
+					this.$api.get('/personal/findAddress',{index:this.pageNum,pageSize:this.pageSize,userID:this.userID},
+						response => {
+							if(response.results == ''){
+								this.isEmpty = true
+							}else{
+								this.isEmpty = false
+								let results =[];
+								results = response.results;
+								this.addressList = this.addressList.concat(results);
+								this.pageNum = response.index +1;
+								if(this.pageNum === response.totalPage + 1 ){
+									this.isLoadMore = false;
+								} else {
+									this.isLoadMore = true;
+								}
+							}
+						}
+					)
+				})
+			},
+			//选择地址
+			checkAddress(item){
+				//是否需要返回地址(从订单确认页跳过来选收货地址)
+				if(!this.isSelect){return ;}
+				uni.setStorageSync('selectAddress',item)
+				var pages = getCurrentPages();
+				var prevPage = pages[pages.length - 2];  //上一个页面	
+					prevPage.setData({select:'select'})
+				uni.navigateBack();
+			},
+			addAddress(type,item){
+				uni.navigateTo({
+					url: `/pages/user/address/addressManage?type=${type}&data=${JSON.stringify(item)}`
+				})
+			},
+			//删除收货地址
+			deleteAddress(id){
+				console.log('删除地址的ID',id)
+				this.isShowDelModal = true;
+				this.deleteAddressId =id;
+			},
+			confirmDetele(){
+				authorize.getCode('weixin').then(wechatcode =>{
+					this.$api.get('/personal/delete?code='+`${wechatcode}`,{addressID:this.deleteAddressId,userOrganizeID:this.userOrganizeID},
+						response => {
+							if(response.code==1){
+								uni.showToast({
+									icon: 'none',
+									title: response.msg,
+									duration: 2000
+								})
+								this.isShowDelModal = false;
+								this.pageNum = 1;
+								this.addressList = [];
+								this.initAddressList();
+							}else{
+								this.$util.msg(response.msg,3000);
+								this.isShowDelModal = false;
+								setTimeout(function(){
+									uni.switchTab({
+										url:'/pages/tabBar/home/home'
+									})
+								},1000)
+							}
+						}
+					)
+				})	
+			},
+			rexpStautsText(status) {
+			      let text = ''
+			      switch (status) {
+			        case '1':
+			          text = '邀请码有效'
+			          break
+			        case '2':
+			          text = '邀请码已使用'
+			          break
+			        case '3':
+			          text = '邀请码已过期'
+			          break
+			      }
+			      return text
+			    },
+			    rexpStautsColor(status) {
+			      let textColor = ''
+			      switch (status) {
+			        case '1':
+			          textColor = '#55BB00'
+			          break
+			        case '2':
+			          textColor = '#0056BB'
+			          break
+			        case '3':
+			          textColor = '#BB0000'
+			          break
+			      }
+			      return textColor
+			    },  
+				iconStautsColor(status) {
+			      let textColor = ''
+				  if(status == '2'){
+					   textColor = '#09BB07'
+				  }else{
+					   textColor = '#DDDDDD'
+				  }
+			      return textColor
+			    },
+		},
+		onShow() {
+			this.pageNum = 1;
+			this.addressList = [];
+			this.initAddressList();
+			var pages = getCurrentPages();
+			var prevPage = pages[pages.length - 2];  //上一个页面	
+				// prevPage.setData({select:''})
+		}
+	}
 </script>
 
-<style>
+<style lang='scss'>
+	page {
+		height: auto;
+	}
+	page,.container{
+		/* padding-bottom: 120upx; */
+		background: #F7F7F7;
+		border-top: 1px solid #EBEBEB;
+	}
+	.container{
+		position: relative;
+	}
+	.operator-top{
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: auto;
+		background: #FFFFFF;
+		margin-bottom: 24rpx;
+		.operator-title{
+			width: 100%;
+			height: 92rpx;
+			padding: 34rpx 0;
+			.title{
+				float: left;
+				font-size: $font-size-36;
+				color: $text-color;
+				line-height: 92rpx;
+				text-align: left;
+				margin-left: 20rpx;
+			}
+			.head{
+				width: 92rpx;
+				height: 92rpx;
+				border-radius: 50%;
+				border: 1px solid $color-system;
+				float: left;
+				image{
+					width: 92rpx;
+					height: 92rpx;
+					border-radius: 50%;
+				}
+			}
+		}
+		.operator-search{
+			width: 100%;
+			height: auto;
+			.search-from{
+				width: 300rpx;
+				height: 40rpx;
+				padding: 24rpx;
+				background: $sub-bg-color;
+				border-radius: 14rpx;
+				position: relative;
+				margin-bottom: 20rpx;
+				float: left;
+				&.name{
+					width: 260rpx;
+					margin-right: 20rpx;
+					.input{
+						width: 180rpx;
+						padding-left:10rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+						height: 40rpx;
+					}
+				}
+				&.phone{
+					width: 324rpx;
+					.input{
+						width: 220rpx;
+						padding-left:10rpx;
+						font-size: $font-size-base;
+						color: $text-color;
+						line-height: 40rpx;
+						float: left;
+						height: 40rpx;
+					}
+				}
+				.label{
+					text-align: left;
+					font-size: $font-size-base;
+					color:$text-color;
+					line-height: 40rpx;
+					float: left;
+				}
+				
+			}
+			.search-btn{
+				width: 702rpx;
+				height: 88rpx;
+				border: 1px solid $color-system;
+				border-radius: 14rpx;
+				font-size: $font-size-base;
+				color: $color-system;
+				line-height: 88rpx;
+			}
+		}
+	}
+	.list{
+		display: flex;
+		align-items: center;
+		width: 702rpx;
+		height: 92rpx;
+		padding: 24rpx;
+		background: #FFFFFF;
+		position: relative;
+		border-bottom: 1px solid #EBEBEB;
+		.list-left{
+			display: flex;
+			flex: 4;
+			.list-head{
+				width: 92rpx;
+				height: 92rpx;
+				border: 1px solid $color-system;
+				border-radius: 50%;
+				image{
+					width: 92rpx;
+					height: 92rpx;
+					border-radius: 50%;
+				}
+			}
+			.list-tel{
+				margin-left: 18rpx;
+				.txt{
+					display: flex;
+					flex: 1;
+					font-size: $font-size-base;
+					color: $text-color;
+					line-height: 46rpx;
+				}
+			}
+		}
+		.list-opea{
+			flex:6;
+			.opea-type{
+				flex-direction: column;
+				align-items: center;
+				margin-left: 20rpx;
+				float: left;
+				.opea-type-cell{
+					width: 186rpx;
+					height: 64rpx;
+					padding:0 16rpx;
+					border-radius: 10rpx;
+					border: 1px solid #DDDDDD;
+					line-height: 64rpx;
+					font-size: $font-size-sm;
+					.icon-iconfontweixin{
+						margin-right: 8rpx;
+						font-size: $font-size-lg;
+					}
+				}
+			}
+			.opea-del{
+				float: right;
+				flex-direction: column;
+				align-items: center;
+				.opea-type-cell{
+					width: 86rpx;
+					height: 64rpx;
+					padding:0 24rpx;
+					border-radius: 10rpx;
+					border: 1px solid #DDDDDD;
+					line-height: 64rpx;
+					font-size: $font-size-sm;
+					color: #FF0000;
+					.icon-shanchu{
+						font-size: $font-size-lg;
+						margin-right: 6rpx;
+					}
+				}
+			}
+		}
+	}
+	.operator-model{
+		width: 100%;
+		height: 100%;
+		background: rgba(0,0,0,.1);
+		position: fixed;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		right: 0;
+		margin: auto;
+		z-index: 992;
+		.operator-alert{
+			width: 422rpx;
+			height: 376rpx;
+			padding: 68rpx 32rpx;
+			background: #FFFFFF;
+			border-radius: 14rpx;
+			position: absolute;
+			top: 0;
+			left: 0;
+			bottom: 0;
+			right: 0;
+			margin: auto;
+			z-index: 999;
+			.icon-iconfontguanbi{
+				width: 68rpx;
+				height: 68rpx;
+				text-align: center;
+				line-height: 68rpx;
+				position: absolute;
+				right: 0;
+				top: 0;
+				font-size: $font-size-36;
+				color: #999999;
+			}
+			.content{
+				.ciew-t{
+					font-size: $font-size-base;
+					color: $text-color;
+					line-height: 50rpx;
+				}
+			}
+			.btn{
+				width: 100%;
+				height: 68rpx;
+				border-top: 1px solid #F7F7F7;
+				line-height: 68rpx;
+				font-size: $font-size-sb;
+				text-align: center;
+				color: $color-system;
+				position: absolute;
+				bottom:0 ;
+				left: 0;
+			}
+		}
+	}
+	
+	.add-btn{
+		position: fixed;
+		left: 24rpx;
+		right: 24rpx;
+		bottom: 34rpx;
+		z-index: 95;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 702rpx;
+		height: 88rpx;
+		font-size: $font-size-base;
+		line-height: 88rpx;
+		color: #FFFFFF;
+		text-align: center;
+		background: $btn-confirm;
+		border-radius: 14rpx;
+	}
+	.adds-btn{
+		width: 702rpx;
+		height: 88rpx;
+		font-size: 28rpx;
+		line-height: 88rpx;
+		color: #FFFFFF;
+		margin: 0 auto;
+		text-align: center;
+		background: #000000;
+		border-radius: 14rpx;
+	}
 </style>
+

+ 361 - 2
pages/user/regularPurchase/regularPurchase.vue

@@ -1,6 +1,38 @@
 <template>
 	<view class="container all-type-list-wrapper">
-		<commodity-list ref="childList" :empty-text="emptyText"></commodity-list>
+		<commodity-list ref="childList" :empty-text="emptyText" @operationConfim="hanldOperationConfim"></commodity-list>
+		<!--底部选择模态层弹窗组件 -->
+		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="hideSpec">
+			<!-- 遮罩层 -->
+			<view class="mask"></view>
+			<view class="layer" @tap.stop="discard">
+				<view class="content">
+					<view class="layer-smimg">
+						<image :src="handleData.mainImage" mode=""></image>
+					</view>
+					<view class="layer-nunbox">
+						<view class="layer-nunbox-t">
+							<view class="layer-nunbox-text">数量:</view>
+							<view class="number-box">
+								<view  class="iconfont icon-jianhao" :class="[isQuantity==true?'disabled':'']" @click="changeCountSub()"></view>
+								<input class="btn-input" type="number" v-model="number" maxlength='4'  @blur="changeNumber($event)">
+								<view  class="iconfont icon-jiahao"  :class="[isStock==true?'disabled':'']" @click="changeCountAdd()"></view>
+							</view>
+						</view>
+						<view class="layer-nunbox-b">
+							<view class="text">单价:
+								<text class="p sm">¥</text>
+								<text class="p bg">{{buyRetailPrice.toFixed(2)}}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="btn">
+					<view class="button buy" @click="toConfirmation">立即购买</view>
+					<view class="button add" @click="getAddProductCart">加入购物车</view>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -17,7 +49,14 @@
 				serverUrl: '',
 				emptyText: '',
 				lastPageType: '',
-				lastPageVal: ''
+				lastPageVal: '',
+				specClass: '',//规格弹窗css类,控制开关动画
+				handleData:{},
+				isQuantity:false,
+				isStock:false,
+				minBuyNumber:0,
+				number:0,
+				buyRetailPrice:0
 			}
 		},
 		onShow() {
@@ -44,6 +83,105 @@
 				const emptyTxt = '您还没有购买过任何商品哟~';
 				this.serverUrl = `/order/purchase?userID=${this.userID}`;
 				this.$refs.childList.getListFromServer();
+			},
+			hanldOperationConfim(data){//显示选择数量确认弹窗
+				console.log(data)
+				this.handleData = data
+				this.number = data.minBuyNumber
+				this.minBuyNumber = data.minBuyNumber
+				this.buyRetailPrice = data.retailPrice;
+				this.specClass = 'show';
+			},
+			hideSpec() {//关闭选择数量确认弹窗
+				this.specClass = 'hide';
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			changeCountAdd(){//popup弹窗数量增加按钮
+				this.number++
+				if(this.handleData.ladderPriceFlag == '1'){
+					this.handleData.productLadderPrices.forEach((item,index)=>{
+						if(this.number>=item.buyNum){
+							this.buyRetailPrice = item.buyPrice
+						}
+					})
+				}
+			},
+			changeCountSub(){//popup弹窗数量减按钮
+				if(this.number<=this.minBuyNumber){
+					this.number= this.minBuyNumber
+					this.isQuantity =true
+					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
+					return
+				}else{
+					this.number--
+					if(this.handleData.ladderPriceFlag == '1'){
+						this.handleData.productLadderPrices.forEach((item,index)=>{
+							if(this.number>=item.buyNum){
+								this.buyRetailPrice = item.buyPrice
+							}
+						})
+					}
+					this.isQuantity =false
+				}
+			 },
+			changeNumber(e){
+				let _value = e.detail.value;
+				if(!this.$api.isNumber(_value)){
+					this.number = this.minBuyNumber
+				}else if(_value < this.minBuyNumber){	
+					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
+					this.number = this.minBuyNumber
+				}else{
+					this.number = e.detail.value
+				}
+			},
+			toConfirmation(){//跳转确认订单页面
+				this.specClass = 'hide';
+				let productStp ={
+						allPrice:this.number*this.buyRetailPrice,
+						allCount:this.number,
+						id:this.handleData.id,
+						productCount:this.number,
+						classifyID:this.handleData.classifyID,
+				}	
+				this.$api.navigateTo(`/pages/user/order/create-order?type=prodcut&data=${JSON.stringify({data:productStp})}`)
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 200);
+			},
+			getAddProductCart(){//增加购物车成功和toast弹窗提示成功		
+				this.$api.post('/details/addCart',
+					{
+						productID:this.handleData.productID,
+						userID:this.userID,
+						productCount:this.number,
+						organizeID:this.userOrganizeID
+					},
+					response => {
+						if (response.code == "1") {				
+							this.specClass = 'hide';
+							this.$util.msg(response.msg,1500,true,'success');
+							this.isAnimation = true
+							setTimeout(() => {
+								this.specClass = 'none';							
+							}, 200);
+							setTimeout(() => {
+								this.isAnimation = false;							
+							}, 2000);
+							this.$refs.childList.cartNum = response.data;
+						}else{
+							this.$util.msg(response.msg,2000);
+							setTimeout(function(){
+								this.$api.switchTabTo('/pages/tabBar/home/home')
+							},1000)
+						}
+					}	
+				)	
+			},
+			discard(){
+				//丢弃
 			}
 		}
 	}
@@ -57,4 +195,225 @@
 			flex-direction: column;
 		}
 	}
+	/* 加入购物模态层*/
+	@keyframes showPopup {
+		0% {
+			opacity: 0;
+		}
+		100% {
+			opacity: 1;
+		}
+	}
+	@keyframes hidePopup {
+		0% {
+			opacity: 1;
+		}
+		100% {
+			opacity: 0;
+		}
+	}
+	@keyframes showLayer {
+		0% {
+			transform: translateY(0);
+		}
+		100% {
+			transform: translateY(-100%);
+		}
+	}
+	@keyframes hideLayer {
+		0% {
+			transform: translateY(-100%);
+		}
+		100% {
+			transform: translateY(0);
+		}
+	}
+	@keyframes showAmnation {
+		0% {
+			top: -12rpx;
+			opacity: 0;
+		}
+		50% {
+			top: -60rpx;
+			opacity: 1;
+		}
+		100% {
+			top: -100rpx;
+			opacity: 0;
+		}
+	}
+	@keyframes hideAmnation {
+		0% {
+			top: -100rpx;
+			opacity: 0;
+		}
+		100% {
+			top: -12rpx;
+			opacity: 0;
+		}
+	}
+	.popup {
+		position: fixed;
+		top: 0;
+		width: 100%;
+		height: 100%;
+		z-index: 999;
+		display: none;
+		.mask{
+			position: fixed;
+			top: 0;
+			width: 100%;
+			height: 100%;
+			z-index: 21;
+			background-color: rgba(0, 0, 0, 0.6);
+		}
+		.layer {
+			position: fixed;
+			z-index: 22;
+			bottom: -294rpx;
+			width: 702rpx;
+			padding: 24rpx 24rpx 36rpx 24rpx;
+			height: 236rpx;
+			border-radius: 30rpx 30rpx 0 0;
+			background-color: #fff;
+			display: flex;
+			flex-wrap: wrap;
+			align-content: space-between;
+			.content {
+				width: 100%;
+			}
+			.btn {
+				width: 100%;
+				height: 88rpx;
+				display: flex;
+				.button {
+					width: 340rpx;
+					height: 88rpx;
+					color: #fff;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					font-size: $font-size-base;
+					border-radius: 14rpx;
+					&.buy{
+						background: $btn-confirm;
+					}
+					&.add{
+						background: rgba(239, 175, 0, 1);
+						margin-left: 20rpx;
+					}
+				}
+			}
+		}
+		
+		&.show {
+			display: block;
+			.mask{
+				animation: showPopup 0.2s linear both;
+			}
+			.layer {
+				animation: showLayer 0.2s linear both;
+			}
+		}
+		&.hide {
+			display: block;
+			.mask{
+				animation: hidePopup 0.2s linear both;
+			}
+			
+			.layer {
+				animation: hideLayer 0.2s linear both;
+			}
+		}
+		&.none {
+			display: none;
+		}
+		&.service {
+			.row {
+				margin: 30upx 0;
+				.title {
+					font-size: 30upx;
+					margin: 10upx 0;
+				}
+				.description {
+					font-size: 28upx;
+					color: #999;
+				}
+			}
+		}
+		.layer-smimg{
+			width: 114rpx;
+			height: 114rpx;
+			float: left;
+			border-radius: 10rpx;
+			margin-right: 24rpx;
+			image{
+				width: 114rpx;
+				height: 114rpx;	
+				border-radius: 10rpx;
+			}
+		}
+		.layer-nunbox{
+			justify-content: space-between;
+			align-items: center;
+			width: 536rpx;
+			height: 88rpx;
+			padding: 13rpx 0 0 0;
+			float: left;
+			.layer-nunbox-t{
+				width: 100%;
+				height:44rpx;
+				position:relative;
+				display: flex;
+				.layer-nunbox-text{
+					line-height: 44rpx;
+					font-size: $font-size-base;
+				}
+				.number-box{
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					.iconfont{
+						font-size: $font-size-lg;
+						padding:0 20rpx;
+						font-size: $text-color;
+					}
+					.btn-input{
+						width: 62rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #F8F8F8;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-base;
+					}
+				}
+				.product-step{
+					position: absolute;
+					left: 45rpx;
+					bottom: 0;
+					height: 44rpx;
+					background: #FFFFFF;
+				}
+			}
+			.layer-nunbox-b{
+				width: 100%;
+				height:44rpx;
+				margin-top: 13rpx;
+			}
+			.text{
+				line-height: 44rpx;
+				font-size: $font-size-base;
+				.p{
+					color: #FF2A2A;
+				}
+				.p:first-child{
+					margin-left: 30rpx;
+				}
+				.p.sm{
+					font-size: $font-size-sm;
+				}
+			}
+		}
+	}	
 </style>

+ 46 - 274
pages/user/setting/setting.vue

@@ -1,183 +1,31 @@
 <template>
 	<view class="container clearfix">
-		<view v-if="isEmpty" class="empty-container">
-			<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AFmO1AAGxLZjSeDg040.png" mode="aspectFit"></image>
-			<view class="txt">您还没有收货地址</view>
-			<view class="txt">点击底部按钮添加收货地址吧~~</view>
-			<view class="login-btn" @click="addAddress('add')">添加新地址</view>
-		</view>
-		<view v-else class="address-list" :style="{'height': scrollHeight + 'px'}">
-			<scroll-view scroll-y="true" :style="{'height': scrollHeight + 'px'}">
-				<view class="list" v-for="(item, index) in addressList" :key="index" @click="checkAddress(item)">
-					<view class="wrapper">
-						<view class="u-box">
-							<text class="name">{{item.shouHuoRen}}</text>
-							<text class="mobile">{{item.mobile}}</text>
-						</view>
-						<view class="u-box b-b">
-							<text class="address">收货地址:{{item.province}}{{item.city}}{{item.town}}{{item.addressDetail}}</text>
-						</view>
-						<view class="u-box b-t">
-							<view v-if="item.defaultFlag == 1" class="tag-left">
-								<view class="tag">默认地址</view>
-							</view>
-							<view v-else class="tag-left"></view>
-							<view class="tag-right">
-								<view class="t-b"  @click.stop="deleteAddress(item.addressID)">
-									<text class="iconfont icon-shanchu"></text>
-									<text class="txt">删除</text>
-								</view>
-								<view class="t-b"  @click.stop="addAddress('edit',item)">
-									<text class="iconfont icon-bianji"></text>
-									<text class="txt">编辑</text>
-								</view>
-								
-							</view>
-						</view>
-					</view>
+		<view class="foot-list">
+			<view class="list-cell-item">
+				<view class="list-cell" @click="navigator('/pages/user-module/password')" hover-class="cell-hover" :hover-stay-time="50">
+					<text class="cell-tit">修改密码</text>
+					<text class="cell-more iconfont icon-xiayibu"></text>
 				</view>
-			</scroll-view>
-			<view class="add-btn" @click="addAddress('add')">添加新地址</view>
+			</view>
 		</view>
-		<!-- 删除弹窗 -->
-		<model-alert v-if="isShowDelModal"
-					 :alertText='alertText' 
-					 @btnConfirm ='confirmDetele'>
-		</model-alert>
 	</view>
 </template>
 
 <script>
 	import authorize from '@/common/config/authorize.js'	
-	import modelAlert from '@/components/module/modelAlert/modelAlert.vue'
 	export default {
-		components:{
-			modelAlert
-		},
 		data() {
 			return {
-				isSelect:false,
-				isEmpty:false,
-				isLoadMore:false,
-				alertText:'确定要删除该地址?',
-				userID:'',
-				pageNum:1,
-				pageSize:10,
-				addressList: [],
-				hasNextPage:false,
-				allowDataStatus:true,
-				isShowDelModal:false,
-				wrapperHeight:'100%',
-				scrollHeight:'',
-				deleteAddressId:'',
-				currPage:'',//当前页面
-				prevPage:''//上一个页面
-			}
-		},
-		onLoad(option){	
-			if(option.type=='select'){this.isSelect = true;}
-			this.setScrollHeight();
-		},
-		onReachBottom() {
-			// console.log('滑动到页面底部')
-			if(this.isLoadMore) {
-				this.initAddressList();
+				
 			}
 		},
-		methods: {
-			setScrollHeight() {
-				// 窗口高度 - 底部距离
-				setTimeout(()=> {
-					const query = wx.createSelectorQuery().in(this);
-					query.selectAll('.add-btn').boundingClientRect();
-					query.exec(res => {
-						if(res[0][0]){
-							let winHeight = this.$api.getWindowHeight(),
-								eleTop = res[0][0].top - 1;
-								this.scrollHeight =  eleTop;
-						}
-					})
-				}, 500)
-			},
-			initAddressList(){	
-				this.$api.getStorage().then((resolve) =>{
-					this.userID = resolve.userID
-					this.$api.get('/personal/findAddress',{index:this.pageNum,pageSize:this.pageSize,userID:this.userID},
-						response => {
-							if(response.results == ''){
-								this.isEmpty = true
-							}else{
-								this.isEmpty = false
-								let results =[];
-								results = response.results;
-								this.addressList = this.addressList.concat(results);
-								this.pageNum = response.index +1;
-								if(this.pageNum === response.totalPage + 1 ){
-									this.isLoadMore = false;
-								} else {
-									this.isLoadMore = true;
-								}
-							}
-						}
-					)
-				})
-			},
-			//选择地址
-			checkAddress(item){
-				//是否需要返回地址(从订单确认页跳过来选收货地址)
-				if(!this.isSelect){return ;}
-				uni.setStorageSync('selectAddress',item)
-				var pages = getCurrentPages();
-				var prevPage = pages[pages.length - 2];  //上一个页面	
-					prevPage.setData({select:'select'})
-				uni.navigateBack();
-			},
-			addAddress(type,item){
-				uni.navigateTo({
-					url: `/pages/user/address/addressManage?type=${type}&data=${JSON.stringify(item)}`
-				})
-			},
-			//删除收货地址
-			deleteAddress(id){
-				console.log('删除地址的ID',id)
-				this.isShowDelModal = true;
-				this.deleteAddressId =id;
-			},
-			confirmDetele(){
-				authorize.getCode('weixin').then(wechatcode =>{
-					this.$api.get('/personal/delete?code='+`${wechatcode}`,{addressID:this.deleteAddressId,userOrganizeID:this.userOrganizeID},
-						response => {
-							if(response.code==1){
-								uni.showToast({
-									icon: 'none',
-									title: response.msg,
-									duration: 2000
-								})
-								this.isShowDelModal = false;
-								this.pageNum = 1;
-								this.addressList = [];
-								this.initAddressList();
-							}else{
-								this.$util.msg(response.msg,3000);
-								this.isShowDelModal = false;
-								setTimeout(function(){
-									uni.switchTab({
-										url:'/pages/tabBar/home/home'
-									})
-								},1000)
-							}
-						}
-					)
-				})	
-			},
+		onLoad() {
+			
 		},
-		onShow() {
-			this.pageNum = 1;
-			this.addressList = [];
-			this.initAddressList();
-			var pages = getCurrentPages();
-			var prevPage = pages[pages.length - 2];  //上一个页面	
-				// prevPage.setData({select:''})
+		methods:{
+			navigator(url){
+				this.$api.navigateTo(url)
+			}			
 		}
 	}
 </script>
@@ -191,124 +39,48 @@
 		background: #F7F7F7;
 		border-top: 1px solid #EBEBEB;
 	}
-	.container{
-		position: relative;
-	}
-	.list{
-		display: flex;
-		align-items: center;
+	.foot-list{
+		width: 100%;
+		margin-top: 30rpx;
+	}	
+	.list-cell-item{
 		width: 702rpx;
 		height: auto;
-		padding: 24rpx;
-		background: #FFFFFF;
-		position: relative;
-		border-bottom: 1px solid #EBEBEB;
+		margin-bottom: 24rpx;
+		padding:0 24rpx;
+		background: $bg-color;
 	}
-	.wrapper{
-		display: flex;
-		flex-direction: column;
-		flex: 1;
-	}
-	.u-box.b-b{
-		
-	}
-	.u-box.b-b{
-		margin-bottom:24rpx;
-	}
-	.u-box.b-t{
-		margin-bottom:0;
-	}
-	.u-box{
-		display: flex;
-		align-items: center;
-		font-size: $font-size-base;
-		color: $text-color;
-		line-height: 40rpx;
-		margin-bottom: 12rpx;
-		.name{
-			margin-right: 40rpx;
-			font-weight: bold;
+	.list-cell{
+		display:flex;
+		width: 100%;
+		align-items:baseline;
+		line-height:100rpx;
+		position:relative;
+		background: $bg-color;
+		justify-content: center;
+		// border-bottom: 1px solid #EBEBEB;
+		&.cell-hover{
+			background:#fafafa;
 		}
-		.mobile{
-			font-weight: bold;
+		.cell-more{
+			align-self: baseline;
+			font-size:$font-size-base;
+			color:$text-color;
+			margin-left:10rpx;
 		}
-		.tag-left{
-			flex: 6;
-			.tag{
-				width: 120rpx;
-				height: 40rpx;
-				background: $color-system;
-				border-radius: 20rpx;
-				font-size: $font-size-sm;
-				color: #FFFFFF;
-				line-height: 40rpx;
-				text-align: center;
-				padding: 0 6rpx;
-			}
-		}
-		.tag-right{
-			flex: 4;
-			display: flex;
-			text-align: right;
-			.t-b{
-				flex: 1;
-				line-height: 40rpx;
-				.txt{
-					font-size: $font-size-sm;
-					color: $text-color;
-					line-height: 40rpx;
-				}
-			}
-			.icon-shanchu{
-				color:#FF2A2A ;
-				margin-right: 8rpx;
-			}
-			.icon-bianji{
-				color: #2A7AFF;
-				margin-right: 8rpx;
-			}
+		.cell-tit{
+			flex: 1;
+			font-size: $font-size-base;
+			color: $text-color;
+			margin-right:10rpx;
 		}
-		.address{
+		.cell-tip{
 			font-size: $font-size-base;
 			color: $text-color;
-			line-height: 40rpx;
-			-o-text-overflow: ellipsis;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			word-break: break-all;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
-			overflow: hidden;
 		}
-	}
-	.add-btn{
-		position: fixed;
-		left: 24rpx;
-		right: 24rpx;
-		bottom: 34rpx;
-		z-index: 95;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 702rpx;
-		height: 88rpx;
-		font-size: $font-size-base;
-		line-height: 88rpx;
-		color: #FFFFFF;
-		text-align: center;
-		background: $btn-confirm;
-		border-radius: 14rpx;
-	}
-	.adds-btn{
-		width: 702rpx;
-		height: 88rpx;
-		font-size: 28rpx;
-		line-height: 88rpx;
-		color: #FFFFFF;
-		margin: 0 auto;
-		text-align: center;
-		background: #000000;
-		border-radius: 14rpx;
+	}	
+	.list-cell.last{
+		border-bottom: none;
 	}
 </style>
 

二进制
static/temp/logo@3x.png


+ 1 - 0
uni.scss

@@ -27,6 +27,7 @@ $font-size-sb:26rpx;
 $font-size-base:28rpx;
 $font-size-se:30rpx;
 $font-size-lg:32rpx;
+$font-size-36:36rpx;
 $font-size-big:44rpx;
 
 /* 行为相关颜色 */