e6d4439473fefa21f8f0949302e8f72aca067c10.svn-base 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <el-container>
  3. <el-main class="to_do_task_main">
  4. <el-form :inline="true" :model="searchObj" class="demo-form-inline">
  5. <el-form-item label="流程名称">
  6. <el-input v-model="searchObj.procInstName" placeholder="" clearable></el-input>
  7. </el-form-item>
  8. <el-form-item label="流程状态">
  9. <el-select v-model="searchObj.procInstStatus" placeholder="" clearable>
  10. <el-option :label="item.label" :value="item.value" v-for="item in procInstStatusList"></el-option>
  11. </el-select>
  12. </el-form-item>
  13. <el-form-item>
  14. <el-button type="primary" @click="getTableData">查询</el-button>
  15. </el-form-item>
  16. </el-form>
  17. <el-table :data="tableData" border style="width: 100%" :height="tableHeight" stripe v-loading="tableLoading">
  18. <el-table-column prop="procInstName" label="流程名称" min-width="150" align="center">
  19. <template slot-scope="scope">
  20. <a href="javascript:;" style="text-decoration: none;" @click="showFlowDetail(scope.row.procInstId)">{{scope.row.procInstName}}</a>
  21. </template>
  22. </el-table-column>
  23. <el-table-column prop="procTypeName" label="流程类型" min-width="120" align="center">
  24. </el-table-column>
  25. <el-table-column prop="starterName" label="流程发起人" min-width="120" align="center">
  26. </el-table-column>
  27. <el-table-column prop="startTime" label="流程发起时间" min-width="120" align="center" :formatter="formatDate">
  28. </el-table-column>
  29. <el-table-column prop="endTime" label="流程完成时间" min-width="120" align="center" :formatter="formatDate">
  30. </el-table-column>
  31. <el-table-column prop="currNodeName" label="当前节点名称" min-width="120" align="center">
  32. </el-table-column>
  33. <el-table-column prop="currNodeExecutor" label="当前节点处理人" min-width="120" align="center">
  34. </el-table-column>
  35. <el-table-column prop="startNodeTime" label="当前节点开始时间" min-width="130" align="center" :formatter="formatDate">
  36. </el-table-column>
  37. <el-table-column prop="procInstStatus" label="流程状态" min-width="150" align="center" :formatter="statusFormat">
  38. </el-table-column>
  39. </el-table>
  40. <el-pagination
  41. background
  42. style="text-align: left; margin-top: 5px;"
  43. layout="sizes, total, prev, pager, next, jumper"
  44. :total="total"
  45. :current-page.sync="pageIndex"
  46. :page-size="pageSize"
  47. :page-sizes="[10, 20, 30, 40]"
  48. @size-change="handleSizeChange"
  49. @current-change="handleCurrentChange">
  50. </el-pagination>
  51. </el-main>
  52. <el-dialog title="流程详情" :visible.sync="dialogVisible" :close-on-click-modal="false" width="60%">
  53. <processHistory :procInstId="procInstId"></processHistory>
  54. </el-dialog>
  55. </el-container>
  56. </template>
  57. <script>
  58. import request from '@util/gw_ajax_request.js'
  59. import {dateFormat} from '@util/gw_date.js'
  60. export default {
  61. props: [],
  62. data() {
  63. return {
  64. tableHeight: window.innerHeight - 300,
  65. tableData: [],
  66. searchObj: {},
  67. pageSize: 20,
  68. pageIndex: 1,
  69. total: 0,
  70. procInstStatusList: [
  71. {label: '运行中', value: '921700000010'},
  72. {label: '挂起', value: '921700000020'},
  73. {label: '正常完成', value: '921700000030'},
  74. {label: '超时完成', value: '921700000040'},
  75. {label: '正常撤销', value: '921700000050'},
  76. {label: '超时撤销', value: '921700000060'}
  77. ],
  78. tableLoading: false,
  79. procInstId: '',
  80. dialogVisible: false
  81. }
  82. },
  83. components:{
  84. processHistory: resolve => {require(['./processHistory.vue'], resolve)}
  85. },
  86. mounted() {
  87. this.getTableData()
  88. },
  89. methods: {
  90. // 获取任务列表
  91. getTableData() {
  92. this.tableLoading = true
  93. this.searchObj['pageNum'] = this.pageIndex;
  94. this.searchObj['pageSize'] = this.pageSize;
  95. this.searchObj['queryType'] = this.$route.params.type;
  96. request.get('/bis/insp/pblm/plist/v1/workflow/qryHandleProcess', {params: this.searchObj}).then(res => {
  97. if(res.success){
  98. this.tableData = res.data.list
  99. this.total = res.data.total
  100. }
  101. this.tableLoading = false
  102. }).catch(err=>{
  103. console.log(err)
  104. })
  105. },
  106. showFlowDetail(procInstId){
  107. this.dialogVisible = true
  108. this.procInstId = procInstId
  109. },
  110. formatDate(row){
  111. if(row.startTime && typeof(row.startTime) == 'number'){
  112. return dateFormat(row.startTime, 'yyyy-MM-dd HH:mm:ss')
  113. }else{
  114. return row.startTime
  115. }
  116. if(row.endTime && typeof(row.endTime) == 'number'){
  117. return dateFormat(row.endTime, 'yyyy-MM-dd HH:mm:ss')
  118. }else{
  119. return row.endTime
  120. }
  121. if(row.startNodeTime && typeof(row.startNodeTime) == 'number'){
  122. return dateFormat(row.startNodeTime, 'yyyy-MM-dd HH:mm:ss')
  123. }else{
  124. return row.startNodeTime
  125. }
  126. },
  127. statusFormat(row){
  128. let status = row.procInstStatus
  129. if(status == "921700000010"){
  130. return '运行中'
  131. }else if(status == "921700000020"){
  132. return '挂起'
  133. }else if(status == "921700000030"){
  134. return '正常完成'
  135. }else if(status == "921700000040"){
  136. return '超时完成'
  137. }else if(status == "921700000050"){
  138. return '正常撤销'
  139. }else if(status == "921700000060"){
  140. return '超时撤销'
  141. }else{
  142. return status
  143. }
  144. },
  145. handleSizeChange(val){
  146. this.pageSize = val
  147. this.getTableData()
  148. },
  149. handleCurrentChange(val){
  150. this.pageIndex = val
  151. this.getTableData()
  152. },
  153. },
  154. }
  155. </script>
  156. <style lang="scss" scoped>
  157. .to_do_task_main{
  158. padding-top: 0;
  159. }
  160. </style>