index.vue 8.0 KB

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