447 lines
16 KiB
Vue
447 lines
16 KiB
Vue
<template>
|
||
<div class="app-container">
|
||
<el-card class="topCard">
|
||
<div class="topDiv">
|
||
<span style="margin-left: 10px">物料名称:</span>
|
||
<el-select v-model="stationNumberValue" placeholder="请选择物料" filterable clearable remote :remote-method="getStationNumber" size="small" style="width: 250px" >
|
||
<el-option
|
||
v-for="item in stationNumber"
|
||
:key="item.物料编码"
|
||
:label="item.物料编码"
|
||
:value="item.物料编码"
|
||
size="mini">
|
||
</el-option>
|
||
</el-select>
|
||
<el-button type="primary" plain size="small" icon="el-icon-order" @click="getImgCheckDirectFileList">查询</el-button>
|
||
<el-button type="primary" icon="el-icon-circle-plus-outline" size="small" @click="uploadShowPDF(val = 2)" style="width: 100px;">零件图</el-button>
|
||
<el-button type="primary" icon="el-icon-circle-plus-outline" size="small" @click="uploadShowPDF(val = 0)" style="width: 155px;">选零件上传零件图</el-button>
|
||
<el-button type="primary" icon="el-icon-circle-plus-outline" size="small" @click="uploadShowPDF(val = 0)" style="width: 155px;">选订单上传零件图</el-button>
|
||
<el-button type="warning" icon="el-icon-document-delete" size="small" @click="showDeleteRecords" style="width: 140px;">查看删除记录</el-button>
|
||
</div>
|
||
<div class="main">
|
||
<el-table
|
||
ref="multipleTable"
|
||
:data="imgCheckDirectFileList"
|
||
:header-cell-style="{background:'#eef1f6',color:'#606266'}"
|
||
:cell-class-name="tableRowClassName"
|
||
element-loading-text="数据加载中"
|
||
element-loading-spinner="el-icon-loading"
|
||
element-loading-background="rgba(0, 0, 0, 0.2)"
|
||
class="main"
|
||
tooltip-effect="dark"
|
||
height="640px"
|
||
style="width: 90%"
|
||
border
|
||
size="mini"
|
||
@row-click="handleRowClick"
|
||
>
|
||
<el-table-column label="序号" type="index" align="center" width="80"/>
|
||
<el-table-column prop="num" label="物料编号" align="center" width="200"/>
|
||
<el-table-column prop="物料描述" label="物料名称" align="center" width="250"/>
|
||
<el-table-column prop="name" label="文件名称" align="center" width="100"/>
|
||
<el-table-column prop="worker" label="导入人" align="center" width="100"/>
|
||
<el-table-column prop="uploadTime" label="导入时间" align="center" width="150"/>
|
||
<el-table-column label="操作" align="center" width="250">
|
||
<template slot-scope="scope">
|
||
<el-button type="text" icon="el-icon-view" size="mini" @click="imgCheckDirectFile(scope.row)" >查看</el-button>
|
||
<el-button type="text" icon="el-icon-delete" size="mini" style="color: #ff0000" @click="deleteImgCheckDirectFileSubmit(scope.row)" >删除</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
</el-card>
|
||
<!--上传文件-->
|
||
<el-dialog :visible.sync="imgDialogFormVisible" title="上传指导文件" center style="height: 800px" width="700px">
|
||
<span v-if="itemupload" style="margin-left: 10px">物料名称:</span>
|
||
<el-select v-if="itemupload" v-model="uploadValue" placeholder="请选择" filterable clearable remote :remote-method="getStationNumber" size="small" style="width: 500px; margin-bottom: 20px;" >
|
||
<el-option
|
||
v-for="item in tabledata2"
|
||
:key="item.物料编码"
|
||
:label="item.物料编码"
|
||
:value="item.物料编码"
|
||
size="mini"/>
|
||
</el-select>
|
||
|
||
<el-upload
|
||
ref="uploadPDF"
|
||
:multiple="true"
|
||
:auto-upload="false"
|
||
:on-success="uploadSuccessPDF"
|
||
:before-upload="beforeUploadPdf"
|
||
:on-exceed="warningExceedPdf"
|
||
:limit="limit"
|
||
:data="DataPDF"
|
||
:on-change="handleChange"
|
||
:action="uploadPDF"
|
||
accept=".pdf"
|
||
style="margin-left: 130px"
|
||
drag>
|
||
<i class="el-icon-upload"/>
|
||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||
<div slot="tip" class="el-upload__tip">只能上传一个pdf文件,且不超过100mb</div>
|
||
</el-upload>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="imgDialogFormVisible=false">取消</el-button>
|
||
<el-button type="primary" style="width: 70px" @click="submitPicturePDF()">确定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog :visible.sync="deleteRecordsVisible" title="删除记录" center width="1200px">
|
||
<el-table
|
||
:data="deleteRecordsList"
|
||
:header-cell-style="{background:'#eef1f6',color:'#606266'}"
|
||
element-loading-text="数据加载中"
|
||
border
|
||
size="mini"
|
||
height="500px"
|
||
>
|
||
<el-table-column label="序号" type="index" align="center" width="80"/>
|
||
<el-table-column prop="物料编号" label="物料编号" align="center" width="200"/>
|
||
<el-table-column prop="文件名称" label="文件名称" align="center" width="250"/>
|
||
<el-table-column prop="操作人" label="操作人" align="center" width="150"/>
|
||
<el-table-column prop="删除时间" label="删除时间" align="center" width="200"/>
|
||
<el-table-column prop="备注" label="备注" align="center" />
|
||
</el-table>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="deleteRecordsVisible = false">关闭</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import { MESUploadFile } from '@/utils/request'
|
||
import { MESDownFile } from '@/utils/request'
|
||
export default {
|
||
data() {
|
||
return {
|
||
imgDialogFormVisible: false,
|
||
imgDialogObj: '', // 点检类型对象
|
||
stationNumberValue: '', // 点检指导文件选择的工位号
|
||
engineType: [], // 点检机型类型
|
||
engineTypeValue: '', // 点检机型类型
|
||
imgCheckDialogFormVisible: false, // 查看点检文件
|
||
stationNumber: [],
|
||
stationName: '',
|
||
limit: 1,
|
||
DataPDF: {},
|
||
uploadPDF: MESUploadFile,
|
||
downPDF:MESDownFile,
|
||
imgCheckDirectFileList: [],
|
||
dialogFormVisible: false,
|
||
selectedRow:{},
|
||
itemupload:false,
|
||
tabledata2:[],
|
||
tabledata3:[],
|
||
uploadValue:'',
|
||
currentTime:'',
|
||
Uploaddirectly:false,
|
||
filename:'',
|
||
deleteRecordsVisible: false, // 删除记录弹窗显示状态
|
||
deleteRecordsList: [], // 删除记录列表
|
||
}
|
||
},
|
||
computed: {
|
||
},
|
||
watch: {
|
||
},
|
||
created() {
|
||
this.searchTable()
|
||
this.getStationNumber()
|
||
this.getCurrentTime()
|
||
this.getImgCheckDirectFileList()
|
||
},
|
||
methods: {
|
||
showDeleteRecords() {
|
||
this.deleteRecordsVisible = true
|
||
this.getDeleteRecords()
|
||
},
|
||
|
||
// 获取删除记录
|
||
getDeleteRecords() {
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_查询删除记录', [])
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data && response.data.length > 0) {
|
||
this.deleteRecordsList = response.data
|
||
} else {
|
||
this.deleteRecordsList = []
|
||
this.$message.info('暂无删除记录')
|
||
}
|
||
}).catch(error => {
|
||
console.error('获取删除记录失败:', error)
|
||
this.$message.error('获取删除记录失败')
|
||
})
|
||
},
|
||
getCurrentTime() {
|
||
const now = new Date();
|
||
const year = now.getFullYear();
|
||
const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
||
const day = String(now.getDate()).padStart(2, '0');
|
||
const hours = String(now.getHours()).padStart(2, '0');
|
||
const minutes = String(now.getMinutes()).padStart(2, '0');
|
||
const seconds = String(now.getSeconds()).padStart(2, '0');
|
||
this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||
},
|
||
handleRowClick(row) {
|
||
this.selectedRow = row
|
||
},
|
||
searchTable(){
|
||
var param = []
|
||
this.imgCheckDirectFileList = []
|
||
param[0] = ['零件图号_check', 0]
|
||
param[1] = ['零件图号','']
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_零件图查询', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data.length > 0) {
|
||
this.imgCheckDirectFileList = response.data
|
||
}
|
||
})
|
||
},
|
||
getStationNumber(query='') {
|
||
this.stationNumber = []
|
||
var param = []
|
||
param.push(["过滤",query])
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_物料查询',param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
this.stationNumber = response.data
|
||
this.tabledata2 = response.data
|
||
this.tabledata3 = response.data
|
||
})
|
||
},
|
||
// 表格颜色变化
|
||
tableRowClassName({ row, rowIndex }) {
|
||
// console.log(row, rowIndex)
|
||
if (rowIndex % 2 === 0) {
|
||
return 'black'
|
||
} else {
|
||
return 'red'
|
||
}
|
||
},
|
||
// 上传成功回调
|
||
uploadSuccessPDF(res) {
|
||
this.dialogFormVisible = false
|
||
this.$refs.uploadPDF.clearFiles()
|
||
this.$message.success('指导文件上传成功!')
|
||
this.searchTable()
|
||
},
|
||
handleChange(file){
|
||
const filename = file.name
|
||
const lastIndex = filename.lastIndexOf('.');
|
||
const name = filename.substring(0, lastIndex); // 结果: "1.2.3"
|
||
const target = name
|
||
this.filename = target
|
||
if(this.Uploaddirectly){
|
||
var param = []
|
||
param[0] = ['零件图号',target]
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_验证名称', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data.length == 0 ) {
|
||
this.imgDialogFormVisible = false
|
||
this.$message.error(`不存在物料编号'${target}'`)
|
||
this.$refs.uploadPDF.clearFiles()
|
||
}
|
||
})
|
||
}
|
||
const exists2 = this.imgCheckDirectFileList.some(item => item["num"] === target);
|
||
if(exists2){
|
||
this.imgDialogFormVisible = false
|
||
this.$message.error(`图纸上传重复,请先删除'${target}'`)
|
||
this.$refs.uploadPDF.clearFiles()
|
||
}
|
||
const exists3 = this.imgCheckDirectFileList.some(item => item["name"] === target);
|
||
if(exists3){
|
||
this.imgDialogFormVisible = false
|
||
this.$message.error(`图纸上传重复,请先删除'${target}'`)
|
||
this.$refs.uploadPDF.clearFiles()
|
||
}
|
||
},
|
||
// 上传前检测
|
||
beforeUploadPdf(file) {
|
||
let isJPG = /(\.|\/)(pdf)$/.test(file.type)
|
||
if (!isJPG) {
|
||
this.$message.error('只能上传PDF')
|
||
}
|
||
// if(!this.stationNumberValue){
|
||
// this.$message.error('请选择物料编号')
|
||
// isJPG = false
|
||
// }
|
||
return isJPG
|
||
},
|
||
warningExceedPdf() {
|
||
this.$message.error('仅可上传一份PDF指导文件')
|
||
},
|
||
// 预览指导文件按钮
|
||
imgCheckDirectFile(row) {
|
||
var param = []
|
||
console.log(row)
|
||
param[0] = ['物料编号',row.num]
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_查看图纸', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
console.log(response)
|
||
if (response.data.length > 0) {
|
||
var pdfSrc =""+this.downPDF+""+ response.data[0].uid+".pdf"
|
||
console.log(this.downPDF)
|
||
console.log(response.data[0].uid)
|
||
console.log(pdfSrc)
|
||
window.open(pdfSrc,'_blank')
|
||
}
|
||
})
|
||
},
|
||
// 删除指导文件
|
||
deleteImgCheckDirectFileSubmit(row) {
|
||
this.$confirm('此操作将永久删除该指导文件, 是否继续?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
var param = []
|
||
param[0] = ['物料编号', row.num]
|
||
param[1] = ['文件名称', row.name || '']
|
||
param[2] = ['操作人', this.$store.state.user.name]
|
||
var Data = this.CreateData('12', '工艺管理_图纸维护_删除图纸', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data[0].result === '1') {
|
||
this.$message.success('删除指导文件成功!')
|
||
this.searchTable()
|
||
} else {
|
||
this.$message.error('删除指导文件失败!')
|
||
}
|
||
})
|
||
}).catch(() => {
|
||
})
|
||
},
|
||
// 添加指导文件
|
||
uploadShowPDF(val) {
|
||
if(val==1){
|
||
this.itemupload = false
|
||
this.Uploaddirectly = false
|
||
}else if(val==0){
|
||
this.itemupload = true
|
||
this.Uploaddirectly = false
|
||
}else if(val==2){
|
||
this.Uploaddirectly = true
|
||
this.itemupload = false
|
||
}
|
||
this.imgDialogFormVisible = true
|
||
},
|
||
// 保存文件
|
||
// submitPicturePDF() {
|
||
// if(!this.uploadValue & this.Uploaddirectly == false){
|
||
// return this.$message.error('请先选择物料')
|
||
// }
|
||
// if(this.Uploaddirectly == true){
|
||
// this.uploadValue = this.filename
|
||
// }
|
||
// var param = []
|
||
// param[0] = ['物料编号',this.uploadValue]
|
||
// var Data = this.CreateData('11', '工艺管理_图纸维护_查看图纸', param)
|
||
// this.ExecDatabase(Data).then(response => {
|
||
// if(response.data.length == 0){
|
||
// this.DataPDF = {
|
||
// num: this.uploadValue,
|
||
// // num:'a123',
|
||
// tableName: "物料基础数据_零件图纸",
|
||
// worker:this.$store.state.user.name,
|
||
// uploadTime:this.currentTime
|
||
// }
|
||
// console.log(JSON.stringify(this.DataPDF))
|
||
// this.$refs.uploadPDF.submit()
|
||
// this.imgDialogFormVisible = false
|
||
// }else{
|
||
// this.$refs.uploadPDF.clearFiles()
|
||
// this.imgDialogFormVisible = false
|
||
// this.$message.error('图纸上传重复,请先删除')
|
||
// }
|
||
|
||
// })
|
||
|
||
// },
|
||
// 保存文件
|
||
submitPicturePDF() {
|
||
if(!this.uploadValue & this.Uploaddirectly == false){
|
||
return this.$message.error('请先选择物料')
|
||
}
|
||
if(this.Uploaddirectly == true){
|
||
this.uploadValue = this.filename
|
||
}
|
||
|
||
var param = []
|
||
param[0] = ['物料编号',this.uploadValue]
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_查看图纸', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if(response.data.length == 0){
|
||
// 修改这里:确保参数名与后台一致
|
||
this.DataPDF .params = JSON.stringify({
|
||
num: this.uploadValue, // 取消注释,使用实际值
|
||
tableName: '物料基础数据_零件图纸',
|
||
worker: this.$store.state.user.name, // 取消注释
|
||
uploadTime: this.currentTime // 取消注释
|
||
})
|
||
console.log('上传参数:', JSON.stringify(this.DataPDF))
|
||
this.$refs.uploadPDF.submit()
|
||
this.imgDialogFormVisible = false
|
||
this.searchTable()
|
||
}else{
|
||
this.$refs.uploadPDF.clearFiles()
|
||
this.imgDialogFormVisible = false
|
||
this.$message.error('图纸上传重复,请先删除')
|
||
}
|
||
})
|
||
},
|
||
// 查询指导文件列表
|
||
getImgCheckDirectFileList() {
|
||
var param = []
|
||
this.imgCheckDirectFileList = []
|
||
if (!this.stationNumberValue) {
|
||
param[0] = ['零件图号_check', 0]
|
||
param[1] = ['零件图号','']
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_零件图查询', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data.length > 0) {
|
||
this.imgCheckDirectFileList = response.data
|
||
} else {
|
||
this.$message.error('该工位无此点检指导文件,请添加后查看')
|
||
}
|
||
})
|
||
}else{
|
||
param[0] = ['零件图号_check', 1]
|
||
param[1] = ['零件图号',this.stationNumberValue]
|
||
var Data = this.CreateData('11', '工艺管理_图纸维护_零件图查询', param)
|
||
this.ExecDatabase(Data).then(response => {
|
||
if (response.data.length > 0) {
|
||
this.imgCheckDirectFileList = response.data
|
||
} else {
|
||
this.$message.error('该工位无此点检指导文件,请添加后查看')
|
||
}
|
||
})
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.NewlyAdded{
|
||
background:rgb(253,246,236);
|
||
border-color: #ff9759;
|
||
color: #ff9759;
|
||
&:hover{
|
||
background: #ff9759;
|
||
border-color: #ff9759;
|
||
color: white;
|
||
}
|
||
&:focus{
|
||
background: #ff9759;
|
||
border-color: #ff9759;
|
||
color: white;
|
||
}
|
||
}
|
||
|
||
.el-upload-dragger{
|
||
width: 210px;
|
||
//right: 30px;
|
||
}
|
||
</style>
|
||
|