联调 过程监督

This commit is contained in:
GGJ
2024-03-19 15:53:01 +08:00
parent da9fb74192
commit aa90a518a4
8 changed files with 579 additions and 98 deletions

View File

@@ -4,32 +4,41 @@
<TableHeader area ref="TableHeaderRef">
<template #select>
<el-form-item label="终端名称">
<el-select v-model="tableStore.table.params.searchState" placeholder="请选择终端名称">
<el-option
v-for="item in uploadData"
:key="item.id"
:label="item.label"
:value="item.id"
></el-option>
</el-select>
<el-input
v-model="tableStore.table.params.name"
clearable
placeholder="请输入终端名称"
></el-input>
</el-form-item>
<el-form-item label="生产厂家">
<el-select v-model="tableStore.table.params.searchStat1e" placeholder="请选择生产厂家">
<el-select
v-model="tableStore.table.params.manufacture"
placeholder="请选择生产厂家"
multiple
collapse-tags
clearable
class="select"
>
<el-option
v-for="item in uploadData"
v-for="item in manufactorList"
:key="item.id"
:label="item.label"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="检测结果">
<el-select v-model="tableStore.table.params.searchState3" placeholder="请输入检测结果">
<el-select
v-model="tableStore.table.params.testResults"
placeholder="请选择检测结果"
clearable
class="select"
>
<el-option
v-for="item in uploadData"
v-for="item in testResultsList"
:key="item.id"
:label="item.label"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
@@ -37,10 +46,54 @@
</template>
<template #operation>
<el-button icon="el-icon-Download" type="primary">导出</el-button>
<el-button icon="el-icon-Upload" type="primary">上传检测报告</el-button>
<el-upload
ref="uploadRef"
action=""
accept=".xls"
:on-change="choose"
:show-file-list="false"
:auto-upload="false"
>
<template #trigger>
<el-button
icon="el-icon-Upload"
type="primary"
style="margin-left: 12px; margin-right: 12px"
>
excel导入
</el-button>
</template>
</el-upload>
<el-button icon="el-icon-Upload" type="primary" @click="UploadOriginal">上传检测报告</el-button>
</template>
</TableHeader>
<Table ref="tableRef" />
<!-- 上传检测报告 -->
<el-dialog
title="上传检测报告__支持批量上传"
v-model="showBatchUpload"
width="30%"
:before-close="handleClose"
>
<el-upload
multiple
action=""
:auto-upload="false"
:limit="999"
accept=".doc,.docx"
:file-list="fileList"
:on-remove="handleRemove"
:on-change="chooseBatch"
ref="upload"
>
<el-button type="primary" icon="el-icon-Upload">选择文件</el-button>
<span :style="`color:#f58003`">  (*传入的检测报告文件格式(终端编号-检测报告(yyyy-MM-dd).docx))</span>
</el-upload>
<template #footer>
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="BatchUpload"> </el-button>
</template>
</el-dialog>
</div>
</div>
</template>
@@ -50,48 +103,75 @@ import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { mainHeight } from '@/utils/layout'
import { DownloadExport, reportDownload, batchTerminal, delTerminal ,importReport} from '@/api/process-boot/terminal'
import { useDictData } from '@/stores/dictData'
import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity'
const dictData = useDictData()
const uploadData = [
const manufactorList = dictData.getBasicData('Dev_Manufacturers')
const testResultsList = [
{
id: 0,
label: '未上传'
name: '未展开'
},
{
id: 1,
label: '已上传'
name: '已展开'
}
]
const dialogVisible = ref(false)
const TableHeaderRef = ref()
const title = ref('')
const showBatchUpload = ref(false)
const ruleFormRef = ref()
const fileList: any = ref([])
const tableStore = new TableStore({
url: '/system-boot/area/areaSelect',
url: '/process-boot/process/pmsTerminalDetection/getTerminalPage',
publicHeight: 85,
method: 'POST',
column: [
{ width: '60', type: 'checkbox' },
{ field: 'id', title: '终端编号' },
{ field: 'name', title: '上产厂家' },
{ field: 'orgName', title: '安装位置' },
{
field: 'manufacture',
title: '生产厂家',
formatter(row: any) {
return manufactorList.filter(item => item.id == row.cellValue)[0]?.name
}
},
{ field: 'installPlace', title: '安装位置' },
{ field: 'inspectionUnit', title: '送检单位' },
{ field: 'testResults', title: '检测结果' },
{ field: 'nextInspectionTime', title: '下次测时间' },
{ field: 'nextInspectionTime', title: '下次测时间' },
{
title: '操作',
width: '180',
width: '250',
render: 'buttons',
fixed: 'right',
buttons: [
{
name: 'edit',
title: '编辑',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {}
},
{
title: '删除',
type: 'danger',
icon: 'el-icon-Delete',
render: 'confirmButton',
popconfirm: {
confirmButtonText: '确认',
cancelButtonText: '取消',
confirmButtonType: 'danger',
title: '确定删除吗?'
},
click: row => {
delTerminal([row.id]).then(() => {
ElMessage.success('删除成功')
tableStore.index()
})
}
},
{
name: 'edit',
title: '下载原始数据报告',
@@ -101,7 +181,9 @@ const tableStore = new TableStore({
disabled: row => {
return row.originalReport == null
},
click: row => {}
click: row => {
download(row, 0)
}
},
{
name: 'edit',
@@ -112,26 +194,114 @@ const tableStore = new TableStore({
disabled: row => {
return row.inspectionReport == null
},
click: row => {}
click: row => {
download(row, 1)
}
}
]
}
],
loadCallback: () => {
tableStore.table.data = [
{
status: 2
}
]
}
]
})
tableStore.table.params.searchState = ''
tableStore.table.params.searchValue = ''
tableStore.table.params.type = ''
tableStore.table.params.name = ''
tableStore.table.params.id = dictData.state.area[0].id
tableStore.table.params.testResults = ''
tableStore.table.params.manufacture = []
tableStore.table.params.type = 1
provide('tableStore', tableStore)
// 关闭弹窗查询
const onsubmit = () => {}
// 下载模版
const Export = () => {
DownloadExport().then(res => {
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.download = '终端入网检测录入模板' // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
})
}
// 下载报告
const download = (row: any, type: number) => {
reportDownload({
id: row.id,
type: type
}).then(res => {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.download = type == 1 ? row.inspectionName : row.originalName // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
})
}
// excel导入
const choose = (e: any) => {
batchTerminal(e.raw).then((res: any) => {
if (res.type == 'application/json') {
ElMessage.success('上传成功,无错误数据!')
tableStore.index()
} else {
ElMessage.warning('上传成功,有错误数据 自动下载 请查看')
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.download = '模板错误信息' // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
}
})
}
// 上传原始报告
const UploadOriginal = () => {
showBatchUpload.value = true
}
// 上传
const BatchUpload = () => {
let form = new FormData()
form.append('type', 1)
fileList.value.forEach(item => {
form.append('files', item.raw)
})
importReport(form)
.then(res => {
if (res.type == 'application/json') {
ElMessage.success('上传成功!')
handleClose()
tableStore.index()
} else {
ElMessage.error('上传失败!')
}
})
.catch(response => {
// console.log(response);
})
// fileList.value
}
const chooseBatch = (e: any) => {
fileList.value.push(e)
}
const handleRemove = (e: any) => {
fileList.value = fileList.value.filter(item => item.uid !== e.uid)
}
const handleClose = () => {
fileList.value = []
showBatchUpload.value = false
}
onMounted(() => {
tableStore.index()
})