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>
@@ -53,32 +64,31 @@
         </view>
         <view class="input-group-row">
            <text class="label">推荐人</text>
            <view class="right-text">
               <picker mode="selector" range-key="vipName" :range="referrerList" @change="referrerChange">
                  <view>
                     <text :class="recommendName?'':'gray'">{{recommendName?recommendName:'请选择推荐人'}}</text>
                     <text class="iconfont iconjiantouarrow486 gray"></text>
                  </view>
               </picker>
            </view>
            <navigator :url="'./selectCustomer?selectId='+formData.recommendId" hover-class="none" class="right-text">
               <text :class="recommendName?'':'gray'">{{recommendName?recommendName:'请选择推荐人'}}</text>
               <text class="iconfont iconarrow-backimg gray"></text>
            </navigator>
         </view>
         <view class="input-group-row">
            <text class="label">备注</text>
            <input name="remark" v-model="formData.remark" maxlength="60" type="text" placeholder="请填写备注" placeholder-class='placeholder'/>
         </view>
         <view 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>
         </view>
         <button form-type="submit" :disabled="isDisabled" class="blue-btn sticky-footer">保存</button>
         <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:{
@@ -97,13 +107,15 @@
               arrivalWay: '',
               recommendId: '',
               remark: '',
               labels: []
               labels: [],
               photo: '',
               password: ''
            },
            id: '',
            isDisabled: false,
            arrivalWayList: [],
            referrerList: [],
            recommendName: ''
            recommendName: '',
            labels: []
         }
      },
      onLoad(options) {
@@ -135,11 +147,11 @@
         loadReferrerList(){
            this.$httpUtils.request('/api/vip/findAllVipInfo').then((res) => {
               if(res.status == 200){
                  this.referrerList = res.rows;
                  let result = res.rows;
                  if(this.id){
                     for(var i in this.referrerList){
                        if(this.referrerList[i].id === this.formData.recommendId){
                           this.recommendName = this.referrerList[i].vipName;
                     for(var i in result){
                        if(result[i].id === this.formData.recommendId){
                           this.recommendName = result[i].vipName;
                           break;
                        }
                     }
@@ -154,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;
@@ -188,20 +211,20 @@
         wayChange(e){
            this.formData.arrivalWay = this.arrivalWayList[e.detail.value].value;
         },
         referrerChange(e){
            this.formData.recommendId = this.referrerList[e.detail.value].id;
            this.recommendName = this.referrerList[e.detail.value].vipName;
         },
         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;
@@ -212,6 +235,8 @@
            }
         },
         submit(e){
            let pages = getCurrentPages();
            let prevPage = pages[ pages.length - 2 ];
            let url = '';
            if(this.valid() === false){
               return;
@@ -223,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);
@@ -233,13 +263,44 @@
               this.isDisabled = false;
            })
         },
         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
            })
         }
      }
   }
</script>
<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>