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

如何从Vue Formulate表单中获取符合要求格式的key:value键值对

解决方案

你只需要修正下拉选项的配置,再加一步数据组装逻辑就能生成目标格式的JSON:

1. 修正下拉选项的value配置

你现有代码里下拉选项的value都写死成了id,导致无法拿到选中的编码值,先调整为:

<FormulateInput
  type="select"
  name="code"
  label="Choose Code"
  :options="[{ value: 'B', label: 'B' },{ value: 'S', label: 'S' },{ value: 'D', label: 'D' }]" 
/>

2. 新增硬编码映射关系,调整提交方法的组装逻辑

提前定义好每个id对应的description值,再按目标结构拼接数据即可:

export default {
  name: "TxnMappings",
  data() {
    return {
      formValues: {},
      // 存储最终生成的目标结构
      targetJson: { foo: {} },
      // 硬编码id和描述的对应关系,可按需扩展
      descMapping: {
        B: 'BSK',
        D: 'DOE',
        S: '自定义S对应的描述'
      },
      txnData: this.data,
    };
  },
  props: ["data", "hasAddTxn", "isCreate"],
  methods: {
    addMapping() {
      const { code, mapped } = this.formValues
      // 将用户输入的映射名作为key,追加到foo属性下
      this.targetJson.foo[mapped] = {
        id: code,
        description: this.descMapping[code]
      }
      // 打印查看生成的完整JSON
      console.log(JSON.stringify(this.targetJson))
    }
  }
};

效果说明

如果用户在文本框输入bar、下拉选B,提交后生成的结构为:

{"foo":{"bar":{"id":"B","description":"BSK"}}}

多次提交不同的映射名和编码,会自动在foo下累加对应的键值对,完全匹配你需要的格式。

内容的提问来源于stack exchange,提问作者Alpug Parker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:45:02