|
@@ -1,8 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div
|
|
|
|
|
- v-if="show"
|
|
|
|
|
- style="padding: 20px; background-color: #f9f9f9; border-radius: 4px"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div style="padding: 20px; background-color: #f9f9f9; border-radius: 4px">
|
|
|
<div
|
|
<div
|
|
|
style="
|
|
style="
|
|
|
display: flex;
|
|
display: flex;
|
|
@@ -13,10 +10,10 @@
|
|
|
>
|
|
>
|
|
|
<div style="font-size: 16px; font-weight: 500">档案目录核对</div>
|
|
<div style="font-size: 16px; font-weight: 500">档案目录核对</div>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-button style="margin-right: 10px" @click="$emit('prev-step')">
|
|
|
|
|
|
|
+ <el-button style="margin-right: 10px" @click="handlePrevStep">
|
|
|
上一步
|
|
上一步
|
|
|
</el-button>
|
|
</el-button>
|
|
|
- <el-button type="primary" @click="$emit('next-step')">下一步</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="handleNextStep">下一步</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<el-table
|
|
<el-table
|
|
@@ -25,9 +22,13 @@
|
|
|
border
|
|
border
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
>
|
|
>
|
|
|
- <el-table-column type="index" label="序号" width="60" align="center" />
|
|
|
|
|
|
|
+ <el-table-column type="index" label="序号" width="60" align="center">
|
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
|
+ {{ row.orderNum }}
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="name"
|
|
|
|
|
|
|
+ prop="materialName"
|
|
|
label="资料名称"
|
|
label="资料名称"
|
|
|
min-width="300"
|
|
min-width="300"
|
|
|
align="left"
|
|
align="left"
|
|
@@ -39,43 +40,267 @@
|
|
|
align="center"
|
|
align="center"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- prop="startEndPageCount"
|
|
|
|
|
|
|
+ prop="pageRange"
|
|
|
label="起止页码"
|
|
label="起止页码"
|
|
|
width="120"
|
|
width="120"
|
|
|
align="center"
|
|
align="center"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column label="操作" width="150" align="center" fixed="right">
|
|
<el-table-column label="操作" width="150" align="center" fixed="right">
|
|
|
<template slot-scope="{ row }">
|
|
<template slot-scope="{ row }">
|
|
|
- <el-button type="text" size="small" @click="$emit('view', row)">
|
|
|
|
|
- 查看
|
|
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.canGenerate === '1'"
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleGenerate(row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 生成
|
|
|
</el-button>
|
|
</el-button>
|
|
|
- <el-button type="text" size="small" @click="$emit('edit', row)">
|
|
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.canEdit === '1'"
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleEdit(row)"
|
|
|
|
|
+ >
|
|
|
编辑
|
|
编辑
|
|
|
</el-button>
|
|
</el-button>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.documentType === 0"
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="handleViewFiles(row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 查看
|
|
|
|
|
+ </el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 文件列表弹窗(只读模式) -->
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ :visible.sync="fileListDialogVisible"
|
|
|
|
|
+ title="文件列表"
|
|
|
|
|
+ width="80%"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ @close="fileListDialogVisible = false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <!-- 资料信息展示 -->
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="currentViewingMaterial"
|
|
|
|
|
+ style="
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ background-color: #f5f7fa;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <span style="color: #606266; font-size: 14px; margin-right: 10px">
|
|
|
|
|
+ 资料名称:
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span style="font-weight: 500; font-size: 16px">
|
|
|
|
|
+ {{ currentViewingMaterial.materialName }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <span style="color: #606266; font-size: 14px; margin-right: 10px">
|
|
|
|
|
+ 资料序号:
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span style="font-weight: 500; font-size: 16px">
|
|
|
|
|
+ {{
|
|
|
|
|
+ currentViewingMaterial.materialOrderNum ||
|
|
|
|
|
+ currentViewingMaterial.orderNum
|
|
|
|
|
+ }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 文件列表(只读模式,无操作按钮和拖拽功能) -->
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-for="(row, index) in fileListData"
|
|
|
|
|
+ :key="row.id"
|
|
|
|
|
+ class="file-list-item"
|
|
|
|
|
+ style="
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <div style="text-align: center">
|
|
|
|
|
+ <div style="font-size: 12px; margin-top: 5px">
|
|
|
|
|
+ {{ index + 1 }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <div style="font-size: 14px; font-weight: 500">
|
|
|
|
|
+ {{ row.documentName }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="font-size: 12px; color: #909399; margin-top: 5px">
|
|
|
|
|
+ 文书名称
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="4">
|
|
|
|
|
+ <div style="font-size: 14px">{{ row.documentNumber }}</div>
|
|
|
|
|
+ <div style="font-size: 12px; color: #909399; margin-top: 5px">
|
|
|
|
|
+ 文号
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="5">
|
|
|
|
|
+ <div style="font-size: 14px">{{ row.auditedUnitName }}</div>
|
|
|
|
|
+ <div style="font-size: 12px; color: #909399; margin-top: 5px">
|
|
|
|
|
+ 被监审单位
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="3">
|
|
|
|
|
+ <div style="font-size: 14px">{{ row.fileSource }}</div>
|
|
|
|
|
+ <div style="font-size: 12px; color: #909399; margin-top: 5px">
|
|
|
|
|
+ 文件来源
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2">
|
|
|
|
|
+ <div style="font-size: 14px">{{ row.pageCount || 0 }}</div>
|
|
|
|
|
+ <div style="font-size: 12px; color: #909399; margin-top: 5px">
|
|
|
|
|
+ 页数
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="2" style="text-align: right">
|
|
|
|
|
+ <!-- 只读模式,无操作按钮 -->
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-if="fileListData.length === 0"
|
|
|
|
|
+ style="text-align: center; padding: 40px 0; color: #909399"
|
|
|
|
|
+ >
|
|
|
|
|
+ 暂无数据
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div slot="footer" style="text-align: right">
|
|
|
|
|
+ <el-button @click="fileListDialogVisible = false">关闭</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+ import { getArchiveProofreadList } from '@/api/audit/dataProofread'
|
|
|
|
|
+ import { getDetailListByMasterList } from '@/api/audit/dataInduction'
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
name: 'ArchiveProofread',
|
|
name: 'ArchiveProofread',
|
|
|
props: {
|
|
props: {
|
|
|
- show: {
|
|
|
|
|
- type: Boolean,
|
|
|
|
|
- default: false,
|
|
|
|
|
|
|
+ taskId: {
|
|
|
|
|
+ type: String,
|
|
|
|
|
+ default: '',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ proofreadData: [],
|
|
|
|
|
+ // 文件列表弹窗相关
|
|
|
|
|
+ fileListDialogVisible: false,
|
|
|
|
|
+ fileListData: [],
|
|
|
|
|
+ fileListLoading: false,
|
|
|
|
|
+ currentViewingMaterial: null,
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ taskId: {
|
|
|
|
|
+ handler(newVal) {
|
|
|
|
|
+ if (newVal) {
|
|
|
|
|
+ this.loadProofreadData()
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ immediate: true,
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ async loadProofreadData() {
|
|
|
|
|
+ if (!this.taskId) return
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ this.loading = true
|
|
|
|
|
+ const response = await getArchiveProofreadList({
|
|
|
|
|
+ taskId: this.taskId,
|
|
|
|
|
+ })
|
|
|
|
|
+ if (response && response.value) {
|
|
|
|
|
+ this.proofreadData = Array.isArray(response.value)
|
|
|
|
|
+ ? response.value
|
|
|
|
|
+ : response.value.list || []
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.proofreadData = []
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('加载卷宗校对列表失败:', error)
|
|
|
|
|
+ this.proofreadData = []
|
|
|
|
|
+ this.$message.error('数据加载失败')
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ this.loading = false
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
- loading: {
|
|
|
|
|
- type: Boolean,
|
|
|
|
|
- default: false,
|
|
|
|
|
|
|
+ handleGenerate(row) {
|
|
|
|
|
+ // 处理生成操作
|
|
|
|
|
+ this.$emit('generate', row)
|
|
|
},
|
|
},
|
|
|
- proofreadData: {
|
|
|
|
|
- type: Array,
|
|
|
|
|
- default: () => [],
|
|
|
|
|
|
|
+ handleEdit(row) {
|
|
|
|
|
+ // 处理编辑操作
|
|
|
|
|
+ this.$emit('edit', row)
|
|
|
|
|
+ },
|
|
|
|
|
+ handleViewFiles(row) {
|
|
|
|
|
+ // 处理查看文件列表操作
|
|
|
|
|
+ this.currentViewingMaterial = row
|
|
|
|
|
+ this.fileListDialogVisible = true
|
|
|
|
|
+ this.loadFileList(row.id)
|
|
|
|
|
+ },
|
|
|
|
|
+ async loadFileList(masterId) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ this.fileListLoading = true
|
|
|
|
|
+ const response = await getDetailListByMasterList(masterId)
|
|
|
|
|
+ if (response && response.value) {
|
|
|
|
|
+ this.fileListData = Array.isArray(response.value)
|
|
|
|
|
+ ? response.value
|
|
|
|
|
+ : response.value.list || []
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.fileListData = []
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('加载文件列表失败:', error)
|
|
|
|
|
+ this.fileListData = []
|
|
|
|
|
+ this.$message.error('文件列表加载失败')
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ this.fileListLoading = false
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ handlePrevStep() {
|
|
|
|
|
+ // 处理上一步操作
|
|
|
|
|
+ this.$emit('prev-step')
|
|
|
|
|
+ },
|
|
|
|
|
+ handleNextStep() {
|
|
|
|
|
+ // 处理下一步操作
|
|
|
|
|
+ this.$emit('next-step')
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
-<style scoped lang="scss"></style>
|
|
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
|
+ .file-list-item {
|
|
|
|
|
+ pointer-events: none; // 只读模式,禁用所有交互
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .file-list-item ::v-deep .el-input__inner,
|
|
|
|
|
+ .file-list-item ::v-deep .el-textarea__inner,
|
|
|
|
|
+ .file-list-item ::v-deep .el-select .el-input__inner {
|
|
|
|
|
+ background-color: #f5f7fa;
|
|
|
|
|
+ border-color: #e4e7ed;
|
|
|
|
|
+ color: #909399;
|
|
|
|
|
+ cursor: not-allowed;
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|