diff --git a/src/utils/formBuilder.js b/src/utils/formBuilder.js index cc49d9d..8acc4c0 100644 --- a/src/utils/formBuilder.js +++ b/src/utils/formBuilder.js @@ -277,8 +277,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab row[info.name].push({ response: response.data.data, name: response.data.data.original_name, - url: response.data.data.url, - TYPE_FILE: 1 + url: response.data.data.url }) } else { this.$message.error("上传失败") @@ -316,22 +315,13 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab file.response = file.response.data; } }); - this.form[info.name] = fileList.map(i => ({ - ...i, - TYPE_FILE: 1 - })); + this.form[info.name] = fileList }, onRemove: (file, fileList) => { - this.form[info.name] = fileList.map(i => ({ - ...i, - TYPE_FILE: 1 - })); + this.form[info.name] = fileList }, onError: (err, file, fileList) => { - this.form[info.name] = fileList.map(i => ({ - ...i, - TYPE_FILE: 1 - })); + this.form[info.name] = fileList this.$message({ type: "warning", message: err, @@ -905,21 +895,21 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }, [formItem,(() => { if (info.is_sign) { - let log = this.logs.find(log => log.node?.fields?.findIndex(field => field?.field?.name === info.name) !== -1) - if (log) { + let log = this.logs.find(log => log.node?.fields?.findIndex(field => field?.field?.name === info.name) !== -1) && (row ? row[info.name] : this.form[info.name]) + if (log && log.user) { return h('div',[ h('el-image',{ style: { 'max-height': '80px' }, props: { - src: log.user.sign_file?.url, + src: log.user?.sign_file?.url, fit: 'contain', - alt: log.user.sign_id + alt: log.user?.sign_id }, attrs: { - src: log.user.sign_file?.url, - alt: log.user.sign_id + src: log.user?.sign_file?.url, + alt: log.user?.sign_id } }) ]) @@ -930,11 +920,6 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab } } if (device === "mobile") { - let findValue = options?.find((i) => - typeof i === "object" - ? i.id === (row ? row[info.name] : this.form[info.name]) - : i === (row ? row[info.name] : this.form[info.name]) - ); if (info._writeable || pWrite) { switch (info.type) { case "text": @@ -1024,13 +1009,18 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }); break; case "select": + let findSelect = options?.find((i) => + typeof i === "object" + ? i.id === (row ? row[info.name] : this.form[info.name]) + : i === (row ? row[info.name] : this.form[info.name]) + ); formItem = h("van-field", { props: { readonly: true, clickable: true, name: info.name, label: info.label, - value: typeof findValue === "object" ? findValue.name : findValue, + value: typeof findSelect === "object" ? findSelect.name : findSelect, clearable: true, placeholder: info.help_text, }, @@ -1045,13 +1035,22 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }); break; case "choice": + let findChoice = info.multiple ? options?.filter((i) => + typeof i === "object" + ? (row ? row[info.name].indexOf(i.id) !== -1 : this.form[info.name].indexOf(i.id) !== -1) + : i === (row ? row[info.name] : this.form[info.name]) + ) : options?.find((i) => + typeof i === "object" + ? i.id === (row ? row[info.name] : this.form[info.name]) + : i === (row ? row[info.name] : this.form[info.name]) + ); formItem = h("van-field", { props: { readonly: true, clickable: true, name: info.name, label: info.label, - value: typeof findValue === "object" ? findValue.name : findValue, + value: (findChoice instanceof Array) ? (findChoice.map(i => typeof i === "object" ? i.name : i).toString()) : (typeof findChoice === "object" ? findChoice.name : findChoice), clearable: true, placeholder: info.help_text, }, @@ -1190,13 +1189,18 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab ]) break; case 'relation-flow': + let findFlow = options?.find((i) => + typeof i === "object" + ? i.id === (row ? row[info.name] : this.form[info.name]) + : i === (row ? row[info.name] : this.form[info.name]) + ); formItem = h("van-field", { props: { readonly: true, clickable: true, name: info.name, label: info.label, - value: typeof findValue === "object" ? (findValue.name || findValue.title) : findValue, + value: typeof findFlow === "object" ? (findFlow.name || findFlow.title) : findFlow, clearable: true, placeholder: info.help_text, }, @@ -1327,7 +1331,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab ); break; case "select": - let findValue = options.find((i) => + let findSelect = options.find((i) => typeof i === "object" ? i.id === this.form[info.name] : i === this.form[info.name] @@ -1340,12 +1344,32 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }, props: { title: info.label, - value: typeof findValue === "object" ? findValue.name : findValue + 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] + ); + formItem = h( + "van-cell", + { + attrs: { + for: info.name + }, + props: { + title: info.label, + value: typeof findChoice === "object" ? findChoice.name : findChoice } }, ); break; case 'file': + let files = (row ? row[info.name] : this.form[info.name]) formItem = h( "van-cell", { @@ -1356,12 +1380,11 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab title: info.label, } }, - (row ? row[info.name] : this.form[info.name]).map(file => h("div", {}, [ + ((files && files !== 'null' && files !== 'undefined') ? files : [])?.map(file => h("div", {}, [ h( "a", { attrs: { - href: file.url, download: file.name, }, class: { @@ -1370,6 +1393,11 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab style: { padding: "0 4px", }, + on: { + click:_ => { + this.$bus.$emit('online-file', file.url) + } + } }, file.name ), @@ -1386,7 +1414,7 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab }), h( "div", - this.form[info.name].map((sForm, sIndex) => + this.form[info.name]?.map((sForm, sIndex) => h( "van-cell-group", { diff --git a/src/views/VehicleCertificate/index.vue b/src/views/VehicleCertificate/index.vue index adfda81..d9711be 100644 --- a/src/views/VehicleCertificate/index.vue +++ b/src/views/VehicleCertificate/index.vue @@ -21,10 +21,31 @@ :data="tableData" > + - - - + + + + + + + + + + + + + + + - -