mobile/pages/shop/register.vue
@@ -28,6 +28,14 @@
                     <view class="icon iconfont icon-yanzhengma"></view>
                     <input type="text" name="code" v-model="form.code" placeholder='请输入验证码' />
                  </view>
                  <picker class="" value="" @change="changeSupplierType($event)"
                     :range="supplier_type_list">
                     <view class="certification_head_body_item d-b-c">
                        <view class="make-item input-box flex-1" v-if="supplier_type_name_active">{{supplier_type_name_active}}</view>
                        <view class="make-item input-box flex-1" style="color: #777777;" v-else>请选择供应商类型</view>
                        <view class="icon iconfont icon-jiantou" style="font-size: 24rpx;"></view>
                     </view>
                  </picker>
                  <picker class="" value="" @change="changeSelect($event)"
                     :range="classify_data_name">
                     <view class="certification_head_body_item d-b-c">
@@ -104,6 +112,11 @@
            area_data_id: '', //列表id
            area_data_name_active: '', //当前选中的列表名字
            area_data_id_active: '', //当前选中的列表id
            supplier_type_list: [], //供应商类型列表
            supplier_type_ids: [], //供应商类型ID列表
            supplier_type_name_active: '', //当前选中的供应商类型名称
            supplier_type_id_active: '', //当前选中的供应商类型ID
            classify_all_data: [], //保存所有分类数据
            /*当前秒数*/
            second: 60,
            send_btn_txt: '获取验证码',
@@ -166,20 +179,51 @@
            self._post('supplier.apply/category', {
            }, function(res) {
               // 保存所有分类数据(新的数据结构:list是对象,key是类型ID)
               self.classify_all_data = res.data.list || {};
               self.sms_open = res.data.sms_open;
               // 处理供应商类型列表
               let typeList = res.data.typeList || {};
               self.supplier_type_list = [];
               self.supplier_type_ids = [];
               for (let key in typeList) {
                  self.supplier_type_list.push(typeList[key]);
                  self.supplier_type_ids.push(parseInt(key));
               }
               // 如果已经选择了供应商类型,则过滤对应的分类
               if (self.supplier_type_id_active) {
                  self.filterClassifyByType(self.supplier_type_id_active);
               }
            });
         },
         //根据供应商类型过滤分类
         filterClassifyByType(type) {
            let self = this;
               let list_name = [];
               let list_id = [];
            let targetList = [];
            // 根据新的数据结构:classify_all_data是对象,key是类型ID
            // 需要处理type可能是字符串的情况
            let typeKey = String(type);
            if (self.classify_all_data && self.classify_all_data[typeKey]) {
               targetList = self.classify_all_data[typeKey] || [];
            }
               //合成select列表
               for (var i = 0; i < res.data.list.length; i++) {
                  list_name.push(res.data.list[i].name);
            for (var i = 0; i < targetList.length; i++) {
               list_name.push(targetList[i].name);
               list_id.push(targetList[i].category_id);
               }
               //合成上传所需id数组
               for (var i2 = 0; i2 < res.data.list.length; i2++) {
                  list_id.push(res.data.list[i2].category_id);
               }
               self.classify_data_name = list_name;
               self.classify_data_id = list_id;
               self.sms_open = res.data.sms_open;
            });
            // 清空当前选择的分类
            self.classify_data_name_active = '';
            self.classify_data_id_active = '';
         },
         //选择分类
         select() {
@@ -222,6 +266,7 @@
            formdata.business_id = self.form.business_id;
            formdata.category_id = self.classify_data_id_active;
            formdata.area_id = self.area_data_id_active;
            formdata.supplier_type = self.supplier_type_id_active;
            if (self.classify_data_name_active == '') {
               uni.showToast({
                  title: '请填主营类别',
@@ -233,6 +278,14 @@
            if (self.area_data_id.length > 0 && self.area_data_id_active == '') {
               uni.showToast({
                  title: '请选择所在区域',
                  duration: 1000,
                  icon: 'none'
               });
               return false;
            }
            if (self.supplier_type_id_active == '') {
               uni.showToast({
                  title: '请选择供应商类型',
                  duration: 1000,
                  icon: 'none'
               });
@@ -342,6 +395,15 @@
            this.area_data_id_active = this.area_data_id[e.detail.value];
            this.area_data_name_active = this.area_data_name[e.detail.value];
         },
         /* 供应商类型选择 */
         changeSupplierType(e) {
            let index = parseInt(e.detail.value);
            let typeId = this.supplier_type_ids[index];
            this.supplier_type_id_active = typeId.toString();
            this.supplier_type_name_active = this.supplier_type_list[index];
            // 根据选择的供应商类型过滤分类
            this.filterClassifyByType(this.supplier_type_id_active);
         },
      }
   }
</script>