myIncome.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <template>
  2. <div class="app-container organization-index">
  3. <div class="title-container">
  4. <breadcrumb id="breadcrumb-container" class="breadcrumb-container"/>
  5. </div>
  6. <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card" style="margin-top: 10px;">
  7. <el-tab-pane label="大中型业务" name="major">
  8. <y-page-list-layout :page-list="majorIncome" :page-para="listQuery1" :get-page-list="getMyMajorIncome">
  9. <template slot="left">
  10. <el-date-picker v-model="findDate" type="daterange" align="center" unlink-panels
  11. range-separator="至" start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
  12. value-format="yyyy-MM-dd" style="float: left; width: 300px;">
  13. </el-date-picker>
  14. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="searchList()" round>搜索
  15. </el-button>
  16. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
  17. </el-button>
  18. <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
  19. </el-button>
  20. </template>
  21. <parentTable slot="table" :data="majorIncome.records" style=" width: 100%;">
  22. <el-table-column label="姓名" align="center">
  23. <template slot-scope="{row}">
  24. <span>{{ row.userName }}</span>
  25. </template>
  26. </el-table-column>
  27. <el-table-column label="人员类型" align="center">
  28. <template slot-scope="{row}">
  29. <span>{{ row.userType }}</span>
  30. </template>
  31. </el-table-column>
  32. <el-table-column label="产品号" width="200" align="center">
  33. <template slot-scope="{row}">
  34. <el-tag type="success">{{ row.reportNo }}</el-tag>
  35. </template>
  36. </el-table-column>
  37. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  38. <template slot-scope="{row}">
  39. <span>{{ row.name }}</span>
  40. </template>
  41. </el-table-column>
  42. <el-table-column label="项目分类" width="100" align="center" show-overflow-tooltip>
  43. <template slot-scope="{row}">
  44. <span>{{ row.businessCate }}</span>
  45. </template>
  46. </el-table-column>
  47. <el-table-column label="提成比例" align="center">
  48. <template slot-scope="{row}">
  49. <span>{{ row.ratio}}%</span>
  50. </template>
  51. </el-table-column>
  52. <el-table-column label="总提成额(¥)" align="center">
  53. <template slot-scope="{row}">
  54. <span>{{ row.totalAmount }}</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column label="分配比例" align="center">
  58. <template slot-scope="{row}">
  59. <span>{{ row.allotRatio*100 }}%</span>
  60. </template>
  61. </el-table-column>
  62. <el-table-column label="提成额(¥)" align="center">
  63. <template slot-scope="{row}">
  64. <span style="color:red">{{ row.commissionAmount }}</span>
  65. </template>
  66. </el-table-column>
  67. <el-table-column label="出报告日期" align="center">
  68. <template slot-scope="{row}">
  69. <span>{{ row.created }}</span>
  70. </template>
  71. </el-table-column>
  72. <el-table-column label="实收款(¥)" align="center">
  73. <template slot-scope="{row}">
  74. <span>{{ row.realAmount }}</span>
  75. </template>
  76. </el-table-column>
  77. <el-table-column label="提成日期" width="100" align="center">
  78. <template slot-scope="{row}">
  79. <span>{{ row.settleDate }}</span>
  80. </template>
  81. </el-table-column>
  82. </parentTable>
  83. </y-page-list-layout>
  84. </el-tab-pane>
  85. <el-tab-pane label="个贷业务" name="personal">
  86. </el-tab-pane>
  87. <el-tab-pane label="资产业务" name="assets">
  88. </el-tab-pane>
  89. </el-tabs>
  90. </div>
  91. </template>
  92. <script>
  93. import Breadcrumb from '@/components/Breadcrumb'
  94. import YPageListLayout from '@/components/YPageListLayout'
  95. export default {
  96. name: 'myIncome',
  97. components: {
  98. Breadcrumb,
  99. YPageListLayout
  100. },
  101. data() {
  102. return {
  103. activeName:'major',
  104. listQuery1: {
  105. page: 1,
  106. size: 10,
  107. descs: 'id',
  108. startDate:'2024-05-01 00:00:00',
  109. endDate:'2024-06-01 00:00:00',
  110. },
  111. pickerOptions: {
  112. shortcuts: [{
  113. text: '最近一周',
  114. onClick(picker) {
  115. const end = new Date();
  116. const start = new Date();
  117. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  118. picker.$emit('pick', [start, end]);
  119. }
  120. }, {
  121. text: '最近一个月',
  122. onClick(picker) {
  123. const end = new Date();
  124. const start = new Date();
  125. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  126. picker.$emit('pick', [start, end]);
  127. }
  128. }, {
  129. text: '最近三个月',
  130. onClick(picker) {
  131. const end = new Date();
  132. const start = new Date();
  133. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  134. picker.$emit('pick', [start, end]);
  135. }
  136. }]
  137. },
  138. findDate: [],
  139. majorIncome:{
  140. records:[]
  141. }
  142. }
  143. },
  144. created() {
  145. this.findDate.push(this.getDefaultStartDate());
  146. this.findDate.push(this.getDefaultEndDate());
  147. this.getMyMajorIncome();
  148. },
  149. methods: {
  150. getDefaultStartDate(){
  151. const currentDate = new Date();
  152. const currentYear = currentDate.getFullYear();
  153. var currentMonth = String(currentDate.getMonth()).padStart(2,"0");
  154. return currentYear+'-'+currentMonth+'-'+'23'
  155. },
  156. getDefaultEndDate(){
  157. const currentDate = new Date();
  158. const currentYear = currentDate.getFullYear();
  159. var currentMonth = String(currentDate.getMonth() + 1).padStart(2,"0");
  160. return currentYear+'-'+currentMonth+'-'+'22'
  161. },
  162. handleClick(tab, event) {
  163. if (tab.name==='major'){
  164. this.getMyMajorIncome();
  165. }
  166. },
  167. resetSearch() {
  168. this.$router.push({ query: {} });
  169. this.listQuery1 = {
  170. current: 1,
  171. size: 10,
  172. descs: 'id',
  173. }
  174. this.getMyMajorIncome()
  175. },
  176. searchList() {
  177. // 重置分页
  178. this.listQuery1.page = 1
  179. this.listQuery1.size = 10
  180. if (this.findDate){
  181. this.listQuery1.startDate = this.findDate[0]+' 00:00:00';
  182. this.listQuery1.endDate = this.findDate[1]+ ' 23:59:59';
  183. }
  184. this.getMyMajorIncome()
  185. },
  186. getMyMajorIncome(){
  187. this.$api.businessIncome.myMajorIncome(this.listQuery1).then(res=>{
  188. if (res.code === 200){
  189. this.majorIncome = res.data;
  190. }
  191. })
  192. }
  193. }
  194. }
  195. </script>
  196. <style scoped lang="scss">
  197. </style>