index.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <template>
  2. <div class="app-container">
  3. <!-- 查询和其他操作 -->
  4. <div class="filter-container">
  5. <el-select
  6. v-model="listQuery.activityType" clearable size="mini" class="filter-item"
  7. style="width: 200px;" placeholder="请选择活动类型"
  8. >
  9. <el-option label="499" :value="1" />
  10. <el-option label="商圈" :value="2" />
  11. <el-option label="爆品" :value="3" />
  12. <el-option label="消费金" :value="4" />
  13. </el-select>
  14. <el-button
  15. size="mini" class="filter-item" type="primary" icon="el-icon-search"
  16. style="margin-left:10px;"
  17. @click="handleSearch"
  18. >
  19. 查找
  20. </el-button>
  21. <br />
  22. <el-button
  23. size="mini" type="primary" icon="el-icon-plus"
  24. @click="$refs.EditModal && $refs.EditModal.handleOpen({ ruleId: '' })"
  25. >
  26. 添加
  27. </el-button>
  28. </div>
  29. <!-- 查询结果 -->
  30. <div v-tableHeight>
  31. <el-table
  32. v-loading="listLoading" height="100%" element-loading-text="正在查询中。。。" :data="list"
  33. v-bind="{ stripe: true, size: 'small', border: true, fit: true, highlightCurrentRow: true }"
  34. >
  35. <el-table-column align="center" width="100" label="规则ID" prop="ruleId" fixed="left" />
  36. <el-table-column align="center" width="80" label="活动ID" prop="activityId" fixed="left" show-overflow-tooltip />
  37. <el-table-column align="center" width="100" label="关联活动" prop="activityName" fixed="left" show-overflow-tooltip />
  38. <el-table-column align="center" label="活动类型" prop="activityType">
  39. <template slot-scope="{ row }">
  40. <el-tag v-if="row.activityType === 5" effect="plain">消费金</el-tag>
  41. <el-tag v-else-if="row.activityType === 6" effect="plain">组合活动</el-tag>
  42. <span v-else>--</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column align="center" label="团长规则" prop="leadersRule">
  46. <template slot-scope="{ row }">
  47. <el-tag v-if="row.leadersRule === 1" type="success">比例</el-tag>
  48. <el-tag v-else-if="row.leadersRule === 2" type="warning">金额</el-tag>
  49. <span v-else>--</span>
  50. </template>
  51. </el-table-column>
  52. <el-table-column align="center" width="120" label="直接团长规则" prop="leadersMoney" show-overflow-tooltip />
  53. <el-table-column align="center" width="120" label="间接团长规则" prop="leadersInMoney" show-overflow-tooltip />
  54. <el-table-column align="center" label="合伙人规则" prop="partnerRule">
  55. <template slot-scope="{ row }">
  56. <el-tag v-if="row.partnerRule === 1" type="success">比例</el-tag>
  57. <el-tag v-else-if="row.partnerRule === 2" type="warning">金额</el-tag>
  58. <span v-else>--</span>
  59. </template>
  60. </el-table-column>
  61. <el-table-column align="center" width="120" label="直接合伙人规则" prop="partnerMoney" show-overflow-tooltip />
  62. <el-table-column align="center" width="120" label="间接合伙人规则" prop="partnerInMoney" show-overflow-tooltip />
  63. <el-table-column align="center" label="加盟商规则" prop="franchiseeRule">
  64. <template slot-scope="{ row }">
  65. <el-tag v-if="row.franchiseeRule === 1" type="success">比例</el-tag>
  66. <el-tag v-else-if="row.franchiseeRule === 2" type="warning">金额</el-tag>
  67. <span v-else>--</span>
  68. </template>
  69. </el-table-column>
  70. <el-table-column align="center" width="120" label="加盟商佣金规则" prop="franchiseeMoney" show-overflow-tooltip />
  71. <el-table-column align="center" label="社区店规则" prop="communityRule">
  72. <template slot-scope="{ row }">
  73. <el-tag v-if="row.communityRule === 1" type="success">比例</el-tag>
  74. <el-tag v-else-if="row.communityRule === 2" type="warning">金额</el-tag>
  75. <span v-else>--</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column align="center" width="120" label="社区店佣金规则" prop="communityMoney" show-overflow-tooltip />
  79. <el-table-column align="center" label="分佣来源" prop="sourceType">
  80. <template slot-scope="{ row }">
  81. <el-tag v-if="row.sourceType === 1">订单金额</el-tag>
  82. <el-tag v-else-if="row.sourceType === 2">赠送代金券</el-tag>
  83. <el-tag v-else-if="row.sourceType === 3">消费金</el-tag>
  84. <span v-else>--</span>
  85. </template>
  86. </el-table-column>
  87. <el-table-column align="center" width="150" label="创建时间" prop="createTime" />
  88. <el-table-column align="center" label="操作" width="220" fixed="right" class-name="small-padding fixed-width">
  89. <template slot-scope="{ row }">
  90. <el-button type="warning" size="mini" @click="handleDetail(row)">
  91. 详情
  92. </el-button>
  93. <el-button size="mini" @click="handleEdit(row)">
  94. 编辑
  95. </el-button>
  96. <el-button type="danger" size="mini" @click="handleDelete(row)">
  97. 删除
  98. </el-button>
  99. </template>
  100. </el-table-column>
  101. </el-table>
  102. </div>
  103. <div>
  104. <el-pagination
  105. :current-page="listQuery.page" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.pageSize"
  106. layout="total, sizes, prev, pager, next, jumper" :total="total"
  107. @size-change="(val) => ((listQuery.pageSize = val) && getList())"
  108. @current-change="(val) => ((listQuery.page = val) && getList())"
  109. />
  110. </div>
  111. <!-- 新增编辑 -->
  112. <EditModal ref="EditModal" @success="getList" />
  113. <!-- 查看详情 -->
  114. <DetailModal ref="DetailModal" />
  115. </div>
  116. </template>
  117. <script>
  118. import EditModal from './components/EditModal'
  119. import DetailModal from './components/DetailModal'
  120. import { getAllPlatformBeeRule, deleteIdPlatformBeeRule } from '@/api/commissionAllocation/gradeCommission'
  121. export default {
  122. name: 'GradeCommission',
  123. components: {
  124. EditModal,
  125. DetailModal
  126. },
  127. data() {
  128. return {
  129. list: [],
  130. total: 0,
  131. listLoading: true,
  132. listQuery: {
  133. page: 1,
  134. pageSize: 20,
  135. activityType: ''
  136. }
  137. }
  138. },
  139. created() {
  140. this.getList()
  141. },
  142. methods: {
  143. async getList() {
  144. this.listLoading = true
  145. try {
  146. const res = await getAllPlatformBeeRule(this.listQuery)
  147. this.list = res.data.list
  148. this.total = res.data.total
  149. } finally {
  150. this.listLoading = false
  151. }
  152. },
  153. handleSearch() {
  154. this.listQuery.page = 1
  155. this.getList()
  156. },
  157. handleDetail(row) {
  158. this.$refs.DetailModal && this.$refs.DetailModal.handleOpen(row)
  159. },
  160. handleEdit(row) {
  161. this.$refs.EditModal && this.$refs.EditModal.handleOpen(row)
  162. },
  163. handleDelete(row) {
  164. this.$confirm('确定删除此项?')
  165. .then(async () => {
  166. await deleteIdPlatformBeeRule({ id: row.ruleId })
  167. this.$message({ message: '删除成功!', type: 'success' })
  168. this.handleSearch()
  169. })
  170. .catch(() => {})
  171. }
  172. }
  173. }
  174. </script>
  175. <style lang="scss" scoped>
  176. .app-container {
  177. padding: 20px;
  178. display: flex;
  179. flex-direction: column;
  180. .filter-container {
  181. .filter-item {
  182. display: inline-block;
  183. vertical-align: middle;
  184. margin-bottom: 10px;
  185. }
  186. }
  187. .small-padding {
  188. .cell {
  189. padding-left: 5px;
  190. padding-right: 5px;
  191. }
  192. }
  193. .fixed-width {
  194. .el-button--mini {
  195. padding: 7px 10px;
  196. }
  197. }
  198. }
  199. </style>