unsettled.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <div id="app" v-cloak>
  2. <el-card shadow="never" style="border:0" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  3. <div slot="header">
  4. <span>未结算明细</span>
  5. </div>
  6. <div class="table-body">
  7. <el-form ref="form" style="margin-bottom: 10px;" :model="search" label-width="96px" size="mini">
  8. <el-row :gutter="24">
  9. <el-col :span="6" style="padding-left: 0;">
  10. <el-form-item label="订单编号">
  11. <el-input v-model="search.order_no" placeholder="请输入订单编号" clearable></el-input>
  12. </el-form-item>
  13. </el-col>
  14. <el-col :span="4" style="padding-left: 0;">
  15. <el-form-item label="用户ID">
  16. <el-input v-model="search.user_id" placeholder="请输入用户ID" clearable></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="4">
  20. <el-form-item label="分红类型">
  21. <el-select v-model="search.type" placeholder="请选择分红类型">
  22. <el-option label="永久分红" value="1"></el-option>
  23. <el-option label="额外分红" value="2"></el-option>
  24. </el-select>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="4">
  28. <el-form-item label="结算状态">
  29. <el-select v-model="search.is_settlement" placeholder="请选择结算状态">
  30. <el-option label="待结算" value="0"></el-option>
  31. <el-option label="已结算" value="1"></el-option>
  32. </el-select>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="6">
  36. <el-button type="primary" class="search_button all_button" size="small" @click="toSearch" >搜索</el-button>
  37. <el-button type="danger" class="search_button all_button" size="small" @click="resetSearch" >清除</el-button>
  38. </el-col>
  39. </el-row>
  40. </el-form>
  41. <el-tabs v-model="activeName">
  42. <el-table :data="list" stripe v-loading="loading" size="small" style="margin-bottom: 15px;">
  43. <el-table-column prop="id" width="100" label="ID" align="center"></el-table-column>
  44. <el-table-column label="股东ID" prop="user_id" label="ID" align="center"></el-table-column>
  45. <el-table-column label="股东信息" align="left">
  46. <template slot-scope="scope">
  47. <div v-if="scope.row.user">
  48. <com-image style="float: left;margin-right: 5px;" class="avatar_url"
  49. mode="aspectFill" :src="scope.row.user.avatar_url ? scope.row.user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  50. <div>{{scope.row.user.nickname}}<br/>{{scope.row.user.mobile}}</div>
  51. </div>
  52. <div v-else></div>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="分红类型">
  56. <template slot-scope="scope">
  57. <div>{{ commonission_type[scope.row.type] ?? '--' }}</div>
  58. </template>
  59. </el-table-column>
  60. <el-table-column label="股东等级" align="left">
  61. <template slot-scope="scope">
  62. <div>{{ boss_levels[scope.row.level] ?? '--' }}</div>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="订单号" prop="order_no" align="center">
  66. <template slot-scope="scope">
  67. <div>{{ scope.row.order_no ?? '沉淀池分红' }}</div>
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="总人数" prop="total_num" align="center"></el-table-column>
  71. <el-table-column label="结算人数" prop="average_count" align="center"></el-table-column>
  72. <el-table-column label="结算总金额" prop="amounts" align="center"></el-table-column>
  73. <el-table-column label="可得分红" prop="commission" align="center"></el-table-column>
  74. <el-table-column label="状态">
  75. <template slot-scope="scope">
  76. <el-tag v-if="scope.row.is_settlement == 0" type="danger">未结算</el-tag>
  77. <el-tag v-if="scope.row.is_settlement == 1" type="success">已结算</el-tag>
  78. </template>
  79. </el-table-column>
  80. <el-table-column prop="created_at" label="创建时间" align="center">
  81. <template slot-scope="scope">
  82. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  83. </template>
  84. </el-table-column>
  85. </el-table>
  86. </el-tabs>
  87. <div style="text-align: right;margin: 20px 0;">
  88. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount"></el-pagination>
  89. </div>
  90. </div>
  91. </el-card>
  92. </div>
  93. <script>
  94. const app = new Vue({
  95. el: '#app',
  96. data: {
  97. loading: false,
  98. activeName: '-1',
  99. list: [],
  100. commonission_type: [],
  101. boss_levels: [],
  102. page: 1,
  103. pageCount: 0,
  104. search: {
  105. user_id: null,
  106. order_no: null,
  107. is_settlement: null,
  108. }
  109. },
  110. mounted() {
  111. this.loadData();
  112. },
  113. methods: {
  114. loadData() {
  115. let self = this;
  116. self.loading = true;
  117. let basic_params = {
  118. r: 'boss/commission/unsettled',
  119. page: self.page,
  120. };
  121. basic_params = Object.assign(basic_params, this.search);
  122. request({
  123. params: basic_params,
  124. method: 'get',
  125. }).then(e => {
  126. this.loading = false;
  127. if (e.data.code == 0) {
  128. self.list = e.data.data.list.list;
  129. self.commonission_type = e.data.data.commonission_type;
  130. self.boss_levels = e.data.data.boss_levels;
  131. self.pageCount = e.data.data.list.page_count;
  132. } else {
  133. self.$message.error(e.data.msg);
  134. }
  135. }).catch(e => {
  136. self.loading = false;
  137. });
  138. },
  139. pagination(currentPage) {
  140. let self = this;
  141. self.page = currentPage;
  142. self.loadData();
  143. },
  144. toSearch() {
  145. this.page = 1;
  146. this.loadData();
  147. },
  148. resetSearch() {
  149. this.search = {
  150. user_id: null,
  151. order_no: null,
  152. is_settlement: null,
  153. }
  154. }
  155. }
  156. });
  157. </script>