xiangpei
2024-11-28 cf2faab021222e1e345e8098da38f2c24ea8b504
src/views/projectManage/progress/progressRecord.vue
@@ -125,62 +125,63 @@
            </div>
          </el-row>
          <el-dialog title="进度上报" :visible.sync="dialogFormVisible" custom-class="custom-dialog">
          <el-dialog :title=" checkFlag ? '进度查看' : '进度上报' " :visible.sync="dialogFormVisible" custom-class="custom-dialog">
            <el-form :model="progressReportData">
              <el-form-item label="报告期:" :label-width="formLabelWidth">
                <el-input :value="progressReportData.planTime + (progressReportData.planTimeFlag === 0 ? '月度' : progressReportData.planTimeFlag === 1 ? '季度' : '年度')" disabled />
                <el-input :value="progressReportData.planTime + (progressReportData.planTimeFlag === 0 ? '月度' : progressReportData.planTimeFlag === 1 ? '季度' : '年度')" readonly />
              </el-form-item>
              <el-form-item label="计划事项:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.title" disabled />
                <el-input v-model="progressReportData.title" readonly />
              </el-form-item>
              <el-form-item label="计划时间:" :label-width="formLabelWidth">
                <el-date-picker v-model="progressReportData.startTime" type="date" placeholder="选择日期" size="small" style="width: 130px" disabled/>
                <el-date-picker v-model="progressReportData.startTime" type="date" placeholder="选择日期" size="small" style="width: 130px" readonly/>
                至
                <el-date-picker v-model="progressReportData.endTime" type="date" placeholder="选择日期" size="small" style="width: 130px" disabled/>
                <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" />
                <el-date-picker v-model="progressReportData.actualStartTime" 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" />
                <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="选择日期" size="small" style="width: 130px" :readonly="checkFlag"/>
              </el-form-item>
              <el-form-item label="进度情况:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" />
                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="请输入" rows="3" :readonly="checkFlag" />
              </el-form-item>
              <el-form-item label="工程进度附件:" :label-width="formLabelWidth">
                <el-upload
                    class="upload-demo"
                    drag
                    action="https://jsonplaceholder.typicode.com/posts/"
                    multiple>
                    multiple
                    :disabled="checkFlag" >
                  <i class="el-icon-upload"></i>
                  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
                  <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
                </el-upload>
              </el-form-item>
              <el-form-item label="截止本报告完成投资:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.actualInvest" type="number" />
                <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag" />
              </el-form-item>
              <el-form-item label="上级审核:" :label-width="formLabelWidth">
                <el-input :value="progressReportData.departmentExamine === 0 ? '同意' : '驳回'" disabled />
                <el-input :value="progressReportData.departmentExamine === 0 ? '同意' : progressReportData.departmentExamine === 1 ? '驳回' : '未审核'" readonly />
              </el-form-item>
              <el-form-item label="上级批复:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.departmentApproval" disabled />
                <el-input v-model="progressReportData.departmentApproval" readonly />
              </el-form-item>
              <el-form-item label="上级批复回复:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="请输入" rows="3" />
                <el-input 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 ? '同意' : '驳回'" disabled />
                <el-input :value="progressReportData.manageExamine === 0 ? '同意' : progressReportData.manageExamine === 1 ? '驳回' : '未审核'" readonly />
              </el-form-item>
              <el-form-item label="主管部门审核批复:" :label-width="formLabelWidth">
                <el-input v-model="progressReportData.manageApproval" disabled />
                <el-input v-model="progressReportData.manageApproval" readonly />
              </el-form-item>
              <el-form-item label="主管部门批复回复:" :label-width="formLabelWidth">
                <el-input type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="请输入" rows="3" />
                <el-input 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="dialogFormVisible = false">上 报</el-button>
              <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag">上 报</el-button>
              <el-button @click="dialogFormVisible = false">取 消</el-button>
            </div>
          </el-dialog>
@@ -191,7 +192,7 @@
</template>
<script>
import { getProgressInfoList, getProgressReport } from "@/api/projectManage/progress/index";
import { getProgressInfoList, getProgressReport, recordSubmit } from "@/api/projectManage/progress/index";
export default {
  name: "progressRecord",
@@ -205,17 +206,18 @@
      activeTab: "month", // 默认显示月度计划
      dialogFormVisible: false,
      // 查看显示
      checkFlag: false,
      progressReportData: {},
      formLabelWidth: '150px'
    }
  },
  methods: {
    // 页面加载
    search() {
      this.getPlanRecordData(this.planRecordData.id);
      this.getPlanRecordData()
    },
    // 获取传递过来的项目计划详情
    getplanRecordData() {
    getPlanRecordData() {
      // 从查询参数中获取数据
      if (this.$route.query.data) {
        this.planRecordData = JSON.parse(this.$route.query.data);
@@ -236,10 +238,26 @@
      getProgressReport(row.id).then(res => {
        this.progressReportData = res.data;
      })
    },
    // 上报提交
    handleRecordSubmit() {
      recordSubmit(this.progressReportData).then(res => {
        this.dialogFormVisible = false;
        this.$message.success('上报成功');
        this.search();
      })
    },
    // 查看进度
    handleCheckProgress(row) {
      this.dialogFormVisible = true;
      this.checkFlag = true;
      getProgressReport(row.id).then(res => {
        this.progressReportData = res.data;
      })
    }
  },
  created() {
    this.getplanRecordData();
    this.search();
  },
};
</script>