Explorar el Código

Merge remote-tracking branch 'origin/master'

lizhenhao hace 2 años
padre
commit
710ac5e4ed

+ 54 - 0
src/api/program/ProgramProjectListInfoService.js

@@ -107,4 +107,58 @@ export default class ProgramProjectListInfoService {
       params: {id: id}
     })
   }
+  /* 一级校审文档下载 */
+  downloadFirstAuditTpl (id, auditId1) {
+    return request({
+      url: '/program/projectList/downloadFirstAuditTpl',
+      method: 'get',
+      params: {id: id, auditId1: auditId1},
+      responseType: 'blob'
+    })
+  }
+  /* 二级校审文档下载 */
+  downloadSecondAuditTpl (id, auditId2) {
+    return request({
+      url: '/program/projectList/downloadSecondAuditTpl',
+      method: 'get',
+      params: {id: id, auditId2: auditId2},
+      responseType: 'blob'
+    })
+  }
+  /* 三级校审文档下载 */
+  downloadThirdlyAuditTpl (id, auditId3) {
+    return request({
+      url: '/program/projectList/downloadThirdlyAuditTpl',
+      method: 'get',
+      params: {id: id, auditId3: auditId3},
+      responseType: 'blob'
+    })
+  }
+  /* 三级校审文档下载 */
+  downloadProofreadAuditTpl (id) {
+    return request({
+      url: '/program/projectList/downloadProofreadAuditTpl',
+      method: 'get',
+      params: {id: id},
+      responseType: 'blob'
+    })
+  }
+  /* 三级校审文档下载 */
+  downloadAuditRecordFormAfterBindingTpl (id) {
+    return request({
+      url: '/program/projectList/downloadAuditRecordFormAfterBindingTpl',
+      method: 'get',
+      params: {id: id},
+      responseType: 'blob'
+    })
+  }
+  /* 三级校审文档下载 */
+  downloadReportAusstellungTpl (id) {
+    return request({
+      url: '/program/projectList/downloadReportAusstellungTpl',
+      method: 'get',
+      params: {id: id},
+      responseType: 'blob'
+    })
+  }
 }

+ 32 - 0
src/api/sys/ProofreadIssuedService.js

@@ -0,0 +1,32 @@
+import request from '@/utils/httpRequest'
+
+export default class ProofreadIssuedService {
+  save (param) {
+    return request({
+      url: '/proofread/issued/save',
+      method: 'post',
+      data: param
+    })
+  }
+  findById (id) {
+    return request({
+      url: '/proofread/issued/findById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  findProjectInfoById (id) {
+    return request({
+      url: '/proofread/issued/findProjectInfoById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  updateStatus (param) {
+    return request({
+      url: '/proofread/issued/updateStatusById',
+      method: 'post',
+      data: param
+    })
+  }
+}

+ 13 - 1
src/utils/index.js

@@ -150,6 +150,18 @@ export function downloadExcel (data, filename) {
   window.URL.revokeObjectURL(href) // 释放掉blob对象
 }
 
+export function downloadWord (data, filename) {
+  var blob = new Blob([data], {type: 'application/msword,charset=utf-8'}) // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
+  var downloadElement = document.createElement('a')
+  var href = window.URL.createObjectURL(blob) // 创建下载的链接
+  downloadElement.href = href
+  downloadElement.download = filename // 下载后文件名
+  document.body.appendChild(downloadElement)
+  downloadElement.click() // 点击下载
+  document.body.removeChild(downloadElement) // 下载完成移除元素
+  window.URL.revokeObjectURL(href) // 释放掉blob对象
+}
+
 export function escapeHTML (a) {
   a = '' + a
   return a.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&apos;')
@@ -290,4 +302,4 @@ function toLine (name) {
   }
 }
 
-export default {toLine, escapeHTML, hashCode, unescapeHTML, handleImageAdded, download, downloadExcel, recover, recoverNotNull, hasPermission, treeDataTranslate, printLogo, deepClone, validatenull}
+export default {toLine, escapeHTML, hashCode, unescapeHTML, handleImageAdded, download, downloadExcel, downloadWord, recover, recoverNotNull, hasPermission, treeDataTranslate, printLogo, deepClone, validatenull}

+ 1 - 1
src/views/modules/program/configuration/proofreadType/BrowseTypeForm.vue

@@ -20,7 +20,7 @@
                       label: 'name',         // 显示名称
                       children: 'children'    // 子级字段名
                     }"
-                url="/proofread/type/treeData"
+                url="/proofread/type/treeData?type=2"
                 :value="inputForm.parentId"
                 :clearable="true"
                 :accordion="true"

+ 1 - 1
src/views/modules/program/configuration/proofreadType/TypeForm.vue

@@ -20,7 +20,7 @@
                       label: 'name',         // 显示名称
                       children: 'children'    // 子级字段名
                     }"
-                url="/proofread/type/treeData"
+                url="/proofread/type/treeData?type=1"
                 :value="inputForm.parentId"
                 :clearable="true"
                 :accordion="true"

+ 9 - 9
src/views/modules/program/registered/ProjectForm.vue

@@ -1008,15 +1008,15 @@
           this.$message.error('至少填写一条项目直接对接人信息')
           return
         }
-        if (!this.commonJS.isEmpty(this.inputForm.equityList)) {
-          this.inputForm.equityList.forEach(item => {
-            item.type = '2'
-            this.inputForm.links.push(item)
-          })
-        } else {
-          this.$message.error('至少填写一条产权持有人联系人信息')
-          return
-        }
+        // if (!this.commonJS.isEmpty(this.inputForm.equityList)) {
+        //   this.inputForm.equityList.forEach(item => {
+        //     item.type = '2'
+        //     this.inputForm.links.push(item)
+        //   })
+        // } else {
+        //   this.$message.error('至少填写一条产权持有人联系人信息')
+        //   return
+        // }
         // if (!this.commonJS.isEmpty(this.inputForm.contactList)) {
         //   this.inputForm.contactList.forEach(item => {
         //     item.type = '3'

+ 204 - 2
src/views/modules/program/registered/ProjectList.vue

@@ -132,7 +132,12 @@
               <el-button  type="text" @click="registeredDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.status, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.status, '-')}} </el-button>
             </template>
           </vxe-column>
-          <vxe-column title="操作" min-width="230px" fixed="right" align="center">
+          <vxe-column  min-width="150px"align="center" title="签发单状态" field="status" >
+            <template slot-scope="scope">
+              <el-button  type="text" @click="issuedDetail(scope.row)" :type="$dictUtils.getDictLabel('program_project_list_info_status_info', scope.row.issuedStatus, '-')" effect="dark" size="mini">{{$dictUtils.getDictLabel("program_project_list_info_status", scope.row.issuedStatus, '-')}} </el-button>
+            </template>
+          </vxe-column>
+          <vxe-column title="操作" min-width="1000px" fixed="right" align="center">
             <template  slot-scope="scope">
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '1'" type="text"  icon="el-icon-delete" size="small" @click="registeredPush(scope.row)">送审</el-button>
               <el-button v-if="hasPermission('program:registered:edit')&&(scope.row.status === '1' || scope.row.status === '3'||scope.row.status === '4')" type="text"  icon="el-icon-delete" size="small" @click="registeredPush(scope.row)">修改</el-button>
@@ -149,6 +154,10 @@
               <el-button v-if="hasPermission('program:registered:proo')" type="text"  icon="el-icon-delete" size="small" @click="proofread(scope.row.id)">校对</el-button>
               <!--评估报告装订后的审核-->
               <el-button v-if="hasPermission('program:registered:browse')" type="text"  icon="el-icon-delete" size="small" @click="browse(scope.row.id)">浏览审核</el-button>
+              <!--报告签发-->
+              <el-button v-if="hasPermission('program:registered:browse') && scope.row.issuedStatus !== '2' && scope.row.issuedStatus !== '5'" type="text"  icon="el-icon-delete" size="small" @click="issued(scope.row)">签发</el-button>
+              <!--报告签发撤回-->
+              <el-button v-if="hasPermission('program:registered:browse') && scope.row.issuedStatus === '2'" type="text"  icon="el-icon-delete" size="small" @click="issuedReback(scope.row)">签发撤回</el-button>
 
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isNotEmpty(scope.row.reportNo)&&scope.row.status1 === '0'||scope.row.status1 === '1'||scope.row.status1 === '3'||scope.row.status1 === '4'" type="text"  icon="el-icon-circle-check" size="small" @click="firstAuditPush(scope.row)">一级校审</el-button>
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status1 === '2' && commonJS.isNotEmpty(scope.row.reportNo)" type="text"  icon="el-icon-circle-check" size="small" @click="firstAuditReback(scope.row)">校审撤回</el-button>
@@ -161,6 +170,19 @@
 
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' &&scope.row.archiveStatus === '0'||scope.row.archiveStatus === '1'||scope.row.archiveStatus === '3'||scope.row.archiveStatus === '4'" type="text"  icon="el-icon-circle-check" size="small" @click="archivePush(scope.row)">项目归档</el-button>
               <el-button v-if="hasPermission('program:registered:edit')&&scope.row.archiveStatus === '2'" type="text"  icon="el-icon-circle-check" size="small" @click="archiveReback(scope.row)">校审撤回</el-button>
+
+              <!--一级校审ftl文件下载-->
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadFirstAuditTpl(scope.row)">一级校审下载</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadSecondAuditTpl(scope.row)">二级校审下载</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadThirdlyAuditTpl(scope.row)">三级校审下载</el-button>
+
+              <!--自校功能ftl文件下载-->
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadProofreadAuditTpl(scope.row)">校对审核</el-button>
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadAuditRecordFormAfterBindingTpl(scope.row)">评估报告装订后</el-button>
+
+              <!--报告签发单-->
+              <el-button v-if="hasPermission('program:registered:edit')" type="text"  icon="el-icon-circle-check" size="small" @click="downloadReportAusstellungTpl(scope.row)">报告签发单</el-button>
+
             </template>
           </vxe-column>
         </vxe-table>
@@ -194,6 +216,7 @@
   import TaskService from '@/api/flowable/TaskService'
   import ProcessService from '@/api/flowable/ProcessService'
   import UserService from '@/api/sys/UserService'
+  import ProofreadIssuedService from '@/api/sys/ProofreadIssuedService'
   export default {
     data () {
       return {
@@ -225,18 +248,22 @@
         processDefinitionId3: '',
         procDefKey3: '',
         processDefinitionIdArchive: '',
-        procDefKeyArchive: ''
+        procDefKeyArchive: '',
+        processDefinitionId4: '',
+        procDefKey4: ''
       }
     },
     programProjectListInfoService: null,
     taskService: null,
     processService: null,
     userService: null,
+    proofreadIssuedService: null,
     created () {
       this.programProjectListInfoService = new ProgramProjectListInfoService()
       this.taskService = new TaskService()
       this.processService = new ProcessService()
       this.userService = new UserService()
+      this.proofreadIssuedService = new ProofreadIssuedService()
     },
     components: {
       ProjectForm,
@@ -320,6 +347,12 @@
             this.procDefKeyArchive = data.key
           }
         })
+        this.processService.getByName('报告签发审批').then(({data}) => {
+          if (!this.commonJS.isEmpty(data.id)) {
+            this.processDefinitionId4 = data.id
+            this.procDefKey4 = data.key
+          }
+        })
       },
       // 当前页
       currentChangeHandle ({ currentPage, pageSize }) {
@@ -778,6 +811,96 @@
           }
         })
       },
+      // 下载一级校审
+      downloadFirstAuditTpl (row) {
+        // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadFirstAuditTpl(row.id, row.auditId1).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadWord(res.data, '一级校审')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
+      // 下载二级校审
+      downloadSecondAuditTpl (row) {
+        // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadSecondAuditTpl(row.id, row.auditId2).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadWord(res.data, '二级校审')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
+      // 下载三级校审
+      downloadThirdlyAuditTpl (row) {
+        // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadThirdlyAuditTpl(row.id, row.auditId3).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadWord(res.data, '三级校审')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
+      // 下载资产评估项目(校对)审核记录表
+      downloadProofreadAuditTpl (row) {
+      // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadProofreadAuditTpl(row.id).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadExcel(res.data, '资产评估项目(校对)审核记录表.xls')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
+      // 下载评估报告装订后浏览审核记录表
+      downloadAuditRecordFormAfterBindingTpl (row) {
+        // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadAuditRecordFormAfterBindingTpl(row.id).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadExcel(res.data, '评估报告装订后浏览审核记录表.xls')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
+      // 下载报告签发单
+      downloadReportAusstellungTpl (row) {
+        // this.$utils.downloadExcel('/sys/project/import/template')
+        this.loading = true
+        this.programProjectListInfoService.downloadReportAusstellungTpl(row.id).then((res) => {
+          // 将二进制流文件写入excel表,以下为重要步骤
+          this.$utils.downloadWord(res.data, '报告签发单')
+          this.loading = false
+        }).catch(function (err) {
+          this.loading = false
+          if (err.response) {
+            console.log(err.response)
+          }
+        })
+      },
       is () {
         this.userService.is().then(({data}) => {
           this.isAdmin = data
@@ -817,6 +940,85 @@
       // 浏览审核
       browse (id) {
         this.$refs.proofreadBrowseForm.init(id)
+      },
+      // 签发
+      issued (row) {
+        // 读取流程表单
+        let title = `发起流程【报告签发审批】`
+        let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了[报告签发审批]`
+        let status = 'startAndHold'
+        if (row.issuedStatus === '3' || row.issuedStatus === '4' || row.issuedStatus === '2') {
+          status = 'startAndClose'
+        }
+        this.taskService.getTaskDef({ procDefId: this.processDefinitionId4,
+          businessId: row.id,
+          businessTable: 'proofread_issued'}).then((data) => {
+            this.$router.push({
+              path: '/flowable/task/TaskForm',
+              query: {
+                procDefId: this.processDefinitionId4,
+                procDefKey: this.procDefKey4,
+                title: title,
+                formType: data.data.formType,
+                formUrl: data.data.formUrl,
+                formTitle: processTitle,
+                businessTable: 'proofread_issued',
+                businessId: row.id,
+                isShow: 'false',
+                status: status,
+                routePath: '/program/registered/ProjectList'
+              }
+            })
+          })
+      },
+      // 签发单详情
+      issuedDetail (row) {
+        if (row.issuedStatus !== '0' && row.issuedStatus !== '1') {
+          // eslint-disable-next-line eqeqeq
+          this.taskService.getTaskDef({
+            procInsId: row.procInsId4,
+            procDefId: this.processDefinitionId4
+          }).then(({data}) => {
+            this.$router.push({
+              path: '/flowable/task/TaskFormDetail',
+              query: {
+                isShow: 'false',
+                readOnly: true,
+                title: '报告签发单' + '流程详情',
+                formTitle: '报告签发单' + '流程详情',
+                businessId: row.id,
+                status: 'reback',
+                ...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'title', 'businessId')
+              }
+            })
+          })
+        }
+      },
+      // 签发撤回
+      issuedReback (row) {
+        this.$confirm(`确定要撤回该申请吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(async () => {
+          await this.proofreadIssuedService.findById(row.id).then(({data}) => {
+            if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+              this.$message.error('数据已发生改变或不存在,请刷新数据')
+              this.err = true
+            }
+          })
+          if (this.err === true) {
+            this.err = ''
+            this.refreshList()
+          } else {
+            this.processService.revokeProcIns(row.procInsId4).then(({data}) => {
+              let form = {status: '3', id: row.id}
+              this.proofreadIssuedService.updateStatus(form)
+              this.$message.success(data)
+              this.refreshList()
+            })
+          }
+        })
       }
     }
   }

+ 443 - 0
src/views/modules/program/registered/ProofreadIssuedForm.vue

@@ -0,0 +1,443 @@
+<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="formReadOnly"
+             label-width="125px" @submit.native.prevent>
+      <el-row  :gutter="15">
+        <el-col :span="24">
+          <el-form-item label="项目名称" prop="projectName">
+            <el-input size="medium" :disabled="true" v-model="inputForm.projectName" clearable></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="评估基准日" prop="assessmentDate">
+            <el-input size="medium" :disabled="true" v-model="inputForm.assessmentDate" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="报告文号" prop="reportNo">
+            <el-input size="medium" :disabled="true" v-model="inputForm.reportNo" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="项目负责人" prop="projectManager">
+            <SelectUserTree
+              ref="companyTree"
+              size="medium"
+              :props="{
+                  value: 'id',             // ID字段名
+                  label: 'name',         // 显示名称
+                  children: 'children'    // 子级字段名
+                }"
+              :url="`/sys/user/treeUserDataAllOffice?type=2`"
+              :value="inputForm.projectManager"
+              :disabled="true"
+              :clearable="true"
+              :accordion="true"
+              @getValue="(value) => {inputForm.projectManager=value}"/>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="所属部门" prop="department">
+            <el-input size="medium" :disabled="true" v-model="inputForm.department" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+       </el-row>
+
+      <el-divider>业务类型</el-divider>
+      <el-divider content-position="left">A类</el-divider>
+      <el-row>
+        <vxe-table
+          border
+          show-overflow
+          ref="details"
+          class="vxe-table-element"
+          :data="AList"
+          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="name" title="名称" :edit-render="{}">
+          </vxe-table-column>
+        </vxe-table>
+      </el-row>
+
+      <el-divider content-position="left">B类</el-divider>
+      <el-row>
+        <vxe-table
+          border
+          show-overflow
+          ref="details"
+          class="vxe-table-element"
+          :data="BList"
+          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="name" title="名称" :edit-render="{}">
+          </vxe-table-column>
+        </vxe-table>
+      </el-row>
+
+      <el-divider content-position="left">C类</el-divider>
+      <el-row>
+        <vxe-table
+          border
+          show-overflow
+          ref="details"
+          class="vxe-table-element"
+          :data="CList"
+          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="name" title="名称" :edit-render="{}">
+          </vxe-table-column>
+        </vxe-table>
+      </el-row>
+
+      <el-row :gutter="15">
+
+        <el-col :span="12">
+          <el-form-item label="是否已填写台账" prop="isTxtz" :rules="[{required: true, message:'请选择是否已填写台账', trigger:'blur'}]">
+            <el-radio-group v-model="inputForm.isTxtz">
+              <el-radio v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" >{{item.label}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="报告电子版是否归档" prop="isBgdzdgd" :rules="[{required: true, message:'请选择报告电子版是否归档', trigger:'blur'}]">
+            <el-radio-group v-model="inputForm.isBgdzdgd">
+              <el-radio v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" >{{item.label}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="是否需要备案" prop="isXyba" :rules="[{required: true, message:'请选择是否需要备案', trigger:'blur'}]">
+            <el-radio-group v-model="inputForm.isXyba">
+              <el-radio v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" >{{item.label}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="是否完成备案" prop="isWcba" :rules="[{required: true, message:'请选择是否完成备案', trigger:'blur'}]">
+            <el-radio-group v-model="inputForm.isWcba">
+              <el-radio v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" >{{item.label}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="评估报告(份)" prop="assessmentReport" :rules="[{required: true, message:'请输入评估报告(份)', trigger:'blur'}]">
+            <el-input size="medium" v-model="inputForm.assessmentReport" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="评估说明(份)" prop="assessmentExplain" :rules="[{required: true, message:'请输入评估说明(份)', trigger:'blur'}]">
+            <el-input size="medium" v-model="inputForm.assessmentExplain" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="评估明细表(份)" prop="assessmentDetail" :rules="[{required: true, message:'请输入评估明细表(份)', trigger:'blur'}]">
+            <el-input size="medium" v-model="inputForm.assessmentDetail" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="咨询报告(份)" prop="consultingReport" :rules="[{required: true, message:'请输入咨询报告(份)', trigger:'blur'}]">
+            <el-input size="medium" v-model="inputForm.consultingReport" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="用印类型" prop="sealType" :rules="[{required: true, message:'请输入用印类型', trigger:'blur'}]">
+            <el-input size="medium" v-model="inputForm.sealType" clearable></el-input>
+          </el-form-item>
+        </el-col>
+
+      </el-row>
+
+    </el-form>
+  </div>
+</template>
+
+<script>
+  import SelectUserTree from '@/views/modules/utils/treeUserSelect'
+  import ProofreadIssuedService from '@/api/sys/ProofreadIssuedService'
+  import moment from "moment";
+  export default {
+    props: {
+      businessId: {
+        type: String,
+        default: ''
+      },
+      formReadOnly: {
+        type: Boolean,
+        default: false
+      }
+    },
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        inputForm: {
+          id: '',
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          reportNo: '',
+          projectManager: '',
+          department: '',
+          isTxtz: '',
+          isBgdzdgd: '',
+          isXyba: '',
+          isWcba: '',
+          assessmentReport: '',
+          assessmentExplain: '',
+          assessmentDetail: '',
+          consultingReport: '',
+          sealType: '',
+          status: '',
+          agreeTime: '',
+          agreeUserId: ''
+        },
+        keyWatch: '',
+        yesOrNo: [
+          {value: 0, label: '否'},
+          {value: 1, label: '是'}
+        ],
+        AList: [
+          {name: '经济行为涉及上市公司及其子公司的资产组合、无形资产、企业价值(包括业务及资产组)评估业务'},
+          {name: '上市公司及其合并报表范围内的下属公司财务报告目的的评估及咨询业务'},
+          {name: '经济行为涉及上市公司及其合并报表范围内的下属公司的除本条第(一)款规定之外的评估业务'},
+          {name: '经济行为涉及非上市证券公司、非上市期货公司、非上市公众公司、拟上市公司及其合并报表范围内的下属公司的评估业务'},
+          {name: '其中:非国有企业改制设立股份公司评估业务'}
+        ],
+        BList: [
+          {name: '除A类业务以外的无形资产评估业务'},
+          {name: '除A类业务以外的资产组合评估业务'},
+          {name: '除A类业务以外的企业价值评估业务'},
+          {name: '除A类业务以外的报务报告目的评估业务'},
+          {name: '除A类业务以外的抵押担保目的评估业务'},
+          {name: '除A类以外的,涉及上市公司、证券公司、期货公司、非上市公众公司、拟上市公司及其下属公司不用于市场交易的复核评估、追溯评估和咨询评估业务'},
+          {name: '除A类以外的涉及国有企业与非国有企业之间的交易行为的评估业务及相关的复核评估、追溯评估和咨询评估业务'},
+          {name: '金融企业(包括银行、保险公司、信托投资公司、基金管理公司、租赁公司等)的评估业务'},
+          {name: '评估经验较少的新领域评估业务'}
+        ],
+        CList: [
+          {name: '除A、B类业务以外的经济行为涉及单项资产的评估业务'},
+          {name: '除A、B类业务以外的不用于市场交易的复核评估、追溯评估和咨询评估业务'}
+        ]
+      }
+    },
+    proofreadIssuedService: null,
+    created () {
+      this.proofreadIssuedService = new ProofreadIssuedService()
+      this.proofreadIssuedService.findProjectInfoById(this.businessId).then(({data}) => {
+        this.inputForm = this.recover(this.inputForm, data)
+        this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+      })
+    },
+    computed: {
+      bus: {
+        get () {
+          return this.businessId
+        },
+        set (val) {
+          this.businessId = val
+        }
+      }
+    },
+    watch: {
+      'keyWatch': {
+        handler (newVal) {
+          if (this.bus) {
+            if (this.bus !== 'false') {
+              this.init('', this.bus)
+            }
+          } else {
+            this.$nextTick(() => {
+              this.$refs.inputForm.resetFields()
+            })
+          }
+        }
+      }
+    },
+    components: {
+      SelectUserTree
+    },
+    methods: {
+      getKeyWatch (keyWatch) {
+        this.keyWatch = keyWatch
+      },
+      init (method, id) {
+        this.method = method
+        this.inputForm = {
+          id: '',
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          reportNo: '',
+          projectManager: '',
+          department: '',
+          isTxtz: '',
+          isBgdzdgd: '',
+          isXyba: '',
+          isWcba: '',
+          assessmentReport: '',
+          assessmentExplain: '',
+          assessmentDetail: '',
+          consultingReport: '',
+          sealType: '',
+          status: '',
+          agreeTime: '',
+          agreeUserId: ''
+        }
+        this.inputForm.projectId = id
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          this.loading = true
+          this.proofreadIssuedService.findById(this.inputForm.projectId).then(({data}) => {
+            if (!this.commonJS.isEmpty(data.id)) {
+              this.$refs.inputForm.resetFields()
+              this.inputForm = this.recover(this.inputForm, data)
+              this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.loading = false
+            } else {
+              this.proofreadIssuedService.findProjectInfoById(this.businessId).then(({data}) => {
+                this.inputForm = this.recover(this.inputForm, data)
+                this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+                this.loading = false
+              })
+            }
+          })
+        })
+      },
+      saveForm (callback) {
+        this.loading = true
+        this.inputForm.status = '1'
+        this.proofreadIssuedService.save(this.inputForm).then(({data}) => {
+          callback(data.businessTable, data.businessId, this.inputForm)
+          this.loading = false
+        }).catch(() => {
+          this.loading = false
+        })
+      },
+      startForm (callback) {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            this.inputForm.status = '2'
+            this.proofreadIssuedService.save(this.inputForm).then(({data}) => {
+              callback(data.businessTable, data.businessId, this.inputForm)
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      async agreeForm (callback) {
+        await this.proofreadIssuedService.findById(this.inputForm.id).then(({data}) => {
+          if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+            this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+            this.err = true
+          }
+        })
+        if (this.err === true) {
+          this.err = ''
+          throw new Error()
+        } else {
+          this.$refs['inputForm'].validate((valid) => {
+            if (valid) {
+              this.loading = true
+              this.inputForm.status = '5'
+              this.inputForm.agreeTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+              let userId = JSON.parse(localStorage.getItem('user')).id
+              this.inputForm.agreeUserId = userId
+              this.proofreadIssuedService.save(this.inputForm).then(({data}) => {
+                callback(data.businessTable, data.businessId, this.inputForm)
+                this.loading = false
+              }).catch(() => {
+                this.loading = false
+              })
+            }
+          })
+        }
+      },
+      async updateStatusById (type) {
+        await this.proofreadIssuedService.findById(this.inputForm.id).then(({data}) => {
+          if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+            this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+            this.err = true
+          }
+        })
+        if (this.err === true) {
+          this.err = ''
+          throw new Error()
+        } else {
+          if (type === 'reject') {
+            // 驳回
+            this.inputForm.status = '4'
+            this.proofreadIssuedService.updateStatus(this.inputForm)
+          }
+          if (type === 'reback') {
+            // 撤回
+            this.inputForm.status = '3'
+            this.proofreadIssuedService.updateStatus(this.inputForm)
+          }
+        }
+      },
+      close () {
+        this.inputForm = {
+          id: '',
+          projectId: '',
+          projectName: '',
+          assessmentDate: '',
+          reportNo: '',
+          projectManager: '',
+          department: '',
+          isTxtz: '',
+          isBgdzdgd: '',
+          isXyba: '',
+          isWcba: '',
+          assessmentReport: '',
+          assessmentExplain: '',
+          assessmentDetail: '',
+          consultingReport: '',
+          sealType: '',
+          status: '',
+          agreeTime: '',
+          agreeUserId: ''
+        }
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .w-e-text-container {
+    z-index: 1 !important;
+  }
+  /deep/ .wtext {
+    height: 200px
+  }
+</style>

+ 14 - 0
src/views/modules/program/registered/RegisItemForm.vue

@@ -672,6 +672,7 @@
   import ProgramProjectListInfoService from '@/api/program/ProgramProjectListInfoService'
   import SelectTree from '@/components/treeSelect/treeSelect.vue'
   import XEUtils from 'xe-utils'
+  import moment from "moment";
   export default {
     props: {
       businessId: {
@@ -746,6 +747,8 @@
           links: [], // 联系人列表
           members: [], // 成员列表
           files: [], // 附件信息
+          agreeTime: '', // 审批通过时间
+          agreeUserId: '', // 审批人
 
           contactList: [], // 被评估企业对接联系人
           equityList: [], // 产权持有人联系人
@@ -774,6 +777,10 @@
         },
         set (val) {
           this.businessId = val
+        },
+        userId () {
+          this.create = JSON.parse(localStorage.getItem('user')).id
+          return JSON.parse(localStorage.getItem('user')).id
         }
       }
     },
@@ -864,6 +871,8 @@
           links: [], // 联系人列表
           members: [], // 成员列表
           files: [], // 附件信息
+          agreeTime: '', // 审批通过时间
+          agreeUserId: '', // 审批人
 
           contactList: [], // 被评估企业对接联系人
           equityList: [], // 产权持有人联系人
@@ -968,6 +977,9 @@
         } else if (status === 'agree') {
           // 审核同意
           this.inputForm.status = '5'
+          this.inputForm.agreeTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+          let userId = JSON.parse(localStorage.getItem('user')).id
+          this.inputForm.agreeUserId = userId
         }
         this.inputForm.links = []
         if (!this.commonJS.isEmpty(this.inputForm.clientList)) {
@@ -1143,6 +1155,8 @@
           links: [], // 联系人列表
           members: [], // 成员列表
           files: [], // 附件信息
+          agreeTime: '', // 审批通过时间
+          agreeUserId: '', // 审批人
 
           contactList: [], // 被评估企业对接联系人
           equityList: [], // 产权持有人联系人