fuliqi
2024-11-29 eb2a77ad38d79b2370dbfe213bdd5ace02f94c4d
Merge remote-tracking branch 'origin/master'
6个文件已修改
150 ■■■■■ 已修改文件
src/views/projectManage/plan/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planInfo.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planInfoCheck.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/plan/planRecord.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/progress/index.vue 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManage/progress/progressRecord.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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="请输入投资金额"
@@ -139,6 +144,7 @@
      }
      addPlanInfo(this.addData).then(response => {
        this.handlePlanRecord()
        this.$message.success('上报成功');
      })
    },
    // 重置当前行数据
src/views/projectManage/plan/planInfoCheck.vue
@@ -7,7 +7,6 @@
        <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-table :data="tableData" border stripe style="width: 100%; margin-bottom: 20px">
                <el-table-column prop="index" label="序号" width="50" align="center">
@@ -112,13 +111,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>
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,11 +289,16 @@
    },
    /** 查看项目计划记录 */
    handlePlanRecord(row) {
      this.$router.push({
        path: '/projectManage/progressRecord',
        query: {
          data: JSON.stringify(row)
        }
      // 获得主管标志
      getManagerFlag(row.id).then(res => {
        this.managerFlag = res.data;
        row.managerFlag = this.managerFlag;
        this.$router.push({
          path: '/projectManage/progressRecord',
          query: {
            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,55 @@
                <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-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="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="handleRecordSubmit" v-if="projectInfoData.managerFlag">审 批</el-button>
              <el-button @click="handleCancel">取 消</el-button>
            </div>
          </el-dialog>
@@ -215,16 +231,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 => {
@@ -244,6 +258,7 @@
      this.dialogFormVisible = true;
      getProgressReport(row.id).then(res => {
        this.progressReportData = res.data;
        console.log(this.progressReportData)
      })
    },
    // 上报提交
@@ -278,7 +293,7 @@
    }
  },
  created() {
    this.search();
    this.getProjectInfoData()
  },
};
</script>