LineChart.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <template>
  2. <el-card style="min-height: 464px;overflow: hidden;">
  3. <div slot="header" class="clearfix">
  4. <img src="../../assets/image/sq.png" style="display: block;float: left;margin: 1px 5px 0 0;" height="15" width="17"/>
  5. <span>我的工作</span>
  6. <el-button style="float: right; padding: 3px 0;color: #000000;" type="text" @click="more">更多</el-button>
  7. </div>
  8. <el-tabs v-model="activeName" @tab-click="handleClick">
  9. <el-tab-pane label="待办工作" name="first">
  10. <el-table :data="toListItem" style="width: 100%;" size="mini" :header-cell-style="[]" empty-text="暂无数据">
  11. <template slot="empty">
  12. <div>
  13. <div>
  14. <svg width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fillRule="evenodd"><ellipse fill="#F5F5F5" cx="32" cy="33" rx="32" ry="7"></ellipse><g fillRule="nonzero" stroke="#D9D9D9"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" fill="#FAFAFA"></path></g></g></svg>
  15. </div>
  16. <p>暂无数据</p>
  17. </div>
  18. </template>
  19. <el-table-column prop="taskName" label="流程名称" width="180" align="left">
  20. <template slot-scope="scope">
  21. <el-button type="text" style="color: #606266"><span>{{scope.row.taskName}}</span></el-button>
  22. </template>
  23. </el-table-column>
  24. <el-table-column prop="fwtitle" label="标题" align="left" >
  25. <template slot-scope="scope">
  26. <el-button type="text" @click="openactform(scope.row.processInstanceId,scope.row.businessKey,scope.row.name,scope.row.title,scope.row.taskName)" style="color: #606266">{{scope.row.title}}</el-button>
  27. </template>
  28. </el-table-column>
  29. <el-table-column prop="name" label="当前处理" width="180" align="center">
  30. <template slot-scope="scope">
  31. <el-button type="text" style="color: #606266"><span>{{scope.row.name}}</span></el-button>
  32. </template>
  33. </el-table-column>
  34. <el-table-column prop="createTime" label="到达时间" width="180" align="center">
  35. <template slot-scope="scope">
  36. <el-button type="text" style="color: #606266"><span>{{scope.row.createTime | timefilters}}</span></el-button>
  37. </template>
  38. </el-table-column>
  39. </el-table>
  40. </el-tab-pane>
  41. <el-tab-pane label="已办工作" name="second">
  42. <el-table class="body" size="mini" :data="doneList1" :header-cell-style="{}">
  43. <!-- <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>-->
  44. <el-table-column prop="taskName" label="流程名称" width="180" align="left">
  45. <template slot-scope="scope">
  46. <el-button type="text" style="color: #606266"><span>{{scope.row.taskName}}</span></el-button>
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="fwtitle" label="标题" align="left">
  50. <template slot-scope="scope">
  51. <el-button type="text" @click="detern1(scope.row)" style="color: #606266">{{scope.row.title}}</el-button>
  52. </template>
  53. </el-table-column>
  54. <el-table-column prop="name" label="当前处理" width="180" align="center">
  55. <template slot-scope="scope">
  56. <el-button type="text" style="color: #606266"><span>{{scope.row.name}}</span></el-button>
  57. </template>
  58. </el-table-column>
  59. <el-table-column prop="createTime" label="办理时间" width="180" align="center">
  60. <template slot-scope="scope">
  61. <el-button type="text" style="color: #606266"><span>{{scope.row.createTime | timefilters}}</span></el-button>
  62. </template>
  63. </el-table-column>
  64. </el-table>
  65. </el-tab-pane>
  66. </el-tabs>
  67. <el-dialog id="actform" title="待办工作详情" :visible.sync="actOpen" :before-close="cancel" append-to-body width="80%"
  68. top="10" height="90%">
  69. <!-- 动态引入组件-->
  70. <component :is="actForm" :data="details":actOpen="actOpen" @getList="getList" ></component>
  71. <Option :optiontitle="optiontitle" :optionactkey="optionactkey" :optionid="optionid" :optionName="optionName" v-show="optiontrue"></Option>
  72. </el-dialog>
  73. <el-dialog id="actform1" title="已办工作详情" :visible.sync="actOpen1" :before-close="cancel" append-to-body width="80%" top="10" height="90%">
  74. <!-- 动态引入组件-->
  75. <component :is="actForm1" :data="details1":actOpen="actOpen1" @getList="getList1" ></component>
  76. </el-dialog>
  77. </el-card>
  78. </template>
  79. <script>
  80. import { havedInfo } from "@/api/activiti/form/fw";
  81. import moment from "moment";
  82. import {toDoItemListInfo} from "@/api/activiti/form/fw";
  83. import {getCurrentFlowFormKey,getStartFormKey } from '@/api/activiti/process/startprocess'
  84. import Option from "@/components/files/option";
  85. export default {
  86. components: {Option},
  87. filters: {
  88. timefilters(val) {
  89. if (val == null || val == "") {
  90. return "暂无时间";
  91. } else {
  92. let d = new Date(val); //val 为表格内取到的后台时间
  93. let month =
  94. d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1;
  95. let day = d.getDate() < 10 ? "0" + d.getDate() : d.getDate();
  96. let hours = d.getHours() < 10 ? "0" + d.getHours() : d.getHours();
  97. let min = d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes();
  98. let sec = d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds();
  99. let times=d.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + sec;
  100. return moment(val).format("YYYY-MM-DD HH:mm")
  101. }
  102. }
  103. },
  104. data() {
  105. return {
  106. dialogVisible:false,
  107. tabPosition:'left',
  108. optiontrue:false,
  109. optiontitle:'',
  110. optionactkey:'',
  111. optionName:'',
  112. optionid:'',
  113. actForm: null,
  114. actForm1: null,
  115. actOpen:false,
  116. actOpen1:false,
  117. //传入到下一页面的值
  118. details:{
  119. getactkey: '',
  120. formId:'',
  121. flg:'1'},
  122. details1:{getactkey: '',
  123. formId:'',
  124. flg:'2'},
  125. activeName: 'first',
  126. doneList1: [],
  127. toListItem: [],
  128. //参数
  129. raddarParams: {
  130. pageNum: 1,
  131. pageSize: 5,
  132. // orderByColumn: "createTime",
  133. // isAsc:"desc",//排序方式
  134. },
  135. queryParams: {
  136. pageNum: 1,
  137. pageSize: 5,
  138. // executionId:undefined,
  139. // processInstanceId:undefined,
  140. // createTime:undefined,
  141. // formKey:undefined,
  142. // name:undefined,
  143. // businessKey:undefined,
  144. // taskName:undefined,
  145. // id:undefined,
  146. // title:undefined,
  147. // processDfinitionId:undefined,
  148. // assign:undefined,
  149. },
  150. //参数
  151. query: {
  152. pageNum: 1,
  153. pageSize: 4,
  154. actkey:undefined,
  155. create_time:undefined,
  156. avtive_send:undefined,
  157. fwtitle:undefined,
  158. apply_user:undefined,
  159. title:undefined,
  160. content:undefined,
  161. copy_to:undefined,
  162. applyUser:undefined,
  163. update_time:undefined,
  164. security_class:undefined,
  165. businessKey:undefined,
  166. ponderance:undefined,
  167. taskName:undefined,
  168. dispose:undefined,
  169. id:undefined,
  170. fwdept:undefined,
  171. update_by:undefined,
  172. accessory:undefined,
  173. taskid:undefined,
  174. definitionId:undefined,
  175. },
  176. }
  177. },
  178. created() {
  179. this.getList1();
  180. this.getList();
  181. this.cancel();
  182. },
  183. methods: {
  184. // 取消按钮
  185. cancel() {
  186. this.actOpen=false;
  187. this.actOpen1 = false;
  188. },
  189. reset() {
  190. this.form = {
  191. mailGuid: undefined,
  192. senderName: undefined,
  193. senderAccount: undefined,
  194. receiverName: undefined,
  195. receiverAccount: undefined,
  196. mailTheme: undefined,
  197. mailContent: undefined,
  198. createTime: undefined,
  199. status: "0",
  200. deleteTime: undefined
  201. };
  202. this.resetForm("form");
  203. },
  204. getList1() {
  205. this.loading = true;
  206. havedInfo(this.raddarParams).then(response => {
  207. console.log(response.rows)
  208. this.doneList1 = response.rows;
  209. this.loading = false;
  210. this.$emit('getNum','yb',response.total)
  211. });
  212. },
  213. handleClick(tab, event) {
  214. console.log(tab, event);
  215. },
  216. getList() {
  217. this.loading = true;
  218. // 待办请求
  219. toDoItemListInfo(this.queryParams).then(response => {
  220. this.toListItem = response.rows;
  221. if(this.toListItem.length<5){
  222. this.toListItem.length=response.rows.length
  223. }else{
  224. this.toListItem.length=5
  225. }
  226. this.title = response.title;
  227. this.loading = false;
  228. this.$emit('getNum','db',response.total)
  229. });
  230. this.actOpen=false;
  231. this.actOpen1=false;
  232. },
  233. openactform(actkey,id,name,title,taskName) {
  234. //var actkey=row.processDfinitionId;
  235. // alert(id)
  236. //var id=row.businessKey
  237. if(name == "赋文号归档分发"){
  238. this.optiontrue = true;
  239. this.optiontitle = title;
  240. this.optionactkey = actkey;
  241. this.optionid = id;
  242. this.optionName=taskName;
  243. }else{
  244. this.optiontrue = false;
  245. }
  246. let vue = this
  247. actkey=actkey.split(":")[0];
  248. this.details.getactkey = actkey//动态传参到下面的页面
  249. this.details.formId = id//动态传参到下面的页面
  250. this.details.flg = 1//动态传参到下面的flg
  251. getCurrentFlowFormKey(actkey).then(response => {
  252. var path = response.msg
  253. this.actForm = () => Promise.resolve().then(() => require(`@/views/${path}`))
  254. this.actOpen = true
  255. })
  256. this.actOpen =false
  257. return vue.actForm = this.actForm
  258. },
  259. detern(row){
  260. const actkey = row.actkey
  261. const form = row || this.form
  262. this.$router.push({path:'/actwork/todo/tododetails',query: {bd:form,id:actkey }})
  263. },
  264. detern1(row){
  265. var actkey=row.processDfinitionId
  266. var id=row.businessKey
  267. let vue = this
  268. actkey=actkey.split(":")[0];
  269. this.details.getactkey = actkey//动态传参到下面的页面
  270. this.details.formId = id//动态传参到下面的页面
  271. this.details.flg = 2//动态传参到下面的flg
  272. getStartFormKey(actkey).then(response => {
  273. var path = response.msg
  274. this.actForm = () => Promise.resolve().then(() => require(`@/views/${path}`))
  275. })
  276. this.actOpen = true
  277. return vue.actForm = this.actForm
  278. // const actkey = row.taskid || this.ids
  279. // const form = row || this.form
  280. // this.$router.push({path:'/actwork/havedone/havedetails',query: {bd:form,id:actkey }})
  281. },
  282. more(){
  283. if(this.activeName=='first'){
  284. this.$router.replace('/todo')
  285. }else {
  286. this.$router.replace('/havedone')
  287. }
  288. },
  289. }
  290. };
  291. </script>
  292. <style lang="less" scoped>
  293. .el-table--medium td {
  294. padding: 9px 0 !important;
  295. }
  296. .clearfix{
  297. color:#1890ff;
  298. }
  299. body .el-table th.gutter{
  300. display: table-cell!important;
  301. }
  302. .el-table__header{
  303. width: 100% !important;
  304. }
  305. .el-table__thead{
  306. width: 100% !important;
  307. }
  308. .el-table__body{
  309. width: 100% !important;
  310. }
  311. /*.clearfix:before,*/
  312. /*.clearfix:after {*/
  313. /*display: table;*/
  314. /*content: "";*/
  315. /*}*/
  316. /*.clearfix:after {*/
  317. /*clear: both*/
  318. /*}*/
  319. .el-card__header{
  320. background: #f5f5f5;
  321. color:#1890ff;
  322. }
  323. .el-card__body {
  324. padding: 15px 20px 20px 20px;
  325. height: 354px;
  326. }
  327. .el-card__header{
  328. background: #f5f5f5;
  329. }
  330. </style>