Sfoglia il codice sorgente

项目详情页签

lizhenhao 2 anni fa
parent
commit
524328c0c9

+ 70 - 39
src/views/modules/program/registered/ProjectArchiveForm.vue

@@ -4,10 +4,7 @@
     <div>
       <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
                label-width="170px" @submit.native.prevent>
-        <div v-if="formReadOnly===true&&inputForm.status === '0'||commonJS.isEmpty(inputForm.status)">
-          <el-empty></el-empty>
-        </div>
-        <div v-else>
+
           <el-row  :gutter="15">
             <el-col :span="12">
               <el-form-item label="项目名称" prop="programProjectListInfo.name"
@@ -383,7 +380,6 @@
           <UpLoadComponent ref="uploadComponentPapers"></UpLoadComponent>
           <!--附件信息 - 其他-->
           <UpLoadComponent ref="uploadComponentOther"></UpLoadComponent>
-        </div>
 
 
       </el-form>
@@ -505,6 +501,7 @@
         this.keyWatch = keyWatch
       },
       init (method, id) {
+        console.log('isid', id)
         if (method === 'formReadOnly') {
           this.formReadOnly = true
         }
@@ -546,6 +543,46 @@
           papersFileList: [],
           otherFileList: []
         }
+        if (this.commonJS.isEmpty(id)) {
+          this.inputForm = {
+            id: '',
+            remarks: '',
+            programId: '',
+            year: '',
+            programType: '',
+            evaluationReportDate: '',
+            protocolNum: '',
+            waystEvaluation: '',
+            fixedAssetsEvaluation: '',
+            netAssetsEvaluation: '',
+            rentEvaluation: '',
+            forensics: '',
+            reportCharges: '',
+            currentDisposePerson: '',
+            isInvoice: '',
+            invoiceDate: '',
+            actualCharges: '',
+            isContractArchive: '',
+            isPapersIntact: '',
+            isPapersArchive: '',
+            opsAmount: '',
+            isOpsReimbursement: '',
+            reimbursementAmount: '',
+            unreimbursedAmount: '',
+            reimbursementNum: '',
+            reimbursementDate: '',
+            procInsId: '',
+            processDefinitionId: '',
+            status: '',
+            programProjectListInfo: {},
+            reportFileList: [],
+            explainFileList: [],
+            detailFileList: [],
+            papersFileList: [],
+            otherFileList: []
+          }
+          return
+        }
         this.inputForm.id = id
         this.visible = true
         this.loading = false
@@ -555,41 +592,35 @@
           this.programProjectListInfoService.findByIdArchive(this.inputForm.id).then(({data}) => {
             this.inputForm = this.recover(this.inputForm, data)
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-            if (this.formReadOnly === true & this.inputForm.status === '0' || this.commonJS.isEmpty(this.inputForm.status)) {
-              this.loading = false
-            } else {
-              this.$nextTick(() => {
-                this.$refs.uploadComponentReport.clearUpload()
-                this.$refs.uploadComponentExplain.clearUpload()
-                this.$refs.uploadComponentDetail.clearUpload()
-                this.$refs.uploadComponentPapers.clearUpload()
-                this.$refs.uploadComponentOther.clearUpload()
-                if (this.formReadOnly === true) {
-                  method = 'view'
-                }
-                if (this.commonJS.isEmpty(this.inputForm.reportFileList)) {
-                  this.inputForm.reportFileList = []
-                }
-                if (this.commonJS.isEmpty(this.inputForm.explainFileList)) {
-                  this.inputForm.explainFileList = []
-                }
-                if (this.commonJS.isEmpty(this.inputForm.detailFileList)) {
-                  this.inputForm.detailFileList = []
-                }
-                if (this.commonJS.isEmpty(this.inputForm.papersFileList)) {
-                  this.inputForm.papersFileList = []
-                }
-                if (this.commonJS.isEmpty(this.inputForm.otherFileList)) {
-                  this.inputForm.otherFileList = []
-                }
-                this.$refs.uploadComponentReport.newUpload(method, this.inputForm.reportFileList, 'program', null, '评估报告')
-                this.$refs.uploadComponentExplain.newUpload(method, this.inputForm.explainFileList, 'program', null, '评估说明')
-                this.$refs.uploadComponentDetail.newUpload(method, this.inputForm.detailFileList, 'program', null, '评估明细表')
-                this.$refs.uploadComponentPapers.newUpload(method, this.inputForm.papersFileList, 'program', null, '评估操作计算底稿')
-                this.$refs.uploadComponentOther.newUpload(method, this.inputForm.otherFileList, 'program', null, '其他')
-                this.loading = false
-              })
+            this.$refs.uploadComponentReport.clearUpload()
+            this.$refs.uploadComponentExplain.clearUpload()
+            this.$refs.uploadComponentDetail.clearUpload()
+            this.$refs.uploadComponentPapers.clearUpload()
+            this.$refs.uploadComponentOther.clearUpload()
+            if (this.formReadOnly === true) {
+              method = 'view'
+            }
+            if (this.commonJS.isEmpty(this.inputForm.reportFileList)) {
+              this.inputForm.reportFileList = []
             }
+            if (this.commonJS.isEmpty(this.inputForm.explainFileList)) {
+              this.inputForm.explainFileList = []
+            }
+            if (this.commonJS.isEmpty(this.inputForm.detailFileList)) {
+              this.inputForm.detailFileList = []
+            }
+            if (this.commonJS.isEmpty(this.inputForm.papersFileList)) {
+              this.inputForm.papersFileList = []
+            }
+            if (this.commonJS.isEmpty(this.inputForm.otherFileList)) {
+              this.inputForm.otherFileList = []
+            }
+            this.$refs.uploadComponentReport.newUpload(method, this.inputForm.reportFileList, 'program', null, '评估报告')
+            this.$refs.uploadComponentExplain.newUpload(method, this.inputForm.explainFileList, 'program', null, '评估说明')
+            this.$refs.uploadComponentDetail.newUpload(method, this.inputForm.detailFileList, 'program', null, '评估明细表')
+            this.$refs.uploadComponentPapers.newUpload(method, this.inputForm.papersFileList, 'program', null, '评估操作计算底稿')
+            this.$refs.uploadComponentOther.newUpload(method, this.inputForm.otherFileList, 'program', null, '其他')
+            this.loading = false
           })
         })
       },

+ 31 - 11
src/views/modules/program/registered/ProjectForm.vue

@@ -11,7 +11,7 @@
       <el-row>
         <el-col :span="24">
           <el-tabs v-model="activeName" type="border-card" @tab-click="tabHandleClick">
-            <el-tab-pane label="项目登记详情" name="programDetail" lazy>
+            <el-tab-pane label="项目登记详情" name="programDetail">
               <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
                        label-width="220px" @submit.native.prevent>
                 <el-divider content-position="left"><i class="el-icon-document"></i> 选择合同</el-divider>
@@ -699,18 +699,24 @@
               <!--        附件-->
               <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
             </el-tab-pane>
-            <el-tab-pane label="一级校审" name="firstAudit" >
-              <ProjectThreeAuditForm ref="firstAudit1" :formReadOnly="true"></ProjectThreeAuditForm>
+            <el-tab-pane label="一级校审" name="firstAudit">
+              <ProjectThreeAuditForm ref="projectThreeAuditForm" :formReadOnly="true"></ProjectThreeAuditForm>
+            </el-tab-pane>
+            <el-tab-pane label="二级校审" name="secondAudit" >
+              <ProjectThreeAuditForm ref="secondAudit2" :formReadOnly="true"></ProjectThreeAuditForm>
+            </el-tab-pane>
+            <el-tab-pane label="三级校审" name="thirdAudit" >
+              <ProjectThreeAuditForm ref="thirdAudit3" :formReadOnly="true"></ProjectThreeAuditForm>
             </el-tab-pane>
-<!--            <el-tab-pane label="二级校审" name="secondAudit" >-->
-<!--              <ProjectThreeAuditForm2 ref="secondAudit2" :formReadOnly="true"></ProjectThreeAuditForm2>-->
-<!--            </el-tab-pane>-->
-<!--            <el-tab-pane label="三级校审" name="thirdAudit" >-->
-<!--              <ProjectThreeAuditForm3 ref="thirdAudit3" :formReadOnly="true"></ProjectThreeAuditForm3>-->
-<!--            </el-tab-pane>-->
             <el-tab-pane label="项目归档" name="archive" >
               <ProjectArchiveForm ref="projectArchiveForm" :formReadOnly="true"></ProjectArchiveForm>
             </el-tab-pane>
+            <el-tab-pane label="浏览审核" name="freadBrowse" >
+              <ProofreadBrowseFormComponent ref="proofreadBrowseFormComponent"></ProofreadBrowseFormComponent>
+            </el-tab-pane>
+            <el-tab-pane label="校对" name="fread" >
+              <ProofreadFormComponent ref="proofreadFormComponent"></ProofreadFormComponent>
+            </el-tab-pane>
           </el-tabs>
         </el-col>
       </el-row>
@@ -735,6 +741,8 @@
   import ProjectArchiveForm from './ProjectArchiveForm'
   import WorkClientForm from './WorkClientForm'
   import ContactForm from './ContactForm'
+  import ProofreadBrowseFormComponent from './ProofreadBrowseFormComponent'
+  import ProofreadFormComponent from './ProofreadFormComponent'
   import UpLoadComponent from '@/views/common/UpLoadComponent'
   import SelectUserTree from '@/views/modules/utils/treeUserSelect'
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
@@ -834,7 +842,9 @@
       ContactForm,
       SelectTree,
       ProjectArchiveForm,
-      ProjectThreeAuditForm
+      ProjectThreeAuditForm,
+      ProofreadBrowseFormComponent,
+      ProofreadFormComponent
       // ProjectThreeAuditForm2,
       // ProjectThreeAuditForm3
     },
@@ -1221,7 +1231,7 @@
         console.log(event)
         if (event.name === 'firstAudit') {
           if (this.commonJS.isNotEmpty(this.auditIdfirst)) {
-            this.$refs.firstAudit1.init('view', this.auditIdfirst)
+            this.$refs.projectThreeAuditForm.init('view', this.auditIdfirst)
           }
         }
         if (event.name === 'secondAudit') {
@@ -1239,6 +1249,16 @@
             this.$refs.projectArchiveForm.init('view', this.archiveIdA)
           }
         }
+        if (event.name === 'freadBrowse') {
+          if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+            this.$refs.proofreadBrowseFormComponent.init('view', this.inputForm.id)
+          }
+        }
+        if (event.name === 'fread') {
+          if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+            this.$refs.proofreadFormComponent.init(this.inputForm.id)
+          }
+        }
       }
     }
   }

+ 34 - 47
src/views/modules/program/registered/ProjectThreeAuditForm.vue

@@ -1,14 +1,8 @@
 <template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
   <div>
-
-
     <div>
       <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
                label-width="125px" @submit.native.prevent>
-        <div v-if="formReadOnly===true&&inputForm.status === '0'||commonJS.isEmpty(inputForm.status)">
-          <el-empty></el-empty>
-        </div>
-        <div v-else>
           <el-row  :gutter="15">
             <el-col :span="12">
               <el-form-item label="项目名称" prop="programProjectListInfo.name"
@@ -118,7 +112,6 @@
           </el-row>
           <!--        附件-->
           <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
-        </div>
 
       </el-form>
 
@@ -252,50 +245,44 @@
           this.programProjectListInfoService.findByIdAudit(this.inputForm.id).then(({data}) => {
             this.inputForm = this.recover(this.inputForm, data)
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-            if (this.formReadOnly === true & this.inputForm.status === '0' || this.commonJS.isEmpty(this.inputForm.status)) {
-              this.loading = false
-            } else {
-              this.$nextTick(() => {
-                this.$refs.contents1Editor.clear()
-                this.$refs.contents2Editor.clear()
-                this.$refs.contents3Editor.clear()
-                this.$refs.contents4Editor.clear()
-                this.$refs.uploadComponent.clearUpload()
-                if (this.commonJS.isNotEmpty(this.inputForm.detailOpinion)) {
-                  this.$refs.contents1Editor.init(this.inputForm.detailOpinion)
-                }
-                if (this.commonJS.isNotEmpty(this.inputForm.reportOpinion)) {
-                  this.$refs.contents2Editor.init(this.inputForm.reportOpinion)
-                }
-                if (this.commonJS.isNotEmpty(this.inputForm.remarksOpinion)) {
-                  this.$refs.contents3Editor.init(this.inputForm.remarksOpinion)
-                }
-                if (this.commonJS.isNotEmpty(this.inputForm.workOpinion)) {
-                  this.$refs.contents4Editor.init(this.inputForm.workOpinion)
-                }
-                // if (this.formReadOnly === true) {
-                //   method = 'view'
-                // }
-                if (this.commonJS.isEmpty(this.inputForm.workAttachmentDtoList)) {
-                  this.inputForm.workAttachmentDtoList = []
-                }
-                if (this.commonJS.isNotEmpty(this.inputForm.programAuditAssessPeopleDtoList)) {
-                  let p = ''
-                  this.inputForm.programAuditAssessPeopleDtoList.forEach((item, index) => {
-                    if (this.inputForm.programAuditAssessPeopleDtoList.length === parseInt(parseInt(index) + parseInt(1))) {
-                      p = p + item.assessPeople
-                    } else {
-                      p = p + item.assessPeople + ','
-                    }
-                  })
-                  this.inputForm.auditPeopleList = p
+            this.$refs.contents1Editor.clear()
+            this.$refs.contents2Editor.clear()
+            this.$refs.contents3Editor.clear()
+            this.$refs.contents4Editor.clear()
+            this.$refs.uploadComponent.clearUpload()
+            if (this.commonJS.isNotEmpty(this.inputForm.detailOpinion)) {
+              this.$refs.contents1Editor.init(this.inputForm.detailOpinion)
+            }
+            if (this.commonJS.isNotEmpty(this.inputForm.reportOpinion)) {
+              this.$refs.contents2Editor.init(this.inputForm.reportOpinion)
+            }
+            if (this.commonJS.isNotEmpty(this.inputForm.remarksOpinion)) {
+              this.$refs.contents3Editor.init(this.inputForm.remarksOpinion)
+            }
+            if (this.commonJS.isNotEmpty(this.inputForm.workOpinion)) {
+              this.$refs.contents4Editor.init(this.inputForm.workOpinion)
+            }
+            // if (this.formReadOnly === true) {
+            //   method = 'view'
+            // }
+            if (this.commonJS.isEmpty(this.inputForm.workAttachmentDtoList)) {
+              this.inputForm.workAttachmentDtoList = []
+            }
+            if (this.commonJS.isNotEmpty(this.inputForm.programAuditAssessPeopleDtoList)) {
+              let p = ''
+              this.inputForm.programAuditAssessPeopleDtoList.forEach((item, index) => {
+                if (this.inputForm.programAuditAssessPeopleDtoList.length === parseInt(parseInt(index) + parseInt(1))) {
+                  p = p + item.assessPeople
                 } else {
-                  this.inputForm.auditPeopleList = ''
+                  p = p + item.assessPeople + ','
                 }
-                this.$refs.uploadComponent.newUpload(method, this.inputForm.workAttachmentDtoList, 'program_audit_first')
-                this.loading = false
               })
+              this.inputForm.auditPeopleList = p
+            } else {
+              this.inputForm.auditPeopleList = ''
             }
+            this.$refs.uploadComponent.newUpload(method, this.inputForm.workAttachmentDtoList, 'program_audit_first')
+            this.loading = false
           })
         })
       },

+ 390 - 0
src/views/modules/program/registered/ProofreadBrowseFormComponent.vue

@@ -0,0 +1,390 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method==='view'"
+               label-width="120px" @submit.native.prevent>
+
+        <el-row :gutter="15">
+          <el-col :span="24">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input :disabled="true" v-model="inputForm.projectName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="评估基准日" prop="assessmentDate">
+              <el-input :disabled="true" v-model="inputForm.assessmentDate"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目负责人" prop="projectManagerName">
+              <el-input :disabled="true" v-model="inputForm.projectManagerName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目审核人" prop="processUserName">
+              <el-input :disabled="true" v-model="inputForm.processUserName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="审核日期" prop="processDate">
+              <el-date-picker
+                v-model="inputForm.processDate"
+                type="date"
+                :disabled="true"
+                style="width: 100%"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>报告、说明、明细表一致性</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor40"
+            class="vxe-table-element"
+            :data="inputForm.detailFor40"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.reviewComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="改正情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.replyComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估报告</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor50"
+            class="vxe-table-element"
+            :data="inputForm.detailFor50"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.reviewComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="改正情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.replyComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估说明</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor60"
+            class="vxe-table-element"
+            :data="inputForm.detailFor60"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.reviewComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="改正情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.replyComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估明细表</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor70"
+            class="vxe-table-element"
+            :data="inputForm.detailFor70"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.reviewComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="改正情况(√/×)" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <vxe-select :disabled="true" v-model="scope.row.replyComments" transfer>
+                  <vxe-option
+                    v-for="item in yesOrNo"
+                    :key="item.value"
+                    :value="item.label"
+                    :label="item.label">
+                  </vxe-option>
+                </vxe-select>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+      </el-form>
+
+<!--      <span slot="footer" class="dialog-footer">-->
+<!--        <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>-->
+<!--        <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>-->
+<!--      </span>-->
+
+  </div>
+</template>
+
+<script>
+  import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
+  import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
+  import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
+  import UserService from '@/api/sys/UserService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor40: [],
+          detailFor50: [],
+          detailFor60: [],
+          detailFor70: []
+        },
+        yesOrNo: [
+          {value: 0, label: '×'},
+          {value: 1, label: '√'}
+        ]
+      }
+    },
+    proofreadInfoService: null,
+    proofreadTypeService: null,
+    programProjectListInfoService: null,
+    UserService: null,
+    created () {
+      this.proofreadInfoService = new ProofreadInfoService()
+      this.programProjectListInfoService = new ProgramProjectListInfoService()
+      this.userService = new UserService()
+      this.proofreadTypeService = new ProofreadTypeService()
+    },
+    components: {
+    },
+    computed: {
+      name () {
+        return JSON.parse(localStorage.getItem('user')).name
+      },
+      userId () {
+        return JSON.parse(localStorage.getItem('user')).id
+      }
+    },
+    methods: {
+      init (method, id) {
+        this.inputForm = {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor40: [],
+          detailFor50: [],
+          detailFor60: [],
+          detailFor70: []
+        }
+        this.method = method
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.loading = true
+          this.proofreadInfoService.findById(id, '2').then(({data}) => {
+            if (!this.commonJS.isEmpty(data.projectId)) {
+              this.$refs.inputForm.resetFields()
+              this.inputForm = this.recover(this.inputForm, data)
+              this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.inputForm.processDate = data.processDate
+              this.detailDivide(data.details)
+            } else {
+              // 初始化
+              this.programProjectListInfoService.queryById(id).then(({data}) => {
+                this.inputForm.projectId = data.id
+                this.inputForm.projectName = data.name
+                this.inputForm.assessmentDate = data.assessmentDate
+                this.userService.queryById(data.projectManager).then(({data}) => {
+                  this.inputForm.projectManagerName = data.name
+                })
+              })
+              this.inputForm.processUserId = this.userId
+              this.inputForm.processUserName = this.name
+              this.inputForm.processDate = new Date()
+              this.proofreadInfoService.list('2').then(({data}) => { this.detailDivide(data) })
+            }
+            this.loading = false
+          })
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            // 列表处理
+            this.inputForm.details = []
+            this.inputForm.detailFor40.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor50.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor60.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor70.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.type = '2'
+            this.proofreadInfoService.save(this.inputForm).then(({data}) => {
+              this.close()
+              this.$message.success(data)
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      close () {
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      },
+      detailDivide (details) {
+        this.inputForm.detailFor40 = []
+        this.inputForm.detailFor50 = []
+        this.inputForm.detailFor60 = []
+        this.inputForm.detailFor70 = []
+        details.forEach(item => {
+          if (item.sort.startsWith('40')) {
+            this.inputForm.detailFor40.push(item)
+          }
+          if (item.sort.startsWith('50')) {
+            this.inputForm.detailFor50.push(item)
+          }
+          if (item.sort.startsWith('60')) {
+            this.inputForm.detailFor60.push(item)
+          }
+          if (item.sort.startsWith('70')) {
+            this.inputForm.detailFor70.push(item)
+          }
+        })
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-input-number .el-input__inner {
+    text-align: left;
+  }
+</style>

+ 506 - 0
src/views/modules/program/registered/ProofreadFormComponent.vue

@@ -0,0 +1,506 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+
+      <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="true"
+               label-width="120px" @submit.native.prevent>
+
+        <el-row :gutter="15">
+          <el-col :span="24">
+            <el-form-item label="项目名称" prop="projectName">
+              <el-input :disabled="true" v-model="inputForm.projectName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="评估基准日" prop="assessmentDate">
+              <el-input :disabled="true" v-model="inputForm.assessmentDate"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目负责人" prop="projectManagerName">
+              <el-input :disabled="true" v-model="inputForm.projectManagerName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目审核人" prop="processUserName">
+              <el-input :disabled="true" v-model="inputForm.processUserName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="审核日期" prop="processDate">
+              <el-date-picker
+                v-model="inputForm.processDate"
+                type="date"
+                :disabled="true"
+                style="width: 100%"
+                placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>明细表</el-divider>
+        <el-row :gutter="15" >
+          <vxe-table
+            border
+            show-overflow
+            ref="detailFor1010"
+            class="vxe-table-element"
+            :data="inputForm.detailFor1010"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估说明</el-divider>
+        <el-row></el-row>
+        <el-divider content-position="left">封面至评估范围</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2010"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">资产核实情况总体说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2020"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">资产基础法/成本法评估技术说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2030"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">评估结论及分析</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2040"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">关于评估有关事项的说明</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2050"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left">其他问题</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor2060"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>评估报告</el-divider>
+        <el-row :gutter="15">
+          <vxe-table
+            border
+            show-overflow
+            ref="details"
+            class="vxe-table-element"
+            :data="inputForm.detailFor30"
+            style="margin-left: 5em"
+            @cell-click=""
+            @edit-closed=""
+            highlight-current-row
+            :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
+          >
+            <vxe-table-column field="typeName" title="审核要点" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input :disabled="true" v-model="scope.row.typeName" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="reviewComments" title="审核意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.reviewComments" ></el-input>
+              </template>
+            </vxe-table-column>
+            <vxe-table-column width="150px" field="replyComments" title="回复意见" :edit-render="{}">
+              <template v-slot:edit="scope">
+                <el-input v-model="scope.row.replyComments" ></el-input>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+        </el-row>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>保留意见</el-divider>
+        <el-input v-model="inputForm.reservations"
+                  type="textarea"
+                  :rows="5"
+                  maxlength="2000"
+                  placeholder="请输入保留意见"
+                  show-word-limit>
+        </el-input>
+
+        <el-divider content-position="left"><i class="el-icon-document"></i>未修改意见</el-divider>
+        <el-input v-model="inputForm.unmodifiedComments"
+                  type="textarea"
+                  :rows="5"
+                  maxlength="2000"
+                  placeholder="请输入未修改意见"
+                  show-word-limit>
+        </el-input>
+
+      </el-form>
+
+<!--      <span slot="footer" class="dialog-footer">-->
+<!--        <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>-->
+<!--        <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>-->
+<!--      </span>-->
+
+  </div>
+</template>
+
+<script>
+  import ProofreadInfoService from '@/api/sys/ProofreadInfoService'
+  import ProofreadTypeService from '@/api/sys/ProofreadTypeService'
+  import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
+  import UserService from '@/api/sys/UserService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
+        }
+      }
+    },
+    proofreadInfoService: null,
+    proofreadTypeService: null,
+    programProjectListInfoService: null,
+    UserService: null,
+    created () {
+      this.proofreadInfoService = new ProofreadInfoService()
+      this.programProjectListInfoService = new ProgramProjectListInfoService()
+      this.userService = new UserService()
+      this.proofreadTypeService = new ProofreadTypeService()
+    },
+    components: {
+    },
+    computed: {
+      name () {
+        return JSON.parse(localStorage.getItem('user')).name
+      },
+      userId () {
+        return JSON.parse(localStorage.getItem('user')).id
+      }
+    },
+    methods: {
+      init (id) {
+        this.inputForm = {
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          projectManagerName: '',
+          processUserId: '',
+          processUserName: '',
+          processDate: '',
+          reservations: '',
+          unmodifiedComments: '',
+          details: [],
+          detailFor1010: [],
+          detailFor2010: [],
+          detailFor2020: [],
+          detailFor2030: [],
+          detailFor2040: [],
+          detailFor2050: [],
+          detailFor2060: [],
+          detailFor30: []
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.loading = true
+          this.proofreadInfoService.findById(id, '1').then(({data}) => {
+            if (!this.commonJS.isEmpty(data.projectId)) {
+              this.$refs.inputForm.resetFields()
+              this.inputForm = this.recover(this.inputForm, data)
+              this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.inputForm.processDate = data.processDate
+              this.detailDivide(data.details)
+            } else {
+              // 初始化
+              this.programProjectListInfoService.queryById(id).then(({data}) => {
+                this.inputForm.projectId = data.id
+                this.inputForm.projectName = data.name
+                this.inputForm.assessmentDate = data.assessmentDate
+                this.userService.queryById(data.projectManager).then(({data}) => {
+                  this.inputForm.projectManagerName = data.name
+                })
+              })
+              this.inputForm.processUserId = this.userId
+              this.inputForm.processUserName = this.name
+              this.inputForm.processDate = new Date()
+              this.proofreadInfoService.list('1').then(({data}) => { this.detailDivide(data) })
+            }
+            this.loading = false
+          })
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            // 列表处理
+            this.inputForm.details = []
+            this.inputForm.detailFor1010.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2010.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2020.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2030.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2040.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2050.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor2060.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.detailFor30.forEach(item => { this.inputForm.details.push(item) })
+            this.inputForm.type = '1'
+            this.proofreadInfoService.save(this.inputForm).then(({data}) => {
+              this.close()
+              this.$message.success(data)
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      close () {
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      },
+      detailDivide (details) {
+        this.inputForm.detailFor1010 = []
+        this.inputForm.detailFor2010 = []
+        this.inputForm.detailFor2020 = []
+        this.inputForm.detailFor2030 = []
+        this.inputForm.detailFor2040 = []
+        this.inputForm.detailFor2050 = []
+        this.inputForm.detailFor2060 = []
+        this.inputForm.detailFor30 = []
+        details.forEach(item => {
+          if (item.sort.startsWith('1010')) {
+            this.inputForm.detailFor1010.push(item)
+          }
+          if (item.sort.startsWith('2010')) {
+            this.inputForm.detailFor2010.push(item)
+          }
+          if (item.sort.startsWith('2020')) {
+            this.inputForm.detailFor2020.push(item)
+          }
+          if (item.sort.startsWith('2030')) {
+            this.inputForm.detailFor2030.push(item)
+          }
+          if (item.sort.startsWith('2040')) {
+            this.inputForm.detailFor2040.push(item)
+          }
+          if (item.sort.startsWith('2050')) {
+            this.inputForm.detailFor2050.push(item)
+          }
+          if (item.sort.startsWith('2060')) {
+            this.inputForm.detailFor2060.push(item)
+          }
+          if (item.sort.startsWith('30')) {
+            this.inputForm.detailFor30.push(item)
+          }
+        })
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-input-number .el-input__inner {
+    text-align: left;
+  }
+</style>