yintai-company-home-am/tools.ts

61 lines
1.6 KiB
TypeScript

import type { Form } from 'lib/type/TableData'
export function formatConfig(config: Array<any>) {
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<any>) {
while (form.data.length > 0) {
form.data.pop()
}
for (const d of data) {
form.data.push(d)
}
}