技术监督 页面联调
This commit is contained in:
@@ -1,5 +1,59 @@
|
||||
<template>
|
||||
<el-dialog v-model="dialogVisible" :title="title" style="width: 1040px">
|
||||
<el-dialog v-model="dialogVisible" :title="title" style="width: 800px">
|
||||
<el-form :model="form" :rules="rules" class="form-style" ref="elform" label-width="120px">
|
||||
<el-form-item label="终端编号:" prop="id">
|
||||
<el-input
|
||||
clearable
|
||||
:disabled="title == `修改`"
|
||||
v-model="form.id"
|
||||
placeholder="请输入终端编号"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="终端名称:" prop="name">
|
||||
<el-input clearable v-model="form.name" placeholder="请输入终端名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="送检单位:" prop="inspectionUnit">
|
||||
<el-input clearable v-model="form.inspectionUnit" placeholder="请输入送检单位"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="检测时间:" prop="inspectionTime">
|
||||
<el-date-picker
|
||||
v-model="form.inspectionTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="选择日期"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="安装位置:" prop="installPlace">
|
||||
<el-input clearable v-model="form.installPlace" placeholder="请输入安装位置"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产厂家:" prop="manufacture">
|
||||
<el-select v-model="form.manufacture" placeholder="请选择生产厂家" clearable class="select">
|
||||
<el-option
|
||||
v-for="item in manufactorList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="原始数据报告:" prop="fileList">
|
||||
<el-upload
|
||||
v-model:file-list="form.fileList"
|
||||
ref="uploadRef"
|
||||
action=""
|
||||
accept=".doc,.docx"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
:on-change="choose"
|
||||
:auto-upload="false"
|
||||
>
|
||||
<template #trigger>
|
||||
<el-button type="primary">上传文件</el-button>
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
@@ -9,18 +63,77 @@
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { upload, insertTerminal } from '@/api/process-boot/terminal'
|
||||
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
|
||||
|
||||
import { genFileId, ElMessage } from 'element-plus'
|
||||
const emit = defineEmits(['onsubmit'])
|
||||
const dictData = useDictData()
|
||||
const manufactorList = dictData.getBasicData('Dev_Manufacturers')
|
||||
const dialogVisible = ref(false)
|
||||
const title = ref('')
|
||||
const form = ref({
|
||||
id: '',
|
||||
inspectionUnit: '',
|
||||
inspectionTime: '',
|
||||
installPlace: '',
|
||||
originalReport: '',
|
||||
manufacture: '',
|
||||
name: '',
|
||||
originalName: '',
|
||||
orgNo: dictData.state.area[0].id,
|
||||
orgName: dictData.state.area[0].name,
|
||||
fileList: []
|
||||
})
|
||||
const elform = ref()
|
||||
const uploadRef = ref()
|
||||
const rules = {
|
||||
id: [{ required: true, message: '请输入终端编号', trigger: 'blur' }],
|
||||
name: [{ required: true, message: '请输入终端名称', trigger: 'blur' }],
|
||||
installPlace: [{ required: true, message: '请输入安装位置', trigger: 'blur' }],
|
||||
inspectionUnit: [{ required: true, message: '请输入送检单位', trigger: 'blur' }],
|
||||
inspectionTime: [{ required: true, message: '请选择时间', trigger: 'change' }],
|
||||
manufacture: [{ required: true, message: '请选择生产厂家', trigger: 'change' }],
|
||||
fileList: [{ required: true, message: '请选择文件', trigger: 'change' }]
|
||||
}
|
||||
const submit = () => {
|
||||
elform.value.validate((valid: any) => {
|
||||
if (title.value == '新增') {
|
||||
insertTerminal(form.value).then(res => {
|
||||
ElMessage.success('新增成功!')
|
||||
dialogVisible.value = false
|
||||
emit('onsubmit')
|
||||
|
||||
})
|
||||
} else {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const submit = () => {}
|
||||
// 上传报告
|
||||
const handleExceed: UploadProps['onExceed'] = files => {
|
||||
uploadRef.value!.clearFiles()
|
||||
const file = files[0] as UploadRawFile
|
||||
file.uid = genFileId()
|
||||
uploadRef.value!.handleStart(file)
|
||||
}
|
||||
const choose = (e: any) => {
|
||||
upload(e.raw).then(res => {
|
||||
form.value.originalReport = res.data
|
||||
})
|
||||
}
|
||||
|
||||
const open = (row: any) => {
|
||||
console.log(row)
|
||||
title.value = row.title
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.el-upload-list__item) {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -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>
|
||||
@@ -40,14 +49,33 @@
|
||||
<el-button icon="el-icon-Edit" type="primary">修改</el-button>
|
||||
<el-button icon="el-icon-Delete" type="primary">删除</el-button>
|
||||
<el-button icon="el-icon-Download" type="primary">导出</el-button>
|
||||
<el-button icon="el-icon-Download" type="primary">下载模板</el-button>
|
||||
<el-button icon="el-icon-Upload" type="primary">excel导入</el-button>
|
||||
<el-button icon="el-icon-Download" type="primary" @click="Export">下载模板</el-button>
|
||||
<!-- <el-button icon="el-icon-Upload" type="primary">excel导入</el-button> -->
|
||||
<el-upload
|
||||
ref="uploadRef"
|
||||
action=""
|
||||
accept=".xls"
|
||||
:limit="1"
|
||||
: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">上传原始报告</el-button>
|
||||
</template>
|
||||
</TableHeader>
|
||||
<Table ref="tableRef" />
|
||||
<!-- 新增 -->
|
||||
<newlyIncreased ref="addRef" />
|
||||
<newlyIncreased ref="addRef" @onsubmit="tableStore.index()" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -58,21 +86,19 @@ import Table from '@/components/table/index.vue'
|
||||
import TableHeader from '@/components/table/header/index.vue'
|
||||
import newlyIncreased from './add.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { DownloadExport, reportDownload, batchTerminal } 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: '已展开'
|
||||
}
|
||||
]
|
||||
|
||||
@@ -82,7 +108,7 @@ const addRef = ref()
|
||||
|
||||
const ruleFormRef = ref()
|
||||
const tableStore = new TableStore({
|
||||
url: '/system-boot/area/areaSelect',
|
||||
url: '/process-boot/process/pmsTerminalDetection/getTerminalPage',
|
||||
publicHeight: 85,
|
||||
method: 'POST',
|
||||
column: [
|
||||
@@ -91,7 +117,13 @@ const tableStore = new TableStore({
|
||||
{ field: 'orgName', title: '所属单位' },
|
||||
{ field: 'id', title: '终端编号' },
|
||||
{ field: 'name', title: '终端名称' },
|
||||
{ field: 'manufacture', 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: '检测结果' },
|
||||
@@ -112,7 +144,9 @@ const tableStore = new TableStore({
|
||||
disabled: row => {
|
||||
return row.originalReport == null
|
||||
},
|
||||
click: row => {}
|
||||
click: row => {
|
||||
download(row, 0)
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'edit',
|
||||
@@ -123,24 +157,20 @@ 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 = 0
|
||||
|
||||
provide('tableStore', tableStore)
|
||||
|
||||
@@ -149,7 +179,47 @@ const add = () => {
|
||||
title: '新增'
|
||||
})
|
||||
}
|
||||
// 关闭弹窗查询
|
||||
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 => {
|
||||
console.log('🚀 ~ batchTerminal ~ res:', res)
|
||||
})
|
||||
}
|
||||
onMounted(() => {
|
||||
tableStore.index()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user