notice.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <!-- 订单 -->
  2. <template>
  3. <div class="msg">
  4. <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
  5. <el-form-item label="消息类型">
  6. <el-select v-model="dataForm.type" clearable>
  7. <el-option
  8. v-for="item in optionsType"
  9. :key="item.code"
  10. :label="item.value"
  11. :value="item.code">
  12. </el-option>
  13. </el-select>
  14. </el-form-item>
  15. <el-form-item label="标题">
  16. <el-input v-model="dataForm.title" clearable/>
  17. </el-form-item>
  18. <el-form-item>
  19. <el-button @click="queryData()">查询</el-button>
  20. </el-form-item>
  21. </el-form>
  22. <el-table
  23. :data="dataList"
  24. border
  25. v-loading="dataListLoading"
  26. @selection-change="selectionChangeHandle"
  27. style="width: 100%;">
  28. <el-table-column
  29. label="序号"
  30. type="index"
  31. width="50"
  32. align="center">
  33. </el-table-column>
  34. <el-table-column
  35. prop="title"
  36. header-align="center"
  37. align="center"
  38. width="300"
  39. :show-tooltip-when-overflow="true"
  40. label="消息标题">
  41. </el-table-column>
  42. <el-table-column
  43. prop="content"
  44. header-align="center"
  45. align="center"
  46. width="400"
  47. :show-tooltip-when-overflow="true"
  48. label="消息内容">
  49. </el-table-column>
  50. <el-table-column
  51. prop="type"
  52. header-align="center"
  53. align="center"
  54. label="消息类型">
  55. <template slot-scope="scope">
  56. <span>{{ optionsType[scope.row.type].value }}</span>
  57. </template>
  58. </el-table-column>
  59. <el-table-column
  60. prop="publisherId"
  61. header-align="center"
  62. align="center"
  63. label="发布人">
  64. </el-table-column>
  65. <el-table-column
  66. prop="createTime"
  67. header-align="center"
  68. align="center"
  69. width="160"
  70. :show-tooltip-when-overflow="true"
  71. label="发布时间">
  72. </el-table-column>
  73. <el-table-column
  74. fixed="right"
  75. header-align="center"
  76. align="center"
  77. width="150"
  78. label="操作">
  79. <template slot-scope="scope">
  80. <el-button type="text" size="small" @click="checkNotice(scope.row.noticeId)">查看</el-button>
  81. </template>
  82. </el-table-column>
  83. </el-table>
  84. </div>
  85. </template>
  86. <script>
  87. export default {
  88. name: 'notice',
  89. created () {
  90. this.queryData()
  91. },
  92. data () {
  93. return {
  94. checkedVisible: false,
  95. dataForm: {},
  96. dataList: [],
  97. dataListLoading: false,
  98. dataListSelections: [],
  99. optionsType: [
  100. {
  101. code: null, value: '全部'
  102. },
  103. {
  104. code: 1, value: '公告消息'
  105. },
  106. {
  107. code: 2, value: '审批消息'
  108. }
  109. ]
  110. }
  111. },
  112. methods: {
  113. // 查询
  114. queryData () {
  115. this.pageIndex = 1
  116. this.getNoticeList()
  117. },
  118. // 获取数据列表
  119. getNoticeList () {
  120. let msg = JSON.parse(this.$store.state.websocket.message)
  121. if (!msg) return
  122. this.dataList = msg
  123. if (this.dataForm.title) {
  124. this.dataList = this.dataList.filter(item => item.title && item.title.indexOf(this.dataForm.title) !== -1)
  125. }
  126. if (this.dataForm.type) {
  127. this.dataList = this.dataList.filter(item => item.type && item.type === this.dataForm.type)
  128. }
  129. },
  130. // 多选
  131. selectionChangeHandle (val) {
  132. this.dataListSelections = val
  133. },
  134. // 查看消息
  135. checkNotice (id) {
  136. // 获取记录
  137. let notice = this.dataList.find(item => item.noticeId === id)
  138. console.log('notice = ' + JSON.stringify(notice))
  139. // this.checkedVisible = true
  140. // this.$nextTick(() => {
  141. // this.$refs.check.init(id)
  142. // })
  143. }
  144. }
  145. }
  146. </script>
  147. <style scoped>
  148. </style>