You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中如何通过变量动态发起关联Provider_id的查询请求

Vue项目动态传递provider_id实现查询的修复方案

你的代码里有两个关键问题导致动态传参失败,直接按下面的步骤修改即可:

1. 修复axios请求的语法错误

你当前的axios.get写法存在语法错误:URL后面多了一个右括号,而且没必要在URL里手动拼接provider_id——axios会自动把params对象里的参数拼接到请求URL后面,重复拼接反而会引发问题。

2. 修正变量作用域与引用问题

  • 在函数开头定义const self = this;,确保then回调里能正确访问组件实例的属性
  • 组件内的data属性(比如this.searchC.id、this.date)要保留this.前缀;如果是局部变量,要确保已经正确定义或传入

修正后的完整代码

ConsultPurchasesProv() {
  const self = this; // 先定义self,确保回调中能访问组件实例
  this.axios
    .get("/api/TSO-consult-purchases-of-prov", {
      params: {
        selection_id: selection_id,
        type: type,
        provider_id: provider_id, // 这里动态传入provider_id变量
        nameprov: this.searchC.id,
        brand_id: brand_id,
        user_id: user_id,
        purchase_id: purchase_id,
        date: this.date,
        date2: this.date2,
        type: self.status,
        invoice: self.invoice,
      },
    })
    .then(function (response) {
      if (response.data.status == "200") {
        self.purchasesItems = response.data.purchaseorders;
        self.totalExpensesMonth = _.sumBy(
          self.purchasesItems,
          function (o) {
            return o.total;
          }
        );
        self.month = response.data.month;
        self.year = response.data.year;
      }
    });
}

补充说明

  • 如果provider_id是组件的data属性,记得改成this.provider_id
  • 检查selection_id、type等变量是否已经正确定义,避免未定义报错
  • axios会自动处理params的拼接,最终请求的URL会自动带上?provider_id=xxx&...这类参数,和你手动输入的效果完全一致

内容的提问来源于stack exchange,提问作者Nacho Raf Millan Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:35:23