| | |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="toImage"> |
| | | 上传/查看图片 |
| | | </button> |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="fetchDrawingNumber(formData.itemNo)"> |
| | | 调取PLM图纸 |
| | | </button> |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="getBom"> |
| | | Bom用料清单 |
| | | </button> |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable && formData.xjGenFlag == 0" |
| | | @click="saveXJ"> |
| | | 生成巡检 |
| | |
| | | 提交检验 |
| | | </button> |
| | | </view> |
| | | |
| | | <view class="barcode"> |
| | | <u-modal :show="itemShow" title="物料明细" @confirm="drawingConfirm" @cancel="itemCancel" |
| | | showCancelButton :z-index="1000"> |
| | | <uni-table border stripe emptyText="暂无更多数据" style="margin-left: 5px;margin-right: 5px;height: 400px;max-height: 60vh;overflow-y: auto;"> |
| | | <uni-tr> |
| | | <uni-th align="center">料号</uni-th> |
| | | <uni-th align="center" width="90">名称</uni-th> |
| | | <uni-th align="center" width="90">规格型号</uni-th> |
| | | <uni-th align="center" width="150">调取PLM图纸</uni-th> |
| | | </uni-tr> |
| | | <uni-tr v-for="(item,index) in (drawing || [])" style="height: 100px;"> |
| | | <uni-td align="center">{{item.itemNo}}</uni-td> |
| | | <uni-td align="center" style="font-size:25px;"> |
| | | <div >{{item.itemName}}</div> |
| | | </uni-td> |
| | | <uni-td align="center" style="font-size:25px;"> |
| | | <div>{{item.itemModel}}</div> |
| | | </uni-td> |
| | | <uni-td align="center" class="click-wd"> |
| | | <div @click="fetchDrawingNumber(item.itemNo)">调取图纸</div> |
| | | </uni-td> |
| | | </uni-tr> |
| | | </uni-table> |
| | | </u-modal> |
| | | </view> |
| | | |
| | | <view class="barcode"> |
| | | <u-modal :show="drawingShow" title="图纸明细" @confirm="drawingConfirm" @cancel="drawingCancel" |
| | | showCancelButton :z-index="1000"> |
| | | <uni-table border stripe emptyText="暂无更多数据" style="margin-left: 5px;margin-right: 5px;height: 400px;max-height: 60vh;overflow-y: auto;"> |
| | | <uni-tr> |
| | | <uni-th align="center">相关文档</uni-th> |
| | | <uni-th align="center" width="90">有无关联PDF文件</uni-th> |
| | | <uni-th align="center" width="90">能否打开文件</uni-th> |
| | | <uni-th align="center" width="150">操作(点击)</uni-th> |
| | | </uni-tr> |
| | | <uni-tr v-for="(item,index) in (drawing || [])" style="height: 100px;"> |
| | | <uni-td align="center">{{item.fName}}</uni-td> |
| | | <uni-td align="center" style="font-size:25px;"> |
| | | <div v-if="item.fRelevantObject==' '" style="color: #E47470;">×</div> |
| | | <div style="color: #90BA87;" v-else>√</div> |
| | | </uni-td> |
| | | <uni-td align="center" style="font-size:25px;"> |
| | | <div v-if="item.isSupported || item.fRelevantObject!=' '" style="color: #90BA87;">√</div> |
| | | <div style="color: #E47470;" v-else>×</div> |
| | | </uni-td> |
| | | <uni-td align="center" class="click-wd"> |
| | | <div @click="openDrawings(item)">打开文档</div> |
| | | </uni-td> |
| | | </uni-tr> |
| | | </uni-table> |
| | | </u-modal> |
| | | </view> |
| | | |
| | | <!-- 弹出框 --> |
| | | <view v-if="remarksPopup" class="overlay"> |
| | | <view class="popup"> |
| | |
| | | womdaaList: [], |
| | | |
| | | tableData: [], |
| | | |
| | | drawing: [], |
| | | |
| | | isSubmit: true, |
| | | |
| | | isUpdate: true, |
| | | |
| | | isShowTable: false, |
| | | |
| | | drawingShow: false, |
| | | itemShow: false, |
| | | |
| | | remarks: "", |
| | | remarksPopup: false, |
| | |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | drawingConfirm() { |
| | | this.drawingShow = false |
| | | this.imageShow = false |
| | | this.productionShow = false |
| | | this.itemShow=false |
| | | }, |
| | | drawingCancel() { |
| | | this.drawingShow = false |
| | | this.imageShow = false |
| | | this.productionShow = false |
| | | }, |
| | | itemCancel() { |
| | | this.itemShow=false |
| | | }, |
| | | |
| | | fetchDrawingNumber(itemNo) { |
| | | // const item = '83040700101' |
| | | const item = itemNo; |
| | | console.log(itemNo) |
| | | // console.log(item) |
| | | const url = this.$store.state.serverInfo.serverAPI +"/PLM/RetrieveDrawings?ItemNo=" + item |
| | | |
| | | // const item = '5.06.04.4002'; |
| | | // const url = "http://192.168.0.100:10054/api/PLM/RetrieveDrawings?ItemNo=" + item |
| | | |
| | | let _this = this; |
| | | |
| | | uni.request({ |
| | | url: url, |
| | | method: 'POST', |
| | | success: (response) => { |
| | | console.log(response) |
| | | if (response.data.data == '返回结果为空') { |
| | | _this.drawing = [] |
| | | } else { |
| | | _this.drawing = response.data.data |
| | | // 遍历数据,判断文件后缀并添加字段 |
| | | _this.drawing.forEach((file) => { |
| | | // 获取文件名的后缀 |
| | | const fileExtension = file.fName.split('.').pop() |
| | | .toLowerCase(); |
| | | |
| | | // 定义支持的文件类型 |
| | | const supportedExtensions = ['jpg', 'pdf', 'xlsx', 'doc', |
| | | 'docx', |
| | | 'xls' |
| | | ]; |
| | | |
| | | // 判断是否支持该文件类型 |
| | | file.isSupported = supportedExtensions.includes(fileExtension); |
| | | }); |
| | | } |
| | | }, |
| | | fail: (error) => { |
| | | uni.showToast({ |
| | | title: '请求图纸链接失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | this.drawingShow = true |
| | | }, |
| | | |
| | | getBom(){ |
| | | // const item = '83040700101' |
| | | const item = this.formData.daa001; |
| | | console.log(this.formData.daa001 ); |
| | | console.log('daa001:', item); |
| | | console.log('ItemNo:', this.formData.itemNo); |
| | | |
| | | const url = this.$store.state.serverInfo.serverAPI + "/LLJ/getWomdab"; |
| | | // 或者如果路径不同,请使用正确的端点 |
| | | // const url = "http://192.168.0.100:10054/api/getWomdab" |
| | | |
| | | let _this = this; |
| | | |
| | | uni.request({ |
| | | url: url, |
| | | method: 'POST', |
| | | header: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | data: { |
| | | daa001: item, // 根据DTO属性名传递 |
| | | ItemNo: this.formData.itemNo // 注意大小写匹配 |
| | | }, |
| | | success: (response) => { |
| | | console.log(response); |
| | | console.log("-------------------------------------"); |
| | | // 根据后端返回的数据结构进行调整 |
| | | if (response.data.status === 1) { |
| | | // 状态为1表示没有数据 |
| | | _this.drawing = []; |
| | | uni.showToast({ |
| | | title: response.data.message || '该检验单未上传附件信息', |
| | | icon: 'none' |
| | | }); |
| | | } else if (response.data.status === 0) { |
| | | // 状态为0表示成功 |
| | | if (response.data.data && response.data.data.tbBillList) { |
| | | _this.drawing = response.data.data.tbBillList; |
| | | |
| | | // 遍历数据,判断文件后缀并添加字段 |
| | | _this.drawing.forEach((file) => { |
| | | // 获取文件名的后缀 |
| | | const fileExtension = file.fName ? file.fName.split('.').pop().toLowerCase() : ''; |
| | | |
| | | // 定义支持的文件类型 |
| | | const supportedExtensions = ['jpg', 'pdf', 'xlsx', 'doc', 'docx', 'xls']; |
| | | |
| | | // 判断是否支持该文件类型 |
| | | file.isSupported = supportedExtensions.includes(fileExtension); |
| | | }); |
| | | } else { |
| | | _this.drawing = []; |
| | | } |
| | | } else { |
| | | // 其他状态码处理 |
| | | _this.drawing = []; |
| | | uni.showToast({ |
| | | title: response.data.message || '请求失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }, |
| | | fail: (error) => { |
| | | uni.showToast({ |
| | | title: '请求图纸链接失败', |
| | | icon: 'none' |
| | | }); |
| | | console.error('请求失败:', error); |
| | | } |
| | | }); |
| | | this.itemShow = true |
| | | }, |
| | | |
| | | //图纸相关文档 |
| | | openDrawings(item) { |
| | | console.log("jkjoi", item) |
| | | if (item.fRelevantObject.length > 2) { |
| | | // 生成请求URL(简化编码逻辑) |
| | | const encodedName = encodeURIComponent(item.fName); |
| | | const url = this.$store.state.serverInfo.serverAPI+`/PLM/OpenDrawingsGet?fileId=${item.fRelevantObject}&fName=${encodedName}`; |
| | | console.log('请求URL:', url); |
| | | |
| | | const now = new Date(); |
| | | const timestamp = [ |
| | | now.getFullYear(), |
| | | String(now.getMonth() + 1).padStart(2, '0'), |
| | | String(now.getDate()).padStart(2, '0'), |
| | | String(now.getHours()).padStart(2, '0'), |
| | | String(now.getMinutes()).padStart(2, '0'), |
| | | String(now.getSeconds()).padStart(2, '0') |
| | | ].join(''); |
| | | |
| | | // 生成新文件名(基础名_时间戳.后缀) |
| | | this.fileName = `${item.fName}_${timestamp}.pdf`; |
| | | console.log('新文件名:', this.fileName); |
| | | |
| | | uni.downloadFile({ |
| | | url: url, |
| | | success: (res) => { |
| | | console.log(res); |
| | | let fileName = this.fileName; |
| | | let fileExt = fileName.split('.').pop(); |
| | | // let newFilePath = "_doc/uniapp_temp_1742877118745/download" + "/" + fileName; |
| | | // console.log('newFilePath', newFilePath) |
| | | if (fileExt === 'xls' || fileExt === 'xlsx' || fileExt === 'pdf'|| fileExt === 'jpg'|| fileExt === 'png') { |
| | | plus.io.resolveLocalFileSystemURL(res.tempFilePath, (entry) => { |
| | | // 获取文件所在的目录 |
| | | entry.getParent((parentEntry) => { |
| | | let newFileName = this.fileName; // 新的文件名 |
| | | |
| | | // 移动并重命名文件 |
| | | entry.moveTo( |
| | | parentEntry, |
| | | newFileName, |
| | | (newEntry) => { |
| | | console.log('重命名成功:', newEntry.fullPath); |
| | | |
| | | // 打开 Excel 文件 |
| | | plus.runtime.openFile(newEntry.fullPath, {}, (e) => { |
| | | console.error('无法打开 Excel 文件:', e); |
| | | }); |
| | | |
| | | // let pages = getCurrentPages(); |
| | | // let beforePage = pages[pages.length - 2]; |
| | | // uni.navigateBack({ |
| | | // delta: 1, //返回的页面数,如果为1表示返回上一页 |
| | | // success: (event) => { |
| | | // beforePage.$vm.reload() |
| | | // } |
| | | // }); |
| | | |
| | | }, |
| | | (err) => { |
| | | console.error('重命名失败:', err); |
| | | } |
| | | ); |
| | | }, (err) => { |
| | | console.error('获取父目录失败:', err); |
| | | }); |
| | | }, (err) => { |
| | | console.error('获取文件失败:', err); |
| | | }); |
| | | } else { |
| | | console.error('文件格式不匹配:', fileExt); |
| | | uni.showToast({ |
| | | title: '文件格式不支持', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | uni.request({ |
| | | url: url, |
| | | method: 'POST', |
| | | responseType: 'arraybuffer', |
| | | success: (response) => { |
| | | console.log(response.data) |
| | | if (!response) { |
| | | uni.showToast({ |
| | | title: "协议预览失败", |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | fail: (error) => { |
| | | console.log(error) |
| | | uni.showToast({ |
| | | title: '请求预览链接失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | uni.showToast({ |
| | | title: '请求预览链接失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | getGenUpdate() { |
| | | if (!this.formData.id || !this.formData.billNo) { |
| | | this.$showMessage("请先保存检验单!"); |