阅行客电子档案
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.

231 lines
7.3 KiB

  1. <template>
  2. <div>
  3. <el-dialog class="detail-dialog" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="档案盒详情" :visible.sync="detailVisible">
  4. <div class="setting-dialog">
  5. <div class="detail-tab tab-content">
  6. <ul class="tab-nav">
  7. <li :class="{'active-tab-nav': caseTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li>
  8. <li :class="{'active-tab-nav': caseTabIndex == 1}" @click="changeActiveTab(1)">盒内档案</li>
  9. </ul>
  10. <div v-if="caseTabIndex===0" class="base-info">
  11. <ul>
  12. <li>
  13. <span>所在库</span>
  14. <p>{{ rowData && rowData.collectFormal===1 ? '收集库' : (rowData.collectFormal===3 ? '管理库':'') }}</p>
  15. </li>
  16. <li>
  17. <span>门类</span>
  18. <p>{{ rowData && rowData.cnName }}</p>
  19. </li>
  20. <li>
  21. <span>盒号</span>
  22. <p>{{ rowData && rowData.caseCode }}</p>
  23. </li>
  24. <li>
  25. <span>状态</span>
  26. <p>{{ rowData && rowData.depositNum ? '已装':'未装' }}</p>
  27. </li>
  28. <li>
  29. <span>盒名称</span>
  30. <p>{{ rowData && rowData.caseName }}</p>
  31. </li>
  32. <li>
  33. <span>规格</span>
  34. <p>{{ rowData && rowData && rowData.caseSpecs }}</p>
  35. </li>
  36. </ul>
  37. <ul>
  38. <li>
  39. <span>全宗</span>
  40. <p>{{ rowData && rowData.caseFonds }}</p>
  41. </li>
  42. <li>
  43. <span>年度</span>
  44. <p>{{ rowData && rowData.caseYear }}</p>
  45. </li>
  46. <li>
  47. <span>保管期限</span>
  48. <p>{{ rowData && rowData.caseRetention }}</p>
  49. </li>
  50. <li>
  51. <span>密级</span>
  52. <p>{{ rowData && rowData.caseClass }}</p>
  53. </li>
  54. <li>
  55. <span>开始件号</span>
  56. <p>{{ rowData && rowData.startItemNo }}</p>
  57. </li>
  58. <li>
  59. <span>结束件号</span>
  60. <p>{{ rowData && rowData.endItemNo }}</p>
  61. </li>
  62. </ul>
  63. <ul>
  64. <li>
  65. <span>装盒人</span>
  66. <p>{{ rowData && rowData.packing }}</p>
  67. </li>
  68. <li>
  69. <span>装盒日期</span>
  70. <p>{{ rowData && rowData.packDate | parseTime }}</p>
  71. </li>
  72. <li>
  73. <span>检查人</span>
  74. <p>{{ rowData && rowData.check }}</p>
  75. </li>
  76. <li>
  77. <span>检查日期</span>
  78. <p>{{ rowData && rowData.checkDate | parseTime }}</p>
  79. </li>
  80. </ul>
  81. <ul class="case-detail-row">
  82. <li>
  83. <span>电子标签</span>
  84. <p>{{ rowData && rowData.tid }}</p>
  85. </li>
  86. <li>
  87. <span>条码</span>
  88. <p>{{ rowData && rowData.barcode }}</p>
  89. </li>
  90. <li>
  91. <span>存放位置</span>
  92. <p>{{ rowData && !rowData.folderLocationDetails ? '-' : rowData.folderLocationDetails }}</p>
  93. </li>
  94. </ul>
  95. <ul>
  96. <li>
  97. <span>备注</span>
  98. <p>{{ rowData && rowData.caseNotes }}</p>
  99. </li>
  100. </ul>
  101. </div>
  102. <div v-if="caseTabIndex===1 && tableData.length !== 0 && queryFields.includes('record_no')" class="double-click-btn"><i class="iconfont icon-zhuyi-lan" /><span>双击列表数据查看详情</span></div>
  103. <el-table
  104. v-show="caseTabIndex===1"
  105. ref="table"
  106. :data="tableData"
  107. style="width: 100%;"
  108. row-key="id"
  109. height="342px"
  110. @cell-dblclick="tableDoubleClick"
  111. >
  112. <el-table-column type="index" label="序号" width="55" align="center" />
  113. <template v-for="(field, index) in queryFields">
  114. <el-table-column
  115. v-if="field !== 'id'"
  116. :key="index"
  117. :prop="field"
  118. :label="queryCnFields[index]"
  119. :show-overflow-tooltip="true"
  120. :width="field === 'archive_no' ? '260px' : '120px'"
  121. :formatter="formatCell"
  122. />
  123. </template>
  124. </el-table>
  125. </div>
  126. </div>
  127. </el-dialog>
  128. <el-dialog class="detail-dialog" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="文件列表" :visible.sync="fileVisible">
  129. <div class="setting-dialog">
  130. <el-table
  131. ref="table"
  132. :data="fileTableData"
  133. style="width: 100%;"
  134. row-key="id"
  135. height="342px"
  136. >
  137. <el-table-column type="index" label="序号" width="55" align="center" />
  138. <template v-for="(field, index) in queryFields">
  139. <el-table-column
  140. v-if="field !== 'id'"
  141. :key="index"
  142. :prop="field"
  143. :label="queryCnFields[index]"
  144. :show-overflow-tooltip="true"
  145. :width="field === 'archive_no' ? '260px' : '120px'"
  146. :formatter="formatCell"
  147. />
  148. </template>
  149. </el-table>
  150. </div>
  151. </el-dialog>
  152. </div>
  153. </template>
  154. <script>
  155. import { findArchiveInCase } from '@/api/archivesKeeping/caseManage'
  156. export default {
  157. data() {
  158. return {
  159. caseTabIndex: 0,
  160. detailVisible: false,
  161. rowData: {},
  162. tableData: [],
  163. collectLevel: null,
  164. selectedItem: null,
  165. queryCnFields: null,
  166. queryFields: null,
  167. fileVisible: false,
  168. fileTableData: []
  169. }
  170. },
  171. methods: {
  172. changeActiveTab(data) {
  173. this.caseTabIndex = data
  174. },
  175. formatCell(row, column) {
  176. if (row[column.property] === 'null' || row[column.property] === null) {
  177. return ''
  178. } else {
  179. return row[column.property]
  180. }
  181. },
  182. tableDoubleClick(row) {
  183. if (row.id) {
  184. const params = {
  185. 'caseId': this.rowData.id, // 档案盒id
  186. 'archivesId': row.id// 档案id
  187. }
  188. findArchiveInCase(params).then(res => {
  189. this.fileTableData = res.archives_o
  190. this.fileVisible = true
  191. })
  192. }
  193. }
  194. }
  195. }
  196. </script>
  197. <style lang="scss" scoped>
  198. .base-info{
  199. background: #F6F8FC;
  200. padding: 20px;
  201. ul{
  202. display: flex;
  203. justify-content: space-between;
  204. flex-wrap: wrap;
  205. margin: 10px 0;
  206. li{
  207. display: flex;
  208. justify-content: flex-start;
  209. width: 50%;
  210. font-size: 14px;
  211. color: #545B65;
  212. line-height: 35px;
  213. span{
  214. display: block;
  215. width: 120px;
  216. font-weight: bold;
  217. text-align: right;
  218. color: #0C0E1E;
  219. }
  220. }
  221. }
  222. .case-detail-row{
  223. li{
  224. width: 100%;
  225. }
  226. }
  227. }
  228. </style>