quanwei
16 hours ago b90b528cb5c6eaebe03fba972fef658a741ce896
branch_vue/src/views/activity/activity/add.vue
@@ -15,7 +15,7 @@
        <el-input v-model="form.name" placeholder="请输入活动标题" class="max-w460"></el-input>
      </el-form-item>
      <el-form-item label="活动分类" prop="category_id">
        <el-select v-model="form.category_id" placeholder="请选择">
        <el-select v-model="form.category_id" placeholder="请选择" @change="handleCategoryChange">
          <el-option v-for="(item, index) in category" :key="index" :label="item.name" :value="item.category_id"></el-option>
        </el-select>
      </el-form-item>
@@ -45,6 +45,9 @@
          <el-radio :label="1">是</el-radio>
          <el-radio :label="0">否</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item v-if="form.is_visit" label="被走访企业名称" prop="visit_supplier_name">
        <el-input v-model="form.visit_supplier_name" placeholder="商户没有入驻时,请输入被走访企业名称" class="max-w460"></el-input>
      </el-form-item>
      <el-form-item label="被走访企业" prop="visit_supplier_id" v-if="form.is_visit">
        <el-row>
@@ -80,7 +83,7 @@
        <el-input v-model="form.limit_num" placeholder="请输入活动名额" class="max-w460">
          <template slot="append">人</template>
        </el-input>
        <div class="gray9">0为不限制人数</div>
        <div class="gray9">0为不限制人数{{selectedCategory.limit_num?(',该分类最多'+selectedCategory.limit_num+'人'):''}}</div>
      </el-form-item>
      <el-form-item label="联系电话" prop="phone">
        <el-input v-model="form.phone" placeholder="请输入联系电话" class="max-w460"></el-input>
@@ -240,6 +243,8 @@
      },
      /*活动类别*/
      category: [],
      /*选中的分类信息*/
      selectedCategory: null,
      loading: false,
      upload_type: 'image', // 封面image 分享海报pic
      open_branch: false,
@@ -298,12 +303,24 @@
        .then(res => {
          self.category = res.data.category;
          if(self.category.length > 0){
            self.form.category_id = self.catgory[0].category_id;
            self.form.category_id = self.category[0].category_id;
            // 设置默认选中的分类信息
            self.selectedCategory = self.category[0];
          }
        })
        .catch(error => {
        });
    },
    /*处理分类选择变化*/
    handleCategoryChange(value) {
      // 根据选中的category_id找到对应的分类对象
      const selected = this.category.find(item => item.category_id === value);
      this.selectedCategory = selected || null;
      // 可以在这里添加其他业务逻辑,比如根据分类显示不同的表单字段等
      console.log('选中的分类信息:', this.selectedCategory);
    },
    /*添加活动*/
@@ -320,30 +337,67 @@
      // }
      self.$refs.form.validate(valid => {
        if (valid) {
          self.loading = true;
          form.content = this.$refs.ue.getUEContent();
          // 如果走访企业,则被走访企业就是场地提供者
          if (form.is_visit) {
            form.space_supplier_id = '';
          } else {
            form.visit_supplier_id = '';
          }
          BranchApi.addActivity({formData: JSON.stringify(form)}, true)
            .then(data => {
              self.loading = false;
              self.$message({
                message: data.msg,
                type: 'success'
              });
              self.$router.push('/activity/activity/index');
            })
            .catch(error => {
              self.loading = false;
          // 如果是走访活动,先检查差评
          if (form.is_visit && (form.visit_supplier_id || form.visit_supplier_name)) {
            BranchApi.checkNegativeComment({
              visit_supplier_id: form.visit_supplier_id || 0,
              visit_supplier_name: form.visit_supplier_name || '',
              activity_id: 0
            }).then(res => {
              if (res.data.has_warning) {
                // 显示确认对话框
                self.$confirm(res.data.message, '提示', {
                  confirmButtonText: '继续走访',
                  cancelButtonText: '取消',
                  type: 'warning'
                }).then(() => {
                  // 用户确认继续,直接提交
                  self.submitForm();
                }).catch(() => {
                  // 用户取消
                });
              } else {
                // 没有差评警告,直接提交
                self.submitForm();
              }
            }).catch(error => {
              // 检查失败,直接提交
              self.submitForm();
            });
          } else {
            // 不是走访活动,直接提交
            self.submitForm();
          }
        }
      });
    },
    /*提交表单*/
    submitForm() {
      let self = this;
      self.loading = true;
      let form = self.form;
      form.content = this.$refs.ue.getUEContent();
      // 如果走访企业,则被走访企业就是场地提供者
      if (form.is_visit) {
        form.space_supplier_id = '';
      } else {
        form.visit_supplier_id = '';
      }
      BranchApi.addActivity({formData: JSON.stringify(form)}, true)
        .then(data => {
          self.loading = false;
          self.$message({
            message: data.msg,
            type: 'success'
          });
          self.$router.push('/activity/activity/index');
        })
        .catch(error => {
          self.loading = false;
        });
    },
    /*选择的地址*/
    selectFromMap(e){
      this.form.coordinate = e.location.lat + ',' + e.location.lng;