service.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <view class="content">
  3. <view class="order-body">
  4. <view class="empty-body" v-if="loginState">
  5. <view class="img">
  6. <image src="/static/image/empty.png" mode="widthFix"></image>
  7. <view class="tip">请先登录</view>
  8. </view>
  9. <view class="re-btn" @click="reback">去登陆</view>
  10. </view>
  11. <block class="" v-else>
  12. <z-paging ref="paging" show-refresher-update-time v-model="dataList" @query="queryList" :fixed="false">
  13. <view class="kefu-item" @click="$dialog.jumpUri('/pages/service/chat/chat?poi='+item.poi_id+'&source=list',1)" v-for="(item,index) in dataList" :key="index">
  14. <view class="logo"><image :src="item.avatar" mode="widthFix"></image></view>
  15. <view class="kefu-store">
  16. <view class="name">{{item.poi_name}} <text v-if="item.last.num > 0">{{item.last.num}}</text></view>
  17. <view class="desc" v-if="item.last.type=='text'">{{item.last.content}}</view>
  18. <view class="desc" v-if="item.last.type=='order'">[订单消息]</view>
  19. <view class="desc" v-if="item.last.type=='image'">[图片消息]</view>
  20. <view class="desc" v-if="item.last.type=='video'">[视频消息]</view>
  21. <view class="desc" v-if="item.last.type=='pay'">[支付消息]</view>
  22. <view class="desc" v-if="item.last.type=='address'">[地址消息]</view>
  23. </view>
  24. <view class="time">
  25. {{item.last.create_at}}
  26. </view>
  27. </view>
  28. </z-paging>
  29. </block>
  30. </view>
  31. </view>
  32. </template>
  33. <script>
  34. var app;
  35. import * as Api from "@/static/api/service.js";
  36. export default {
  37. data() {
  38. return {
  39. listState:false,
  40. dataList:[],
  41. loginState:true
  42. }
  43. },
  44. onShow() {
  45. var token = uni.getStorageSync("user_token")
  46. if (token) {
  47. this.loginState = false;
  48. }
  49. this.queryList(1,10)
  50. },
  51. onLoad() {
  52. app = this;
  53. },
  54. methods: {
  55. queryList(pageNo, pageSize){
  56. var formData = {};
  57. var token = uni.getStorageSync("user_token")
  58. if (!token) {
  59. return false;
  60. }
  61. formData.page = pageNo;
  62. formData.size = pageSize;
  63. app.listState = true;
  64. Api.list(formData).then((res)=>{
  65. app.listState = false;
  66. uni.hideLoading();
  67. if (res.code !== 1) {
  68. this.$refs.paging.complete(false);
  69. return app.$dialog.showSuccess(res.msg);
  70. }
  71. app.$refs.paging.complete(res.data.rows);
  72. })
  73. }
  74. }
  75. }
  76. </script>
  77. <style>
  78. .order-body{height: calc(100vh - 20upx);margin-top: 20upx;}
  79. .kefu-item{display: flex;align-items: center;background-color: #fff;padding: 20upx;border-bottom: 2upx solid #f8f8f8;}
  80. .kefu-item .logo{height: 100upx;overflow: hidden;}
  81. .kefu-item .logo image{width: 100upx;}
  82. .kefu-item .kefu-store{margin-left: 20upx;}
  83. .kefu-item .kefu-store .name{font-size: 28upx;color: #333;display: flex;align-items: center;}
  84. .kefu-item .kefu-store .name text{background-color: #f00;color: #fff;width: 30upx;height: 30upx;display: flex;align-items: center;justify-content: center;border-radius: 30upx;font-size: 20upx;margin-left: 20upx;}
  85. .kefu-item .kefu-store .desc{font-size: 24upx;color: #666;margin-top: 10upx;}
  86. .kefu-item .time{margin-left: auto;margin-right: 0;font-size: 24upx;color: #666;}
  87. .empty-body{display: flex;align-items: center;justify-content: center;flex-direction: column;height: calc(100vh - 100upx);}
  88. .empty-body .img{text-align: center;font-size: 28upx;color: #666;}
  89. .empty-body .img image{height: 160upx;width: 160upx;}
  90. .empty-body .img .tip{margin-top: 20upx;}
  91. .empty-body .re-btn{width: 180upx;height: 80upx;line-height: 80upx;text-align: center;font-size: 28upx;color: #fff;background-color: #007aff;border-radius: 10upx;margin-top: 60upx;}
  92. </style>