develop2.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <div>
  3. <el-card>
  4. <el-form :model="skillParams" ref="skillParams" class="clearfix topForm" style="float: left">
  5. <div class="leftForm-skill">
  6. <el-form-item class="pruductForm-skill" prop="saleUserId" label="渠道选择"
  7. :rules="[{ required: true, message: '请选择分销', trigger: 'blur' }]">
  8. <el-select v-model="skillParams.saleUserId" placeholder="请选择分销" style="width:160px">
  9. <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item class=" dateForm-skill" name="data" label="查询日期" style="display:flex">
  13. <el-date-picker style="width:140px" v-model="skillParams.startDay" type="date"
  14. placeholder="起"></el-date-picker>
  15. <el-date-picker style="width:140px" v-model="skillParams.endDay" type="date"
  16. placeholder="止"></el-date-picker>
  17. </el-form-item>
  18. </div>
  19. <el-form-item>
  20. <el-button type="primary" @click="submitForm">搜索</el-button>
  21. </el-form-item>
  22. </el-form>
  23. <el-table id="table" ref="table1" :data="tableData" border style="width: 100%" :height="tableHeight">
  24. <el-table-column label="日期" fixed align="left" header-align="center" min-width="140px">
  25. <template slot-scope="scope">
  26. <span>{{changeDate(scope.row.day)}}</span>
  27. </template>
  28. </el-table-column>
  29. <el-table-column label="渠道" fixed align="left" header-align="center" min-width="140px">
  30. <template slot-scope="scope">
  31. <span>{{changeDate(scope.row.day)}}</span>
  32. </template>
  33. </el-table-column>
  34. <el-table-column label="用户数量" header-align="center">
  35. <el-table-column label="当日新增" prop="dailyAdd" align="right" header-align="center"
  36. min-width="100px"></el-table-column>
  37. <el-table-column label="当日注销" prop="dailyLogout" align="right" header-align="center"
  38. min-width="100px"></el-table-column>
  39. <el-table-column label="净增量" prop="dailyNetCount" align="right" header-align="center"
  40. min-width="100px"></el-table-column>
  41. <el-table-column label="存量" prop="dailyStock" align="right" header-align="center"
  42. min-width="100px"></el-table-column>
  43. </el-table-column>
  44. <el-table-column label="新增订单数量" header-align="center">
  45. <el-table-column label="月包" prop="dailyAddMonthCount" align="right" header-align="center"
  46. min-width="100px"></el-table-column>
  47. <el-table-column label="年包" prop="dailyAddYearCount" align="right" header-align="center"
  48. min-width="100px"></el-table-column>
  49. <el-table-column label="终身" prop="dailyAddLifelongCount" align="right" header-align="center"
  50. min-width="100px"></el-table-column>
  51. <el-table-column label="小计" prop="dailyAddCount" align="right" header-align="center"
  52. min-width="100px"></el-table-column>
  53. </el-table-column>
  54. <el-table-column label="新增销售金额" header-align="center">
  55. <el-table-column label="月包" prop="dailyAddMonthAmount" align="right" header-align="center"
  56. min-width="100px"></el-table-column>
  57. <el-table-column label="年包" prop="dailyAddYearAmount" align="right" header-align="center"
  58. min-width="100px"></el-table-column>
  59. <el-table-column label="终身" prop="dailyAddLifelongAmount" align="right" header-align="center"
  60. min-width="100px"></el-table-column>
  61. <el-table-column label="小计" prop="dailyAddAmount" align="right" header-align="center"
  62. min-width="100px"></el-table-column>
  63. </el-table-column>
  64. <el-table-column label="退订订单数量" header-align="center">
  65. <el-table-column label="月包" prop="dailyRefundMonthCount" align="right" header-align="center"
  66. min-width="100px"></el-table-column>
  67. <el-table-column label="年包" prop="dailyRefundYearCount" align="right" header-align="center"
  68. min-width="100px"></el-table-column>
  69. <el-table-column label="终身" prop="dailyRefundLifelongCount" align="right" header-align="center"
  70. min-width="100px"></el-table-column>
  71. <el-table-column label="小计" prop="dailyRefundCount" align="right" header-align="center"
  72. min-width="100px"></el-table-column>
  73. </el-table-column>
  74. <el-table-column label="退订销售金额" header-align="center">
  75. <el-table-column label="月包" prop="dailyRefundMonthAmount" align="right" header-align="center"
  76. min-width="100px"></el-table-column>
  77. <el-table-column label="年包" prop="dailyRefundYearAmount" align="right" header-align="center"
  78. min-width="100px"></el-table-column>
  79. <el-table-column label="终身" prop="dailyRefundLifelongAmount" align="right" header-align="center"
  80. min-width="100px"></el-table-column>
  81. <el-table-column label="小计" prop="dailyRefundAmount" align="right" header-align="center"
  82. min-width="100px"></el-table-column>
  83. </el-table-column>
  84. </el-table>
  85. <el-pagination style="text-align: center;" @current-change="handleCurrentChange"
  86. :current-page.sync="pagination.pageNo" :page-size="pagination.pageSize" layout="total, prev, pager, next"
  87. :total="pagination.totalSize">
  88. </el-pagination>
  89. </el-card>
  90. </div>
  91. </template>
  92. <script>
  93. import formatDate from "../../utils/formatTime";
  94. import { getSaleUser, getChannelData } from '@/api/develop.js'
  95. export default {
  96. data() {
  97. return {
  98. tableHeight: 500,
  99. tableData: [],
  100. skillParams: {
  101. startDay: "",
  102. endDay: "",
  103. saleUserId: [],
  104. },
  105. pagination: {
  106. pageSize: 30,
  107. pageNo: 1,
  108. totalSize: 0
  109. },
  110. options: []
  111. };
  112. },
  113. async created() {
  114. this.skillParams.startDay = this.getYesterDay();
  115. this.skillParams.endDay = this.getYesterDay();
  116. this.tableHeight = document.documentElement.clientHeight * 0.75;
  117. let res = await getSaleUser()
  118. console.log(res.data, 'sss');
  119. this.options = res.data
  120. },
  121. methods: {
  122. // 搜索
  123. async submitForm() {
  124. this.skillParams.startDay = this.skillParams.startDay
  125. ? formatDate(this.skillParams.startDay, 2)
  126. : "";
  127. this.skillParams.endDay = this.skillParams.endDay
  128. ? formatDate(this.skillParams.endDay, 2)
  129. : "";
  130. this.$refs['skillParams'].validate(async valid => {
  131. if (valid) {
  132. let res = await getChannelData(Object.assign({
  133. saleUserId: this.skillParams.saleUserId,
  134. startDay: this.skillParams.startDay, endDay: this.skillParams.endDay
  135. }, this.pagination))
  136. console.log(res.data);
  137. this.tableData = res.data.list
  138. this.pagination.totalSize = res.data.totalSize
  139. this.pagination.pageNo = res.data.pageNo
  140. } else {
  141. return false;
  142. }
  143. });
  144. },
  145. handleCurrentChange(val) {
  146. console.log(`当前页: ${val}`);
  147. },
  148. getYesterDay() {
  149. let yesterday = new Date().getTime() - 86400000;
  150. return formatDate(yesterday, 2);
  151. },
  152. channelChange(val) {
  153. },
  154. columnZero() {
  155. return "0";
  156. },
  157. columnZeroPercent(row, column, index) {
  158. if (row.totalPayment && column.property === "yearlyConversion") {
  159. return "100.00%";
  160. } else {
  161. return "0.00%";
  162. }
  163. // if(row.)
  164. },
  165. changeDate(date) {
  166. return formatDate(date, 4)
  167. },
  168. }
  169. };
  170. </script>
  171. <style lang="less" scoped>
  172. .pruductForm-skill {
  173. margin-left: 10px;
  174. display: flex;
  175. }
  176. .topForm {
  177. display: flex;
  178. align-items: center;
  179. flex-direction: row;
  180. flex-shrink: 0;
  181. justify-content: space-between;
  182. }
  183. .leftForm-skill {
  184. display: flex;
  185. align-items: center;
  186. flex-direction: row;
  187. justify-content: space-between;
  188. }
  189. .dateForm-skill {
  190. margin-left: 18px;
  191. }
  192. </style>