messageList.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <div>
  3. <h1 class="list-title">信息列表</h1>
  4. <hr>
  5. <div v-show="isShow">
  6. <div class="list-select">
  7. <span>地址筛选器</span>
  8. <el-select v-model="value" placeholder="请选择">
  9. <el-option
  10. v-for="item in options"
  11. :key="item.addressid"
  12. :label="item.addressname"
  13. :value="item.addressid">
  14. </el-option>
  15. </el-select>
  16. <el-button @click="searchMessage">查询</el-button>
  17. </div>
  18. <el-table :data="tableData" style="width: 900px" max-height="250" class="list-table">
  19. <el-table-column fixed prop="jrid" label="信息ID" width="150">
  20. </el-table-column>
  21. <el-table-column prop="jrname" label="姓名" width="120">
  22. </el-table-column>
  23. <el-table-column prop="jrtel" label="电话号码" width="120">
  24. </el-table-column>
  25. <el-table-column prop="levelname" label="等级名称" width="120">
  26. </el-table-column>
  27. <el-table-column prop="addressname" label="地址名称" width="120">
  28. </el-table-column>
  29. <el-table-column fixed="right" label="操作" width="120">
  30. <template slot-scope="scope">
  31. <el-button @click.native.prevent="updateRow(scope.row)" type="text" size="small">
  32. 修改
  33. </el-button>
  34. </template>
  35. </el-table-column>
  36. <el-table-column fixed="right" label="操作" width="120">
  37. <template slot-scope="scope">
  38. <el-button @click.native.prevent="deleteRow(scope.row)" type="text" size="small">
  39. 移除
  40. </el-button>
  41. </template>
  42. </el-table-column>
  43. </el-table>
  44. </div>
  45. <div v-show="!isShow">
  46. <p>暂时没有信息</p>
  47. </div>
  48. </div>
  49. </template>
  50. <script>
  51. import { getMessageList, deleteMessage,getMessagesByAddressid} from '@/api/message'
  52. import {getAddressList} from '@/api/address'
  53. import {getLevelList} from '@/api/level'
  54. export default {
  55. methods: {
  56. searchMessage() {
  57. if (this.value != '') {
  58. getMessagesByAddressid({
  59. searchid: this.value
  60. }).then(res => {
  61. if (res.code == 101) {
  62. let currentAddressname = ''
  63. this.options.forEach((item) => {
  64. if (item.addressid == this.value)
  65. currentAddressname = item.addressname
  66. })
  67. this.tableData = res.data.map(item => {
  68. this.levelBox.forEach(elem => {
  69. if (item.jrlevel == elem.jrid) {
  70. item.levelname = elem.levelname
  71. }
  72. })
  73. item.addressname = currentAddressname
  74. return item
  75. })
  76. } else if (res.code == 0) {
  77. this.tableData = []
  78. } else {
  79. this.$message.error(res.message);
  80. }
  81. }).catch(err => {
  82. this.$message.error(err.message);
  83. })
  84. } else {
  85. this.showMessageList()
  86. }
  87. },
  88. updateRow(row) {
  89. this.$router.push({
  90. name: 'UpdateMessage',
  91. params: {
  92. id: row.jrid,
  93. addressValue: this.value
  94. }
  95. })
  96. },
  97. deleteRow(row) {
  98. deleteMessage({
  99. id: row.jrid
  100. }).then(res => {
  101. if (res.code == 101) {
  102. this.$message({
  103. message: res.message,
  104. type: 'success'
  105. })
  106. this.searchMessage();
  107. }else {
  108. this.$message.error(res.message);
  109. }
  110. }).catch(err => {
  111. this.$message.error(err.message);
  112. })
  113. },
  114. showMessageList() {
  115. getMessageList().then(res => {
  116. if (res.code == 101) {
  117. this.tableData = res.data
  118. } else {
  119. this.isShow = false
  120. }
  121. }).catch(err => {
  122. console.log('err', err)
  123. })
  124. },
  125. getOptions() {
  126. getAddressList().then(res => {
  127. if (res.code == 101) {
  128. this.options = res.data
  129. this.options.unshift({
  130. addressid: '',
  131. addressname: '> 所有地址 <',
  132. longitude: undefined,
  133. latitude: undefined
  134. })
  135. }
  136. }).catch(err => {
  137. this.$message.error('系统错误');
  138. })
  139. },
  140. initLevelBox() {
  141. getLevelList().then(res => {
  142. if (res.code == 101)
  143. this.levelBox = res.data
  144. else if (res == 0)
  145. this.levelBox = []
  146. }).catch(err => {
  147. console.log(err)
  148. })
  149. }
  150. },
  151. data() {
  152. return {
  153. tableData: [],
  154. isShow: true,
  155. options: [],
  156. value: '',
  157. levelBox: []
  158. }
  159. },
  160. created() {
  161. this.value = this.$route.params.value || ''
  162. this.searchMessage()
  163. this.getOptions()
  164. this.initLevelBox()
  165. }
  166. }
  167. </script>
  168. <style scoped lang="scss">
  169. .list-title {
  170. text-align: center;
  171. color: #4f4e4e;
  172. font-weight: normal;
  173. }
  174. .list-table {
  175. margin: 0 auto;
  176. }
  177. .list-select {
  178. transform: translateX(400px);
  179. padding: 50px 0;
  180. button {
  181. margin-left: 10px;
  182. }
  183. span {
  184. margin-right: 10px;
  185. }
  186. }
  187. </style>