merchantList.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <view v-if="merchantList.length>1">
  3. <uni-collapse :accordion="true" >
  4. <view v-for="(merchant,index) in merchantList" :key="merchant.id" >
  5. <uni-collapse-item :title="getMerchantTitle(merchant)" :open="index===0">
  6. <view style="padding: 20upx;background-color: aliceblue;">
  7. <view v-if="merchant.equipmentList.length==0" style="text-align: center;">暂无数据</view>
  8. <view v-if="merchant.equipmentList.length>0">
  9. <uni-collapse :accordion="true">
  10. <uni-collapse-item title="总销售情况" @open="open">
  11. <mainStatistics :adminId="merchant.id" style="padding: 20upx;"></mainStatistics>
  12. </uni-collapse-item>
  13. <view v-for="equipment in merchant.equipmentList" :key="equipment.id">
  14. <uni-collapse-item :title="getEquipmentTitle(equipment)" @open="open">
  15. <mainStatistics :equipmentId="equipment.id" style="padding: 20upx;"></mainStatistics>
  16. </uni-collapse-item>
  17. </view>
  18. </uni-collapse>
  19. </view>
  20. </view>
  21. </uni-collapse-item>
  22. </view>
  23. </uni-collapse>
  24. </view>
  25. <view v-else>
  26. <view v-if="merchantList[0].equipmentList.length>1">
  27. <uni-collapse :accordion="true">
  28. <uni-collapse-item title="总销售情况" @open="open">
  29. <mainStatistics :adminId="merchantList[0].id" style="padding: 20upx;"></mainStatistics>
  30. </uni-collapse-item>
  31. <view v-for="equipment in merchantList[0].equipmentList" :key="equipment.id">
  32. <uni-collapse-item :title="getEquipmentTitle(equipment)" @open="open">
  33. <mainStatistics :equipmentId="equipment.id" style="padding: 20upx;"></mainStatistics>
  34. </uni-collapse-item>
  35. </view>
  36. </uni-collapse>
  37. </view>
  38. <view v-else style="text-align: center;">暂无数据</view>
  39. </view>
  40. </template>
  41. <script>
  42. import {mapState,mapActions,mapMutations} from 'vuex'
  43. import uniCollapse from '@/components/uni-collapse/uni-collapse.vue'
  44. import uniCollapseItem from '@/components/uni-collapse-item/uni-collapse-item.vue'
  45. import uniList from '@/components/uni-list/uni-list.vue'
  46. import uniListItem from '@/components/uni-list-item/uni-list-item.vue'
  47. export default {
  48. components: {
  49. uniCollapse,
  50. uniCollapseItem,
  51. uniList,
  52. uniListItem
  53. },
  54. data() {
  55. return {
  56. merchantList:[{equipmentList:[]}],
  57. extraIcon: {
  58. color: '#4cd964',
  59. size: '22',
  60. type: 'spinner'
  61. }
  62. }
  63. },
  64. computed: {
  65. ...mapState(['loginUser']),
  66. },
  67. onLoad(state){
  68. this.getEquipmentListData();
  69. },
  70. onPullDownRefresh() {
  71. this.getEquipmentListData();
  72. },
  73. methods: {
  74. ...mapActions('chart', ['getEquipmentListByUser']),
  75. open(e){
  76. for (let component of e.$children) {
  77. if(component.$options.name=='mainStatistics'){
  78. component.init();
  79. return;
  80. }
  81. }
  82. },
  83. getMerchantTitle(merchant){
  84. return merchant.name?merchant.name:merchant.username;
  85. },
  86. getEquipmentTitle(equipment){
  87. return equipment.name?equipment.name:equipment.clientId;
  88. },
  89. getEquipmentListData(){
  90. this.getEquipmentListByUser(this.loginUser)
  91. .then(data => {
  92. this.merchantList = data;
  93. var listName = data[0].equipmentList;
  94. var listId = data[0].id;
  95. if(listId!=null && listId!='1'){
  96. uni.setStorageSync("listName",listName);
  97. }
  98. uni.stopPullDownRefresh();
  99. }
  100. , _ => void uni.stopPullDownRefresh());
  101. }
  102. }
  103. }
  104. </script>
  105. <style>
  106. </style>