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.

118 lines
3.5 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="m_container">
  3. <div class="message_content" v-if="notifyMsgs.length>0">
  4. <div class="message_content_box" v-for="(item, index) in notifyMsgs" :key="index" @click="goToPage(item)">
  5. <p class="title">{{item.sendUsername}}</p>
  6. <p class="date">{{item.opTime}}</p>
  7. <span class="text">{{item.msg}}</span>
  8. <div class="line"></div>
  9. </div>
  10. <el-pagination
  11. @size-change="handleSizeChange"
  12. @current-change="handleCurrentChange"
  13. :current-page.sync="pageInfo.pageNum"
  14. :page-size="pageInfo.pageSize"
  15. layout="total, prev, pager, next"
  16. :total="pageInfo.total">
  17. </el-pagination>
  18. </div>
  19. <div class="message_content_box" v-else>
  20. <el-result icon="success" subTitle="暂时没有消息">
  21. </el-result>
  22. </div>
  23. </div>
  24. </template>
  25. <script>
  26. import {
  27. getNoticeMsg
  28. } from '@/api/cpd'
  29. import { mapGetters } from 'vuex'
  30. export default {
  31. props:['msgClass'],
  32. computed: {
  33. ...mapGetters(['userInfo']),
  34. },
  35. data() {
  36. return {
  37. notifyMsgs:[],
  38. pageInfo:{//分页数据
  39. total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。
  40. pageSize:10,//每页数据
  41. count:false,//是否需要重新计算总记录数
  42. pageNum:1,//当前页码、从1开始计算
  43. orderFields:['op_time'],//排序列 如 ['sex','student_id'],必须为数据库字段
  44. orderDirs:['desc']//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc']
  45. },
  46. }
  47. },
  48. methods:{
  49. handleSizeChange(pageSize) {
  50. this.pageInfo.pageSize=pageSize;
  51. this.getNoticeMsg();
  52. },
  53. handleCurrentChange(pageNum) {
  54. this.pageInfo.pageNum = pageNum;
  55. this.getNoticeMsg();
  56. },
  57. searchNoticeMsg(){
  58. this.pageInfo.count=true;
  59. this.getNoticeMsg();
  60. },
  61. getNoticeMsg(){
  62. let params = {
  63. pageSize: this.pageInfo.pageSize,
  64. pageNum: this.pageInfo.pageNum,
  65. total: this.pageInfo.total,
  66. count:this.pageInfo.count
  67. };
  68. if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
  69. let orderBys=[];
  70. for(var i=0;i<this.pageInfo.orderFields.length;i++){
  71. orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i])
  72. }
  73. params.orderBy= orderBys.join(",")
  74. }
  75. params.toUserid=this.userInfo.userid
  76. getNoticeMsg(params).then(res=>{
  77. this.notifyMsgs=res.data.data;
  78. this.pageInfo.total=res.data.total
  79. this.pageInfo.count=false;
  80. })
  81. },
  82. /**
  83. * objType:对象类型:项目-1/任务-2/产品-3/需求-4/bug-5/迭代-6/团队-7
  84. *
  85. */
  86. goToPage(item){
  87. var curlDomain=window.location.protocol+"//"+window.location.host; // 返回https://mp.csdn.net
  88. if(item.objType=='0'){
  89. window.open(curlDomain+"/im/"+process.env.VERSION+"/#/prichat?groupId="+item.groupId)
  90. }else if(item.msgClass=='4'){
  91. this.$router.push('/mdp/workflow/ru/task/TaskListAssigneeToMe')
  92. }else if(item.msgClass=='5'){
  93. if(process.env.CONTEXT=='xm'){
  94. this.$router.push('/xm/core/xmTask/XmMyTaskCenter')
  95. }else{
  96. window.open(curlDomain+"/xm/"+process.env.VERSION+"/#/xm/core/xmTask/XmMyTaskCenter")
  97. }
  98. }
  99. }
  100. },
  101. mounted() {
  102. this.searchNoticeMsg();
  103. }
  104. }
  105. </script>
  106. <style lang="scss" scoped>
  107. @import '../common.scss';
  108. @import './index.scss';
  109. </style>