| | |
| | | <view class="container"> |
| | | <form @submit="submit" id="list"> |
| | | <view class="input-group-row"> |
| | | <text class="label">会员头像</text> |
| | | <view class="right-text flex align-center justify-end" @click="showUploadImage"> |
| | | <image :src="formData.photo?formData.photo:'../../static/images/default-avatar.png'" class="avatar"></image> |
| | | <text class="iconfont iconarrow-backimg gray"></text> |
| | | </view> |
| | | </view> |
| | | <view class="input-group-row"> |
| | | <text class="label">会员姓名<text class="require">*</text></text> |
| | | <input name="vipName" v-model="formData.vipName" type="text" maxlength="20" placeholder="请填写会员姓名" placeholder-class='placeholder'/> |
| | | </view> |
| | | <view class="input-group-row"> |
| | | <text class="label">会员编号<text class="require">*</text></text> |
| | | <text class="label">会员编号</text> |
| | | <input name="vipNo" v-model="formData.vipNo" type="text" maxlength="10" placeholder="请填写会员编号" placeholder-class='placeholder'/> |
| | | </view> |
| | | <view class="input-group-row"> |
| | | <text class="label">资金密码</text> |
| | | <input name="password" v-model="formData.password" type="password" maxlength="6" placeholder="6位数字格式密码" placeholder-class='placeholder'/> |
| | | </view> |
| | | <view class="input-group-row"> |
| | | <text class="label">手机号码<text class="require">*</text></text> |
| | |
| | | <view class="input-group-row"> |
| | | <text class="label">性别<text class="require">*</text></text> |
| | | <view class="right-text"> |
| | | <radio-group name="sex"> |
| | | <radio-group name="sex" @change="sexChange"> |
| | | <label><radio value="男" color="#518EFF" class="radio" :checked="formData.sex==='男'"/>男</label> |
| | | <label><radio value="女" color="#518EFF" class="radio" :checked="formData.sex==='女'"/>女</label> |
| | | </radio-group> |
| | |
| | | <text class="label">备注</text> |
| | | <input name="remark" v-model="formData.remark" maxlength="60" type="text" placeholder="请填写备注" placeholder-class='placeholder'/> |
| | | </view> |
| | | <navigator url="./addLabel" hover-class="none" class="input-group-row"> |
| | | <view class="input-group-cloume" @click="toLabel"> |
| | | <text class="label">标签</text> |
| | | <view class="right-text"> |
| | | <!-- <text class="tag">大方<text class="iconfont iconguanbi gray"></text></text> --> |
| | | <view class="tag-wrap"> |
| | | <text class="tag" v-for="item in labels">{{item.label}}</text> |
| | | </view> |
| | | </navigator> |
| | | <button form-type="submit" :disabled="isDisabled" class="blue-btn sticky-footer">保存</button> |
| | | </view> |
| | | <view class="footer"> |
| | | <button form-type="submit" :disabled="isDisabled" class="blue-btn ">保存</button> |
| | | </view> |
| | | </form> |
| | | <region ref="simpleAddress" @onConfirm="addressChange" themeColor="#518EFF" cancelColor="#8c9fad"></region> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import imageUploadUtils from '../../common/jssdk/uploadImg.js' |
| | | import region from '../../components/simple-address/simple-address.vue'; |
| | | export default{ |
| | | components:{ |
| | |
| | | arrivalWay: '', |
| | | recommendId: '', |
| | | remark: '', |
| | | labels: [] |
| | | labels: [], |
| | | photo: '', |
| | | password: '' |
| | | }, |
| | | id: '', |
| | | isDisabled: false, |
| | | arrivalWayList: [], |
| | | recommendName: '' |
| | | recommendName: '', |
| | | labels: [] |
| | | } |
| | | }, |
| | | onLoad(options) { |
| | |
| | | const result = res.mapInfo.vipInfo; |
| | | const {province, city, area} = result; |
| | | for(var key in this.formData){ |
| | | this.formData[key] = result[key]; |
| | | if(key!='labels'){ |
| | | this.formData[key] = result[key]; |
| | | } |
| | | } |
| | | this.labels = result.labels; |
| | | let arr = [province, city, area].filter((item) => { |
| | | return item |
| | | }) |
| | | this.formData.areas = arr.join('-') |
| | | } |
| | | }) |
| | | }, |
| | | showUploadImage(){ |
| | | imageUploadUtils.show((res) => { |
| | | this.formData.photo = res; |
| | | }) |
| | | }, |
| | | sexChange(e){ |
| | | this.formData.sex = e.detail.value; |
| | | }, |
| | | dateChange(e){ |
| | | this.formData.birthday = e.detail.value; |
| | |
| | | this.formData.arrivalWay = this.arrivalWayList[e.detail.value].value; |
| | | }, |
| | | valid(){ |
| | | const {vipName, vipNo, phone, sex} = this.formData; |
| | | const {vipName, vipNo,password, phone, sex} = this.formData; |
| | | if(!vipName){ |
| | | this.$toast.info('请填写会员姓名'); |
| | | return false; |
| | | } |
| | | if(!vipNo){ |
| | | this.$toast.info('请填写会员编号'); |
| | | return false; |
| | | } |
| | | // if(!vipNo){ |
| | | // this.$toast.info('请填写会员编号'); |
| | | // return false; |
| | | // } |
| | | // if(!/^\d{6}$/.test(password)){ |
| | | // this.$toast.info('请填写6位数字格式的密码'); |
| | | // return false; |
| | | // } |
| | | if(!this.$utils.checkPhone(phone)){ |
| | | this.$toast.info('请填写正确的手机号码'); |
| | | return false; |
| | |
| | | } |
| | | }, |
| | | submit(e){ |
| | | let pages = getCurrentPages(); |
| | | let prevPage = pages[ pages.length - 2 ]; |
| | | let url = ''; |
| | | if(this.valid() === false){ |
| | | return; |
| | |
| | | } else { |
| | | url = '/api/vip/addVip'; |
| | | } |
| | | this.formData.labels = this.labels.map((item) => { |
| | | return item.id |
| | | }); |
| | | this.$httpUtils.request(url, this.formData, 'POST').then((res) => { |
| | | if(res.status == 200){ |
| | | console.log(prevPage.$vm.loadMemberList) |
| | | prevPage.$vm.loadMemberList && prevPage.$vm.loadMemberList(); |
| | | uni.navigateBack() |
| | | } |
| | | this.$toast.info(res.info); |
| | |
| | | this.isDisabled = false; |
| | | }) |
| | | }, |
| | | setData(item){ |
| | | this.recommendName = item.name; |
| | | this.formData.recommendId = item.id; |
| | | setData(selectItem){ |
| | | selectItem.forEach((item) => { |
| | | this.recommendName = item.vipName; |
| | | this.formData.recommendId = item.id; |
| | | }); |
| | | }, |
| | | setLabel(selectItem){ |
| | | this.labels = selectItem; |
| | | |
| | | }, |
| | | toLabel(){ |
| | | let labels = this.labels.map((item) => { |
| | | return item.id |
| | | }); |
| | | let str = labels.length?labels.join(','):''; |
| | | uni.navigateTo({ |
| | | url: './addLabel?selectId='+str |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | <style> |
| | | .container{ |
| | | padding: 10px 10px; |
| | | padding: 10px 10px 80px; |
| | | } |
| | | |
| | | .avatar{ |
| | | width: 44px; |
| | | height: 44px; |
| | | border-radius: 50%; |
| | | } |
| | | .footer{ |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background: #FFFFFF; |
| | | padding: 0 10px 20px; |
| | | } |
| | | </style> |