|
|
@@ -10,32 +10,39 @@ interface Props {
|
|
|
}
|
|
|
const props = defineProps<Props>()
|
|
|
|
|
|
+// 递归将上传的值改成数组
|
|
|
+const uploadValueChange = (formItems: Array<BasicFormItem>) => {
|
|
|
+ formItems.forEach(item => {
|
|
|
+ if (['upload', 'image-upload'].includes(item.type) && !Array.isArray(props.formData[item.name])) {
|
|
|
+ props.formData[item.name] = props.formData[item.name]
|
|
|
+ .split(',')
|
|
|
+ .filter((item: string) => item)
|
|
|
+ .map((item: string) => ({ url: item }))
|
|
|
+ } else if (item.type === 'file-upload' && typeof props.formData[item.name] === 'string') {
|
|
|
+ try {
|
|
|
+ props.formData[item.name] = JSON.parse(props.formData[item.name] || '[]').map((item: any) => ({
|
|
|
+ url: item.url,
|
|
|
+ name: item.name
|
|
|
+ }))
|
|
|
+ } catch (error) {
|
|
|
+ props.formData[item.name] = []
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.children && uploadValueChange(item.children)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
const formData = computed(() => {
|
|
|
if (props.formData.id) {
|
|
|
// 将上传的值改成数组
|
|
|
- props.formConfig.formItems.forEach(item => {
|
|
|
- if (['upload', 'image-upload'].includes(item.type) && !Array.isArray(props.formData[item.name])) {
|
|
|
- props.formData[item.name] = props.formData[item.name]
|
|
|
- .split(',')
|
|
|
- .filter((item: string) => item)
|
|
|
- .map((item: string) => ({ url: item }))
|
|
|
- } else if (item.type === 'file-upload' && typeof props.formData[item.name] === 'string') {
|
|
|
- try {
|
|
|
- props.formData[item.name] = JSON.parse(props.formData[item.name] || '[]').map((item: any) => ({
|
|
|
- url: item.url,
|
|
|
- name: item.name
|
|
|
- }))
|
|
|
- } catch (error) {
|
|
|
- props.formData[item.name] = []
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
+ uploadValueChange(props.formConfig.formItems)
|
|
|
return props.formData
|
|
|
} else {
|
|
|
// 构造表单值
|
|
|
const res = props.formData
|
|
|
const buildFormData = (formItems: Array<BasicFormItem>, res: any) => {
|
|
|
formItems.forEach(item => {
|
|
|
+ console.log(item.type)
|
|
|
if (!item.notFormItem || !notFormItem.includes(item.type)) {
|
|
|
// 将上传的值改成数组
|
|
|
if (['upload', 'image-upload'].includes(item.type) && !Array.isArray(item.value)) {
|
|
|
@@ -45,6 +52,7 @@ const formData = computed(() => {
|
|
|
.filter((item: string) => item)
|
|
|
.map((item: string) => ({ url: item })) || []
|
|
|
} else if (item.type === 'file-upload' && typeof item.value === 'string') {
|
|
|
+ console.log('file:', item)
|
|
|
try {
|
|
|
item.value = JSON.parse(item.value || '[]').map((item: any) => ({
|
|
|
url: item.url,
|