index.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. {include file="/shopro/common/script" /}
  2. <style>
  3. .groupon-index .goods-item .goods-title {
  4. color: var(--el-color-primary);
  5. }
  6. .groupon-index .goods-item .goods-num {
  7. font-size: 12px;
  8. }
  9. .groupon-index .avatar {
  10. margin-right: 4px;
  11. }
  12. </style>
  13. <div id="index" class="groupon-index panel panel-default panel-intro" v-cloak>
  14. <el-container class="panel-block">
  15. <el-header class="sa-header">
  16. <el-tabs class="sa-tabs" v-model="state.filter.data.status" @tab-change="onChangeTab">
  17. <el-tab-pane v-for="item in state.statusList" :key="item" :label="item.name" :name="item.type">
  18. </el-tab-pane>
  19. </el-tabs>
  20. <div class="sa-title sa-flex sa-row-between">
  21. <div class="sa-title-left">
  22. <div class="left-name">拼团列表</div>
  23. <sa-filter-condition v-model="state.filter" @filter-delete="onChangeFilter">
  24. </sa-filter-condition>
  25. </div>
  26. <div class="sa-title-right">
  27. <el-button class="sa-button-refresh" icon="RefreshRight" @click="getData"></el-button>
  28. <el-button class="sa-button-refresh" icon="Search" @click="onOpenFilter"></el-button>
  29. </div>
  30. </div>
  31. </el-header>
  32. <el-main class="sa-main">
  33. <el-table height="100%" class="sa-table" :data="state.data" stripe @sort-change="onChangeSort">
  34. <el-table-column prop="id" label="ID" min-width="90" sortable="custom"> </el-table-column>
  35. <el-table-column label="拼团商品信息" min-width="240">
  36. <template #default="scope">
  37. <div v-if="scope.row.goods" class="goods-item sa-flex">
  38. <sa-image class="mr-2" :url="scope.row.goods.image" size="40"></sa-image>
  39. <div>
  40. <div class="goods-title sa-table-line-1" @click="onOpenGoodsDetail(scope.row.goods_id)">
  41. {{ scope.row.goods.title || '-' }}
  42. </div>
  43. <div class="goods-num"> 成团人数:{{ scope.row.num }} </div>
  44. </div>
  45. </div>
  46. <div v-else>{{scope.row.goods_id}}</div>
  47. </template>
  48. </el-table-column>
  49. <el-table-column label="开团时间" width="172">
  50. <template #default="scope">
  51. {{ scope.row.createtime || '-' }}
  52. </template>
  53. </el-table-column>
  54. <el-table-column label="团长" min-width="124">
  55. <template #default="scope">
  56. <sa-user-profile :user="scope.row.user" :id="scope.row.user_id" />
  57. </template>
  58. </el-table-column>
  59. <el-table-column label="已参团成员" min-width="180">
  60. <template #default="scope">
  61. <el-scrollbar>
  62. <div class="sa-flex">
  63. <template v-for="item in scope.row.groupon_logs" :key="item">
  64. <sa-image class="avatar" :url="item.avatar" size="32" radius="16"></sa-image>
  65. </template>
  66. </div>
  67. </el-scrollbar>
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="剩余名额" min-width="90">
  71. <template #default="scope">
  72. {{ scope.row.num - scope.row.current_num }}
  73. </template>
  74. </el-table-column>
  75. <el-table-column label="组团有效时间" width="172">
  76. <template #default="scope">
  77. {{ scope.row.finish_time || '-' }}
  78. </template>
  79. </el-table-column>
  80. <el-table-column label="拼团状态" min-width="88">
  81. <template #default="scope">
  82. <div :class="`sa-color--${state.statusClass[scope.row.status]}`">
  83. {{ scope.row.status_text || '-' }}
  84. </div>
  85. </template>
  86. </el-table-column>
  87. <el-table-column fixed="right" label="操作" min-width="100">
  88. <template #default="scope">
  89. {if $auth->check('shopro/activity/groupon/detail')}
  90. <el-button type="primary" link @click="onDetail(scope.row.id)">查看详情</el-button>
  91. {/if}
  92. </template>
  93. </el-table-column>
  94. </el-table>
  95. </el-main>
  96. <el-footer class="sa-footer sa-flex sa-row-right">
  97. <sa-pagination v-model="pagination" @pagination-change="getData"></sa-pagination>
  98. </el-footer>
  99. </el-container>
  100. <sa-filter v-model="state.filter" @filter-change="onChangeFilter"></sa-filter>
  101. </div>