taskCenterPage.vue 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div class="taskCenter">
  3. <div class="taskCenterTableData">
  4. <el-table :data="taskCenterData" style="width: 100%" @select="rowClick" @select-all="rowClick" :class="taskCenterTableSty()">
  5. <!-- <el-table-column type="selection" label="操作" align="center"></el-table-column> -->
  6. <el-table-column label="序号" type="index" align="center" width="80" />
  7. <el-table-column label="执行人名称" prop="assigneeNames" />
  8. <el-table-column label="任务名称" prop="name" />
  9. <el-table-column label="任务状态">
  10. <template #default="scope">
  11. <div v-if="scope.row.status === 'NORMAL'">普通</div>
  12. <div v-else-if="scope.row.status === 'SUSPEND'">挂起</div>
  13. <div v-else-if="scope.row.status === 'LOCK'">锁定</div>
  14. <div v-else-if="scope.row.status == 'BACK'">驳回</div>
  15. <div v-else-if="scope.row.status === 'DESIGNATE'">指派</div>
  16. <div v-else-if="scope.row.status === 'TURN'">转办</div>
  17. <div v-else-if="scope.row.status === 'ADDDOED'">加办结束</div>
  18. <div v-else-if="scope.row.status === 'AGENCY'">代理</div>
  19. </template>
  20. </el-table-column>
  21. <el-table-column label="任务标题" prop="subject" width="400" />
  22. <el-table-column label="任务类型">
  23. <template #default="scope">
  24. <div v-if="scope.row.taskType === 'NORMAL'">普通</div>
  25. <div v-else-if="scope.row.taskType === 'SIGN'">会签</div>
  26. <div v-else-if="scope.row.taskType === 'SIGN_SOURCE'">会签_父</div>
  27. <div v-else-if="scope.row.taskType === 'TRANSFORMING'">事项</div>
  28. <div v-else-if="scope.row.taskType === 'TURN'">转办</div>
  29. <div v-else-if="scope.row.taskType === 'DELIVERTO'">转办</div>
  30. <div v-else-if="scope.row.taskType === 'AGENCY'">代理</div>
  31. <div v-else-if="scope.row.taskType === 'ADD_DO'">加办</div>
  32. </template>
  33. </el-table-column>
  34. <el-table-column label="操作">
  35. <template #default="scope">
  36. <div style="display: flex">
  37. <p class="indicitem" @click="getflowPath(scope.row)">流程详情</p>
  38. <p class="indicitem" @click="taskProcess(scope.row)">任务处理</p>
  39. </div>
  40. </template>
  41. </el-table-column>
  42. </el-table>
  43. <el-pagination
  44. @size-change="handleSizeChange"
  45. @current-change="handleCurrentChange"
  46. :current-page="page.currentPage"
  47. :page-size="page.pagesize"
  48. layout="total, prev, pager, next, jumper"
  49. :total="page.total">
  50. </el-pagination>
  51. <el-dialog title="流程详情" v-model="workflowVisible" width="70vw" :close-on-click-modal="false">
  52. <div class="flowSty">
  53. <iframe id="iframeContain" width="100%" height="100%" frameborder="0" class="iframe" name="iframeContain" seamless scrolling="no" :src="iframeURL">
  54. </iframe>
  55. </div>
  56. </el-dialog>
  57. </div>
  58. <task-evaluation-start ref="taskEvaluationStart"></task-evaluation-start>
  59. <task-center-evl ref="taskCenterEvl" @approveMsg="approveMsg"></task-center-evl>
  60. <task-center-dept-evl ref="taskCenterdeptEvl" @approveMsg="approveMsg"></task-center-dept-evl>
  61. <task-center-dept-business-evl ref="taskCenterdeptbusinessEvl" @approveMsg="approveMsg"></task-center-dept-business-evl>
  62. <task-application-from ref="taskApplicationFrom" @approveMsg="approveMsg"></task-application-from>
  63. </div>
  64. </template>
  65. <script>
  66. import {apiPostTodoTaskList, apiPostgetInstanceAndChildren} from '../../api/api'
  67. import taskEvaluationStart from './taskEvaluationStart.vue'
  68. import taskCenterEvl from './taskCenterEvlNewFrom.vue'
  69. import taskCenterDeptEvl from './taskCenterDeptStartFrom.vue'
  70. import taskCenterDeptBusinessEvl from './taskCenterDeptBusinessFrom.vue'
  71. import taskApplicationFrom from './taskApplicationFrom.vue'
  72. export default {
  73. components: {
  74. taskEvaluationStart,
  75. taskCenterEvl,
  76. taskCenterDeptEvl,
  77. taskCenterDeptBusinessEvl,
  78. taskApplicationFrom
  79. },
  80. data() {
  81. return {
  82. taskCenterData: [],
  83. workflowVisible: false,
  84. iframeURL: '',
  85. page:{
  86. pagesize: 12,
  87. currentPage: 1,
  88. total: 0
  89. },
  90. winPix: window.devicePixelRatio,
  91. }
  92. },
  93. created() {
  94. this.getEvaluationData()
  95. },
  96. methods:{
  97. // 查询指标数据
  98. getEvaluationData() {
  99. let that = this
  100. let params = {
  101. order: "ASC", //排序
  102. sort: "",
  103. offset: "",
  104. limit: that.page.pagesize, //每页显示
  105. iamCode: window.localStorage.getItem('code') //IAM平台code值(登录后获取凭证)
  106. }
  107. apiPostTodoTaskList(params).then(datas =>{
  108. if (datas && datas.data) {
  109. that.taskCenterData = datas.data.rows
  110. that.page.total = datas.data.total
  111. }
  112. })
  113. },
  114. getflowPath(row) {
  115. this.workflowVisible = true
  116. this.iframeURL = 'http://10.65.78.23:8080/agilebpm-ui/bpm/instance/instanceImageDialog.html?instanceId='+row.instId+'&defId='+row.defId+'&taskId='+row.taskId+'&iamCode='+window.localStorage.getItem('code')
  117. },
  118. taskProcess(row) {
  119. let that = this
  120. let params = {
  121. id: row.instId,
  122. iamCode: window.localStorage.getItem('code')
  123. }
  124. apiPostgetInstanceAndChildren(params).then(datas =>{
  125. if (datas && datas.data) {
  126. let allData = datas.data.data.bpmInstance
  127. let keyId = datas.data.data.bpmInstance.bizKey
  128. let taskDefKey = datas.data.data.bpmInstance.defKey
  129. if (taskDefKey === 'bbbmyjzbjh') {
  130. that.$refs.taskCenterdeptEvl.init(row, keyId, allData)
  131. } else if(taskDefKey === 'bbbmyjzbkh'){
  132. that.$refs.taskCenterdeptbusinessEvl.init(row, keyId, allData)
  133. } else if(taskDefKey === 'jxjgkhsb'){
  134. that.$refs.taskApplicationFrom.init(row, keyId, allData)
  135. } else if(taskDefKey === 'yddwkplc' || taskDefKey === 'jddwkplc' || taskDefKey === 'nddwkplc') {
  136. that.$refs.taskCenterEvl.init(row, allData)
  137. } else if (taskDefKey === 'dwkpmbqd' || taskDefKey === 'dwkpmbxd') {
  138. that.$refs.taskEvaluationStart.init(row, allData)
  139. }
  140. }
  141. })
  142. },
  143. rowClick(selection, row) {
  144. this.changeDateSelect = selection
  145. },
  146. handleSizeChange(val){
  147. this.page.pagesize = val
  148. this.getEvaluationData()
  149. },
  150. handleCurrentChange(val){
  151. this.page.currentPage =val
  152. this.getEvaluationData()
  153. },
  154. approveMsg(val) {
  155. if (val) {
  156. this.getEvaluationData()
  157. }
  158. },
  159. taskCenterTableSty() {
  160. if (this.winPix === 1.25) {
  161. return 'taskCenter125Table'
  162. } else {
  163. return 'taskCenter100Table'
  164. }
  165. }
  166. }
  167. }
  168. </script>
  169. <style lang="less">
  170. .taskCenter{
  171. .taskCenterTableData{
  172. margin-top: 20px;
  173. .taskCenter125Table{
  174. .el-table__body-wrapper{
  175. height: 70vh !important;
  176. }
  177. }
  178. .taskCenter100Table{
  179. .el-table__body-wrapper{
  180. height: 78vh !important;
  181. }
  182. }
  183. .el-table{
  184. .el-input__inner{
  185. height: 30px !important;
  186. }
  187. .el-radio__label{
  188. display: none;
  189. }
  190. .indicitem{
  191. color: #409EFF;
  192. font-size: 12px;
  193. margin-right: 20px;
  194. cursor:pointer;
  195. &:hover{
  196. text-decoration: underline;
  197. }
  198. }
  199. }
  200. .el-pagination{
  201. margin-top: 20px;
  202. text-align: end;
  203. position: relative;
  204. }
  205. .el-overlay{
  206. .el-dialog{
  207. margin-top: 8vh !important;
  208. .el-dialog__body{
  209. .flowSty{
  210. width: 100%;
  211. height: 70vh;
  212. }
  213. }
  214. }
  215. }
  216. }
  217. }
  218. </style>