suhp 3 veckor sedan
förälder
incheckning
c27836d38b
1 ändrade filer med 248 tillägg och 466 borttagningar
  1. 248 466
      src/views/costAudit/auditInfo/archivesManage/ArchiveDetail.vue

+ 248 - 466
src/views/costAudit/auditInfo/archivesManage/ArchiveDetail.vue

@@ -1,14 +1,5 @@
 <template>
   <div class="archive-detail-container">
-    <el-breadcrumb
-      separator-class="el-icon-arrow-right"
-      style="margin-bottom: 20px"
-    >
-      <el-breadcrumb-item>
-        <a href="javascript:void(0)" @click="backToList">待归档列表</a>
-      </el-breadcrumb-item>
-      <el-breadcrumb-item>归档</el-breadcrumb-item>
-    </el-breadcrumb>
     <!-- 步骤导航 -->
     <el-steps
       :active="currentStep"
@@ -20,134 +11,236 @@
       <el-step title="档案预览"></el-step>
     </el-steps>
 
-    <!-- 标签页 -->
-    <el-tabs
-      v-model="archiveTab"
-      style="margin-bottom: 20px"
-      @tab-click="handleTabClick"
-    >
-      <el-tab-pane label="资料归纳" name="dataCollect">
-        <el-button
-          plain
-          type="success"
-          icon="el-icon-circle-plus"
-          style="margin-bottom: 20px"
-          @click="addData()"
+    <!-- 步骤内容容器 -->
+    <div style="margin-bottom: 20px">
+      <!-- 第0步:资料归纳 -->
+      <div
+        v-if="currentStep === 0"
+        style="padding: 20px; background-color: #f9f9f9; border-radius: 4px"
+      >
+        <div
+          style="
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            margin-bottom: 20px;
+          "
         >
-          添加资料
-        </el-button>
-
-        <!-- 资料列表表格 -->
-        <CostAuditTable
-          v-loading="loading"
-          :table-data="archiveData"
-          :columns="archiveColumns"
-          :show-index="true"
-          :border="true"
-          :show-pagination="false"
-        >
-          <template slot="action" slot-scope="{ row, index }">
-            <el-button type="text" size="small" @click="handleView(row)">
-              查看
-            </el-button>
-            <el-button type="text" size="small" @click="handleEditArchive(row)">
-              修改
-            </el-button>
-            <el-button
-              type="text"
-              size="small"
-              @click="handleDelete(row, index)"
-            >
-              删除
-            </el-button>
-          </template>
-          <template slot="sort" slot-scope="{ row, index }">
+          <div style="font-size: 16px; font-weight: 500">资料归纳</div>
+          <div>
             <el-button
-              v-if="index !== 0"
-              type="text"
-              size="small"
-              @click="moveUp(row, index)"
+              plain
+              type="success"
+              icon="el-icon-circle-plus"
+              style="margin-right: 10px"
+              @click="addData()"
             >
-              上移
+              添加资料
             </el-button>
-            <el-button
-              v-if="index !== archiveData.length - 1"
-              type="text"
-              size="small"
-              @click="moveDown(row, index)"
-            >
-              下移
+            <el-button v-if="currentStep < 2" type="primary" @click="nextStep">
+              下一步
             </el-button>
-          </template>
-        </CostAuditTable>
-      </el-tab-pane>
-      <el-tab-pane label="档案校对" name="proofread">
-        <div class="proofread-content">
-          <CostAuditTable
-            v-loading="loading"
-            :table-data="proofreadData"
-            :columns="proofreadColumns"
-            :show-index="true"
-            :border="true"
-            :show-pagination="false"
+          </div>
+        </div>
+        <!-- 资料列表表格 -->
+        <el-table
+          v-loading="loading"
+          :data="archiveData"
+          border
+          style="width: 100%"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="60"
+            align="center"
+          />
+          <el-table-column
+            prop="materialName"
+            label="资料名称"
+            min-width="300"
+            align="left"
+          />
+          <el-table-column
+            prop="lastModified"
+            label="最后修改时间"
+            width="180"
+            align="center"
+          />
+          <el-table-column
+            label="操作"
+            width="150"
+            align="center"
+            fixed="right"
           >
-            <template slot="action" slot-scope="{ row, index }">
+            <template slot-scope="{ row }">
               <el-button type="text" size="small" @click="handleView(row)">
                 查看
               </el-button>
-              <el-button type="text" size="small" @click="handlePreview(row)">
-                生成
-              </el-button>
               <el-button
                 type="text"
                 size="small"
-                @click="handleEdit(row, index)"
+                @click="handleEditArchive(row)"
               >
                 修改
               </el-button>
+              <el-button type="text" size="small" @click="handleDelete(row)">
+                删除
+              </el-button>
             </template>
-          </CostAuditTable>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label="档案预览" name="preview">
-        <div class="preview-content">
-          <div class="doc-actions">
-            <el-button plain type="primary" icon="el-icon-success">
-              保存
-            </el-button>
-            <el-button plain type="primary" icon="el-icon-download">
-              下载
-            </el-button>
-            <el-button plain type="primary" icon="el-icon-refresh">
-              重新生成
+          </el-table-column>
+          <el-table-column
+            label="排序"
+            width="100"
+            align="center"
+            fixed="right"
+          >
+            <template slot-scope="{ row, $index }">
+              <el-button
+                v-if="$index !== 0"
+                type="text"
+                size="small"
+                @click="moveUp(row, $index)"
+              >
+                上移
+              </el-button>
+              <el-button
+                v-if="$index !== archiveData.length - 1"
+                type="text"
+                size="small"
+                @click="moveDown(row, $index)"
+              >
+                下移
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <!-- 第1步:档案目录核对 -->
+      <div
+        v-if="currentStep === 1"
+        style="padding: 20px; background-color: #f9f9f9; border-radius: 4px"
+      >
+        <div
+          style="
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            margin-bottom: 20px;
+          "
+        >
+          <div style="font-size: 16px; font-weight: 500">档案目录核对</div>
+          <div>
+            <el-button style="margin-right: 10px" @click="prevStep">
+              上一步
             </el-button>
-            <el-button
-              plain
-              type="primary"
-              icon="el-icon-back"
-              @click="backToList"
-            >
-              返回
+            <el-button v-if="currentStep < 2" type="primary" @click="nextStep">
+              下一步
             </el-button>
           </div>
-          <div class="doc-title">******成本监审档案</div>
-          <div class="doc-container">
-            <div class="doc-catalogue">
-              <div
-                v-for="item in catalogueData"
-                :key="item.id"
-                class="doc-catalogue-item"
+        </div>
+        <el-table
+          v-loading="loading"
+          :data="proofreadData"
+          border
+          style="width: 100%"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="60"
+            align="center"
+          />
+          <el-table-column
+            prop="name"
+            label="资料名称"
+            min-width="300"
+            align="left"
+          />
+          <el-table-column
+            prop="pageCount"
+            label="资料页数"
+            width="120"
+            align="center"
+          />
+          <el-table-column
+            prop="startEndPageCount"
+            label="起止页码"
+            width="120"
+            align="center"
+          />
+          <el-table-column
+            label="操作"
+            width="150"
+            align="center"
+            fixed="right"
+          >
+            <template slot-scope="{ row }">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleProofreadView(row)"
+              >
+                查看
+              </el-button>
+              <el-button
+                type="text"
+                size="small"
+                @click="handleProofreadEdit(row)"
               >
-                {{ item.name }}
-              </div>
-            </div>
-            <div class="doc-content">
-              <div class="doc-content-item">文档内容</div>
-            </div>
+                编辑
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <!-- 第2步:档案预览 -->
+      <div
+        v-if="currentStep === 2"
+        style="padding: 20px; background-color: #f9f9f9; border-radius: 4px"
+      >
+        <div
+          style="
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            margin-bottom: 20px;
+          "
+        >
+          <div style="font-size: 16px; font-weight: 500">档案预览</div>
+          <div>
+            <el-button style="margin-right: 10px" @click="prevStep">
+              上一步
+            </el-button>
+            <el-button type="success" @click="completeArchive">完成</el-button>
           </div>
         </div>
-      </el-tab-pane>
-    </el-tabs>
+        <div class="preview-actions" style="margin-bottom: 20px">
+          <el-button plain type="primary" icon="el-icon-success">
+            保存
+          </el-button>
+          <el-button plain type="primary" icon="el-icon-download">
+            下载
+          </el-button>
+          <el-button plain type="primary" icon="el-icon-refresh">
+            重新生成
+          </el-button>
+        </div>
+        <div
+          style="
+            border: 1px solid #dcdfe6;
+            border-radius: 4px;
+            padding: 20px;
+            background-color: #fff;
+            min-height: 400px;
+          "
+        >
+          <div style="text-align: center; color: #909399">档案预览内容区域</div>
+        </div>
+      </div>
+    </div>
 
     <CostAuditDialog
       :visible.sync="dataDialogVisible"
@@ -448,7 +541,6 @@
 </template>
 
 <script>
-  import CostAuditTable from '@/components/costAudit/CostAuditTable.vue'
   import CostAuditDialog from '@/components/costAudit/CostAuditDialog.vue'
   import {
     getDataInductionList,
@@ -462,7 +554,6 @@
   export default {
     name: 'ArchiveDetail',
     components: {
-      CostAuditTable,
       CostAuditDialog,
     },
     props: {
@@ -476,58 +567,7 @@
         allUnits: [],
         loading: false,
         currentStep: 0, // 当前步骤 0:资料归纳 1:目录核对 2:档案预览
-        archiveTab: 'dataCollect', // 归档页面标签页  dataCollect preview
-        archiveColumns: [
-          {
-            prop: 'name',
-            label: '资料名称',
-            minWidth: 300,
-            align: 'left',
-          },
-          {
-            prop: 'pageCount',
-            label: '资料页数',
-            width: 120,
-          },
-          {
-            prop: 'lastModified',
-            label: '最后修改时间',
-            width: 180,
-          },
-          {
-            slotName: 'action',
-            label: '操作',
-            width: 150,
-          },
-          {
-            slotName: 'sort',
-            label: '排序',
-            width: 100,
-          },
-        ],
-        proofreadColumns: [
-          {
-            prop: 'name',
-            label: '资料名称',
-            minWidth: 300,
-            align: 'left',
-          },
-          {
-            prop: 'pageCount',
-            label: '资料页数',
-            width: 120,
-          },
-          {
-            prop: 'startEndPageCount',
-            label: '起止页码',
-            width: 120,
-          },
-          {
-            slotName: 'action',
-            label: '文书排序',
-            width: 200,
-          },
-        ],
+        totalPageCount: 0, // 总资料页数
         archiveData: [],
         proofreadData: [
           {
@@ -550,7 +590,7 @@
           },
           {
             id: 4,
-            name: '被监审单位申请(报告)价格表(复件)',
+            name: '被监审单位申请(报告)价格表(复件)',
             pageCount: 5,
             startEndPageCount: '31-35',
           },
@@ -560,74 +600,7 @@
             pageCount: 13,
             startEndPageCount: '36-48',
           },
-          {
-            id: 6,
-            name: '经营者需提供成本费用清单',
-            pageCount: 5,
-            startEndPageCount: '49-53',
-          },
-          {
-            id: 7,
-            name: '政府定价成本监审调查笔录',
-            pageCount: 5,
-            startEndPageCount: '54-58',
-          },
-          {
-            id: 8,
-            name: '成本监审补充资料通知书(含送达回证)',
-            pageCount: 5,
-            startEndPageCount: '59-63',
-          },
-          {
-            id: 9,
-            name: '成本审核初步意见告知书(含送达回证)',
-            pageCount: 5,
-            startEndPageCount: '64-68',
-          },
-          {
-            id: 10,
-            name: '经营者书面反馈的材料',
-            pageCount: 1,
-            startEndPageCount: '69',
-          },
-          {
-            id: 11,
-            name: '成本审核初步意见表(集体审议用)',
-            pageCount: 1,
-            startEndPageCount: '70',
-          },
-          {
-            id: 12,
-            name: '成本监审集体审议记录',
-            pageCount: 1,
-            startEndPageCount: '71',
-          },
-          {
-            id: 13,
-            name: '成本监审工作底稿',
-            pageCount: 1,
-            startEndPageCount: '72',
-          },
-          {
-            id: 14,
-            name: '成本监审委员会审议记录',
-            pageCount: 1,
-            startEndPageCount: '73',
-          },
-          {
-            id: 15,
-            name: '提取的成本资料会计凭证等复印件',
-            pageCount: 10,
-            startEndPageCount: '74-83',
-          },
-          {
-            id: 16,
-            name: '成本监审备考表',
-            pageCount: 1,
-            startEndPageCount: '--',
-          },
         ],
-        dataDialogTitle: '添加资料',
         dataDialogVisible: false,
         dataDialogLoading: false,
         dataDialogForm: {
@@ -642,56 +615,6 @@
             { required: true, message: '请输入序号', trigger: 'blur' },
           ],
         },
-        dataDialogColumns: [
-          {
-            prop: 'materialOrderNum',
-            label: '序号',
-            width: 100,
-            align: 'center',
-          },
-          {
-            prop: 'materialName',
-            label: '资料名称',
-            minWidth: 200,
-            align: 'left',
-          },
-          {
-            prop: 'documentName',
-            label: '文书名称',
-            minWidth: 200,
-            align: 'left',
-          },
-          {
-            prop: 'documentNo',
-            label: '文号',
-            width: 150,
-            align: 'center',
-          },
-          {
-            prop: 'auditedUnit',
-            label: '被监审单位',
-            minWidth: 150,
-            align: 'left',
-          },
-          {
-            prop: 'generateTime',
-            label: '生成(上传)时间',
-            width: 180,
-            align: 'center',
-          },
-          {
-            prop: 'fileSource',
-            label: '文件来源',
-            width: 120,
-            align: 'center',
-          },
-          {
-            slotName: 'action',
-            label: '操作',
-            width: 100,
-            fixed: 'right',
-          },
-        ],
         dataDialogData: [], // 已废弃,保留用于兼容
         materialQueryList: [], // 查询结果列表
         selectedFileList: [], // 已选择的文件列表(待保存)
@@ -717,6 +640,7 @@
             name: '卷宗封底',
           },
         ],
+        dataDialogTitle: '添加资料',
       }
     },
     created() {
@@ -726,60 +650,17 @@
       }
     },
     methods: {
-      // 标签页切换事件
-      handleTabClick(tab) {
-        this.archiveTab = tab.name
-        // 如果切换到资料归纳标签页,加载资料归纳数据
-        if (tab.name === 'dataCollect' && this.taskId) {
-          this.loadArchiveData()
-        }
-      },
       // 加载资料归纳列表数据
       async loadArchiveData() {
         if (!this.taskId) {
           return
         }
-
-        try {
-          this.loading = true
-          const response = await getDataInductionList({ taskId: this.taskId })
-
-          // 根据API返回格式处理数据
-          if (response && response.value) {
-            // 处理返回的数据,映射到archiveData格式
-            this.archiveData = (
-              Array.isArray(response.value)
-                ? response.value
-                : response.value.list || []
-            ).map((item) => {
-              return {
-                id: item.id,
-                name: item.materialName || item.name || '',
-                pageCount: item.pageCount || item.pageNum || '--',
-                lastModified:
-                  item.updateTime ||
-                  item.createTime ||
-                  item.lastModified ||
-                  '--',
-                sortOrder: item.sortOrder || item.orderNum || 0,
-                // 保留原始数据,便于后续操作
-                originalData: item,
-              }
-            })
-
-            // 按sortOrder排序
-            this.archiveData.sort((a, b) => {
-              return (a.sortOrder || 0) - (b.sortOrder || 0)
-            })
-          } else {
-            this.archiveData = []
-          }
-        } catch (error) {
-          // this.$message.error('加载资料归纳列表失败')
-          console.error('加载资料归纳列表失败:', error)
+        this.loading = true
+        const response = await getDataInductionList({ taskId: this.taskId })
+        if (response && response.value) {
+          this.archiveData = response.value
+        } else {
           this.archiveData = []
-        } finally {
-          this.loading = false
         }
       },
       // 添加资料按钮点击事件
@@ -1163,9 +1044,7 @@
             this.$message.success(response.message || '保存成功')
             this.handleCancel('dataDialog')
             // 刷新资料归纳列表
-            if (this.archiveTab === 'dataCollect') {
-              this.loadArchiveData()
-            }
+            this.loadArchiveData()
           } else {
             this.$message.error(response.message || '保存失败')
           }
@@ -1299,11 +1178,6 @@
         }
       },
 
-      // 预览按钮点击事件
-      handlePreview(row) {
-        this.$message.info(`预览资料:${row.name}`)
-        // 实际项目中这里应该打开资料预览功能
-      },
       // 修改资料归纳按钮点击事件
       async handleEditArchive(row) {
         if (!row || !row.originalData) {
@@ -1400,7 +1274,7 @@
       },
 
       // 删除按钮点击事件
-      handleDelete(row, index) {
+      handleDelete(row) {
         this.$confirm(`确定要删除资料"${row.name}"吗?`, '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
@@ -1499,15 +1373,40 @@
       nextStep() {
         if (this.currentStep < 2) {
           this.currentStep++
-          // 如果进入第三步,自动切换到档案预览标签页
-          if (this.currentStep === 2) {
-            this.archiveTab = 'preview'
-          }
         } else {
           this.$message.success('归档完成')
           this.backToList()
         }
       },
+      // 上一步按钮点击事件
+      prevStep() {
+        if (this.currentStep > 0) {
+          this.currentStep--
+        }
+      },
+      // 完成归档按钮点击事件
+      completeArchive() {
+        this.$confirm('确定要完成归档吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            this.$message.success('归档完成')
+            this.backToList()
+          })
+          .catch(() => {
+            this.$message.info('已取消')
+          })
+      },
+      // 档案校对查看
+      handleProofreadView(row) {
+        this.$message.info(`查看:${row.name}`)
+      },
+      // 档案校对编辑
+      handleProofreadEdit(row) {
+        this.$message.info(`编辑:${row.name}`)
+      },
       // 加载所有被监审单位列表
       async loadAllUnits() {
         try {
@@ -1546,8 +1445,7 @@
   }
 
   .custom-steps {
-    width: 100%;
-    max-width: 800px;
+    width: 97%;
     margin: 0 auto 30px;
     padding: 20px;
     background-color: #fff;
@@ -1555,98 +1453,6 @@
     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
   }
 
-  .proofread-content {
-    padding: 20px 0;
-  }
-
-  .preview-content {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-
-    .doc-actions {
-      display: flex;
-      justify-content: flex-start;
-      gap: 10px;
-      margin-bottom: 20px;
-      padding: 15px;
-      background-color: #f5f7fa;
-      border-radius: 4px;
-    }
-
-    .doc-title {
-      height: 50px;
-      line-height: 50px;
-      text-align: center;
-      border: 1px solid #dcdfe6;
-      border-radius: 4px 4px 0 0;
-      padding: 0 20px;
-      background: linear-gradient(to right, #409eff, #66b1ff);
-      color: #fff;
-      font-size: 18px;
-      font-weight: 500;
-      margin-top: 0;
-      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
-    }
-
-    .doc-container {
-      display: flex;
-      border: 1px solid #dcdfe6;
-      border-top: none;
-      border-radius: 0 0 4px 4px;
-      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-      overflow: hidden;
-      min-height: 600px;
-
-      .doc-catalogue {
-        width: 200px;
-        min-height: 100%;
-        background-color: #fafafa;
-        border-right: 1px solid #dcdfe6;
-        padding: 10px 0;
-
-        .doc-catalogue-item {
-          height: 40px;
-          line-height: 40px;
-          padding: 0 20px;
-          cursor: pointer;
-          transition: all 0.3s;
-          color: #606266;
-          font-size: 14px;
-          border-left: 3px solid transparent;
-
-          &:hover {
-            color: #409eff;
-            background-color: #ecf5ff;
-            border-left-color: #409eff;
-          }
-
-          &:active {
-            background-color: #b3d8ff;
-          }
-        }
-      }
-
-      .doc-content {
-        flex: 1;
-        min-height: 600px;
-        padding: 40px;
-        background-color: #fff;
-        position: relative;
-
-        .doc-content-item {
-          width: 100%;
-          min-height: 500px;
-          padding: 20px;
-          background-color: #fafafa;
-          border: 1px solid #e4e7ed;
-          border-radius: 4px;
-          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-        }
-      }
-    }
-  }
-
   /* 表格操作按钮样式优化 */
   .action-buttons {
     display: inline-flex;
@@ -1708,29 +1514,5 @@
     .custom-steps {
       padding: 15px;
     }
-
-    .preview-content {
-      .doc-container {
-        flex-direction: column;
-
-        .doc-catalogue {
-          width: 100%;
-          border-right: none;
-          border-bottom: 1px solid #dcdfe6;
-          display: flex;
-          overflow-x: auto;
-
-          .doc-catalogue-item {
-            white-space: nowrap;
-            flex-shrink: 0;
-          }
-        }
-
-        .doc-content {
-          min-height: 400px;
-          padding: 20px;
-        }
-      }
-    }
   }
 </style>