import type { Form } from 'lib/type/TableData' export function formatConfig(config: Array) { if (typeof config === 'object') { config = JSON.parse(JSON.stringify(config)) } config?.forEach((item: any) => { let defaultValue: any = '' if (item.type === 'text') { item.type = 'input' item.rows = 5 defaultValue = item.value || '' } else if (item.type === 'radio') { item.type = 'select' item.items = item.option.map((item: any) => { return { key: item.value, name: item.name } }) delete item.option defaultValue = item.value || '' } else if (item.type === 'checkbox') { item.multiple = true item.type = 'select' item.items = item.option.map((item: any) => { return { key: item.value, name: item.name } }) delete item.option defaultValue = item.value.split(',') if (defaultValue.length === 1 && defaultValue[0] === '') { defaultValue = [] } } else if (item.type === 'switch') { item.openValue = true item.closeValue = false defaultValue = !!item.value } else if (item.type === 'json') { item.type = 'jsonInput' defaultValue = item.value || '' } else { defaultValue = item.value || '' } item.getValue = () => defaultValue delete item.value }) return config } export function updateFormData(form: Form, data: Array) { while (form.data.length > 0) { form.data.pop() } for (const d of data) { form.data.push(d) } }