suhp há 1 mês atrás
pai
commit
274479194a

+ 65 - 35
package-lock.json

@@ -2161,6 +2161,25 @@
           "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
           "dev": true
         },
+        "json5": {
+          "version": "2.2.3",
+          "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
+          "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -2169,6 +2188,18 @@
           "requires": {
             "minipass": "^3.1.1"
           }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.3",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
+          }
         }
       }
     },
@@ -3643,6 +3674,16 @@
       "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
       "dev": true
     },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
+      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
     "bl": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -7878,6 +7919,13 @@
       "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==",
       "dev": true
     },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+      "dev": true,
+      "optional": true
+    },
     "filename-reserved-regex": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
@@ -12219,6 +12267,13 @@
         "thenify-all": "^1.0.0"
       }
     },
+    "nan": {
+      "version": "2.23.0",
+      "resolved": "https://registry.npmmirror.com/nan/-/nan-2.23.0.tgz",
+      "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==",
+      "dev": true,
+      "optional": true
+    },
     "nanoid": {
       "version": "3.3.11",
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -19455,39 +19510,6 @@
         }
       }
     },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.3",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
-      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "2.2.3",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
-          "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        }
-      }
-    },
     "vue-pdf": {
       "version": "4.2.0",
       "resolved": "https://registry.npmjs.org/vue-pdf/-/vue-pdf-4.2.0.tgz",
@@ -19688,7 +19710,11 @@
           "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
           "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
           "dev": true,
-          "optional": true
+          "optional": true,
+          "requires": {
+            "bindings": "^1.5.0",
+            "nan": "^2.12.1"
+          }
         },
         "glob-parent": {
           "version": "3.1.0",
@@ -20058,7 +20084,11 @@
           "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
           "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
           "dev": true,
-          "optional": true
+          "optional": true,
+          "requires": {
+            "bindings": "^1.5.0",
+            "nan": "^2.12.1"
+          }
         },
         "glob-parent": {
           "version": "3.1.0",

+ 3 - 3
public/config.js

@@ -5,7 +5,7 @@
 // var host = 'http://101.33.208.140' // 测试
 // var host = 'http://b463f4b7.natappfree.cc' // 后端服务海鹏
 // var host = 'http://5jrgep.ipx.wanziwk.cn' // 后端服务译文
-var host = 'http://192.168.1.16' // 后端服务译文
+var host = 'http://5jrgep.ipx.wanziwk.cn' // 后端服务译文
 // var host = 'http://localhost'
 // combine为true时五合一部署, 为false时分五个服务部署
 var combine = true
@@ -23,9 +23,9 @@ var defaultModulePortMap = {
 window.getModuleRootUrl = function (module) {
   // 默认是全部服务合一的端口
   // var modulePort = '8089' // 以前
-  var modulePort = '9506' // 基本用这个
+  //var modulePort = '8089' // 基本用这个
   // var modulePort = '8088' //测试
-  // var modulePort = ''
+  var modulePort = ''
   if (!combine) {
     modulePort = defaultModulePortMap[module]
   }

+ 19 - 0
src/api/audit/auditIndex.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+const url = window.context.form
+
+export function getReviewTaskList(data) {
+  return request({
+    url: url + '/api/enterprise/reviewTask/pageList',
+    method: 'post',
+    data: data,
+  })
+}
+
+//  根据任务ID获取报送资料要求列表
+export function getTaskRequirementList(taskId) {
+  return request({
+    url: url + '/costProjectTaskMaterial/v1/listByTaskId?taskId=' + taskId,
+    method: 'get',
+  })
+}

+ 1 - 1
src/views/costAudit/auditInfo/archivesManage/archiveList.vue

@@ -81,7 +81,7 @@
           {
             id: 1,
             year: '2025年',
-            projectName: '省内油气管道运输成本监审',
+            projectName: '省1111内油气管道运输成本监审',
             auditObject: '山西省油气管道公司、太原市油气公司',
             auditPeriod: '2022年--2024年',
             source: '年度计划外',

+ 1 - 1
src/views/costAudit/auditInfo/archivesManage/index.js

@@ -7,7 +7,7 @@ export const archiveMixin = {
         {
           id: 1,
           year: '2025年',
-          projectName: '省内油气管道运输成本监审',
+          projectName: '省内油气管道运输成本监审1111',
           auditObject: '山西省油气管道公司、太原市油气公司',
           auditPeriod: '2022年--2024年',
           source: '年度计划外',

+ 206 - 159
src/views/costAudit/auditInfo/auditManage/auditReview.vue

@@ -16,89 +16,94 @@
     <el-tabs v-model="activeTab" style="margin-top: 20px">
       <!-- 报送资料标签页 -->
       <el-tab-pane label="报送资料" name="materials">
-        <el-table :data="materialData" border style="width: 100%">
-          <el-table-column
-            prop="id"
-            label="序号"
-            width="80"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="name"
-            label="报送资料"
-            min-width="200"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            prop="type"
-            label="资料类型"
-            width="120"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="required"
-            label="是否必填"
-            width="100"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            prop="uploaded"
-            label="是否上传"
-            width="100"
-            align="center"
+        <div
+          v-for="category in materialCategories"
+          :key="category.type"
+          class="material-category"
+        >
+          <h3 class="category-title">{{ category.typeName }}</h3>
+          <el-table
+            v-loading="loading"
+            :data="category.items"
+            stripe
+            style="width: 100%"
           >
-            <template slot-scope="scope">
-              <span
-                v-if="scope.row.uploaded === '已上传'"
-                style="color: #1677ff"
-              >
-                {{ scope.row.uploaded }}
-              </span>
-              <span
-                v-else-if="scope.row.uploaded === '未上传'"
-                style="color: #f56c6c"
-              >
-                {{ scope.row.uploaded }}
-              </span>
-              <span v-else>{{ scope.row.uploaded }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="uploadTime"
-            label="上传时间"
-            width="150"
-            align="center"
-          ></el-table-column>
-          <el-table-column label="操作" width="100" align="center">
-            <template slot-scope="scope">
-              <el-button type="text" @click="handleViewDownload(scope.row)">
-                查看下载
-              </el-button>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="auditResult"
-            label="初审结果"
-            width="100"
-            align="center"
-          >
-            <template slot-scope="scope">
-              <span
-                v-if="scope.row.auditResult === '通过'"
-                style="color: #1677ff"
-              >
-                {{ scope.row.auditResult }}
-              </span>
-              <span
-                v-else-if="scope.row.auditResult === '不通过'"
-                style="color: #f56c6c"
-              >
-                {{ scope.row.auditResult }}
-              </span>
-              <span v-else>{{ scope.row.auditResult }}</span>
-            </template>
-          </el-table-column>
-        </el-table>
+            <el-table-column
+              prop="orderNum"
+              label="序号"
+              width="80"
+              align="center"
+            />
+
+            <el-table-column
+              prop="informationName"
+              label="报送资料"
+              min-width="200"
+            />
+
+            <el-table-column label="资料类型" width="120" align="center">
+              <template slot-scope="scope">
+                <span
+                  :class="{
+                    'template-tag': scope.row.templateId,
+                  }"
+                >
+                  {{ getFormatType(scope.row.formatRequired) }}
+                </span>
+              </template>
+            </el-table-column>
+
+            <el-table-column label="是否必项" width="100" align="center">
+              <template slot-scope="scope">
+                {{ scope.row.isRequired === '1' ? '是' : '否' }}
+              </template>
+            </el-table-column>
+
+            <el-table-column label="是否上传" width="100" align="center">
+              <template slot-scope="scope">
+                <span
+                  :style="{
+                    color: scope.row.isUploaded ? '#67C23A' : '#F56C6C',
+                  }"
+                >
+                  {{ scope.row.isUploaded ? '已上传' : '未上传' }}
+                </span>
+              </template>
+            </el-table-column>
+
+            <el-table-column
+              prop="createTime"
+              label="上传时间"
+              width="150"
+              align="center"
+            />
+
+            <el-table-column label="操作" width="120" align="center">
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="handleViewDownload(scope.row)"
+                >
+                  查看 下载
+                </el-button>
+              </template>
+            </el-table-column>
+
+            <el-table-column label="初审结果" width="100" align="center">
+              <template slot-scope="scope">
+                <span
+                  :class="{
+                    'result-pass': scope.row.auditResult === '通过',
+                    'result-fail': scope.row.auditResult === '不通过',
+                  }"
+                >
+                  {{ scope.row.auditResult || '-' }}
+                </span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
       </el-tab-pane>
 
       <!-- 成本调查表标签页 -->
@@ -256,12 +261,22 @@
 </template>
 
 <script>
+  import { getTaskRequirementList } from '@/api/audit/auditIndex'
+
   export default {
+    name: 'AuditReview',
+    props: {
+      id: {
+        type: [String, Number],
+        default: null,
+      },
+    },
     data() {
       return {
         activeTab: 'materials', // 当前激活的标签页
         showRejectDialog: false, // 初审退回弹窗显示状态
         showAbortDialog: false, // 中止监审弹窗显示状态
+        loading: false, // 加载状态
 
         // 初审退回表单数据
         rejectForm: {
@@ -277,83 +292,9 @@
         },
 
         // 报送资料表格数据
-        materialData: [
-          // 综合性资料
-          {
-            id: 1,
-            name: '企业基本情况介绍:包含企业名称、企业地址、企业员工数量等。',
-            type: '文档文件',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '通过',
-          },
-          {
-            id: 2,
-            name: '企业组织结构及管理制度',
-            type: '文档文件',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '通过',
-          },
-          {
-            id: 3,
-            name: '营业执照复印件',
-            type: '文档文件',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '通过',
-          },
-          {
-            id: 4,
-            name: '企业管理制度汇编',
-            type: '文档文件',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '不通过',
-          },
-          // 财务会计资料
-          {
-            id: 5,
-            name: '财务审计表',
-            type: 'excel文件',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '通过',
-          },
-          {
-            id: 6,
-            name: '资产卡片',
-            type: '预置模板',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '通过',
-          },
-          {
-            id: 7,
-            name: '企业财务报表',
-            type: '预置模板',
-            required: '是',
-            uploaded: '已上传',
-            uploadTime: '2025-4-28 11:20',
-            auditResult: '不通过',
-          },
-          // 其他资料
-          {
-            id: 8,
-            name: '组织结构图',
-            type: '文档文件',
-            required: '否',
-            uploaded: '未上传',
-            uploadTime: '',
-            auditResult: '通过',
-          },
-        ],
+        materialData: [],
+        // 按类型分组的材料数据
+        materialCategories: [],
 
         // 成本调查表表格数据
         costSurveyData: [
@@ -420,7 +361,81 @@
         ],
       }
     },
+    mounted() {
+      this.loadMaterialData()
+    },
+
+    mounted() {
+      if (this.id) {
+        this.loadMaterialData()
+      }
+    },
     methods: {
+      // 加载报送资料数据
+      async loadMaterialData() {
+        try {
+          this.loading = true
+          const response = await getTaskRequirementList(this.id)
+          console.log('接口返回数据:', response)
+          // 尝试多种可能的数据结构
+          this.materialData = response.value || response.data || response || []
+          // 确保 materialData 是数组
+          if (!Array.isArray(this.materialData)) {
+            this.materialData = []
+          }
+          this.processMaterialData()
+        } catch (error) {
+          console.error('获取报送资料数据失败:', error)
+          this.$message.error('获取报送资料数据失败')
+        } finally {
+          this.loading = false
+        }
+      },
+      // 处理材料数据按类型分组
+      processMaterialData() {
+        // 确保 materialData 存在且为数组
+        if (!this.materialData || !Array.isArray(this.materialData)) {
+          this.materialCategories = []
+          return
+        }
+
+        const typeMap = {
+          1: '综合性资料',
+          2: '财务会计资料',
+          3: '其他资料',
+        }
+
+        const groupedData = {}
+
+        this.materialData.forEach((item) => {
+          const type = item.informationType
+          if (!groupedData[type]) {
+            groupedData[type] = {
+              type: type,
+              typeName: typeMap[type] || '其他资料',
+              items: [],
+            }
+          }
+          groupedData[type].items.push(item)
+        })
+
+        // 按指定顺序排列
+        this.materialCategories = [][('1', '2', '3')].forEach((type) => {
+          if (groupedData[type]) {
+            this.materialCategories.push(groupedData[type])
+          }
+        })
+      },
+
+      // 获取格式类型
+      getFormatType(formatRequired) {
+        const formatMap = {
+          1: '文档文件',
+          2: '预置模板',
+          3: 'Excel文件',
+        }
+        return formatMap[formatRequired] || '文档文件'
+      },
       // 初审通过
       handleAuditPass() {
         this.$confirm('确定要初审通过吗?', '提示', {
@@ -526,6 +541,38 @@
     margin-right: 10px;
   }
 
+  .material-category {
+    margin-bottom: 30px;
+  }
+
+  .category-title {
+    margin: 0 0 15px 0;
+    padding: 8px 12px;
+    background-color: #f5f7fa;
+    border-left: 4px solid #409eff;
+    font-size: 16px;
+    font-weight: 600;
+    color: #303133;
+  }
+
+  .template-tag {
+    background-color: #e6f7ff;
+    color: #1677ff;
+    padding: 2px 8px;
+    border-radius: 4px;
+    font-size: 12px;
+  }
+
+  .result-pass {
+    color: #67c23a;
+    font-weight: bold;
+  }
+
+  .result-fail {
+    color: #f56c6c;
+    font-weight: bold;
+  }
+
   /* 表格样式调整 */
   .el-table th {
     background-color: #fafafa;

+ 124 - 103
src/views/costAudit/auditInfo/auditManage/index.vue

@@ -13,6 +13,7 @@
       </div>
 
       <el-table
+        v-loading="loading"
         class="mb10"
         :data="auditProjectList"
         style="width: 100%"
@@ -70,43 +71,55 @@
           align="center"
           width="100"
         />
-        <el-table-column prop="status" label="状态" align="center" width="80" />
+        <el-table-column
+          prop="currentNodeName"
+          label="状态"
+          align="center"
+          width="80"
+        >
+          <template slot-scope="scope">
+            <span v-if="!scope.row.isSubTask">
+              {{ scope.row.currentNodeName }}
+            </span>
+            <span v-else>{{ scope.row.status }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" width="260">
           <template slot-scope="scope">
             <span v-if="!scope.row.isSubTask" class="action-buttons">
               <el-button type="text" @click="handleTaskDetail(scope.row)">
                 任务详情
               </el-button>
-              <el-button type="text" @click="handleTaskProcess(scope.row)">
+              <el-button
+                v-if="scope.row.currentNode === 'sdsh'"
+                type="text"
+                @click="handleTaskProcess(scope.row)"
+              >
                 任务办理
               </el-button>
               <el-button type="text" @click="handleCheckRecord(scope.row)">
                 备忘录
               </el-button>
             </span>
-
-            <el-button
-              v-if="scope.row.status == '已提交'"
-              type="text"
-              @click="handleAuditReview(scope.row)"
-            >
-              资料初审
-            </el-button>
-            <el-button
-              v-else
-              class="ml10"
-              type="text"
-              @click="handleView(scope.row)"
-            >
-              查看
-            </el-button>
-            <el-button
-              v-if="scope.row.status === '审核中'"
-              type="text"
-              @click="handleCostAudit(scope.row)"
-            >
-              成本审核
-            </el-button>
+            <span v-if="scope.row.isSubTask" class="action-buttons">
+              <el-button
+                v-if="
+                  (scope.row.currentNode =
+                    'clcs' && scope.row.status === '审核中')
+                "
+                type="text"
+                @click="handleAuditReview(scope.row)"
+              >
+                资料初审
+              </el-button>
+              <el-button
+                v-if="scope.row.currentNode === 'sdsh'"
+                type="text"
+                @click="handleCostAudit(scope.row)"
+              >
+                成本审核
+              </el-button>
+            </span>
           </template>
         </el-table-column>
       </el-table>
@@ -164,7 +177,7 @@
         </el-breadcrumb-item>
         <el-breadcrumb-item>资料初审</el-breadcrumb-item>
       </el-breadcrumb>
-      <auditReview @handleBack="backToList" />
+      <auditReview :id="currentProject.id" @handleBack="backToList" />
     </div>
     <div v-else-if="activeView === 'costAudit'">
       <el-breadcrumb
@@ -187,6 +200,8 @@
   import auditReview from './auditReview.vue'
   import costAudit from './costAudit.vue'
   import taskMixins from './taskMixins.js'
+  // 成本监审任务列表API
+  import { getReviewTaskList } from '@/api/audit/auditIndex'
   export default {
     name: 'CostAuditManagement',
     components: {
@@ -211,6 +226,8 @@
         // workflowList: [],
         notificationsList: [],
         templatesList: [],
+        // 加载状态
+        loading: false,
         // 当前选中的项目
         currentProject: null,
       }
@@ -235,87 +252,91 @@
       // 加载审核项目列表
       async loadAuditProjectList() {
         try {
-          // 这里应该调用API获取数据,现在使用模拟数据
-          this.auditProjectList = [
-            {
-              id: '1',
-              projectName: '省内油气管道运输成本监审',
-              auditObject: '山西省油气管道公司、太原市油气公司',
-              auditPeriod: '2022-2024年',
-              source: '年度计划外',
-              form: '定调价监审',
-              status: '资料初审',
-              isSubTask: false,
-              children: [
-                {
-                  id: '1-1',
-                  projectName: '子任务',
-                  auditObject: '山西省油气管道公司',
-                  auditPeriod: '2022-2024年',
-                  source: '',
-                  form: '',
-                  status: '已提交',
-                  isSubTask: true,
-                },
-                {
-                  id: '1-2',
-                  projectName: '子任务',
-                  auditObject: '太原市油气公司',
-                  auditPeriod: '2022-2024年',
-                  source: '',
-                  form: '',
-                  status: '初审通过',
-                  isSubTask: true,
-                },
-                {
-                  id: '1-3',
-                  projectName: '子任务',
-                  auditObject: '****公司',
-                  auditPeriod: '2022-2024年',
-                  source: '',
-                  form: '',
-                  status: '中止',
-                  isSubTask: true,
-                },
-              ],
-            },
-            {
-              id: '2',
-              projectName: '太原市电网输配电成本监审',
-              auditObject: '太原市热电厂、****热电厂',
-              auditPeriod: '2022-2024年',
-              source: '年度计划内',
-              form: '定期监审',
-              status: '实地审核',
-              isSubTask: false,
-              children: [
-                {
-                  id: '2-1',
-                  projectName: '子任务',
-                  auditObject: '太原市热电厂',
-                  auditPeriod: '2022-2024年',
-                  source: '',
-                  form: '',
-                  status: '审核中',
-                  isSubTask: true,
-                },
-                {
-                  id: '2-2',
-                  projectName: '子任务',
-                  auditObject: '****热电厂',
-                  auditPeriod: '2022-2024年',
-                  source: '',
-                  form: '',
-                  status: '审核通过',
-                  isSubTask: true,
-                },
-              ],
-            },
-          ]
+          this.loading = true
+          // 调用API获取数据
+          const params = {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            projectName: this.searchQuery,
+          }
+          const response = await getReviewTaskList(params)
+
+          // 根据API返回格式处理数据
+          if (response.state && response.value) {
+            // 获取记录列表
+            const records = response.value.records || []
+            // 转换数据格式,将childTasks转换为children以适应表格组件
+            this.auditProjectList = records.map((record) => {
+              return {
+                id: record.id,
+                projectName: record.projectName,
+                auditObject: record.auditedUnitName,
+                auditPeriod: record.auditPeriod,
+                source: this.getSourceTypeText(record.sourceType),
+                form: this.getAuditTypeText(record.auditType),
+                status: this.getStatusText(record.status),
+                isSubTask: record.pid !== '0',
+                currentNodeName: record.currentNodeName,
+                currentNode: record.currentNode,
+                children: record.childTasks
+                  ? record.childTasks.map((child) => ({
+                      id: child.id,
+                      projectName: child.projectName,
+                      auditObject: child.auditedUnitName,
+                      auditPeriod: record.auditPeriod, // 子任务可能使用父任务的审核期间
+                      source: '',
+                      form: '',
+                      currentNode: child.currentNode,
+                      status: child.status,
+                      isSubTask: true,
+                    }))
+                  : [],
+              }
+            })
+            // 设置总数
+            this.total = response.value.total || 0
+          } else {
+            this.auditProjectList = []
+            this.total = 0
+            this.$message.warning('未获取到审核项目数据')
+          }
         } catch (error) {
           this.$message.error('加载审核项目列表失败')
           console.error('加载审核项目列表失败:', error)
+        } finally {
+          this.loading = false
+        }
+      },
+
+      // 获取来源类型文本
+      getSourceTypeText(type) {
+        const typeMap = {
+          1: '年度计划内',
+          2: '年度计划外',
+          // 可根据实际需求补充其他类型
+        }
+        return typeMap[type] || type
+      },
+
+      // 获取审核类型文本
+      getAuditTypeText(type) {
+        const typeMap = {
+          1: '定期监审',
+          2: '定调价监审',
+          // 可根据实际需求补充其他类型
+        }
+        return typeMap[type] || type
+      },
+
+      // 获取状态文本
+      getStatusText(status) {
+        const statusMap = {
+          ccls: '资料初审',
+          200: '审核通过',
+          clcs: '审核中', // 添加clcs状态映射为审核中
+          // 可根据实际需求补充其他状态
         }
+        return statusMap[status] || status
       },
 
       // 搜索