阅行客电子档案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
5.3 KiB

  1. <template>
  2. <!-- 详情 -->
  3. <el-dialog :title="detialTitle" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="detialVisible" @opened="opened">
  4. <div class="setting-dialog">
  5. <ul v-if="inventType!==7" class="hitch-info">
  6. <li><span>标题</span>{{ rowCurrent && rowCurrent.title }}</li>
  7. <li><span>申请时间</span>{{ rowCurrent && rowCurrent.createTime }}</li>
  8. <li><span>申请人</span>{{ rowCurrent && rowCurrent.applicant }}</li>
  9. <li><span>申请部门</span>{{ rowCurrent && rowCurrent.deptsName }}</li>
  10. <li><span>申请理由</span>{{ rowCurrent && rowCurrent.reason }}</li>
  11. <li v-if="inventType===6"><span>移交类型</span>内部移交</li>
  12. <li><span>完成时间</span>{{ rowCurrent && rowCurrent.completeTime }}</li>
  13. <li><span>审批意见</span>{{ rowCurrent && rowCurrent.opinion }}</li>
  14. <li class="state-list">
  15. <span v-if="rowCurrent && rowCurrent.status === 1" class="row-state ing-state">进行中</span>
  16. <span v-if="rowCurrent && rowCurrent.status === 2" class="row-state case-cancel">已取消</span>
  17. <span v-if="rowCurrent && rowCurrent.status === 3" class="row-state end-state">已完成</span>
  18. <span v-if="rowCurrent && rowCurrent.status === 4" class="row-state cancel-state">不通过</span>
  19. </li>
  20. </ul>
  21. <ul v-else class="hitch-info">
  22. <li><span>包名</span>{{ rowCurrent && rowCurrent.title }}</li>
  23. <li><span>操作时间</span>{{ rowCurrent && rowCurrent.createTime }}</li>
  24. <li><span>操作人</span>{{ rowCurrent && rowCurrent.applicant }}</li>
  25. <li><span>导出方式</span>离线移交</li>
  26. <li><span>完成时间</span>{{ rowCurrent && rowCurrent.completeTime }}</li>
  27. <li><span>审批意见</span>{{ rowCurrent && rowCurrent.opinion }}</li>
  28. <li class="state-list">
  29. <span class="row-state end-state">导出成功</span>
  30. </li>
  31. </ul>
  32. <div v-if="inventType===7" style="display: flex; justify-content: flex-end; margin-bottom: 12px;">
  33. <el-button class="task-btn" @click="downloadFile"><i class="iconfont icon-xiazai" />下载文件</el-button>
  34. </div>
  35. <el-table ref="table" :data="tableData" style="width: 100%;">
  36. <el-table-column type="index" align="center" width="55" label="序号" />
  37. <el-table-column prop="fondsName" label="所属全宗" />
  38. <el-table-column prop="categoryName" label="门类名称" />
  39. <el-table-column prop="categoryLevel" label="整理方式">
  40. <template slot-scope="scope">
  41. <span>{{ scope.row.categoryLevel === 2 ? '案卷整理' : '按件整理' }}</span>
  42. </template>
  43. </el-table-column>
  44. <el-table-column prop="archiveNo" label="项目号/档号" min-width="160" />
  45. <el-table-column prop="maintitle" label="题名" />
  46. <el-table-column v-if="inventType===4" prop="reason2" label="成文日期" />
  47. <el-table-column v-if="inventType===4" prop="reason2" label="保管期限" />
  48. </el-table>
  49. </div>
  50. </el-dialog>
  51. </template>
  52. <script>
  53. import { FetchBusinessFlowDetails } from '@/api/archivesManage/library'
  54. import { downloadFile } from '@/utils/index'
  55. import { mapGetters } from 'vuex'
  56. export default {
  57. name: 'Detail',
  58. components: { },
  59. props: {
  60. inventType: {
  61. type: Number,
  62. default: 3
  63. }
  64. },
  65. data() {
  66. return {
  67. rowCurrent: null,
  68. detialVisible: false,
  69. baseInfo: null,
  70. tableData: []
  71. }
  72. },
  73. computed: {
  74. ...mapGetters([
  75. 'baseApi'
  76. ]),
  77. detialTitle() {
  78. if (this.inventType === 3) {
  79. return '开放清册详情'
  80. } else if (this.inventType === 4) {
  81. return '销毁清册详情'
  82. } else if (this.inventType === 6) {
  83. return '移交清册详情'
  84. } else if (this.inventType === 7) {
  85. return '导出任务详情'
  86. }
  87. return '开放清册详情'
  88. }
  89. },
  90. created() {
  91. },
  92. mounted() {
  93. },
  94. methods: {
  95. opened() {
  96. this.getBusinessFlowDetails()
  97. },
  98. getBusinessFlowDetails() {
  99. const params = {
  100. 'businessId': this.rowCurrent.id
  101. }
  102. FetchBusinessFlowDetails(params).then((res) => {
  103. if (res.code !== 500) {
  104. console.log(res)
  105. this.baseInfo = res.businessFlow
  106. this.tableData = res.details
  107. } else {
  108. this.$message({ message: '获取数据失败', type: 'error', offset: 8 })
  109. }
  110. }).catch(err => {
  111. console.log(err)
  112. })
  113. },
  114. downloadFile() {
  115. if (this.rowCurrent.zip_path) {
  116. const url = this.baseApi + '/downloadFile' + this.rowCurrent.zip_path
  117. fetch(url).then(res => res.blob()).then(blob => {
  118. downloadFile(blob, this.rowCurrent.title, 'zip')
  119. }).catch(() => {
  120. this.$message({ message: '下载文件失败', type: 'error', offset: 8 })
  121. })
  122. } else {
  123. this.$message({ message: '下载文件路径获取失败', type: 'error', offset: 8 })
  124. }
  125. }
  126. }
  127. }
  128. </script>
  129. <style lang='scss' scoped>
  130. @import "~@/assets/styles/collect-reorganizi.scss";
  131. .row-state{
  132. font-style: normal;
  133. padding: 0 8px;
  134. }
  135. </style>