diff --git a/src/api/file_server_api.ts b/src/api/file_server_api.ts index a2e265e6b89a79936edfa752707c67a33f9eb132..7253dd64479e23799c2f2946e0cd996e54eb03aa 100644 --- a/src/api/file_server_api.ts +++ b/src/api/file_server_api.ts @@ -119,6 +119,17 @@ export const fileServerAPI = { } }) }, + + // 应用文件版本 + async applyFileVersion(fileId, isApplied) { + // Ensure file server token exists + await this.ensureFileServerToken() + + return erpRequest.post('/file-api/third/chunk/apply', { + fileId, + isApplied: isApplied + }) + }, // Ensure file server token exists async ensureFileServerToken() { diff --git a/src/views/inspection/inspection_guide.vue b/src/views/inspection/inspection_guide.vue index 3535922489b9c50c903dce682ec8381e4c82c769..22caf34d24b737f749c6ec5bbde3f27766956732 100644 --- a/src/views/inspection/inspection_guide.vue +++ b/src/views/inspection/inspection_guide.vue @@ -75,6 +75,11 @@ 下载 + + + 关闭 @@ -198,6 +203,16 @@ export default class InspectionGuide extends Vue { uploadFile: any = null uploadType = '' currentRow: any = null + + // 获取当前用户工号 + get currentJobNumber() { + return sessionStorage.getItem('jobNumber') || '' + } + + // 判断是否显示应用版本操作列 + get canShowApplyVersion() { + return this.currentJobNumber === 'BL999' + } async submitForm() { try { @@ -267,7 +282,7 @@ export default class InspectionGuide extends Vue { } // Transform API response to frontend format - this.currentFiles = response.data.data.map((file) => { + let transformedFiles = response.data.data.map((file) => { // Determine file type based on extension let fileType = 'other' const parts = file.fileName.split('.') @@ -284,9 +299,18 @@ export default class InspectionGuide extends Vue { // uploader: file.uploader || '系统', date: file.uploadTime || new Date().toISOString().split('T')[0], url: file.fileUrl || '', - type: fileType + type: fileType, + fileId: file.fileId || file.id || '', + applyVersion: file.applyVersion === '1' || file.applyVersion === 1 ? 1 : 0 } }) + + // For non-BL999 users, only show files where applyVersion is 1 + if (this.currentJobNumber !== 'BL999') { + transformedFiles = transformedFiles.filter(file => file.applyVersion === 1) + } + + this.currentFiles = transformedFiles } catch (error) { console.error('Failed to get file list:', error) // this.$message.warning('获取文件列表失败,显示模拟数据') @@ -322,6 +346,25 @@ export default class InspectionGuide extends Vue { document.body.removeChild(link) } + async handleApplyChange(file) { + // Only allow BL999 user to apply version + if (this.currentJobNumber !== 'BL999') { + this.$message.warning('您没有权限执行此操作') + return + } + + try { + const isAppliedValue = file.applyVersion ? 1 : 0 + await chunkUploadAPI.applyFileVersion(file.fileId, isAppliedValue) + const action = file.applyVersion ? '应用' : '取消应用' + this.$message.success(`${action}文件版本成功`) + } catch (error) { + console.error('Failed to apply file version:', error) + file.applyVersion = file.applyVersion ? 0 : 1 + this.$message.error('操作失败,请重试') + } + } + // Upload methods handleUpload(type, row) { this.uploadType = type diff --git a/src/views/process-route/add_process_detail.vue b/src/views/process-route/add_process_detail.vue index c12efda4fef9da0d62fb6f898dfa5752589aee60..d516b0e34c1ed0132eef50eae2a884c69eab4765 100644 --- a/src/views/process-route/add_process_detail.vue +++ b/src/views/process-route/add_process_detail.vue @@ -241,6 +241,11 @@ 下载 + + + @@ -374,6 +379,16 @@ export default class EditProcessDetail extends Vue { type: 'other' } previewUrl = '' + + // 获取当前用户工号 + get currentJobNumber() { + return sessionStorage.getItem('jobNumber') || '' + } + + // 判断是否显示应用版本操作列 + get canShowApplyVersion() { + return this.currentJobNumber === 'BL999' + } canEdit: boolean = false readOnly: boolean = true @@ -1125,7 +1140,7 @@ export default class EditProcessDetail extends Vue { } // Transform API response to frontend format - this.currentFiles = response.data.data.map((file) => { + let transformedFiles = response.data.data.map((file) => { // Determine file type based on extension let fileType = 'other' const parts = file.fileName.split('.') @@ -1142,9 +1157,18 @@ export default class EditProcessDetail extends Vue { // uploader: file.uploader || '系统', date: file.uploadTime || new Date().toISOString().split('T')[0], url: file.fileUrl || '', - type: fileType + type: fileType, + fileId: file.fileId || file.id || '', + applyVersion: file.applyVersion === '1' || file.applyVersion === 1 ? 1 : 0 } }) + + // For non-BL999 users, only show files where applyVersion is 1 + if (this.currentJobNumber !== 'BL999') { + transformedFiles = transformedFiles.filter(file => file.applyVersion === 1) + } + + this.currentFiles = transformedFiles } catch (error) { console.error('Failed to get file list:', error) // this.$message.warning('获取文件列表失败,显示模拟数据') @@ -1180,6 +1204,25 @@ export default class EditProcessDetail extends Vue { document.body.removeChild(link) } + async handleApplyChange(file: any) { + // Only allow BL999 user to apply version + if (this.currentJobNumber !== 'BL999') { + this.$message.warning('您没有权限执行此操作') + return + } + + try { + const isAppliedValue = file.applyVersion ? 1 : 0 + await chunkUploadAPI.applyFileVersion(file.fileId, isAppliedValue) + const action = file.applyVersion ? '应用' : '取消应用' + this.$message.success(`${action}文件版本成功`) + } catch (error) { + console.error('Failed to apply file version:', error) + file.applyVersion = file.applyVersion ? 0 : 1 + this.$message.error('操作失败,请重试') + } + } + formatFileSize(bytes) { if (bytes === 0) return '0 Bytes' const k = 1024 diff --git a/src/views/process-route/version_management.vue b/src/views/process-route/version_management.vue index a2f62a2fa7f49f7064253a3bb77d88cd4583fdf0..1fac723e1128250ad6e5ebfbdc692ad5b1d355e3 100644 --- a/src/views/process-route/version_management.vue +++ b/src/views/process-route/version_management.vue @@ -82,6 +82,11 @@ 下载 + + + @@ -152,6 +157,15 @@ const vuexProcess = namespace('TwoProcess') } }) export default class Index extends Vue { + // 获取当前用户工号 + get currentJobNumber() { + return sessionStorage.getItem('jobNumber') || '' + } + + // 判断是否显示应用版本操作列 + get canShowApplyVersion() { + return this.currentJobNumber === 'BL999' + } public $refs!: { addDialog: any deleteProcess: any @@ -340,7 +354,7 @@ export default class Index extends Vue { } // Transform API response to frontend format - this.currentFiles = response.data.data.map((file) => { + let transformedFiles = response.data.data.map((file) => { // Determine file type based on extension let fileType = 'other' const parts = file.fileName.split('.') @@ -357,9 +371,18 @@ export default class Index extends Vue { // uploader: file.uploader || '系统', date: file.uploadTime || new Date().toISOString().split('T')[0], url: file.fileUrl || '', - type: fileType + type: fileType, + fileId: file.fileId || file.id || '', + applyVersion: file.applyVersion === '1' || file.applyVersion === 1 ? 1 : 0 } }) + + // For non-BL999 users, only show files where applyVersion is 1 + if (this.currentJobNumber !== 'BL999') { + transformedFiles = transformedFiles.filter(file => file.applyVersion === 1) + } + + this.currentFiles = transformedFiles } catch (error) { console.error('Failed to get file list:', error) // this.$message.warning('获取文件列表失败,显示模拟数据') @@ -397,6 +420,29 @@ export default class Index extends Vue { document.body.removeChild(link) } + async handleApplyChange(file) { + // Only allow BL999 user to apply version + if (this.currentJobNumber !== 'BL999') { + this.$message.warning('您没有权限执行此操作') + return + } + + try { + const isAppliedValue = file.applyVersion ? 1 : 0 + await chunkUploadAPI.applyFileVersion(file.fileId, isAppliedValue) + const action = file.applyVersion ? '应用' : '取消应用' + this.$message.success(`${action}文件版本成功`) + } catch (error) { + console.error('Failed to apply file version:', error) + file.applyVersion = file.applyVersion ? 0 : 1 + this.$message.error('操作失败,请重试') + } + } + + applyVersion(row) { + + } + // Upload methods handleUpload(type, row) { this.uploadType = type