From e8ac78034ad8f337751448aed8f45bcc4e2cded6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=BB=E7=8F=AE=E5=AE=87?= Date: Fri, 26 Jan 2024 14:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=9A=84beta=20=E8=B0=B1=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/phdHelper.js | 4 ++ .../components/Modals/LoadFromFileModal.vue | 58 ++++++++++++++++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/utils/phdHelper.js b/src/utils/phdHelper.js index 67991b3..561d3e1 100644 --- a/src/utils/phdHelper.js +++ b/src/utils/phdHelper.js @@ -102,6 +102,10 @@ export class PHDParser { const filePrefixes = this.getFilePrefixes(headerInfo[2]) this.sampleFilePrefix = filePrefixes.splice(0, 1)[0] this.otherFilePrefixes = filePrefixes + } else if (this.fileType == 'C') { + const filePrefixes = this.getFilePrefixes(headerInfo[2]) + this.sampleFilePrefix = filePrefixes.splice(0, 1)[0] + this.otherFilePrefixes = filePrefixes.splice(0, 1) } else { this.sampleFilePrefix = this.getGammaFilePrefix(headerInfo[2]) } diff --git a/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue b/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue index 925d08d..ea2a5fa 100644 --- a/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/LoadFromFileModal.vue @@ -370,7 +370,7 @@ export default { if (column !== 'sampleFileName' && (!record.sampleFileName || record.fileType !== 'B')) { return } - + console.log('this.directoryHanlder', this.directoryHanlder) if (this.directoryHanlder) { this.chooseFile(column, record, rowIndex) } else { @@ -384,6 +384,7 @@ export default { async chooseFile(column, record, rowIndex) { try { const [fileHandle] = await FilePicker.chooseFile(false, [{ accept: { 'text/phd': ['.phd'] } }]) + console.log('fileHandle', fileHandle) try { const isFileInDirectory = await FilePicker.isFileInDirectory(this.directoryHanlder, fileHandle) if (!isFileInDirectory) { @@ -394,7 +395,9 @@ export default { } const file = await fileHandle.getFile() + console.log('file', file) const text = await readFile(file) + console.log('text', text) const phdParser = new PHDParser(text) console.log('%c [ phdParser ]-313', 'font-size:13px; background:pink; color:#bf2c9f;', phdParser) const match = this.fileNameAndColumnMatch(column, phdParser.dataType) @@ -477,6 +480,42 @@ export default { } } record.qcFileName = qcFileInfo + } else if (phdParser.fileType == 'C') { + const iter = await this.directoryHanlder.values() + const fileList = [] + + let result = await iter.next() + while (!result.done) { + const fileHandle = result.value + const file = await fileHandle.getFile() + fileList.push(file) + result = await iter.next() + } + + const nameKeys = ['detFileName'] + const fileTypes = ['D'] + otherFilePrefixes.forEach((otherFilePrefix, index) => { + const fileType = fileTypes[index] + // 在所有文件中查找 名字含有 从sample文件解析出的文件名 的文件 + const findFile = fileList.find((file) => { + return file.name.includes(`${otherFilePrefix}${fileType}_${qualify}`) + }) + + if (findFile) { + const regExp = new RegExp( + `(${otherFilePrefix}${fileType}_${qualify}_\\d{1,}\\.{0,}\\d{0,}).*?(\\.PHD)` + ) + record[nameKeys[index]] = { + file: findFile, + fileName: findFile.name.replace(regExp, '$1$2'), + } + } else { + record[nameKeys[index]] = { + file: undefined, + fileName: `${otherFilePrefix}${fileType}.PHD`, + } + } + }) } else { Object.assign(record, { gasFileName: undefined, @@ -637,6 +676,7 @@ export default { const propStatus = ['sampleFileStatus', 'gasFileStatus', 'detFileStatus', 'qcFileStatus'] const files = [] const allFiles = [] + console.log('this.list', this.list) for (const item of this.list) { if (item.fileType) { let fileObj = { @@ -656,11 +696,14 @@ export default { allFiles.push(fileObj) } } + console.log('allFilesallFiles', allFiles) + console.log('filesfiles', files) if (!files.length) { this.$message.warn('File is Empty ') return } const zipedFiles = await zipFile(files, 'test.zip') + console.log('zipedFileszipedFiles', zipedFiles) this.isUploadingZip = true try { const { success, message } = await this.uploadZipFile(zipedFiles) @@ -688,6 +731,17 @@ export default { obj.qcFileStatus = el.qcFileStatus } }) + } else if (el.fileType == 'C') { + obj.sampleSystemType = el.fileType + el.files.forEach((item) => { + if (item.includes('_S_')) { + obj.sampleFileName = item + } + if (item.includes('_D_')) { + obj.detFileName = item + obj.detFileStatus = el.detFileStatus + } + }) } else { el.files.forEach((item) => { if (item.includes('_S_')) { @@ -701,7 +755,7 @@ export default { } result.push(obj) }) - console.log(result) + console.log('result', result) this.$emit('loadFormFile', result) this.visible = false this.isUploadingZip = false