wangqiang пре 1 година
родитељ
комит
75c008d845

+ 61 - 0
src/api/cw/projectRecords/ProjectReportBorrowService.js

@@ -0,0 +1,61 @@
+import request from "@/utils/httpRequest";
+import { FINANCE_PATH as prefix } from "../../AppPath";
+
+export default class ProjectReportBorrowService {
+  save (param) {
+    return request({
+      url: prefix + '/project/report/borrow/save',
+      method: 'post',
+      data: param
+    })
+  }
+  updateStatusById (param) {
+    return request({
+      url: prefix + '/project/report/borrow/updateStatusById',
+      method: 'post',
+      data: param
+    })
+  }
+  updateStatusByContractInfoId (param) {
+    return request({
+      url: prefix + '/project/report/borrow/updateStatusByContractInfoId',
+      method: 'post',
+      data: param
+    })
+  }
+  findById (id) {
+    return request({
+      url: prefix + '/project/report/borrow/findById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  findByContractInfoId (id) {
+    return request({
+      url: prefix + '/project/report/borrow/findByContractInfoId',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  updateMessageStatusById (param) {
+    return request({
+      url: prefix + '/project/report/borrow/updateMessageStatusById',
+      method: 'post',
+      data: param
+    })
+  }
+  deleteById (id) {
+    return request({
+      url: prefix + '/project/report/borrow/deleteById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  findMessageList (id) {
+    return request({
+      url: prefix + '/project/report/borrow/findMessageList',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+}

+ 1 - 1
src/views/common/UpLoadComponentV2.1.vue

@@ -491,7 +491,7 @@
           this.dataListNew.push(item)
         })
         for (let item of fileList) {
-          item.createDate = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+          item.createTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
           item.createBy = {
             id: '',
             name: ''

+ 7 - 1
src/views/common/UpLoadComponentV3.1.vue

@@ -1,6 +1,6 @@
 <!--文件上传组件-->
 <template>
-  <div>
+  <div :key="uploadKey">
     <el-divider v-if="showDivider" content-position="left"><i class="el-icon-document"></i> {{dividerName}}</el-divider>
     <el-upload ref="upload" style="display: inline-block; :show-header='status'" action=""
                :limit="999" :http-request="httpRequest"
@@ -110,6 +110,7 @@
   export default {
     data () {
       return {
+		  uploadKey: '',
         progressFlag: false,
         loadProgress: 0,
         fileList: [],
@@ -408,6 +409,7 @@
           }
         }
         this.tableKey = Math.random()
+		  this.uploadKey = Math.random()
       },
       showFile (row) {
         openWindowOnUrl(row)
@@ -428,6 +430,7 @@
 		  await this.dataListNew.splice(index, 1)
 		  await this.dataList.splice(index, 1)
 		  this.tableKey = Math.random()
+		  this.uploadKey = Math.random()
       },
       /**
        * 关闭dialog时使用  清除el-upload中上传的文件
@@ -456,6 +459,7 @@
               }
             })
             _this.tableKey = Math.random()
+			  _this.uploadKey = Math.random()
             resolve(_this.dataListNew)
           })
         }
@@ -525,6 +529,7 @@
           this.dataListNew[rowIndex].remarks = this.remarks
         }
         this.tableKey = Math.random()
+		  this.uploadKey = Math.random()
       },
       updateFileType (fileType) {
         this.fileType = fileType
@@ -564,6 +569,7 @@
               this.dataListNew[row.index].btnType = 'save'
             })
             this.tableKey = Math.random()
+			  this.uploadKey = Math.random()
           }
         }
       },

+ 8 - 20
src/views/cw/invoice/InvoiceFormTask.vue

@@ -315,7 +315,6 @@
 					  value-format="YYYY-MM-DD"
 					  placeholder="选择开票时间"
 					  style="width:100%"
-					  :disabled="status !== 'audit'"
 					  placement="bottom-start"
 					  clearable>
 				  </el-date-picker>
@@ -331,7 +330,6 @@
 					  value-format="YYYY-MM-DD"
 					  placeholder="选择开票时间"
 					  style="width:100%"
-					  :disabled="status !== 'audit'"
 					  placement="bottom-start"
 					  clearable>
 				  </el-date-picker>
@@ -347,7 +345,6 @@
 					  value-format="YYYY-MM-DD"
 					  placeholder="选择领票时间"
 					  style="width:100%"
-					  :disabled="status !== 'audit'"
 					  placement="bottom-start"
 					  clearable>
 				  </el-date-picker>
@@ -902,11 +899,14 @@
             if (this.status === 'audit' || this.status === 'taskFormDetail') {
               method = 'view'
             }
-            if (this.status === 'audit') {
-              if (this.commonJS.isEmpty(this.inputForm.billingDate)) {
-                this.inputForm.billingDate = this.moment(new Date()).format('YYYY-MM-DD')
-              }
-            }
+            // if (this.status === 'audit') {
+            //   if (this.commonJS.isEmpty(this.inputForm.billingDate)) {
+            //     this.inputForm.billingDate = this.moment(new Date()).format('YYYY-MM-DD')
+            //   }
+            // }
+			  if (this.commonJS.isEmpty(this.inputForm.billingDate)) {
+				  this.inputForm.billingDate = this.moment(new Date()).format('YYYY-MM-DD')
+			  }
             if (!this.commonJS.isEmpty(this.status) && this.status === 'audit' && (this.commonJS.isEmpty(this.inputForm.financeInvoiceDetailDTOList) || this.inputForm.financeInvoiceDetailDTOList.length === 0)) {
               this.inputForm.financeInvoiceDetailDTOList = []
 			  let i = this.inputForm.financeInvoiceBaseDTOList.length
@@ -961,18 +961,6 @@
           }
         })
       },
-      reapplyForm (callback) {
-        this.loading = true
-        financeInvoiceService.queryById(this.inputForm.id).then((data) => {
-          if (data.status !== '4') { // 审核状态不是“驳回”,就弹出提示
-            this.loading = false
-            this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
-            throw new Error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
-          } else {
-            this.doSubmit('reapply', callback)
-          }
-        })
-      },
       // 表单提交
       async doSubmit (status, callback) {
 		  console.log('this.inputForm.financeInvoiceDetailDTOList', this.inputForm.financeInvoiceDetailDTOList)

+ 4 - 2
src/views/cw/projectReportArchive/ProjectReportArchiveForm.vue

@@ -494,7 +494,7 @@
         })
       },
       // 表单提交
-      doSubmit (status, callback) {
+		async doSubmit (status, callback) {
         if (status === 'save') {
           // 暂存
           // this.inputForm.status = '1'
@@ -503,10 +503,12 @@
             this.loading = false
             return
           }
-          this.$refs.uploadComponent.getDataList().then((list) => {
+			await this.$refs.uploadComponent.getDataList().then((list) => {
+          	console.log('list', list)
             // list为返回数据
             this.inputForm.workAttachmentDtoList = list
           })
+			console.log('this.inputForm.workAttachmentDtoList', this.inputForm.workAttachmentDtoList)
           // this.inputForm.createDate = this.moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
           this.projectReportArchiveService.saveForm(this.inputForm).then((data) => {
             // callback(data.businessTable, data.businessId, this.inputForm)

+ 93 - 3
src/views/cw/projectReportArchive/ProjectReportArchiveList.vue

@@ -188,6 +188,11 @@
               </el-button>
             </template>
           </vxe-column>
+			<vxe-column min-width="100px"  title="借用状态" fixed="right" align="center" field="borrowType" >
+				<template #default="scope">
+					<el-button  @click="detailBorrow(scope.row)" :type="$dictUtils.getDictLabel('borrow_type_status', scope.row.borrowType, '-')" effect="dark" >{{$dictUtils.getDictLabel("borrow_type", scope.row.borrowType, '未借用')}} </el-button>
+				</template>
+			</vxe-column>
           <vxe-column title="操作" width="100px" fixed="right" align="center">
             <template  #default="scope">
               <div v-if="isAdmin">
@@ -196,8 +201,12 @@
               <div v-else>
               <el-button v-if="hasPermission('cwProjectReportArchive:edit')&&(scope.row.createBy.id === $store.state.user.id||haveProjectIds.includes(scope.row.projectId))&&(scope.row.status==='0'||scope.row.status==='1'||scope.row.status==='3')" text type="primary" @click="push(scope.row)">归档</el-button>
               <el-button v-if="hasPermission('cwProjectReportArchive:edit')&&(scope.row.createBy.id === $store.state.user.id||haveProjectIds.includes(scope.row.projectId))&&scope.row.status==='2'" text type="primary" @click="reback(scope.row)">撤回</el-button>
-<!--              <el-button v-if="hasPermission('cwProjectReportArchive:del')&&scope.row.createBy.id === $store.state.user.id&&(scope.row.status==='1'||scope.row.status==='3'||scope.row.status==='4')" text type="primary" @click="del(scope.row.id)">删除</el-button>-->
-<!--              <el-button v-else-if="hasPermission('cwProjectReportArchive:del')&&isAdmin&&(scope.row.status==='1'||scope.row.status==='3'||scope.row.status==='5'||scope.row.status==='4')" text type="primary" @click="del(scope.row.id)">删除</el-button>-->
+				  <!--报告借用-->
+				  <el-button v-if="hasPermission('cwProjectReportArchive:edit') && scope.row.status === '5' && (scope.row.borrowType === undefined || scope.row.borrowType === '0' || scope.row.borrowType === '1')" text type="primary" @click="borrow(scope.row)">借用</el-button>
+				  <!--借用撤回-->
+				  <el-button v-if="hasPermission('cwProjectReportArchive:edit') && scope.row.status === '5' && scope.row.borrowType === '2' && (scope.row.borrowUserId === $store.state.user.id)" text type="primary" @click="rebackBorrow(scope.row)">撤回借用申请</el-button>
+				  <!--借用归还-->
+				  <el-button v-if="hasPermission('cwProjectReportArchive:edit') && scope.row.status === '5' && scope.row.borrowType === '5'" text type="primary" @click="retureBorrow(scope.row)">归还报告</el-button>
 <!--              审核-->
               <el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary"  @click="examine(scope.row)">审核</el-button>
 <!--              被驳回后当前申请人重新调整-->
@@ -218,12 +227,15 @@
       </div>
       <ProjectRecordsForm ref="projectRecordsForm"></ProjectRecordsForm>
       <ProjectReportArchiveForm ref="projectReportArchiveForm" @refreshList="refreshList"></ProjectReportArchiveForm>
+		<ProjectReportBorrowMessageForm ref="projectReportBorrowMessageForm" @refreshDataList="refreshList"></ProjectReportBorrowMessageForm>
     </div>
   </div>
 </template>
 
 <script>
+	import ProjectReportBorrowMessageForm from './ProjectReportBorrowMessageForm'
   import ProjectReportArchiveService from '@/api/cw/projectRecords/ProjectReportArchiveService'
+	import ProjectReportBorrowService from '@/api/cw/projectRecords/ProjectReportBorrowService'
   import taskService from '@/api/flowable/TaskService'
   import processService from '@/api/flowable/ProcessService'
   import pick from 'lodash.pick'
@@ -312,14 +324,17 @@
       }
     },
     projectReportArchiveService: null,
+	  projectReportBorrowService: null,
     created () {
       this.projectReportArchiveService = new ProjectReportArchiveService()
+      this.projectReportBorrowService = new ProjectReportBorrowService()
     },
     components: {
       ProjectRecordsForm,
       ProjectReportArchiveForm,
       UserSelect,
-	  UserSelect2
+	  UserSelect2,
+		ProjectReportBorrowMessageForm
     },
     computed: {
       userName () {
@@ -432,6 +447,10 @@
         }
         this.refreshList()
       },
+		// 借用详情
+		detailBorrow (row) {
+			this.$refs.projectReportBorrowMessageForm.findList(row.id)
+		},
       // 删除
       del (id) {
         let ids = id || this.$refs.projectTable.getCheckboxRecords().map(item => {
@@ -567,6 +586,77 @@
           })
         })
       },
+		// 借用
+		borrow (row) {
+			processService.getByName('会计-报告借用').then((data) => {
+				if (!this.commonJS.isEmpty(data.id)) {
+					// console.log('data', data)
+					// 读取流程表单
+					let tabTitle = ' ' + row.reportNo + ' - ' + row.cwProjectRecordsDTO.projectName
+					let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 ` + tabTitle + '[会计-报告借用]'
+					taskService.getTaskDef({ procDefId: data.id,
+						businessId: row.id,
+						businessTable: 'cw_project_report_borrow',
+						status: 'startAndCloseBorrow'}).then((reture) => {
+						this.$router.push({
+							path: '/flowable/task/TaskForm',
+							query: {
+								procDefId: data.id,
+								procDefKey: data.key,
+								status: 'startAndCloseBorrow',
+								title: tabTitle,
+								formType: reture.formType,
+								formUrl: reture.formUrl,
+								formTitle: processTitle,
+								businessTable: 'cw_project_report_borrow',
+								businessId: row.id,
+								isShow: false,
+								routePath: '/cw/projectReportArchive/ProjectReportArchiveList'
+							}
+						})
+					})
+				}
+			})
+		},
+		// 借用撤回
+		rebackBorrow (row) {
+			this.$confirm(`确定要撤回该申请吗?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(async () => {
+				await this.projectReportBorrowService.findById(row.id).then((data) => {
+					if (data.borrowType !== '2') { // status的值不等于“审核中”,就弹出提示
+						this.$message.error('数据已发生改变或不存在,请刷新数据')
+						this.refreshList()
+					} else {
+						processService.revokeProcIns(row.procInsId2).then((data) => {
+							let form = {borrowType: '0', id: row.id}
+							this.projectReportBorrowService.updateStatusByContractInfoId(form)
+							this.$message.success(data)
+							this.refreshList()
+						})
+					}
+				})
+			})
+		},
+		// 归还合同
+		retureBorrow (row) {
+			this.$confirm(`确定归还合同吗?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				row.borrowType = '0'
+				this.projectReportBorrowService.updateStatusByContractInfoId(row).then(()=>{
+					row.type = 'reture'
+					row.createTime = '';
+					row.borrowType = '5'
+					this.projectReportBorrowService.updateMessageStatusById(row)
+				})
+				this.refreshList()
+			})
+		},
       // 自定义服务端导出
       exportMethod ({ options }) {
         // 传给服务端的参数

+ 267 - 0
src/views/cw/projectReportArchive/ProjectReportBorrowForm.vue

@@ -0,0 +1,267 @@
+<template>
+<div>
+  <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="formReadOnly"
+           label-width="150px">
+    <el-row  :gutter="0">
+      <el-col :span="12">
+        <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="reportNo">
+          <el-input :disabled="true" v-model="inputForm.reportNo"></el-input>
+        </el-form-item>
+      </el-col>
+
+      <el-col :span="12">
+        <el-form-item label="借用人" prop="borrowName">
+          <el-input :disabled="true" v-model="inputForm.borrowName"></el-input>
+        </el-form-item>
+      </el-col>
+
+      <el-col :span="12">
+        <el-form-item label="借用日期" prop="borrowData" :rules="[
+                  {required: true, message:'请填写借用日期', trigger:'blur'}
+               ]">
+          <el-date-picker
+            style="width: 100%"
+            :disabled="this.inputForm.borrowType === '2'"
+            v-model="inputForm.borrowData"
+            value-format="YYYY-MM-DD"
+            placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+      </el-col>
+
+      <el-col :span="12">
+        <el-form-item label="大概归还日期" prop="borrowRetData" :rules="[
+                  {required: true, message:'请填写大概归还日期', trigger: 'blur'}
+               ]">
+          <el-date-picker
+            style="width: 100%"
+            :disabled="this.inputForm.borrowType === '2'"
+            v-model="inputForm.borrowRetData"
+            value-format="YYYY-MM-DD"
+            placeholder="选择日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-col>
+
+    </el-row>
+
+    <el-form-item label="备注" prop="remarks">
+      <el-input v-model="inputForm.remarks"
+                :disabled="this.inputForm.borrowType === '2'"
+                type="textarea"
+                :rows="5"
+                maxlength="500"
+                placeholder="请输入备注"
+                show-word-limit>
+      </el-input>
+    </el-form-item>
+
+  </el-form>
+	<el-tabs v-model="activeName" type="border-card" @tab-click="tabHandleClick">
+		<el-tab-pane label="附件" name="files">
+			<!--        附件-->
+			<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		</el-tab-pane>
+
+	</el-tabs>
+</div>
+</template>
+
+<script>
+	import UpLoadComponent from '@/views/common/UpLoadComponentV3.1'
+	import ProjectReportArchiveService from '@/api/cw/projectRecords/ProjectReportArchiveService'
+  import ProjectReportBorrowService from '@/api/cw/projectRecords/ProjectReportBorrowService'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+		  activeName: 'files',
+        inputForm: {
+			workAttachmentDtoList: [],
+          id: '',
+			projectName: '',
+			reportNo: '',
+          borrowName: '',
+          borrowData: '',
+          borrowRetData: '',
+          remarks: '',
+          borrowType: '',
+          type: ''
+        },
+      }
+    },
+    props: {
+      businessId: {
+        type: String,
+        default: ''
+      },
+      formReadOnly: {
+        type: Boolean,
+        default: false
+      }
+    },
+    components: {
+		UpLoadComponent,
+    },
+	  projectReportBorrowService: null,
+	  projectReportArchiveService: null,
+    created () {
+      this.projectReportBorrowService = new ProjectReportBorrowService()
+      this.projectReportArchiveService = new ProjectReportArchiveService()
+    },
+    watch: {
+      'businessId': {
+        handler (newVal) {
+          if (this.businessId) {
+            this.init(this.businessId)
+          } else {
+            this.$nextTick(() => {
+              this.$refs.inputForm.resetFields()
+            })
+          }
+        },
+        immediate: true,
+        deep: false
+      },
+		'loading': {
+			handler (newVal) {
+				console.log(newVal)
+				this.$emit('changeLoading', newVal)
+				this.$refs.uploadComponent.changeLoading(newVal)
+			}
+		}
+    },
+    computed: {
+		bus: {
+			get () {
+				this.$refs.uploadComponent.setDividerName('附件', false)
+				return this.businessId
+			},
+			set (val) {
+				this.businessId = val
+			}
+		},
+      userName () {
+        return this.$store.state.user.name
+      }
+    },
+    methods: {
+		tabHandleClick (event) {
+			// console.log(event)
+		},
+      init (id) {
+		  this.activeName = 'files'
+        if (id) {
+          this.loading = true
+          this.inputForm.id = id
+          this.$nextTick(() => {
+            this.$refs.inputForm.resetFields()
+            this.projectReportBorrowService.findById(this.inputForm.id).then((data) => {
+            	console.log('data',data)
+				this.$refs.uploadComponent.clearUpload()
+              if (this.commonJS.isEmpty(data.id)) {
+				  this.projectReportArchiveService.queryById(this.inputForm.id).then((data) => {
+                  this.inputForm = this.recover(this.inputForm, data)
+					  this.inputForm.projectName = data.cwProjectRecordsDTO.projectName
+					if (this.commonJS.isEmpty(this.inputForm.borrowName)){
+						this.inputForm.borrowName = this.userName
+					}
+                  this.inputForm.borrowData = this.moment(new Date()).format('YYYY-MM-DD')
+					  this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'cw_project_archive', null, null, null, null, false)
+                  this.loading = false
+                })
+              } else {
+				  this.inputForm = this.recover(this.inputForm, data)
+				  // this.inputForm.projectName = data.cwProjectRecordsDTO.projectName
+				  // if (this.commonJS.isEmpty(this.inputForm.borrowName)){
+					//   this.inputForm.borrowName = this.userName
+				  // }
+				  // this.inputForm.borrowData = this.moment(new Date()).format('YYYY-MM-DD')
+				  this.$refs.uploadComponent.newUpload('view', this.inputForm.workAttachmentDtoList, 'cw_project_archive', null, null, null, null, false)
+				  this.loading = false
+			  }
+            })
+          })
+        }
+      },
+      // 表单提交
+      startForm (callback) {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            let id = this.inputForm.id
+            this.loading = true
+            this.inputForm.contractInfoId = id
+            var date1 = new Date(this.inputForm.borrowData)
+            var date2 = new Date(this.inputForm.borrowRetData)
+            if ((date2 - date1) < 0) {
+              this.loading = false
+              this.$message.error('大概归还日期要比借用日期晚')
+              throw new Error('大概归还日期要比借用日期晚')
+            } else {
+              this.inputForm.borrowType = '2'
+              this.projectReportBorrowService.save(this.inputForm).then((data) => {
+                callback(data.businessTable, data.businessId, this.inputForm)
+                this.$refs.inputForm.resetFields()
+                this.loading = false
+              }).catch(() => {
+                this.$refs.inputForm.resetFields()
+                this.loading = false
+              })
+            }
+          }
+        })
+      },
+      // 同意
+      agreeForm (callback) {
+        this.inputForm.borrowType = '5'
+        this.projectReportBorrowService.updateMessageStatusById(this.inputForm).then((data) => {
+          this.projectReportBorrowService.updateStatusById(this.inputForm)
+          callback(data.businessTable, data.businessId, this.inputForm)
+          this.$refs.inputForm.resetFields()
+          this.loading = false
+        }).catch(() => {
+          this.$refs.inputForm.resetFields()
+          this.loading = false
+        })
+      },
+      // 关闭
+      close () {
+		  this.$refs.uploadComponent.clearUpload()
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      },
+      // 更改状态
+      updateStatusById (type) {
+        if (type === 'agree') {
+          this.inputForm.borrowType = '5'
+          this.projectReportBorrowService.updateStatusById(this.inputForm)
+        }
+        if (type === 'reject') {
+          this.inputForm.borrowType = '0'
+          this.projectReportBorrowService.updateStatusById(this.inputForm).then(() => {
+            this.inputForm.borrowType = '3'
+            this.inputForm.type = 'reject'
+            this.projectReportBorrowService.updateMessageStatusById(this.inputForm)
+          })
+        }
+        if (type === 'reback') {
+          this.inputForm.borrowType = '0'
+          this.projectReportBorrowService.updateStatusById(this.inputForm)
+          // this.workContractBorrowService.updateStatusById(this.inputForm)
+        }
+      }
+    }
+  }
+</script>
+
+

+ 92 - 0
src/views/cw/projectReportArchive/ProjectReportBorrowMessageForm.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-dialog
+    :title="title"
+    :close-on-click-modal="false"
+	draggable
+    width="1000px"
+    @close="close()"
+    v-model="visible">
+  <div class="page">
+      <el-form :inline="true" @submit.native.prevent>
+        <div style="height: calc(100% - 80px);">
+            <vxe-table
+                border="inner"
+                auto-resize
+                resizable
+                max-height="500px"
+                :loading="loading"
+                ref="workClientTable"
+                show-header-overflow
+                show-overflow
+                highlight-hover-row
+                :menu-config="{}"
+                :print-config="{}"
+                :sort-config="{remote:true}"
+                :data="dataList"
+                :checkbox-config="{}">
+
+                <vxe-column min-width="300px" align="center" title="项目名称" field="projectName"></vxe-column>
+                <vxe-column min-width="120px" align="center" title="借用人" field="borrowName" ></vxe-column>
+                <vxe-column min-width="120px" align="center" title="借用状态" field="borrowType" >
+                  <template #default="scope">
+                    {{ $dictUtils.getDictLabel("borrow_type", scope.row.borrowType, '-') }}
+                  </template>
+                </vxe-column>
+                <vxe-column min-width="120px" align="center" title="借用时间" field="borrowData" ></vxe-column>
+                <vxe-column min-width="120px" align="center" title="大概归还时间" field="borrowRetData" ></vxe-column>
+                <vxe-column min-width="120px" align="center" title="实际归还时间" field="retData">
+                  <template #default="scope">
+                    {{getRetData(scope.row.retData)}}
+                  </template>
+                </vxe-column>
+
+            </vxe-table>
+        </div>
+      </el-form>
+  </div>
+  </el-dialog>
+</template>
+
+<script>
+  import ProjectReportBorrowService from '@/api/cw/projectRecords/ProjectReportBorrowService'
+  export default {
+    data () {
+      return {
+        title: '',
+        visible: false,
+        loading: false,
+        dataList: []
+      }
+    },
+	  projectReportBorrowService: null,
+    created () {
+      this.projectReportBorrowService = new ProjectReportBorrowService()
+    },
+    methods: {
+      // 获取数据列表
+      findList (id) {
+        this.loading = true
+        this.visible = true
+        this.title = '报告借用详情'
+        this.projectReportBorrowService.findMessageList(id).then((data) => {
+          this.dataList = data
+          this.loading = false
+        })
+        // this.workContractBorrowService.findMessageList(id).then(({data}) => {
+        //   this.dataList = data
+        //   this.loading = false
+        // })
+      },
+      close () {
+        this.visible = false
+        this.dataList = []
+      },
+      getRetData (value) {
+        if (value) {
+          return value
+        }
+        return '--'
+      }
+    }
+  }
+</script>