gx
queenwuli
2021-01-25 c4246ca910f28014efaace64ebf92f47a673a9cf
hive-app/pages/member/editMember.vue
@@ -2,12 +2,23 @@
   <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>
@@ -16,7 +27,7 @@
         <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>
@@ -62,19 +73,22 @@
            <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:{
@@ -93,12 +107,15 @@
               arrivalWay: '',
               recommendId: '',
               remark: '',
               labels: []
               labels: [],
               photo: '',
               password: ''
            },
            id: '',
            isDisabled: false,
            arrivalWayList: [],
            recommendName: ''
            recommendName: '',
            labels: []
         }
      },
      onLoad(options) {
@@ -149,14 +166,25 @@
                  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;
@@ -184,15 +212,19 @@
            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;
@@ -203,6 +235,8 @@
            }
         },
         submit(e){
            let pages = getCurrentPages();
            let prevPage = pages[ pages.length - 2 ];
            let url = '';
            if(this.valid() === false){
               return;
@@ -214,8 +248,13 @@
            } 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);
@@ -224,9 +263,24 @@
               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
            })
         }
      }
   }
@@ -234,7 +288,19 @@
<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>