294 lines
9.8 KiB
Vue
294 lines
9.8 KiB
Vue
<template>
|
|
<el-form-item label="信息安全检测报告:">
|
|
<el-upload
|
|
v-model:file-list="form.informationSecurityTestReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'informationSecurityTestReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('informationSecurityTestReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="入网设计方案审查报告:">
|
|
<el-upload
|
|
v-model:file-list="form.NetReport"
|
|
ref="NetReportRef"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
@change="choose($event, 'NetReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('NetReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="治理工程验收报告:">
|
|
<el-upload
|
|
v-model:file-list="form.governReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
@change="choose($event, 'governReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('governReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="验收检验报告单:">
|
|
<el-upload
|
|
v-model:file-list="form.acceptanceInspectionReportSingle"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'acceptanceInspectionReportSingle')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('acceptanceInspectionReportSingle', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="验收检验报告:">
|
|
<el-upload
|
|
v-model:file-list="form.acceptanceInspectionReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'acceptanceInspectionReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('acceptanceInspectionReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="型式实验报告:">
|
|
<el-upload
|
|
v-model:file-list="form.typeExperimentReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'typeExperimentReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('typeExperimentReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="出厂检验报告:">
|
|
<el-upload
|
|
v-model:file-list="form.factoryInspectionReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'factoryInspectionReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('factoryInspectionReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="性能检测报告:">
|
|
<el-upload
|
|
v-model:file-list="form.performanceTestReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'performanceTestReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('performanceTestReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="主接线图:">
|
|
<el-upload
|
|
v-model:file-list="form.mainWiringDiagram"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'mainWiringDiagram')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('mainWiringDiagram', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="试运行报告:">
|
|
<el-upload
|
|
v-model:file-list="form.runTheReport"
|
|
action=""
|
|
accept=".doc,.docx,.xlsx,.xls,.pdf"
|
|
:limit="1"
|
|
@change="choose($event, 'runTheReport')"
|
|
:auto-upload="false"
|
|
:before-remove="beforeRemove('runTheReport', '1')"
|
|
>
|
|
<template #trigger>
|
|
<el-button type="primary">上传文件</el-button>
|
|
</template>
|
|
</el-upload>
|
|
</el-form-item>
|
|
</template>
|
|
<script setup lang="ts">
|
|
import { ref, reactive } from 'vue'
|
|
import { uploadFile, getFileNameAndFilePath } from '@/api/system-boot/file'
|
|
import { genFileId, ElMessage } from 'element-plus'
|
|
import type { UploadProps, UploadRawFile } from 'element-plus'
|
|
import { addOrUpdateFile, getFileById } from '@/api/supervision-boot/interfere/index'
|
|
|
|
const form: any = ref({
|
|
NetReport: [], //入网设计方案审查报告:
|
|
governReport: [], //治理工程验收报告
|
|
informationSecurityTestReport: [], //信息安全检测报告
|
|
acceptanceInspectionReportSingle: [], //信息安全检测报告
|
|
acceptanceInspectionReport: [], //验收检验报告:
|
|
typeExperimentReport: [], //型式实验报告
|
|
factoryInspectionReport: [], //出厂检验报告:
|
|
performanceTestReport: [], //性能检测报告
|
|
mainWiringDiagram: [], //主接线图:
|
|
runTheReport: [] //试运行报告
|
|
})
|
|
|
|
const formName: any = ref({
|
|
NetReport: '',
|
|
governReport: '',
|
|
informationSecurityTestReport: '',
|
|
acceptanceInspectionReportSingle: '',
|
|
acceptanceInspectionReport: '',
|
|
typeExperimentReport: '',
|
|
factoryInspectionReport: '',
|
|
performanceTestReport: '',
|
|
mainWiringDiagram: '',
|
|
runTheReport: ''
|
|
})
|
|
|
|
const beforeRemove = (name: any, flag?: string) => {
|
|
// console.log('🚀 ~ beforeRemove ~ flag:', flag)
|
|
if (flag == '1') {
|
|
formName.value[name] = ''
|
|
}
|
|
}
|
|
|
|
const choose = (e: any, name: string) => {
|
|
uploadFile(e.raw, '/supervision/').then(res => {
|
|
formName.value[name] = res.data.name
|
|
})
|
|
}
|
|
|
|
const submitForm = async (id: string) => {
|
|
// console.log(form.value)
|
|
|
|
let data = []
|
|
for (let i in form.value) {
|
|
// form.value.map(item=>item.name)
|
|
|
|
if (form.value[i].map(item => item.name).join(',') != '')
|
|
data.push({
|
|
supervisionId: id,
|
|
name: i,
|
|
url: form.value[i].map(item => item.name).join(','), //formName.value[i],
|
|
state: 1
|
|
})
|
|
}
|
|
// for (let i in formName.value) {
|
|
// data.push({
|
|
// supervisionId: id,
|
|
// name: i,
|
|
// url: formName.value[i],
|
|
// state: 1
|
|
// })
|
|
// }
|
|
|
|
await addOrUpdateFile(data)
|
|
}
|
|
const queryFiles = (id: string) => {
|
|
reset()
|
|
getFileById({ id: id }).then(res => {
|
|
res.data.forEach((item: any) => {
|
|
if (item.url.length > 0) getFileNamePath(item.url, item.name)
|
|
})
|
|
})
|
|
}
|
|
const getFileNamePath = async (val: any, pathName: any) => {
|
|
let data = val.split(',')
|
|
for (let i = 0; i < data.length ; i++) {
|
|
// console.log('🚀 ~ getFileNamePath ~ data:', data[i])
|
|
|
|
await getFileNameAndFilePath({ filePath: '/supervision/' + data[i] }).then(res => {
|
|
res.data.name = res.data.fileName
|
|
form.value[pathName].push(res.data)
|
|
// setTimeout(() => {
|
|
// formName.value[pathName] = res.data.fileName
|
|
// }, 100)
|
|
})
|
|
}
|
|
}
|
|
const reset = () => {
|
|
form.value = {
|
|
NetReport: [], //入网设计方案审查报告:
|
|
governReport: [], //治理工程验收报告
|
|
informationSecurityTestReport: [], //信息安全检测报告
|
|
acceptanceInspectionReportSingle: [], //信息安全检测报告
|
|
acceptanceInspectionReport: [], //验收检验报告:
|
|
typeExperimentReport: [], //型式实验报告
|
|
factoryInspectionReport: [], //出厂检验报告:
|
|
performanceTestReport: [], //性能检测报告
|
|
mainWiringDiagram: [], //主接线图:
|
|
runTheReport: [] //试运行报告
|
|
}
|
|
|
|
formName.value = {
|
|
NetReport: '',
|
|
governReport: '',
|
|
informationSecurityTestReport: '',
|
|
acceptanceInspectionReportSingle: '',
|
|
acceptanceInspectionReport: '',
|
|
typeExperimentReport: '',
|
|
factoryInspectionReport: '',
|
|
performanceTestReport: '',
|
|
mainWiringDiagram: '',
|
|
runTheReport: ''
|
|
}
|
|
}
|
|
defineExpose({ submitForm, queryFiles ,reset})
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.el-form-item__content > div:first-child {
|
|
display: flex;
|
|
}
|
|
:deep(.el-upload-list) {
|
|
margin: 0;
|
|
.el-upload-list__item {
|
|
height: 25px;
|
|
}
|
|
.el-upload-list__item-file-name {
|
|
width: 150px !important;
|
|
height: 25px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
</style>
|