index.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  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-tabs v-model="activeName" @tab-click="handleClick">
  8. <el-tab-pane label="提成明细" name="commission">
  9. <el-form ref="form" style="margin-bottom: 10px;" :model="search" label-width="96px" size="mini">
  10. <el-row :gutter="24">
  11. <el-col :span="6" style="padding-left: 0;" class="top_form">
  12. <el-form-item label="订单编号">
  13. <el-input v-model="search.order_no" placeholder="请输入订单编号" clearable></el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="4" style="padding-left: 0;" class="top_form">
  17. <el-form-item label="奖励用户ID">
  18. <el-input v-model="search.user_id" placeholder="请输入奖励用户ID" clearable></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="8" class="top_form">
  22. <el-form-item label="奖励手机号">
  23. <el-input v-model="search.mobile" placeholder="奖励用户手机号" clearable></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="4" class="top_form">
  27. <el-form-item label="佣金状态">
  28. <el-select v-model="search.settlement_type" placeholder="请选择佣金状态">
  29. <!-- <el-option label="全部" value=""></el-option>-->
  30. <el-option v-for="(name,index) in settlement_type_arr" :label="name" :value="index" :key="index"></el-option>
  31. </el-select>
  32. </el-form-item>
  33. </el-col>
  34. </el-row>
  35. <el-row :gutter="24">
  36. <el-col :span="6" class="top_form">
  37. <el-form-item label="团队等级">
  38. <el-select v-model="search.level" placeholder="请选择团队等级" style="width: 265px;">
  39. <el-option label="全部" value=""></el-option>
  40. <el-option v-for="(name,level) in level_arr" :label="name" :value="level" :key="level"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="5" class="top_form">
  45. <el-form-item label="奖励类型">
  46. <el-select v-model="search.capital_type" placeholder="请选择奖励类型" style="width: 203px;">
  47. <el-option label="全部" value=""></el-option>
  48. <el-option v-for="(name,index) in capital_type_arr" :label="name" :value="index" :key="index"></el-option>
  49. </el-select>
  50. </el-form-item>
  51. </el-col>
  52. <el-col :span="6" class="top_form">
  53. <el-form-item label="创建时间">
  54. <el-date-picker
  55. v-model="search.time"
  56. type="datetimerange"
  57. range-separator="至"
  58. start-placeholder="开始日期"
  59. end-placeholder="结束日期"
  60. value-format="yyyy-MM-dd HH:mm:ss"
  61. @change="addTimeChange"
  62. :default-time="['00:00:00', '23:59:59']"
  63. >
  64. </el-date-picker>
  65. </el-form-item>
  66. </el-col>
  67. </el-row>
  68. <el-row :gutter="12">
  69. <el-col style="display: flex; justify-content: center;">
  70. <el-button type="primary" class="search_button all_button" size="small" @click="toSearch" >搜索</el-button>
  71. <el-button type="danger" class="search_button all_button" size="small" @click="resetSearch" >清除</el-button>
  72. </el-col>
  73. </el-row>
  74. </el-form>
  75. <el-table :data="list" stripe v-loading="loading" size="small" style="margin-bottom: 15px;">
  76. <el-table-column prop="id" width="80" label="序号" align="center"></el-table-column>
  77. <el-table-column label="消费者" align="center" width="160">
  78. <template slot-scope="scope">
  79. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.buyuser.avatar_url ? scope.row.buyuser.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  80. <div>{{scope.row.buyuser.nickname}}<br/>{{scope.row.buyuser.mobile}}</div>
  81. </template>
  82. </el-table-column>
  83. <el-table-column label="奖励用户ID" prop="user_id" label="ID" align="center"></el-table-column>
  84. <el-table-column label="奖励用户" align="center" width="160">
  85. <template slot-scope="scope">
  86. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.user.avatar_url ? scope.row.user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  87. <div>{{scope.row.user.nickname}}<br/>{{scope.row.user.mobile}}</div>
  88. </template>
  89. </el-table-column>
  90. <el-table-column prop="order_no" width="220" label="订单编号" align="center"></el-table-column>
  91. <el-table-column width="110" label="等级" align="center">
  92. <template slot-scope="scope">
  93. {{ level_arr[scope.row.lduser.level] }}
  94. </template>
  95. </el-table-column>
  96. <el-table-column prop="source_text" label="奖励类型" align="center">
  97. <template slot-scope="scope">
  98. {{ capital_type_arr[scope.row.capital_type] }}
  99. </template>
  100. </el-table-column>
  101. <el-table-column label="订单金额" prop="pay_money" align="center"></el-table-column>
  102. <el-table-column label="佣金金额" prop="money" align="center"></el-table-column>
  103. <el-table-column label="奖励方式" prop="reward_currency" align="center">
  104. <template slot-scope="scope">
  105. {{ reward_currency_arr[scope.row.reward_currency] }}
  106. </template>
  107. </el-table-column>
  108. <el-table-column label="结算状态" prop="status" align="center">
  109. <template slot-scope="scope">
  110. {{ settlement_type_arr[scope.row.settlement_type] }}
  111. </template>
  112. </el-table-column>
  113. <el-table-column prop="created_at" width="200" label="创建时间" align="center">
  114. <template slot-scope="scope">
  115. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  116. </template>
  117. </el-table-column>
  118. </el-table>
  119. </el-tab-pane>
  120. <el-tab-pane label="冻结基金" name="frozen">
  121. <el-form ref="form" style="margin-bottom: 10px;" :model="search" label-width="96px" size="mini">
  122. <el-row :gutter="12">
  123. <el-col :span="6" style="padding-left: 0;" class="top_form">
  124. <el-form-item label="订单编号">
  125. <el-input v-model="search.order_no" placeholder="请输入订单编号" clearable></el-input>
  126. </el-form-item>
  127. </el-col>
  128. <el-col :span="4" style="padding-left: 0;" class="top_form">
  129. <el-form-item label="冻结用户ID">
  130. <el-input v-model="search.user_id" placeholder="请输入冻结用户ID" clearable></el-input>
  131. </el-form-item>
  132. </el-col>
  133. <el-col :span="5" class="top_form">
  134. <el-form-item label="冻结手机号">
  135. <el-input v-model="search.mobile" placeholder="冻结用户手机号" clearable></el-input>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :span="6" class="top_form">
  139. <el-form-item label="团队等级">
  140. <el-select v-model="search.level" placeholder="请选择团队等级" style="width: 265px;">
  141. <el-option label="全部" value=""></el-option>
  142. <el-option v-for="(name,level) in level_arr" :label="name" :value="level" :key="level"></el-option>
  143. </el-select>
  144. </el-form-item>
  145. </el-col>
  146. <el-col :span="6" class="top_form">
  147. <el-form-item label="创建时间">
  148. <el-date-picker
  149. v-model="search.time"
  150. type="datetimerange"
  151. range-separator="至"
  152. start-placeholder="开始日期"
  153. end-placeholder="结束日期"
  154. value-format="yyyy-MM-dd HH:mm:ss"
  155. @change="addTimeChange"
  156. :default-time="['00:00:00', '23:59:59']"
  157. >
  158. </el-date-picker>
  159. </el-form-item>
  160. </el-col>
  161. </el-row>
  162. <el-row :gutter="12">
  163. <el-col style="display: flex; justify-content: center;">
  164. <el-button type="primary" class="search_button all_button" size="small" @click="toSearch" >搜索</el-button>
  165. <el-button type="danger" class="search_button all_button" size="small" @click="resetSearch" >清除</el-button>
  166. </el-col>
  167. </el-row>
  168. </el-form>
  169. <el-table :data="list" stripe v-loading="loading" size="small" style="margin-bottom: 15px;">
  170. <el-table-column prop="id" width="80" label="序号" align="center"></el-table-column>
  171. <el-table-column label="消费者" align="center" width="160">
  172. <template slot-scope="scope">
  173. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.buyuser.avatar_url ? scope.row.buyuser.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  174. <div>{{scope.row.buyuser.nickname}}<br/>{{scope.row.buyuser.mobile}}</div>
  175. </template>
  176. </el-table-column>
  177. <el-table-column label="冻结用户ID" prop="user_id" align="center"></el-table-column>
  178. <el-table-column label="冻结用户" align="center" width="160">
  179. <template slot-scope="scope">
  180. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.user.avatar_url ? scope.row.user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  181. <div>{{scope.row.user.nickname}}<br/>{{scope.row.user.mobile}}</div>
  182. </template>
  183. </el-table-column>
  184. <el-table-column prop="order_no" width="220" label="订单编号" align="center"></el-table-column>
  185. <el-table-column width="110" label="等级" align="center">
  186. <template slot-scope="scope">
  187. {{ level_arr[scope.row.lduser.level] }}
  188. </template>
  189. </el-table-column>
  190. <el-table-column prop="source_text" label="奖励类型" align="center">
  191. <template slot-scope="scope">
  192. {{ capital_type_arr[scope.row.capital_type] }}
  193. </template>
  194. </el-table-column>
  195. <el-table-column label="解冻基金" prop="money" align="center"></el-table-column>
  196. <el-table-column label="解冻基金类型" prop="reward_currency" align="center">
  197. <template slot-scope="scope">
  198. {{ reward_currency_arr[scope.row.reward_currency] }}
  199. </template>
  200. </el-table-column>
  201. <el-table-column label="结算状态" prop="status" align="center">
  202. <template slot-scope="scope">
  203. {{ settlement_type_arr[scope.row.settlement_type] }}
  204. </template>
  205. </el-table-column>
  206. <el-table-column prop="created_at" width="200" label="创建时间" align="center">
  207. <template slot-scope="scope">
  208. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  209. </template>
  210. </el-table-column>
  211. </el-table>
  212. </el-tab-pane>
  213. <el-tab-pane label="冻结基金清零明细" name="frozen-fund-clear">
  214. <el-form ref="form" style="margin-bottom: 10px;" :model="search" label-width="96px" size="mini">
  215. <el-row :gutter="12">
  216. <el-col :span="4" style="padding-left: 0;" class="top_form">
  217. <el-form-item label="冻结用户ID">
  218. <el-input v-model="search.user_id" placeholder="请输入冻结用户ID" clearable></el-input>
  219. </el-form-item>
  220. </el-col>
  221. <el-col :span="5" class="top_form">
  222. <el-form-item label="冻结手机号">
  223. <el-input v-model="search.mobile" placeholder="冻结用户手机号" clearable></el-input>
  224. </el-form-item>
  225. </el-col>
  226. <el-col :span="6" class="top_form">
  227. <el-form-item label="冻结月份">
  228. <!-- <el-date-picker-->
  229. <!-- v-model="search.time"-->
  230. <!-- type="datetimerange"-->
  231. <!-- range-separator="至"-->
  232. <!-- start-placeholder="开始日期"-->
  233. <!-- end-placeholder="结束日期"-->
  234. <!-- value-format="yyyy-MM"-->
  235. <!-- @change="addTimeChange"-->
  236. <!-- :default-time="['00:00:00', '23:59:59']"-->
  237. <!-- >-->
  238. <!-- </el-date-picker>-->
  239. <el-date-picker v-model="search.month" type="month" value-format="yyyy-MM" @blur="forceChange" placeholder="选择月份">
  240. </el-date-picker>
  241. </el-form-item>
  242. </el-col>
  243. </el-row>
  244. <el-row :gutter="12">
  245. <el-col style="display: flex; justify-content: center;">
  246. <el-button type="primary" class="search_button all_button" size="small" @click="toSearch" >搜索</el-button>
  247. <el-button type="danger" class="search_button all_button" size="small" @click="resetSearch" >清除</el-button>
  248. </el-col>
  249. </el-row>
  250. </el-form>
  251. <el-table :data="list" stripe v-loading="loading" size="small" style="margin-bottom: 15px;">
  252. <el-table-column prop="id" width="80" label="序号" align="center"></el-table-column>
  253. <el-table-column label="冻结用户ID" prop="user_id" align="center"></el-table-column>
  254. <el-table-column label="冻结用户" align="center" width="160">
  255. <template slot-scope="scope">
  256. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.user.avatar_url ? scope.row.user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  257. <div>{{scope.row.user.nickname}}<br/>{{scope.row.user.mobile}}</div>
  258. </template>
  259. </el-table-column>
  260. <el-table-column prop="money" width="220" label="冻结清零资金" align="center">
  261. <template slot-scope="scope">
  262. {{scope.row.money * -1}}
  263. </template>
  264. </el-table-column>
  265. <el-table-column prop="time_text" label="冻结资金清零月份" align="center">
  266. <template slot-scope="scope">
  267. {{scope.row.time_txt}}
  268. </template>
  269. </el-table-column>
  270. <el-table-column prop="created_at" width="200" label="冻结清零资金时间" align="center">
  271. <template slot-scope="scope">
  272. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  273. </template>
  274. </el-table-column>
  275. </el-table>
  276. </el-tab-pane>
  277. <el-tab-pane label="冻结基金转上级" name="frozen-fund-transfer-parent">
  278. <el-form ref="form" style="margin-bottom: 10px;" :model="search" label-width="96px" size="mini">
  279. <el-row :gutter="12">
  280. <el-col :span="4">
  281. <el-form-item label="上级用户ID">
  282. <el-input v-model="search.user_id" placeholder="请输入上级用户ID" clearable></el-input>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :span="4">
  286. <el-form-item label="转冻结基金用户ID" label-width="130px">
  287. <el-input v-model="search.from_user_id" placeholder="请输入转让用户ID" clearable></el-input>
  288. </el-form-item>
  289. </el-col>
  290. <el-col :span="4" style="display: flex; justify-content: center;">
  291. <el-button type="primary" class="search_button all_button" size="small" @click="toSearch" >搜索</el-button>
  292. <el-button type="danger" class="search_button all_button" size="small" @click="resetSearch" >清除</el-button>
  293. </el-col>
  294. </el-row>
  295. </el-form>
  296. <el-table :data="list" stripe v-loading="loading" size="small" style="margin-bottom: 15px;">
  297. <el-table-column label="上级用户ID" align="center" prop="user_id"></el-table-column>
  298. <el-table-column label="上级用户" align="center" width="160">
  299. <template slot-scope="scope">
  300. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.user.avatar_url ? scope.row.user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  301. <div>{{scope.row.user.nickname}}<br/>{{scope.row.user.mobile}}</div>
  302. </template>
  303. </el-table-column>
  304. <el-table-column label="转冻结基金用户ID" align="center" prop="operation_id"></el-table-column>
  305. <el-table-column label="转冻结基金用户" align="center" width="160">
  306. <template slot-scope="scope">
  307. <com-image style="float: left;margin-right: 5px;" class="avatar_url" mode="aspectFill" :src="scope.row.from_user.avatar_url ? scope.row.from_user.avatar_url : '/resources/img/common/default-avatar.png'"></com-image>
  308. <div>{{scope.row.from_user.nickname}}<br/>{{scope.row.from_user.mobile}}</div>
  309. </template>
  310. </el-table-column>
  311. <el-table-column label="奖励类型" align="center">
  312. <template slot-scope="scope">
  313. {{ reward_currency_arr[scope.row.reward_currency] }}
  314. </template>
  315. </el-table-column>
  316. <el-table-column prop="money" label="佣金金额" align="center"></el-table-column>
  317. <el-table-column prop="created_at" width="200" label="转冻结基金时间" align="center">
  318. <template slot-scope="scope">
  319. {{scope.row.created_at|dateTimeFormat('Y-m-d H:i:s')}}
  320. </template>
  321. </el-table-column>
  322. </el-table>
  323. </el-tab-pane>
  324. </el-tabs>
  325. <!--工具条 批量操作和分页-->
  326. <el-col :span="24" class="toolbar">
  327. <div style="text-align: right;margin: 20px 0;">
  328. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount"></el-pagination>
  329. </div>
  330. </el-col>
  331. </div>
  332. </el-card>
  333. </div>
  334. <script>
  335. const app = new Vue({
  336. el: '#app',
  337. data: {
  338. loading: false,
  339. activeName: 'commission',
  340. list: [],
  341. page: 1,
  342. pageCount: 0,
  343. level_arr: {},
  344. capital_type_arr: {},
  345. settlement_type_arr: {
  346. '-1': '已失效',
  347. '0': '未结算',
  348. '1': '已结算',
  349. '2': '部分结算',
  350. },
  351. reward_currency_arr: {
  352. 'score' : '积分',
  353. 'commission' : '佣金',
  354. },
  355. search: {
  356. order_no: null,
  357. mobile: null,
  358. user_id: null,
  359. capital_type: null,
  360. start_at: null,
  361. end_at: null,
  362. level: null,
  363. settlement_type: null,
  364. month : null
  365. },
  366. },
  367. mounted() {
  368. this.loadData();
  369. },
  370. methods: {
  371. loadData() {
  372. this.loading = true;
  373. let url = 'double-copy/commission/index';
  374. let params = {
  375. r: url,
  376. page: this.page,
  377. tab_type: this.activeName,
  378. };
  379. params = Object.assign(params, this.search);
  380. request({
  381. params: params,
  382. method: 'get',
  383. }).then(e => {
  384. this.loading = false;
  385. if (e.data.code == 0) {
  386. this.pageCount = e.data.data.list.page_count;
  387. this.list = e.data.data.list.list;
  388. this.level_arr = e.data.data.level_arr;
  389. this.capital_type_arr = e.data.data.capital_type_arr;
  390. } else {
  391. this.$message.error(e.data.msg);
  392. }
  393. }).catch(e => {
  394. this.loading = false;
  395. });
  396. },
  397. toDetail(id){
  398. this.$navigate({
  399. r: 'mall/order/detail',
  400. id: id
  401. })
  402. },
  403. pagination(currentPage) {
  404. let self = this;
  405. self.page = currentPage;
  406. self.loadData();
  407. },
  408. handleClick(tab, event) {
  409. this.page = 1;
  410. this.search = {};
  411. this.loadData()
  412. },
  413. toSearch() {
  414. this.page = 1;
  415. this.loadData();
  416. },
  417. resetSearch(){
  418. this.search = {
  419. order_no: null,
  420. mobile: null,
  421. user_id: null,
  422. capital_type: null,
  423. start_at: null,
  424. end_at: null,
  425. level: null,
  426. settlement_type: null,
  427. };
  428. this.loadData();
  429. },
  430. //搜索时间处理
  431. addTimeChange(v){
  432. this.search.start_at = v?v[0]:'';
  433. this.search.end_at = v?v[1]:'';
  434. },
  435. }
  436. });
  437. </script>