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

271 lines
8.8 KiB

  1. <template>
  2. <!-- 开放清册 -->
  3. <div class="app-container row-container">
  4. <div class="connection-header collect-header" style="margin-bottom: 20px;">
  5. <div class="head-search" style="margin-bottom: 0;">
  6. <el-select
  7. v-if="inventType!==7"
  8. v-model="status"
  9. style="margin-right: 10px; width: 110px;"
  10. placeholder="请选择"
  11. @change="getBusinessFlowHistory"
  12. >
  13. <el-option
  14. v-for="item in stateOptions"
  15. :key="item.value"
  16. :label="item.label"
  17. :value="item.value"
  18. />
  19. </el-select>
  20. <el-select
  21. v-else
  22. v-model="status"
  23. style="margin-right: 10px; width: 100px;"
  24. placeholder="请选择"
  25. >
  26. <el-option
  27. v-for="item in exportOptions"
  28. :key="item.value"
  29. :label="item.label"
  30. :value="item.value"
  31. />
  32. </el-select>
  33. <el-input v-model="search" clearable size="small" placeholder="输入关键字可模糊搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="getBusinessFlowHistory" @clear="getBusinessFlowHistory" />
  34. <el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getBusinessFlowHistory">搜索</el-button>
  35. <el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
  36. </div>
  37. <el-button size="mini" :disabled="selections.length === 0" @click="doExport(selections)">
  38. <i class="iconfont icon-daochu" />
  39. 导出
  40. </el-button>
  41. </div>
  42. <div style="height: calc(100vh - 232px);">
  43. <el-table v-if="inventType!==7" ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 330px)" @select="handleCurrentChange" @selection-change="selectionChangeHandler" @row-dblclick="handleDetail">
  44. <el-table-column type="selection" align="center" width="55" />
  45. <el-table-column v-if="inventType===6" prop="business_type" label="类型">
  46. <template>
  47. <div>内部移交</div>
  48. </template>
  49. </el-table-column>
  50. <el-table-column prop="title" label="标题" min-width="180" />
  51. <el-table-column prop="reason" label="申请理由" />
  52. <el-table-column prop="applicant" label="申请人" />
  53. <el-table-column prop="deptsName" label="申请部门" />
  54. <el-table-column prop="createTime" label="申请时间">
  55. <template slot-scope="scope">
  56. <div>{{ scope.row.createTime }}</div>
  57. </template>
  58. </el-table-column>
  59. <el-table-column prop="completeTime" label="完成时间">
  60. <template slot-scope="scope">
  61. <div>{{ scope.row.completeTime }}</div>
  62. </template>
  63. </el-table-column>
  64. <el-table-column prop="createTime" label="状态" width="80">
  65. <template slot-scope="scope">
  66. <span v-if="scope.row.status === 1" class="row-state ing-state">进行中</span>
  67. <span v-if="scope.row.status === 2" class="row-state case-cancel">已取消</span>
  68. <span v-if="scope.row.status === 3" class="row-state end-state">已完成</span>
  69. <span v-if="scope.row.status === 4" class="row-state cancel-state">不通过</span>
  70. </template>
  71. </el-table-column>
  72. </el-table>
  73. <el-table v-else ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 330px)" @select="handleCurrentChange" @selection-change="selectionChangeHandler" @row-dblclick="handleDetail">
  74. <el-table-column type="selection" align="center" width="55" />
  75. <el-table-column prop="business_type" label="类型">
  76. <template>
  77. <div>离线移交</div>
  78. </template>
  79. </el-table-column>
  80. <el-table-column prop="title" label="包名" min-width="180" />
  81. <el-table-column prop="number" label="任务条数">
  82. <template>
  83. <!-- 目前只有1条默认 -->
  84. <span>1</span>
  85. </template>
  86. </el-table-column>
  87. <el-table-column prop="applicant" label="操作人" />
  88. <el-table-column prop="dept" label="任务状态">
  89. <template>
  90. <!-- 目前只有导出成功后续看需求再更改 -->
  91. <!-- <span class="row-state ing-state">导出中</span> -->
  92. <span class="row-state end-state">导出成功</span>
  93. <!-- <span class="row-state cancel-state">导出失败</span> -->
  94. </template>
  95. </el-table-column>
  96. <el-table-column prop="createTime" label="操作时间">
  97. <template slot-scope="scope">
  98. <div>{{ scope.row.createTime | parseTime }}</div>
  99. </template>
  100. </el-table-column>
  101. </el-table>
  102. <!--分页组件-->
  103. <el-pagination
  104. v-if="tableData.length !== 0"
  105. :current-page="page.page"
  106. :total="page.total"
  107. :page-size="page.size"
  108. :pager-count="5"
  109. layout="total, prev, pager, next, sizes"
  110. @size-change="handleSizeChange"
  111. @current-change="handleCurrentPage"
  112. />
  113. </div>
  114. <Detail ref="mDetail" :invent-type="inventType" />
  115. </div>
  116. </template>
  117. <script>
  118. import Detail from './module/detail'
  119. import { FetchBusinessFlowHistory } from '@/api/archivesManage/library'
  120. import qs from 'qs'
  121. import { exportFile } from '@/utils/index'
  122. import { mapGetters } from 'vuex'
  123. export default {
  124. name: 'OpenInventory',
  125. components: { Detail },
  126. props: {
  127. inventType: {
  128. type: Number,
  129. default: 3
  130. }
  131. },
  132. data() {
  133. return {
  134. status: null,
  135. stateOptions: [
  136. {
  137. value: 1,
  138. label: '进行中'
  139. },
  140. {
  141. value: 2,
  142. label: '已取消'
  143. },
  144. {
  145. value: 3,
  146. label: '已完成'
  147. },
  148. {
  149. value: 4,
  150. label: '不通过'
  151. }
  152. ],
  153. exportOptions: [
  154. {
  155. label: '全部',
  156. value: 0
  157. },
  158. {
  159. label: '导出中',
  160. value: 1
  161. },
  162. {
  163. label: '导出成功',
  164. value: 2
  165. },
  166. {
  167. label: '导出失败',
  168. value: 3
  169. }
  170. ],
  171. businessType: this.inventType,
  172. search: '',
  173. tableData: [],
  174. selections: [],
  175. page: {
  176. page: 0,
  177. size: 10,
  178. total: 0
  179. }
  180. }
  181. },
  182. computed: {
  183. ...mapGetters([
  184. 'baseApi'
  185. ])
  186. },
  187. created() {
  188. },
  189. mounted() {
  190. this.getBusinessFlowHistory()
  191. },
  192. methods: {
  193. resetQuery() {
  194. this.search = ''
  195. this.status = null
  196. this.getBusinessFlowHistory()
  197. },
  198. getBusinessFlowHistory() {
  199. const params = {
  200. 'status': this.status,
  201. 'search': this.search,
  202. 'businessType': this.businessType,
  203. 'page': this.page.page,
  204. 'size': this.page.size
  205. }
  206. FetchBusinessFlowHistory(params).then((res) => {
  207. if (res.code !== 500) {
  208. this.tableData = res.content
  209. this.page.total = res.totalElements
  210. } else {
  211. this.$message({ message: '获取数据失败', type: 'error', offset: 8 })
  212. }
  213. }).catch(err => {
  214. console.log(err)
  215. })
  216. },
  217. handleDetail(row) {
  218. this.$refs.mDetail.rowCurrent = row
  219. this.$refs.mDetail.detialVisible = true
  220. },
  221. // 触发单选
  222. handleCurrentChange(selection, row) {
  223. this.selections = selection
  224. },
  225. handleSizeChange(size) {
  226. this.page.size = size
  227. this.page.page = 1
  228. },
  229. handleCurrentPage(val) {
  230. this.page.page = val
  231. },
  232. selectionChangeHandler(val) {
  233. this.selections = val
  234. },
  235. doExport(data) {
  236. this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', {
  237. confirmButtonText: '继续',
  238. cancelButtonText: '取消',
  239. type: 'warning',
  240. dangerouslyUseHTMLString: true
  241. }).then(() => {
  242. const ids = []
  243. data.forEach(val => {
  244. ids.push(val.id)
  245. })
  246. const params = {
  247. 'businessIds': ids,
  248. 'businessType': this.businessType
  249. }
  250. exportFile(this.baseApi + '/api/control/exportBusinessFlow?' + qs.stringify(params, { indices: false }))
  251. }).catch(() => {
  252. })
  253. }
  254. }
  255. }
  256. </script>
  257. <style lang="scss" scoped>
  258. @import "~@/assets/styles/collect-reorganizi.scss";
  259. .connection-header{
  260. padding: 0 !important;
  261. }
  262. .case-cancel{
  263. color: #a6adb6;
  264. border: 1px solid #e6e8ed;
  265. background-color: #f3f5f9;
  266. }
  267. </style>