From 0ec9deee224f5eb8499a3726db765c46da391bcf Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Wed, 8 Jan 2025 18:05:14 +0800 Subject: [PATCH] 1 --- src/utils/formBuilder.js | 51 ++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/utils/formBuilder.js b/src/utils/formBuilder.js index 2b58e18..e3a762e 100644 --- a/src/utils/formBuilder.js +++ b/src/utils/formBuilder.js @@ -184,7 +184,6 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab return (isNaN(Number(target[info.name])) || !target[info.name]) ? target[info.name] : Number(target[info.name]) } } - console.log(info.name, getSelectValue(), target[info.name]) formItem = h( formBuilderMap(device).get(info.type), { @@ -1430,30 +1429,32 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab ); break; case "select": - let findSelect = options.find((i) => - typeof i === "object" - ? i.id === this.form[info.name] - : i === this.form[info.name] - ); - formItem = h( - "van-cell", - { - attrs: { - for: info.name - }, - props: { - title: info.label, - value: typeof findSelect === "object" ? findSelect.name : findSelect - } - }, - ); - break; case 'choice': - let findChoice = options.find((i) => - typeof i === "object" - ? i.id === this.form[info.name] - : i === this.form[info.name] - ); + const getDetailMobileSelectValue = () => { + let res = '' + if (!!info.multiple) { + res = target[info.name] ? target[info.name].toString()?.split(/,|\|/).map(i => isNaN(Number(i)) ? i : Number(i)) : [] + } else { + res = isNaN(Number(target[info.name])) ? target[info.name] : Number(target[info.name]) + } + if (res instanceof Array) { + if (typeof options[0] === 'object') { + return options?.filter((i) => + res.indexOf(i.id) !== -1 + )?.map(i => i.name)?.toString() + } else { + return res + } + } else { + if (typeof options[0] === 'object') { + return options?.filter((i) => + res === i.id + )?.map(i => i.name)?.toString() + } else { + return res + } + } + } formItem = h( "van-cell", { @@ -1462,7 +1463,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }, props: { title: info.label, - value: typeof findChoice === "object" ? findChoice.name : findChoice + value: getDetailMobileSelectValue() } }, );