amis icon indicating copy to clipboard operation
amis copied to clipboard

下拉框的适配器应该怎么写啊,还是没看明白

Open mxian opened this issue 1 year ago • 6 comments

实现场景:

请简单描述你想要实现的原始场景,例如:我想要实现xxx的功能...

存在的问题:

请简单描述你现在遇到的不符合预期的问题...

我的接口返回是这样的: image

要怎么写适配器才能返回要求的格式呢? { "status": 0, "msg": "", "data": { "options": [ { "label": "A", "value": "a" }, { "label": "B", "value": "b" }, { "label": "C", "value": "c" } ] } }

当前方案:

请粘贴你当前方案的完整 amis schema 代码...

code here...

mxian avatar Jan 17 '24 08:01 mxian

这里假设所有请求都返回成功。你按需改下 label 和 value。

payload.status = 0;
const options = payload.data.result.map(r => {
  const label = r.recordUri;
  const value = r.recordTaskRunId;
  return {
    label,
    value
  };
});
payload.data = { options };
return payload;

DivineRapierH avatar Jan 18 '24 08:01 DivineRapierH

感谢大佬提示!!!!!

mxian avatar Jan 18 '24 08:01 mxian

这里假设所有请求都返回成功。你修改下标签和值。

payload.status = 0;
const options = payload.data.result.map(r => {
  const label = r.recordUri;
  const value = r.recordTaskRunId;
  return {
    label,
    value
  };
});
payload.data = { options };
return payload;

大佬,payload.status = 0可以修改1为正确值吗,和现在的后台接口返回相反了

Liurf27 avatar Apr 10 '24 07:04 Liurf27

这里假设所有请求都返回成功。你修改下标签和值。

payload.status = 0;
const options = payload.data.result.map(r => {
  const label = r.recordUri;
  const value = r.recordTaskRunId;
  return {
    label,
    value
  };
});
payload.data = { options };
return payload;

大佬,payload.status = 0可以修改1为正确值吗,和现在的后台接口返回相反了

把第一行改成 payload.status = payload.status === 1 ? 0 : payload.status;

DivineRapierH avatar Apr 10 '24 08:04 DivineRapierH

这里假设所有请求都返回成功。你修改下标签和值。

payload.status = 0;
const options = payload.data.result.map(r => {
  const label = r.recordUri;
  const value = r.recordTaskRunId;
  return {
    label,
    value
  };
});
payload.data = { options };
return payload;

大佬,payload.status = 0可以修改1为正确值吗,和现在的后台接口返回相反了

把第一行改成 payload.status = payload.status === 1 ? 0 : payload.status;

有没有修改源码接口请求一劳永逸的方法吖(例如在源码内的请求前转换一次格式,和status的判断,不需要在各个组件有接口请求的地方重新填写一次适配器),之前就是通过payload.status = payload.status === 1 ? 0 : payload.status;这种方式去修改,但是会导致有接口请求的组件都有得写这个适配器,会导致整个页面的json出现大量重复的适配器内容

Liurf27 avatar Apr 11 '24 01:04 Liurf27

这里假设所有请求都返回成功。你修改下标签和值。

payload.status = 0;
const options = payload.data.result.map(r => {
  const label = r.recordUri;
  const value = r.recordTaskRunId;
  return {
    label,
    value
  };
});
payload.data = { options };
return payload;

大佬,payload.status = 0可以修改1为正确值吗,和现在的后台接口返回相反了

把第一行改成 payload.status = payload.status === 1 ? 0 : payload.status;

有没有修改源码接口请求一劳永逸的方法吖(例如在源码内的请求前转换一次格式,和status的判断,不需要在各个组件有接口请求的地方重新填写一次适配器),之前就是通过payload.status = payload.status === 1 ? 0 : payload.status;这种方式去修改,但是会导致有接口请求的组件都有得写这个适配器,会导致整个页面的json出现大量重复的适配器内容

目前我们的使用场景就是每个地方都写适配器,好像没有其他特别好的办法... 我感觉低代码 JSON 配置很难规避重复内容,这和写代码不太一样,转换思路尝试接受吧哈哈。

DivineRapierH avatar Apr 11 '24 03:04 DivineRapierH