myIncome.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  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 range-separator="至"
  11. 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()"
  15. round>搜索
  16. </el-button>
  17. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置
  18. </el-button>
  19. <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
  20. </el-button>
  21. </template>
  22. <parentTable slot="table" :data="majorIncome.records" style=" width: 100%;">
  23. <el-table-column label="姓名" align="center">
  24. <template slot-scope="{row}">
  25. <span>{{ row.userName }}</span>
  26. </template>
  27. </el-table-column>
  28. <el-table-column label="人员类型" align="center">
  29. <template slot-scope="{row}">
  30. <span>{{ row.userType }}</span>
  31. </template>
  32. </el-table-column>
  33. <el-table-column label="产品号" width="200" align="center">
  34. <template slot-scope="{row}">
  35. <el-tag type="success">{{ row.reportNo }}</el-tag>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  39. <template slot-scope="{row}">
  40. <span>{{ row.name }}</span>
  41. </template>
  42. </el-table-column>
  43. <el-table-column label="项目分类" width="100" align="center" show-overflow-tooltip>
  44. <template slot-scope="{row}">
  45. <span>{{ row.businessCate }}</span>
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="提成比例" align="center">
  49. <template slot-scope="{row}">
  50. <span>{{ row.ratio }}%</span>
  51. </template>
  52. </el-table-column>
  53. <el-table-column label="总提成额(¥)" align="center">
  54. <template slot-scope="{row}">
  55. <span>{{ row.totalAmount }}</span>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="分配比例" align="center">
  59. <template slot-scope="{row}">
  60. <span>{{ row.allotRatio * 100 }}%</span>
  61. </template>
  62. </el-table-column>
  63. <el-table-column label="提成额(¥)" align="center">
  64. <template slot-scope="{row}">
  65. <span style="color:red">{{ row.commissionAmount }}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="出报告日期" align="center">
  69. <template slot-scope="{row}">
  70. <span>{{ row.created }}</span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column label="实收款(¥)" align="center">
  74. <template slot-scope="{row}">
  75. <span>{{ row.realAmount }}</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column label="提成日期" width="100" align="center">
  79. <template slot-scope="{row}">
  80. <span>{{ row.settleDate }}</span>
  81. </template>
  82. </el-table-column>
  83. </parentTable>
  84. </y-page-list-layout>
  85. </el-tab-pane>
  86. <el-tab-pane label="个贷业务" name="personal">
  87. </el-tab-pane>
  88. <el-tab-pane label="资产业务" name="assets">
  89. <y-page-list-layout :page-list="assetsIncome" :page-para="listQuery2" :get-page-list="getMyAssetsIncome">
  90. <template slot="left">
  91. <el-date-picker v-model="findDate" type="daterange" align="center" unlink-panels range-separator="至"
  92. start-placeholder="统计日期(开始)" end-placeholder="统计日期(结束)" :picker-options="pickerOptions"
  93. value-format="yyyy-MM-dd" style="float: left; width: 300px;">
  94. </el-date-picker>
  95. <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary"
  96. @click="searchListAssets()" round>搜索
  97. </el-button>
  98. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearchAssets()">重置
  99. </el-button>
  100. <el-button class="filter-item" style="float: left;" round type="info" @click="exportDetail()">导出
  101. </el-button>
  102. </template>
  103. <parentTable slot="table" :data="assetsIncome.records" style=" width: 100%;">
  104. <el-table-column label="姓名" align="center">
  105. <template slot-scope="{row}">
  106. <span>{{ row.userName }}</span>
  107. </template>
  108. </el-table-column>
  109. <el-table-column label="人员类型" align="center">
  110. <template slot-scope="{row}">
  111. <span>{{ row.userType }}</span>
  112. </template>
  113. </el-table-column>
  114. <el-table-column label="产品号" width="200" align="center">
  115. <template slot-scope="{row}">
  116. <el-tag type="success">{{ row.reportNo }}</el-tag>
  117. </template>
  118. </el-table-column>
  119. <el-table-column label="项目名称" width="200" align="center" show-overflow-tooltip>
  120. <template slot-scope="{row}">
  121. <span>{{ row.name }}</span>
  122. </template>
  123. </el-table-column>
  124. <el-table-column label="项目分类" width="100" align="center" show-overflow-tooltip>
  125. <template slot-scope="{row}">
  126. <span>{{ row.businessCate }}</span>
  127. </template>
  128. </el-table-column>
  129. <el-table-column label="提成比例" align="center">
  130. <template slot-scope="{row}">
  131. <span>{{ row.ratio }}%</span>
  132. </template>
  133. </el-table-column>
  134. <el-table-column label="总提成额(¥)" align="center">
  135. <template slot-scope="{row}">
  136. <span>{{ row.totalAmount }}</span>
  137. </template>
  138. </el-table-column>
  139. <el-table-column label="分配比例" align="center">
  140. <template slot-scope="{row}">
  141. <span>{{ row.allotRatio * 100 }}%</span>
  142. </template>
  143. </el-table-column>
  144. <el-table-column label="提成额(¥)" align="center">
  145. <template slot-scope="{row}">
  146. <span style="color:red">{{ row.commissionAmount }}</span>
  147. </template>
  148. </el-table-column>
  149. <el-table-column label="出报告日期" align="center">
  150. <template slot-scope="{row}">
  151. <span>{{ row.created }}</span>
  152. </template>
  153. </el-table-column>
  154. <el-table-column label="实收款(¥)" align="center">
  155. <template slot-scope="{row}">
  156. <span>{{ row.realAmount }}</span>
  157. </template>
  158. </el-table-column>
  159. <el-table-column label="提成日期" width="100" align="center">
  160. <template slot-scope="{row}">
  161. <span>{{ row.settleDate }}</span>
  162. </template>
  163. </el-table-column>
  164. </parentTable>
  165. </y-page-list-layout>
  166. </el-tab-pane>
  167. </el-tabs>
  168. </div>
  169. </template>
  170. <script>
  171. import Breadcrumb from '@/components/Breadcrumb'
  172. import YPageListLayout from '@/components/YPageListLayout'
  173. export default {
  174. name: 'myIncome',
  175. components: {
  176. Breadcrumb,
  177. YPageListLayout
  178. },
  179. data() {
  180. return {
  181. activeName: 'major',
  182. listQuery1: {
  183. page: 1,
  184. size: 10,
  185. descs: 'id',
  186. startDate: '2024-05-01 00:00:00',
  187. endDate: '2024-06-01 00:00:00',
  188. },
  189. listQuery2: {
  190. page: 1,
  191. size: 10,
  192. descs: 'id',
  193. startDate: '',
  194. endDate: '',
  195. },
  196. pickerOptions: {
  197. shortcuts: [{
  198. text: '最近一周',
  199. onClick(picker) {
  200. const end = new Date();
  201. const start = new Date();
  202. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  203. picker.$emit('pick', [start, end]);
  204. }
  205. }, {
  206. text: '最近一个月',
  207. onClick(picker) {
  208. const end = new Date();
  209. const start = new Date();
  210. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  211. picker.$emit('pick', [start, end]);
  212. }
  213. }, {
  214. text: '最近三个月',
  215. onClick(picker) {
  216. const end = new Date();
  217. const start = new Date();
  218. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  219. picker.$emit('pick', [start, end]);
  220. }
  221. }]
  222. },
  223. findDate: [],
  224. majorIncome: {
  225. records: []
  226. },
  227. assetsIncome: {
  228. records: []
  229. }
  230. }
  231. },
  232. created() {
  233. this.findDate.push(this.getDefaultStartDate());
  234. this.findDate.push(this.getDefaultEndDate());
  235. this.getMyMajorIncome();
  236. },
  237. methods: {
  238. getDefaultStartDate() {
  239. const currentDate = new Date();
  240. const currentYear = currentDate.getFullYear();
  241. var currentMonth = String(currentDate.getMonth()).padStart(2, "0");
  242. return currentYear + '-' + currentMonth + '-' + '23'
  243. },
  244. getDefaultEndDate() {
  245. const currentDate = new Date();
  246. const currentYear = currentDate.getFullYear();
  247. var currentMonth = String(currentDate.getMonth() + 1).padStart(2, "0");
  248. return currentYear + '-' + currentMonth + '-' + '22'
  249. },
  250. handleClick(tab, event) {
  251. if (tab.name === 'major') {
  252. this.getMyMajorIncome();
  253. }
  254. if (tab.name === 'assets') {
  255. this.getMyAssetsIncome();
  256. }
  257. },
  258. resetSearch() {
  259. this.$router.push({ query: {} });
  260. this.listQuery1 = {
  261. current: 1,
  262. size: 10,
  263. descs: 'id',
  264. }
  265. this.getMyMajorIncome()
  266. },
  267. resetSearchAssets() {
  268. this.$router.push({ query: {} });
  269. this.listQuery2 = {
  270. current: 1,
  271. size: 10,
  272. descs: 'id',
  273. }
  274. this.getMyAssetsIncome();
  275. },
  276. searchList() {
  277. // 重置分页
  278. this.listQuery1.page = 1
  279. this.listQuery1.size = 10
  280. if (this.findDate) {
  281. this.listQuery1.startDate = this.findDate[0] + ' 00:00:00';
  282. this.listQuery1.endDate = this.findDate[1] + ' 23:59:59';
  283. }
  284. this.getMyMajorIncome()
  285. },
  286. searchListAssets() {
  287. this.listQuery2.page = 1
  288. this.listQuery2.size = 10
  289. if (this.findDate) {
  290. this.listQuery2.startDate = this.findDate[0] + ' 00:00:00';
  291. this.listQuery2.endDate = this.findDate[1] + ' 23:59:59';
  292. }
  293. this.getMyAssetsIncome();
  294. },
  295. getMyMajorIncome() {
  296. this.$api.businessIncome.myMajorIncome(this.listQuery1).then(res => {
  297. if (res.code === 200) {
  298. this.majorIncome = res.data;
  299. }
  300. })
  301. },
  302. getMyAssetsIncome() {
  303. this.$api.businessIncome.myAssetsIncome(this.listQuery2).then(res => {
  304. if (res.code === 200) {
  305. this.assetsIncome = res.data;
  306. }
  307. })
  308. }
  309. }
  310. }
  311. </script>
  312. <style scoped lang="scss"></style>