xiangpei
2024-11-29 69b01c1de544bdaedfa12aaf13600239dabbcb3c
Merge remote-tracking branch 'origin/master'
13个文件已修改
282 ■■■■ 已修改文件
src/api/projectManage/progress/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/components/projectOverview.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/component/FileDialog.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/list.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/projectDetails.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planInfo.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planInfoCheck.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planRecord.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/progress/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/progress/progressRecord.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/projectManage/progress/index.js
@@ -50,6 +50,15 @@
  })
}
// 审批
export function examine(data) {
  return request({
    url: '/api/project-plan-progress-report/examine',
    method: 'post',
    data: data
  })
}
// 保存竣工报告、情况说明附件
export function saveProjectProgressFileLists(data) {
  return request({
src/views/components/projectOverview.vue
@@ -44,7 +44,8 @@
                    <div class="statistics">
                        <div>{{ i.statistics }}</div>
                        <div :style="setTextColor(i.text)">
                            {{ i.statisticsMun
              {{
                i.statisticsMun
                            }}<span style="font-size: 18px">亿</span>
                        </div>
                    </div>
@@ -242,6 +243,38 @@
                        }
                    });
                    break;
        case '省':
          this.$router.push({
            path: '/projectEngineering/project/projectLibrary',
            query: {
              importanceType: 'provincial_key'
            }
          });
          break;
        case '县':
          this.$router.push({
            path: '/projectEngineering/project/projectLibrary',
            query: {
              importanceType: 'shehong_key'
            }
          });
          break;
        case '市':
          this.$router.push({
            path: '/projectEngineering/project/projectLibrary',
            query: {
              importanceType: 'suining_key'
            }
          });
          break;
        case '普':
          this.$router.push({
            path: '/projectEngineering/project/projectLibrary',
            query: {
              importanceType: 'normal'
            }
          });
          break;
                default:
                    break;
            }
@@ -328,6 +361,7 @@
        }
    }
}
.overview-div {
    min-width: 1250px;
    width: 1250px;
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
@@ -508,7 +508,7 @@
        this.$message.success('获取地址成功');
        this.dialogMap = false;
      } else {
        this.$message.error('获取坐标失败');
        this.$message.error('请先点击地图选择地址');
      }
    },
src/views/projectEngineering/projectLibrary/component/FileDialog.vue
@@ -77,6 +77,7 @@
  },
  data() {
    return {
      queryParams: {},
      uploadRef: null,
      targetColumn: [],
      accept: `.zip`,
@@ -108,49 +109,7 @@
      }
    },
    handleDownloadFile() {
      // fetch(`${process.env.VITE_APP_BASE_API}/project/info/export/template`, {
      //   method: 'GET',
      //   headers: self.upload.headers
      // })
      //   .then(response => response.blob())
      //   .then(blob => {
      //     const url = window.URL.createObjectURL(blob);
      //     const a = document.createElement('a');
      //     a.style.display = 'none';
      //     a.href = url;
      //     a.download = `项目文件模板_${new Date().getTime()}.zip`;
      //     document.body.appendChild(a);
      //     a.click();
      //     window.URL.revokeObjectURL(url);
      //   })
      //   .catch(error => {
      //     console.error('文件下载失败:', error);
      //   });
      const url = process.env.VUE_APP_BASE_API + '/project/info/export/template';
      axios.post(url, [], { // 发送一个空数组而不是空对象
        responseType: 'blob', // 告诉axios期望服务器返回的是blob类型
        headers: {
          'Content-Type': 'application/json',
          Authorization: "Bearer " + getToken()
        }
      })
        .then(response => {
          // 处理文件下载
          const blob = new Blob([response.data], { type: 'application/zip' }); // 指定MIME类型为zip
          const url = window.URL.createObjectURL(blob);
          const a = document.createElement('a');
          a.style.display = 'none';
          a.href = url;
          a.download = `项目文件模板_${new Date().getTime()}.zip`;
          document.body.appendChild(a);
          a.click();
          document.body.removeChild(a);
          window.URL.revokeObjectURL(url);
        })
        .catch(error => {
          console.error('There was an error!', error);
        });
      this.download('/project/info/export/template', {}, `项目文件模板_${new Date().getTime()}.zip`)
    },
    submitFileForm() {
      if (this.uploadRef) {
@@ -161,15 +120,17 @@
      this.$emit('fileDialogCancel');
    },
    handleDownloadTargetList() {
      console.log('导出目标列表内容', this.currentColumns);
      this.targetColumn = this.currentColumns.filter(item => item.visible);
      this.queryParams.fieldList = this.currentColumns.filter(item => item.visible).map(item =>item.id);
      this.queryParams.requireFile = false;
      this.download('project/info/export', {
          ...this.queryParams
        }, `项目库${new Date().getTime()}.xlsx`)
    }
  },
  mounted() {
    this.uploadRef = this.$refs.uploadRef;
  },
  created() {
    this.isFileDialogVisible = this.fileDialogVisible;
  }
};
src/views/projectEngineering/projectLibrary/index.vue
@@ -227,6 +227,10 @@
            <template v-if="item.slotName === 'investType'">
              <dict-tag :options="dict.type.sys_investment_type" :value="scope.row.investType"/>
            </template>
            <!-- investType插槽 -->
            <template v-if="item.slotName === 'importanceType'">
              <dict-tag :options="dict.type.sys_key_categories" :value="scope.row.importanceType"/>
            </template>
            <!-- planStartTime -->
            <template v-if="item.slotName === 'planStartTime'">
              {{ scope.row.planStartTime ? scope.row.planStartTime.split('-')[0] + '年' : '' }}
@@ -366,6 +370,7 @@
    };
  },
  created() {
    this.queryParams.importanceType = this.$route.query.importanceType;
    const projectCategory = this.$route.query.projectCategory;
    if (!projectCategory || projectCategory === '1') {
      this.isReserve = true;
@@ -394,7 +399,7 @@
    },
    handleDetail(row) {
      this.removeStore();
      this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id}});
      this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id,disabled: 'true' }});
    },
    // 新增页面
    add() {
@@ -544,8 +549,8 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除项目管理基础信息编号为"' + ids + '"的数据项?').then(function () {
        return delInfo(ids);
      this.$modal.confirm('是否确认删除项目:"' + row.projectName + '"的数据项?').then(function () {
        return delProject(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
src/views/projectEngineering/projectLibrary/list.js
@@ -19,7 +19,7 @@
  {id: 'area', label: '行政区划', visible: false},
  {id: 'managementCentralizationList', label: '管理归口', visible: false},
  {id: 'projectApprovalType', label: '项目审批类型', visible: false},
  {id: 'importanceType', label: '重点分类', visible: false},
  {id: 'importanceType', label: '重点分类', slotName: 'importanceType', visible: false},
  {id: 'setTime', label: '立项时间', visible: false},
  {id: 'planCompleteTime', label: '计划竣工时间', visible: false},
  {id: 'winUnit', label: '中标单位', visible: false},
@@ -107,7 +107,7 @@
  { id: 'area', label: '行政区划', visible: false },
  { id: 'managementCentralizationList', label: '管理归口', visible: false },
  { id: 'projectApprovalType', label: '项目审批类型', visible: false },
  { id: 'importanceType', label: '重点分类', visible: false },
  {id: 'importanceType', label: '重点分类', slotName: 'importanceType', visible: false},
  { id: 'setTime', label: '立项时间', visible: false },
  { id: 'planCompleteTime', label: '计划竣工时间', visible: false },
  { id: 'winUnit', label: '中标单位', visible: false },
src/views/projectEngineering/projectLibrary/projectDetails.vue
@@ -101,6 +101,11 @@
      this.$refs.childRef.reset();
    },
  },
  mounted() {
    if(this.$route.query.disabled){
      this.disabled = true
    }
  }
};
</script>
src/views/projectManage/plan/index.vue
@@ -301,7 +301,6 @@
          }
        })
      })
    }
  }
};
src/views/projectManage/plan/planInfo.vue
@@ -22,12 +22,17 @@
                </el-table-column>
                <el-table-column prop="startTime" label="计划开始时间" width="160" align="center">
                  <template #default="scope">
                    <el-date-picker v-model="scope.row.startTime" type="date" placeholder="选择日期" size="small" style="width: 130px" />
                    <el-date-picker v-model="scope.row.startTime"
                                    type="date"
                                    placeholder="选择日期"
                                    size="small"
                                    style="width: 130px"
                                    value-format="yyyy-MM-dd HH:mm:ss"/>
                  </template>
                </el-table-column>
                <el-table-column prop="endTime" label="计划完成时间" width="160" align="center">
                  <template #default="scope">
                    <el-date-picker v-model="scope.row.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" />
                    <el-date-picker v-model="scope.row.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" value-format="yyyy-MM-dd HH:mm:ss"/>
                  </template>
                </el-table-column>
                <el-table-column :label="planInfoData.planTimeFlag === 0 ? '月度' : planInfoData.planTimeFlag === 1 ? '季度' : '年度' " width="100" align="center">
@@ -45,7 +50,7 @@
              </el-table>
              <div style="display: flex; align-items: center;">
                <h1 style="margin: 0;">
                  截止本计划进度完成投资(万元):
                  计划投资金额(万元):
                </h1>
                <el-input
                  placeholder="请输入投资金额"
@@ -72,7 +77,7 @@
import { getPlanInfoData, addPlanInfo, savePlanInfo } from "@/api/projectPlan/index";
export default {
  name: "PlanInfo",
  name: "planInfo",
  data() {
    return {
      loading: true,
@@ -139,6 +144,7 @@
      }
      addPlanInfo(this.addData).then(response => {
        this.handlePlanRecord()
        this.$message.success('上报成功');
      })
    },
    // 重置当前行数据
src/views/projectManage/plan/planInfoCheck.vue
@@ -7,7 +7,7 @@
        <el-card shadow="hover">
          <el-row :gutter="20">
            <el-col :span="24" class="mb-4">
              <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px;">返回</el-button>
              <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px; margin-left: 10px">返回</el-button>
              <!--项目计划项-->
              <el-table :data="tableData" border stripe style="width: 100%; margin-bottom: 20px">
                <el-table-column prop="index" label="序号" width="50" align="center">
@@ -112,13 +112,11 @@
                    <el-input type="textarea" v-model="scope.row.manageApprovalReply" placeholder="请输入" rows="3" />
                  </template>
                </el-table-column>
                <el-table-column fixed="right" label="操作" align="center">
                  <template #default="scope" v-if="!projectInfoData.managerFlag">
                    <el-button size="small" @click="handleReply(scope.$index)">回复</el-button>
                    <el-button size="small" type="danger" @click="handleReset(scope.$index)">重置</el-button>
                  </template>
                  <template v-if="projectInfoData.managerFlag" #default="scope">
                    <el-button size="small" @click="handleSave(scope.$index)">保存</el-button>
                <el-table-column fixed="right" label="操作" align="center" width="200">
                  <template #default="scope">
                    <el-button v-show="!projectInfoData.managerFlag" size="small" @click="handleReply(scope.$index)">回复</el-button>
                    <el-button v-show="!projectInfoData.managerFlag" size="small" type="danger" @click="handleReset(scope.$index)">重置</el-button>
                    <el-button v-show="projectInfoData.managerFlag" size="small" @click="handleSave(scope.$index)">保存</el-button>
                  </template>
                </el-table-column>
              </el-table>
@@ -163,7 +161,7 @@
import { getPlanInfoData, delayPlanInfo, getDepartmentApproval, getPlanLog, replyExamine, saveExamine } from "@/api/projectPlan/index";
export default {
  name: "PlanInfoCheck",
  name: "planInfoCheck",
  data() {
    return {
      loading: true,
@@ -258,7 +256,7 @@
    },
    /** 返回项目计划记录 */
    handlePlanRecord() {
      this.$router.push({
      this.$router.replace({
        path: '/projectManage/planRecord',
        query: {
          data: this.projectInfoData
src/views/projectManage/plan/planRecord.vue
@@ -41,7 +41,7 @@
            <el-col :span="24" class="mb-4" style="margin-top: 20px">
              <div style="margin-bottom: 10px">
                <span style="font-size: 20px; font-weight: bold;">季度计划</span>
                <el-button type="primary" size="small" style="float: right" @click="handleAddSeasonPlan" v-show="!projectInfoData.managerFlag">查看</el-button>
                <el-button type="primary" size="small" style="float: right" @click="handleAddSeasonPlan" v-show="!projectInfoData.managerFlag">新增</el-button>
              </div>
              <el-table  :data="seasonRecords" border stripe style="width: 100%; margin-bottom: 20px">
                <!-- 表头 -->
@@ -220,7 +220,6 @@
    },
    // 查看项目计划项
    handleCheckPlanInfo(row) {
      console.log(this.projectInfoData);
      this.$router.push({
        path: '/projectManage/planInfoCheck',
        query: {
src/views/projectManage/progress/index.vue
@@ -189,7 +189,7 @@
</template>
<script>
import { getList, getRecord, delRecord, addRecord, updateRecord } from "@/api/projectPlan/index";
import { getList, getManagerFlag } from "@/api/projectPlan/index";
export default {
  name: "Index",
@@ -280,46 +280,7 @@
      this.open = true;
      this.title = "添加项目计划记录";
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getRecord(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改项目计划记录";
      });
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateRecord(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addRecord(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除项目计划记录编号为"' + ids + '"的数据项?').then(function() {
        return delRecord(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download('plan/record/export', {
@@ -328,12 +289,17 @@
    },
    /** 查看项目计划记录 */
    handlePlanRecord(row) {
      // 获得主管标志
      getManagerFlag(row.id).then(res => {
        this.managerFlag = res.data;
        row.managerFlag = this.managerFlag;
      this.$router.push({
        path: '/projectManage/progressRecord',
        query: {
          data: JSON.stringify(row)
            data: row
        }
      })
      })
    }
  }
};
src/views/projectManage/progress/progressRecord.vue
@@ -31,8 +31,9 @@
                    <el-table-column prop="endTime" label="计划完成时间" align="center" />
                    <el-table-column fixed="right" label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">审核</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
@@ -59,8 +60,9 @@
                    <el-table-column prop="endTime" label="计划完成时间" align="center" />
                    <el-table-column fixed="right" label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">审核</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
@@ -87,8 +89,9 @@
                    <el-table-column prop="endTime" label="计划完成时间" align="center" />
                    <el-table-column fixed="right" label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">进度上报</el-button>
                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">查看</el-button>
                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">审核</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
@@ -130,42 +133,57 @@
                <el-date-picker v-model="progressReportData.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" readonly/>
              </el-form-item>
              <el-form-item label="实际完成时间:" :label-width="formLabelWidth">
                <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag"/>
                <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag && projectInfoData.managerFlag"/>
                至
                <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag"/>
                <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag && projectInfoData.managerFlag"/>
              </el-form-item>
              <el-form-item label="进度情况:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" :readonly="checkFlag" />
                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" :readonly="checkFlag && projectInfoData.managerFlag" />
              </el-form-item>
              <el-form-item prop="fileList" label="工程进度附件:" :label-width="formLabelWidth">
              <el-form-item label="工程进度附件:" :label-width="formLabelWidth">
                <file-upload v-model="progressReportData.fileList"
                             :fileType="accept"
                             :isShowTip="false"/>
              </el-form-item>
              <el-form-item label="截止本报告完成投资:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag" />
                <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag && projectInfoData.managerFlag" />
              </el-form-item>
              <el-form-item label="上级审核:" :label-width="formLabelWidth">
                <el-input :value="progressReportData.departmentExamine === 0 ? '同意' : progressReportData.departmentExamine === 1 ? '驳回' : '未审核'" readonly />
                <el-input v-if="!projectInfoData.managerFlag" :value="progressReportData.departmentExamine === 0 ? '同意' : progressReportData.departmentExamine === 1 ? '驳回' : '未审核'" readonly />
                <el-select v-if="projectInfoData.managerFlag" v-model="progressReportData.departmentExamine" placeholder="请选择" size="small" clearable>
                  <el-option label="同意" :value="0"></el-option>
                  <el-option label="驳回" :value="1"></el-option>
                  <el-option label="请选择" :value="null"></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="上级批复:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.departmentApproval" readonly />
                <el-input v-if="!projectInfoData.managerFlag" v-model="progressReportData.departmentApproval" readonly />
                <el-input v-if="projectInfoData.managerFlag" v-model="progressReportData.departmentApproval" />
              </el-form-item>
              <el-form-item label="上级批复回复:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" />
                <el-input v-if="!projectInfoData.managerFlag" type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" />
                <el-input v-if="projectInfoData.managerFlag" type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" />
              </el-form-item>
              <el-form-item label="主管部门审核:" :label-width="formLabelWidth">
                <el-input :value="progressReportData.manageExamine === 0 ? '同意' : progressReportData.manageExamine === 1 ? '驳回' : '未审核'" readonly />
                <el-input v-if="!projectInfoData.managerFlag" :value="progressReportData.manageExamine === 0 ? '同意' : progressReportData.manageExamine === 1 ? '驳回' : '未审核'" readonly />
                <el-select v-if="projectInfoData.managerFlag" v-model="progressReportData.manageExamine" placeholder="请选择" size="small" clearable>
                  <el-option label="请选择" :value="null"></el-option>
                  <el-option label="同意" :value="0"></el-option>
                  <el-option label="驳回" :value="1"></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="主管部门审核批复:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.manageApproval" readonly />
                <el-input v-if="!projectInfoData.managerFlag" v-model="progressReportData.manageApproval" readonly />
                <el-input v-if="projectInfoData.managerFlag" v-model="progressReportData.manageApproval" />
              </el-form-item>
              <el-form-item label="主管部门批复回复:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" />
                <el-input v-if="!projectInfoData.managerFlag" type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" />
                <el-input v-if="projectInfoData.managerFlag" type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" :readonly="checkFlag" />
              </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
              <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag">上 报</el-button>
              <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag && !projectInfoData.managerFlag">上 报</el-button>
              <el-button type="primary" @click="handleExamine" v-if="projectInfoData.managerFlag">审 批</el-button>
              <el-button @click="handleCancel">取 消</el-button>
            </div>
          </el-dialog>
@@ -176,11 +194,11 @@
</template>
<script>
import { getProgressInfoList, getProgressReport, recordSubmit, saveProjectProgressFileLists, getProjectProgressForm } from "@/api/projectManage/progress/index";
import { getProgressInfoList, getProgressReport, recordSubmit, saveProjectProgressFileLists, getProjectProgressForm, examine } from "@/api/projectManage/progress/index";
import progressRecord from "./progressRecord.vue";
export default {
  name: "ProgressRecord",
  name: "progressRecord",
  computed: {
    progressRecord() {
      return progressRecord
@@ -215,16 +233,14 @@
  },
  methods: {
    search() {
      this.getProjectInfoData()
      this.getProjectProgressForm(this.projectInfoData.id);
      this.getProgressInfoList(this.projectInfoData.id);
    },
    // 获取传递过来的项目计划详情
    getProjectInfoData() {
      // 从查询参数中获取数据
      if (this.$route.query.data) {
        this.projectInfoData = JSON.parse(this.$route.query.data);
        this.getProgressInfoList(this.projectInfoData.id);
      }
        this.projectInfoData = this.$route.query.data;
        this.search();
    },
    getProjectProgressForm(id) {
      getProjectProgressForm(id).then(res => {
@@ -254,6 +270,14 @@
        this.search();
      })
    },
    // 审批
    handleExamine() {
      examine(this.progressReportData).then(res => {
        this.dialogFormVisible = false;
        this.$message.success('审批成功');
        this.search();
      })
    },
    // 查看进度
    handleCheckProgress(row) {
      this.dialogFormVisible = true;
@@ -278,7 +302,7 @@
    }
  },
  created() {
    this.search();
    this.getProjectInfoData()
  },
};
</script>