Browse Source

Merge branches 'dev' and 'master' of www.gitinn.com:proginn/boss

 Conflicts:
	.DS_Store
	dist/200.html
	dist/_nuxt/036d2618e75fb191899f.js
	dist/_nuxt/051c08f8f0f0ef226cad.js
	dist/_nuxt/09eee95aabc2217e487f.js
	dist/_nuxt/1a4cb61c01d7dcd90e07.js
	dist/_nuxt/1bbeace367c2f2f478b7.js
	dist/_nuxt/2378f322d8d983aa93d1.js
	dist/_nuxt/26899cdea62ffbd114be.js
	dist/_nuxt/26e059dfcca7c77364bd.js
	dist/_nuxt/279a48d699f97dbaf447.js
	dist/_nuxt/2b04a9afc8db3e9b4cd8.js
	dist/_nuxt/332db7ec311491405f2d.js
	dist/_nuxt/353f7ed8be72530e73ef.js
	dist/_nuxt/35eea6d5aaf8a65fe2b0.js
	dist/_nuxt/372f17b01c20a8d1e65b.js
	dist/_nuxt/3964a6f38555d75181ae.js
	dist/_nuxt/3aa7512538e08ba0b7a1.js
	dist/_nuxt/3c4a74e54d7bb2f70e2d.js
	dist/_nuxt/3e7e25006682b86b7ee0.js
	dist/_nuxt/3e89a02efc168f24bee7.js
	dist/_nuxt/478ae87a0e5610f85119.js
	dist/_nuxt/4ba673e45e35b8346f47.js
	dist/_nuxt/4bf6ab2bfcf74a8c0a79.js
	dist/_nuxt/52136cfdb2f6f8f87f64.js
	dist/_nuxt/540f7779ac7bf60a69b4.js
	dist/_nuxt/573ef76514b12380e6d1.js
	dist/_nuxt/5878e90e7b9a8520c4e7.js
	dist/_nuxt/5b55de11e53c7404681c.js
	dist/_nuxt/676eba227ede9d7ee5e1.js
	dist/_nuxt/68df94ab6c1e4b0271db.js
	dist/_nuxt/6cf2545838bd08907efc.js
	dist/_nuxt/70fdaac44e1ab61a79cf.js
	dist/_nuxt/71403128e7d91cbdfa4d.js
	dist/_nuxt/72d5bb1e4597f202eebd.js
	dist/_nuxt/73a63fccfd2cebc7299c.js
	dist/_nuxt/76de6da1c1a142bb4cde.js
	dist/_nuxt/7933d6fda852d8984374.js
	dist/_nuxt/7c0636bd0c3a1a1bdaf2.js
	dist/_nuxt/7db7e12e9586106cb91a.js
	dist/_nuxt/849cb7a7b59ec3b562b1.js
	dist/_nuxt/853e0f51a4b4c5629da9.js
	dist/_nuxt/86b01b3a7779744f2b9c.js
	dist/_nuxt/8933f782d1991cedfe1f.js
	dist/_nuxt/8ddcd61ebeef972658a8.js
	dist/_nuxt/929b81c39e5c4a177cb5.js
	dist/_nuxt/9c5415143a7ffdd30acc.js
	dist/_nuxt/9e8c947e9064d7862a24.js
	dist/_nuxt/9eb0782aab3a7a9735bf.js
	dist/_nuxt/aa7d690dfeadfe478920.js
	dist/_nuxt/ae3c53ffa7927dd2abe0.js
	dist/_nuxt/aec15629724283fc4705.js
	dist/_nuxt/af5b8d50d2595fb232d7.js
	dist/_nuxt/af5d99981fb4b0e2b297.js
	dist/_nuxt/b2d6faf5774d23f0970b.js
	dist/_nuxt/b8d9978fe586d60f7224.js
	dist/_nuxt/bb1cd517ee651b5db08b.js
	dist/_nuxt/bcfc4b66412a38786484.js
	dist/_nuxt/bf9943c4acf49b87c1a4.js
	dist/_nuxt/c7d48e2a99bc34c6fedc.js
	dist/_nuxt/d5db82448fd0e618b005.js
	dist/_nuxt/d64db91af6f4aefb1eea.js
	dist/_nuxt/de4ea4ddab6840e550de.js
	dist/_nuxt/e0c0e5094c86c89868dd.js
	dist/_nuxt/ec48ab4cff9461c79b66.js
	dist/_nuxt/f3940ae56bfdef9eb7e7.js
	dist/_nuxt/f3bc79cd63584ecfd46c.js
	dist/_nuxt/fdcec633d19c69388861.js
	dist/_nuxt/fe7f92a06f8eb82488e0.js
	dist/_nuxt/ff4e69aa7a98ad95c366.js
	dist/index.html
	dist/login/index.html
	dist/main/404/index.html
	dist/main/artificial_order/index.html
	dist/main/artificial_orders/index.html
	dist/main/balance_change/index.html
	dist/main/cats copy/index.html
	dist/main/cats/index.html
	dist/main/cert_check/index.html
	dist/main/cert_edit/index.html
	dist/main/cert_pro/index.html
	dist/main/cloud_balance/index.html
	dist/main/cloud_developer/index.html
	dist/main/cloud_job/index.html
	dist/main/cloud_order copy/index.html
	dist/main/dev_check/index.html
	dist/main/dev_check_detail/index.html
	dist/main/dev_show/index.html
	dist/main/gongmall/index.html
	dist/main/group_list/index.html
	dist/main/index.html
	dist/main/orders/index.html
	dist/main/orders_detail/index.html
	dist/main/orders_frozen/index.html
	dist/main/vip_manager/index.html
	dist/main/vip_order/index.html
	dist/main/vip_setting/index.html
	dist/main/wage_details/index.html
	dist/main/wage_settlement/index.html
	pages/main/.DS_Store
xiaozhen 6 years ago
parent
commit
361e3b3805
84 changed files with 1110 additions and 1344 deletions
  1. 148 133
      components/menu/data.js
  2. 0 0
      dist/.nojekyll
  3. 0 9
      dist/200.html
  4. 0 10
      dist/README.md
  5. 0 1
      dist/_nuxt/036d2618e75fb191899f.js
  6. 0 1
      dist/_nuxt/095c6e678d620cdf9e83.js
  7. 0 1
      dist/_nuxt/1a4cb61c01d7dcd90e07.js
  8. 0 1
      dist/_nuxt/1bbeace367c2f2f478b7.js
  9. 0 1
      dist/_nuxt/2378f322d8d983aa93d1.js
  10. 0 1
      dist/_nuxt/26899cdea62ffbd114be.js
  11. 0 1
      dist/_nuxt/26e059dfcca7c77364bd.js
  12. 0 1
      dist/_nuxt/279a48d699f97dbaf447.js
  13. 0 1
      dist/_nuxt/353f7ed8be72530e73ef.js
  14. 0 1
      dist/_nuxt/372f17b01c20a8d1e65b.js
  15. 0 1
      dist/_nuxt/3c4a74e54d7bb2f70e2d.js
  16. 0 1
      dist/_nuxt/3e7e25006682b86b7ee0.js
  17. 0 2
      dist/_nuxt/41988c661879eb3b4a3f.js
  18. 0 1
      dist/_nuxt/4bf6ab2bfcf74a8c0a79.js
  19. 0 1
      dist/_nuxt/5b55de11e53c7404681c.js
  20. 0 1
      dist/_nuxt/68df94ab6c1e4b0271db.js
  21. 0 1
      dist/_nuxt/73a63fccfd2cebc7299c.js
  22. 0 1
      dist/_nuxt/74ce4b8028f03b3937a6.js
  23. 0 1
      dist/_nuxt/7933d6fda852d8984374.js
  24. 0 1
      dist/_nuxt/853e0f51a4b4c5629da9.js
  25. 0 1
      dist/_nuxt/86b01b3a7779744f2b9c.js
  26. 0 1
      dist/_nuxt/87974b180cdc0ada24b2.js
  27. 0 1
      dist/_nuxt/8933f782d1991cedfe1f.js
  28. 0 1
      dist/_nuxt/9e8c947e9064d7862a24.js
  29. 0 101
      dist/_nuxt/LICENSES
  30. 0 1
      dist/_nuxt/abf3e8fe52ab307444c8.js
  31. 0 1
      dist/_nuxt/aec15629724283fc4705.js
  32. 0 1
      dist/_nuxt/af5d99981fb4b0e2b297.js
  33. 0 2
      dist/_nuxt/b070d1d78bbe4de028ce.js
  34. 0 1
      dist/_nuxt/b8d9978fe586d60f7224.js
  35. 0 1
      dist/_nuxt/bf9943c4acf49b87c1a4.js
  36. 0 1
      dist/_nuxt/de4ea4ddab6840e550de.js
  37. 0 1
      dist/_nuxt/f3940ae56bfdef9eb7e7.js
  38. 0 1
      dist/_nuxt/f3bc79cd63584ecfd46c.js
  39. 0 1
      dist/_nuxt/fe7f92a06f8eb82488e0.js
  40. BIN
      dist/_nuxt/fonts/535877f.woff
  41. BIN
      dist/_nuxt/fonts/732389d.ttf
  42. BIN
      dist/favicon.ico
  43. 0 9
      dist/index.html
  44. 0 9
      dist/login/index.html
  45. 0 9
      dist/main/404/index.html
  46. 0 9
      dist/main/artificial_order/index.html
  47. 0 9
      dist/main/artificial_orders/index.html
  48. 0 9
      dist/main/balance_change/index.html
  49. 0 9
      dist/main/cats copy/index.html
  50. 0 9
      dist/main/cats/index.html
  51. 0 9
      dist/main/cert_check/index.html
  52. 0 9
      dist/main/cert_edit/index.html
  53. 0 9
      dist/main/cert_pro/index.html
  54. 0 9
      dist/main/cloud_balance/index.html
  55. 0 9
      dist/main/cloud_developer/index.html
  56. 0 9
      dist/main/cloud_job/index.html
  57. 0 9
      dist/main/cloud_order copy/index.html
  58. 0 9
      dist/main/dev_check/index.html
  59. 0 9
      dist/main/dev_check_detail/index.html
  60. 0 9
      dist/main/dev_show/index.html
  61. 0 9
      dist/main/gongmall/index.html
  62. 0 9
      dist/main/group_list/index.html
  63. 0 9
      dist/main/index.html
  64. 0 9
      dist/main/orders/index.html
  65. 0 9
      dist/main/orders_detail/index.html
  66. 0 9
      dist/main/orders_frozen/index.html
  67. 0 9
      dist/main/vip_manager/index.html
  68. 0 9
      dist/main/vip_order/index.html
  69. 0 9
      dist/main/vip_setting/index.html
  70. 0 9
      dist/main/wage_details/index.html
  71. 0 9
      dist/main/wage_settlement/index.html
  72. 10 18
      pages/main/index/artificial_order.vue
  73. 14 17
      pages/main/index/artificial_orders.vue
  74. 112 10
      pages/main/index/balance_change.vue
  75. 1 1
      pages/main/index/cats.vue
  76. 0 1
      pages/main/index/dev_check.vue
  77. 104 104
      pages/main/index/index.vue
  78. 66 117
      pages/main/index/orders.vue
  79. 3 0
      pages/main/index/orders_detail.vue
  80. 67 526
      pages/main/index/orders_frozen.vue
  81. 101 0
      pages/main/index/outsource_bill.vue
  82. 215 0
      pages/main/index/user_bills.vue
  83. 158 0
      pages/main/index/withdraw.vue
  84. 111 0
      pages/main/index/work_bill.vue

+ 148 - 133
components/menu/data.js

@@ -1,133 +1,148 @@
-const baseUrl = '/main/';
-export default [
-	{
-		title: '财务',
-		icon: 'coin',
-		path: '',
-		subs: [
-			{
-				title: '交易订单',
-				path: baseUrl + 'orders'
-			},
-			{
-				title: '人工订单',
-				path: baseUrl + 'artificial_orders'
-			},
-			{
-				title: '云端结算',
-				path: baseUrl + 'cloud_balance'
-			},
-			{
-				title: '人工财务表单',
-				path: baseUrl + 'artificial_order',
-				hidden: true
-			},
-			{
-				title: '余额变动管理',
-				path: baseUrl + 'balance_change'
-			},
-			{
-				title: '提现账单',
-				path: baseUrl + 'withdraw'
-			},
-			{
-				title: '工资结算',
-				path: baseUrl + 'wage_settlement',
-				hidden: true
-			},
-
-			{
-				title: '冻结订单',
-
-				path: baseUrl + 'orders_frozen',
-				hidden: false
-			},
-			{
-				title: '财务详情',
-				path: baseUrl + 'bills',
-				hidden: true
-			},
-			{
-				title: '财务详情',
-				path: baseUrl + 'orders_detail',
-				hidden: true
-			}
-		]
-	},
-	{
-		title: '运营',
-		icon: 'service',
-		path: '',
-		subs: [
-			{
-				title: '云端开发者展示',
-				path: baseUrl + 'dev_show'
-			}
-		]
-	},
-	{
-		title: '项目',
-		icon: 's-management',
-		path: '',
-		subs: [
-			{
-				title: '云端工作',
-				path: baseUrl + 'cloud_job'
-			},
-			{
-				title: '协作群组',
-				path: baseUrl + 'group_list'
-			},
-			{
-				title: '工猫结算订单',
-				path: baseUrl + 'gongmall'
-			}
-		]
-	},
-	{
-		title: '用户与认证',
-		icon: 's-check',
-		path: '',
-		subs: [
-			{
-				title: '开发者管理',
-				path: baseUrl + 'cats'
-			},
-			{
-				title: '开发者审核',
-				path: baseUrl + 'dev_check'
-			},
-			{
-				title: '认证开发者',
-				path: baseUrl + 'cert_check'
-			},
-			{
-				title: '认证产品',
-				path: baseUrl + 'cert_pro'
-			},
-			{
-				title: '云端开发者认证表',
-				path: baseUrl + 'cloud_developer'
-			}
-		]
-	},
-	{
-		title: '会员',
-		icon: 'user-solid',
-		path: '',
-		subs: [
-			{
-				title: '会员管理',
-				path: baseUrl + 'vip_manager'
-			},
-			{
-				title: '会员订单',
-				path: baseUrl + 'vip_order'
-			},
-			{
-				title: '会员设置',
-				path: baseUrl + 'vip_setting'
-			}
-		]
-	}
-];
+const baseUrl = '/main/';
+export default [
+	{
+		title: '财务',
+		icon: 'coin',
+		path: '',
+		subs: [
+			{
+				title: '交易订单',
+				path: baseUrl + 'orders'
+			},
+			{
+				title: '人工订单',
+				path: baseUrl + 'artificial_orders'
+			},
+			{
+				title: '云端结算',
+				path: baseUrl + 'cloud_balance'
+			},
+			{
+				title: '人工财务表单',
+				path: baseUrl + 'artificial_order',
+				hidden: true
+			},
+			{
+				title: '余额变动管理',
+				path: baseUrl + 'balance_change'
+			},
+			{
+				title: '提现账单',
+				path: baseUrl + 'withdraw'
+			},
+			{
+				title: '工资结算',
+				path: baseUrl + 'wage_settlement',
+				hidden: true
+			},
+
+			{
+				title: '冻结订单',
+
+				path: baseUrl + 'orders_frozen',
+				hidden: false
+			},
+			{
+				title: '账单详情',
+				path: baseUrl + 'bills',
+				hidden: true
+			},
+			{
+				title: '财务订单详情',
+				path: baseUrl + 'orders_detail',
+				hidden: true
+			},
+			{
+				title: '整包账单明细',
+				path: baseUrl + 'outsource_bill',
+				hidden: true
+			},
+			{
+				title: '工资账单明细',
+				path: baseUrl + 'work_bill',
+				hidden: true
+			},
+			{
+				title: '用户账单列表',
+				path: baseUrl + 'user_bills',
+				hidden: true
+			}
+		]
+	},
+	{
+		title: '运营',
+		icon: 'service',
+		path: '',
+		subs: [
+			{
+				title: '云端开发者展示',
+				path: baseUrl + 'dev_show'
+			}
+		]
+	},
+	{
+		title: '项目',
+		icon: 's-management',
+		path: '',
+		subs: [
+			{
+				title: '云端工作',
+				path: baseUrl + 'cloud_job'
+			},
+			{
+				title: '协作群组',
+				path: baseUrl + 'group_list'
+			},
+			{
+				title: '工猫结算订单',
+				path: baseUrl + 'gongmall'
+			}
+		]
+	},
+	{
+		title: '用户与认证',
+		icon: 's-check',
+		path: '',
+		subs: [
+			{
+				title: '开发者管理',
+				path: baseUrl + 'cats'
+			},
+			{
+				title: '开发者审核',
+				path: baseUrl + 'dev_check'
+			},
+			{
+				title: '认证开发者',
+				path: baseUrl + 'cert_check'
+			},
+			{
+				title: '认证产品',
+				path: baseUrl + 'cert_pro'
+			},
+			{
+				title: '云端开发者认证表',
+				path: baseUrl + 'cloud_developer'
+			}
+		]
+	},
+	{
+		title: '会员',
+		icon: 'user-solid',
+		path: '',
+		subs: [
+			{
+				title: '会员管理',
+				path: baseUrl + 'vip_manager'
+			},
+			{
+				title: '会员订单',
+				path: baseUrl + 'vip_order'
+			},
+			{
+				title: '会员设置',
+				path: baseUrl + 'vip_setting'
+			}
+		]
+	}
+];

+ 0 - 0
dist/.nojekyll


File diff suppressed because it is too large
+ 0 - 9
dist/200.html


+ 0 - 10
dist/README.md

@@ -1,10 +0,0 @@
-# STATIC
-
-**This directory is not required, you can delete it if you don't want to use it.**
-
-This directory contains your static files.
-Each file inside this directory is mapped to `/`.
-
-Example: `/static/robots.txt` is mapped as `/robots.txt`.
-
-More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static).

File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/036d2618e75fb191899f.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/095c6e678d620cdf9e83.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/1a4cb61c01d7dcd90e07.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/1bbeace367c2f2f478b7.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/2378f322d8d983aa93d1.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/26899cdea62ffbd114be.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/26e059dfcca7c77364bd.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/279a48d699f97dbaf447.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/353f7ed8be72530e73ef.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/372f17b01c20a8d1e65b.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/3c4a74e54d7bb2f70e2d.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/3e7e25006682b86b7ee0.js


File diff suppressed because it is too large
+ 0 - 2
dist/_nuxt/41988c661879eb3b4a3f.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/4bf6ab2bfcf74a8c0a79.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/5b55de11e53c7404681c.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/68df94ab6c1e4b0271db.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/73a63fccfd2cebc7299c.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/74ce4b8028f03b3937a6.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/7933d6fda852d8984374.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/853e0f51a4b4c5629da9.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/86b01b3a7779744f2b9c.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/87974b180cdc0ada24b2.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/8933f782d1991cedfe1f.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/9e8c947e9064d7862a24.js


+ 0 - 101
dist/_nuxt/LICENSES

@@ -1,101 +0,0 @@
-/*!
- * Vue.js v2.6.10
- * (c) 2014-2019 Evan You
- * Released under the MIT License.
- */
-
-/**
- * vuex v3.1.1
- * (c) 2019 Evan You
- * @license MIT
- */
-
-/*!
- * JavaScript Cookie v2.2.0
- * https://github.com/js-cookie/js-cookie
- *
- * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
- * Released under the MIT license
- */
-
-/*!
-  * vue-router v3.0.6
-  * (c) 2019 Evan You
-  * @license MIT
-  */
-
-/**
- * vue-meta v1.6.0
- * (c) 2019 Declan de Wet & Sébastien Chopin (@Atinux)
- * @license MIT
- */
-
-/*
-	object-assign
-	(c) Sindre Sorhus
-	@license MIT
-	*/
-
-/*!
- * Determine if an object is a Buffer
- *
- * @author   Feross Aboukhadijeh <https://feross.org>
- * @license  MIT
- */
-
-/*!
-* screenfull
-* v4.2.1 - 2019-07-27
-* (c) Sindre Sorhus; MIT License
-*/
-
-/*!
- * vue-no-ssr v1.1.1
- * (c) 2018-present egoist <0x142857@gmail.com>
- * Released under the MIT License.
- */
-
-/*!
- * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io)
- * 
- * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)
- * All Rights Reserved. Apache Software License 2.0
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- */
-
-/*!
- * The buffer module from node.js, for the browser.
- *
- * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * @license  MIT
- */
-
-/*!
- * Quill Editor v1.2.3
- * https://quilljs.com/
- * Copyright (c) 2014, Jason Chen
- * Copyright (c) 2013, salesforce.com
- */
-
-/**
- * Checks if an event is supported in the current execution environment.
- *
- * NOTE: This will not work correctly for non-generic events such as `change`,
- * `reset`, `load`, `error`, and `select`.
- *
- * Borrows from Modernizr.
- *
- * @param {string} eventNameSuffix Event name, e.g. "click".
- * @param {?boolean} capture Check if the capture phase is supported.
- * @return {boolean} True if the event is supported.
- * @internal
- * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */
-
-/*!
- * Quill Editor v1.3.6
- * https://quilljs.com/
- * Copyright (c) 2014, Jason Chen
- * Copyright (c) 2013, salesforce.com
- */

File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/abf3e8fe52ab307444c8.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/aec15629724283fc4705.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/af5d99981fb4b0e2b297.js


File diff suppressed because it is too large
+ 0 - 2
dist/_nuxt/b070d1d78bbe4de028ce.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/b8d9978fe586d60f7224.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/bf9943c4acf49b87c1a4.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/de4ea4ddab6840e550de.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/f3940ae56bfdef9eb7e7.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/f3bc79cd63584ecfd46c.js


File diff suppressed because it is too large
+ 0 - 1
dist/_nuxt/fe7f92a06f8eb82488e0.js


BIN
dist/_nuxt/fonts/535877f.woff


BIN
dist/_nuxt/fonts/732389d.ttf


BIN
dist/favicon.ico


File diff suppressed because it is too large
+ 0 - 9
dist/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/login/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/404/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/artificial_order/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/artificial_orders/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/balance_change/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cats copy/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cats/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cert_check/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cert_edit/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cert_pro/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cloud_balance/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cloud_developer/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cloud_job/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/cloud_order copy/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/dev_check/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/dev_check_detail/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/dev_show/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/gongmall/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/group_list/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/orders/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/orders_detail/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/orders_frozen/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/vip_manager/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/vip_order/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/vip_setting/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/wage_details/index.html


File diff suppressed because it is too large
+ 0 - 9
dist/main/wage_settlement/index.html


+ 10 - 18
pages/main/index/artificial_order.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div v-if="hasAuth">
     <el-form ref="form" :model="form" :rules="rules" label-width="80px">
       <el-card class="box-card">
         <div slot="header" class="header clearfix">
@@ -9,22 +9,6 @@
         <el-form-item label="订单编号">
           <div class="order-number">
             <span>{{form.orderNo ? form.orderNo : '未生成'}}</span>
-            <!-- <span>{{form.orderNo ? `订单编号:${form.orderNo}` : '未生成订单'}}</span>
-            <span class="order-status" v-if="form.status === '0'">订单创建</span>
-            <span class="order-status" v-else-if="form.status === '100'">待审核</span>
-            <span class="order-status" v-else-if="form.status === '101'">审核中</span>
-            <span class="order-status" v-else-if="form.status === '102'">订单审核成功</span>
-            <span class="order-status" v-else-if="form.status === '200'">订单开始处理</span>
-            <span class="order-status" v-else-if="form.status === '201'">订单处理中</span>
-            <span class="order-status" v-else-if="form.status === '202'">订单已处理</span>
-            <span class="order-status" v-else-if="form.status === '300'">订单成功</span>
-            <span class="order-status" v-else-if="form.status === '301'">订单部分退款</span>
-            <span class="order-status" v-else-if="form.status === '302'">订单已失败</span>
-            <span class="order-status" v-else-if="form.status === '303'">订单全额退款</span>
-            <span class="order-status" v-else-if="form.status === '400'">订单支付中</span>
-            <span class="order-status" v-else-if="form.status === '401'">订单支付成功</span>
-            <span class="order-status" v-else-if="form.status === '402'">订单支付失败</span>
-            <span class="order-status" v-else>未生成</span>-->
           </div>
         </el-form-item>
 
@@ -182,6 +166,7 @@ export default {
       }
     };
     return {
+      hasAuth:1,
       action: "",
       id: "",
       form: {
@@ -200,7 +185,8 @@ export default {
         status: "",
         productTypeName: "",
         orderTypeName: "",
-        channelName: ""
+        channelName: "",
+
       },
       saveData: {},
       rules: {
@@ -289,6 +275,12 @@ export default {
     }
   },
   mounted() {
+    this.$post("/api/admin/order/has_auth").then(res=>{
+      //console.log(res);
+      if (res.status===0){
+        this.hasAuth = 0;
+      }
+    });
     if (this.$refs.myQuillEditor) {
       this.$refs.myQuillEditor.quill
         .getModule("toolbar")

+ 14 - 17
pages/main/index/artificial_orders.vue

@@ -1,8 +1,5 @@
 <template>
-  <div id="cloud-balance">
-    <!-- <section class="top"> -->
-    <!-- <h3>交易订单中心</h3> -->
-    <!-- <section> -->
+  <div id="cloud-balance" v-if="hasAuth">
     <div class="type-boxs">
       <div class="clear">
         <div class="floatr">
@@ -11,14 +8,10 @@
         </div>
       </div>
     </div>
-    <!-- </section> -->
-    <!-- </section> -->
     <div class="trcenter" style="height: calc(100%) ">
-      <!-- height="250" -->
       <el-table :data="finaceList" border style="width: 100%;" height="100%">
         <el-table-column label="订单名称">
           <template slot-scope="scope">
-            <!-- @click="clickDev(scope.row.uid)"  -->
             <span class="lblue point">
               <nuxt-link
                 :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
@@ -174,6 +167,7 @@ const tableWidths = [
 export default {
   data() {
     return {
+      hasAuth:1,
       tradeList: [
         {
           id: 0,
@@ -292,12 +286,19 @@ export default {
       let body = {
         page: this.currentPage,
         page_size: this.currentPageSize,
-        artificial_mark: 1
+        artificial_mark: 1,
+        channel:'admin_confirm'
       };
       const res = await this.$post("/api/admin/order/get_orders", body);
-      var data = res.data;
-      this.finaceList = data.orders;
-      this.totalCount = Number(data.count);
+      if (res.status===0){
+        this.hasAuth=0;
+      }
+      if (res.status){
+        var data = res.data;
+        this.finaceList = data.orders;
+        this.totalCount = Number(data.count);
+      }
+
     },
     async downFinanceList() {
       let body = {
@@ -305,11 +306,7 @@ export default {
         page_size: this.currentPageSize,
         artificial_mark: 1
       };
-      // const res = await this.$get("/api/admin/order/get_orders", body);
-      // http://local-rooter.proginn.com:20201/api/admin/order/get_orders?page=1&page_size=20&artificial_mark=1
-      var url =
-        window.location.host + "/api/admin/order/export?" + "artificial_mark=1";
-      console.log(url);
+      var url = window.location.host + "/api/admin/order/export?" + "artificial_mark=1";
       window.location.href = "http://" + url;
     },
     createOrder() {

+ 112 - 10
pages/main/index/balance_change.vue

@@ -1,21 +1,21 @@
-<template>
-  <div>
+<template >
+  <div id="mainBody" v-if="coins">
     <el-form ref="form" label-width="40px" :model="form">
       <el-row :gutter="20">
         <el-col :span="3">
           <el-form-item label="用户">
-            <el-input placeholder="UID/昵称"></el-input>
+            <el-input placeholder="UID" v-model="user"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="3">
           <el-form-item label="编号">
-            <el-input placeholder="订单编号"></el-input>
+            <el-input placeholder="订单编号" v-model="order_no"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="7">
           <el-form-item label="时间范围" label-width="80px">
             <el-date-picker
-              v-model="value1"
+              v-model="timeRange"
               type="daterange"
               range-separator="至"
               start-placeholder="开始时间"
@@ -23,69 +23,171 @@
             </el-date-picker>
           </el-form-item>
         </el-col>
-        <el-button type="primary" plain>筛选</el-button>
+        <el-button type="primary" plain @click="getFinanceList">筛选</el-button>
         <el-button plain>导出报表</el-button>
       </el-row>
     </el-form>
     <el-table
-      :data="tableData" border
+      :data="coins" border
       style="width: 100%">
       <el-table-column
         prop="date"
         label="ID"
         width="180">
+        <template slot-scope="scope">
+          {{scope.row.id}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="name"
         label="用户"
         width="180">
+        <template slot-scope="scope">
+         <a :href="scope.row.user_url" class="link-type" target="_blank"> {{scope.row.nickname}}({{scope.row.uid}})</a>
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动金额">
+        <template slot-scope="scope">
+          {{scope.row.use}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动后总金额">
+        <template slot-scope="scope">
+          {{scope.row.total}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动前总金额">
+        <template slot-scope="scope">
+          {{scope.row.before_total_balance}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动后充值余额">
+        <template slot-scope="scope">
+          {{scope.row.total_recharge}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动后收入余额">
+        <template slot-scope="scope">
+          {{scope.row.total_income}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="变动前收入余额">
+        <template slot-scope="scope">
+          {{scope.row.before_income_balance}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="创建时间">
+        <template slot-scope="scope">
+          {{scope.row.time}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="更新时间">
+        <template slot-scope="scope">
+          {{scope.row.update_time}}
+        </template>
       </el-table-column>
       <el-table-column
         prop="address"
         label="订单编号">
+        <template slot-scope="scope">
+          {{scope.row.order_no}}
+        </template>
       </el-table-column>
     </el-table>
+    <div class="order-footer">
+      <el-pagination
+        background
+        @current-change="getFinanceList"
+        @size-change="changePageSize"
+        :current-page.sync="currentPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="20"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="count"
+      ></el-pagination>
+    </div>
   </div>
 </template>
 
 <script>
 export default {
-  
+  data(){
+    return {
+      currentPage:1,
+      currentPageSize:20,
+      coins:[],
+      count:1,
+      user:'',
+      order_no:'',
+      timeRange:[],
+    }
+  },
+  mounted() {
+    this.getFinanceList();
+  },
+  methods: {
+    changePageSize(val) {
+      this.getFinanceList();
+    },
+
+    async getFinanceList() {
+      this.user=this.$route.query.user;
+      let body = {
+        page: this.currentPage,
+        size: this.currentPageSize,
+        user:this.user,
+      };
+      if (this.order_no){
+        body.order_no=this.order_no;
+      }
+      if (this.timeRange.length>0){
+        console.log(this.timeRange);
+        body.start_time=this.timeRange[0]/1000;
+        body.end_time=this.timeRange[1]/1000;
+      }
+      const res = await this.$post("/api/admin/order/get_coins", body);
+      this.coins = res.data.list;
+      this.count=Number(res.data.count);
+    },
+    async downFinanceList() {
+      let body = {
+        page: this.currentPage,
+        page_size: this.currentPageSize,
+        user:this.$route.query.user
+      };
+      var url = window.location.host + "/api/admin/order/export?" + "artificial_mark=1";
+      window.location.href = "http://" + url;
+    },
+  }
 }
 </script>
 
 <style lang="scss" scoped>
-  
-</style>
+
+  .order-footer {
+    position: absolute;
+    bottom: 10px;
+    left: 10px;
+  }
+  #mainBody {
+    white-space: nowrap;
+    overflow-x: scroll;
+    height: calc(100% - 40px);
+  }
+</style>

+ 1 - 1
pages/main/index/cats.vue

@@ -122,7 +122,7 @@
                     <span v-if="itm.city_op_name">{{itm.city_op_name}}</span>
                     <span v-if="itm.industry_name">{{itm.industry_name}}</span>
                     <span v-if="itm.work_year_name">{{itm.work_year_name}}</span>
-                    <span>{{itm.on_project==0&&on_job==0&&on_hire==0 ?'空闲':'工作中'}}</span>
+                    <span>{{itm.on_project==0&&itm.on_job==0&&itm.on_hire==0 ?'空闲':'工作中'}}</span>
                     <!-- <span v-for="(itms,ind) in itm.certTags" :key="itms.uid">
                     {{itms.tag_name}}
                     <span v-if="ind!=itm.works.length-1">,</span>

+ 0 - 1
pages/main/index/dev_check.vue

@@ -185,7 +185,6 @@ export default {
       let cert_id = Number(this.certID)
       let body = { page, page_size, cert_id }
       let res = await this.$post("/api/admin/audit/getList", body)
-      // console.log(body)
       let data = res.data
       env = data.current_env
       this.tableData = this.formatTableData(res.data.list)

+ 104 - 104
pages/main/index/index.vue

@@ -44,115 +44,115 @@
 </template>
 
 <script>
-const tableHeaders = [
-  "用户ID",
-  "真实姓名",
-  "提现金额",
-  "到账金额",
-  "账户余额",
-  "到账账户",
-  "提现时间",
-  "到账时间",
-  "订单号",
-  "支付方式",
-  "状态"
-]
-const tableProps = [
-  "uid",
-  "real_name",
-  "amount",
-  "true_amount",
-  "after_amount",
-  "account",
-  "created_atShow",
-  "taken_atShow",
-  "order_no",
-  "channel",
-  "statusShow"
-]
+  const tableHeaders = [
+    "用户ID",
+    "真实姓名",
+    "提现金额",
+    "到账金额",
+    "账户余额",
+    "到账账户",
+    "提现时间",
+    "到账时间",
+    "订单号",
+    "支付方式",
+    "状态"
+  ]
+  const tableProps = [
+    "uid",
+    "real_name",
+    "amount",
+    "true_amount",
+    "after_amount",
+    "account",
+    "created_atShow",
+    "taken_atShow",
+    "order_no",
+    "channel",
+    "statusShow"
+  ]
 
-export default {
-  data() {
-    return {
-      options: [
-        {
-          value: -1,
-          label: '全部'
-        },
-        {
-          value: 0,
-          label: '提交'
-        },
-        {
-          value: 1,
-          label: '成功'
-        },
-        {
-          value: 2,
-          label: '失败'
-        },
-        {
-          value: 3,
-          label: '进行中'
-        },
-      ],
-      selectValue: -1,
-      // 数据总条目
-      totalCount: 0,
-      currentPage: 1,
-      // 列表头显示内容
-      tableHeaders,
-      // 列表头字段
-      tableProps,
-      // 列表数据
-      tableData: []
-    };
-  },
-  mounted() {
-    this.getTableData()
-  },
-  methods: {
-    changeSelect(status) {
-      this.getTableData()
-    },
-    // 点击重试
-    async clickRetry(id) {
-      const res = await this.$post("/api/admin/payment/redoDraw", { id })
-    },
-    // 点击用户的 uid
-    clickUID(uid) {
-      // console.log("click uid: " + uid)
-    },
-    // 根据状态显示图表样式
-    tableRowClassName({ row, rowIndex }) {
-      let className = ""
-      if(row.status === "1") className = "success-row"
-      return className
+  export default {
+    data() {
+      return {
+        options: [
+          {
+            value: -1,
+            label: '全部'
+          },
+          {
+            value: 0,
+            label: '提交'
+          },
+          {
+            value: 1,
+            label: '成功'
+          },
+          {
+            value: 2,
+            label: '失败'
+          },
+          {
+            value: 3,
+            label: '进行中'
+          },
+        ],
+        selectValue: -1,
+        // 数据总条目
+        totalCount: 0,
+        currentPage: 1,
+        // 列表头显示内容
+        tableHeaders,
+        // 列表头字段
+        tableProps,
+        // 列表数据
+        tableData: []
+      };
     },
-    // 格式化列表数据
-    formatTableData(data) {
-      return data.map(i => ({
-        ...i,
-        statusShow: i.status === "1" ? "到账" : "失败",
-        created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
-        taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString()
-      }));
+    mounted() {
+      this.getTableData()
     },
-    // 获取列表数据
-    async getTableData(page = this.currentPage) {
-      this.tableData = []
-      const res = await this.$post("/api/admin/payment/listDraw", { page, status: this.selectValue })
-      const data = res.data
-      this.tableData = this.formatTableData(res.data.list)
-      this.totalCount = Number(data.total)
-      this.totalPage = data.totalPage
+    methods: {
+      changeSelect(status) {
+        this.getTableData()
+      },
+      // 点击重试
+      async clickRetry(id) {
+        const res = await this.$post("/api/admin/payment/redoDraw", { id })
+      },
+      // 点击用户的 uid
+      clickUID(uid) {
+        // console.log("click uid: " + uid)
+      },
+      // 根据状态显示图表样式
+      tableRowClassName({ row, rowIndex }) {
+        let className = ""
+        if(row.status === "1") className = "success-row"
+        return className
+      },
+      // 格式化列表数据
+      formatTableData(data) {
+        return data.map(i => ({
+          ...i,
+          statusShow: i.status === "1" ? "到账" : "失败",
+          created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
+          taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString()
+        }));
+      },
+      // 获取列表数据
+      async getTableData(page = this.currentPage) {
+        this.tableData = []
+        const res = await this.$post("/api/admin/payment/listDraw", { page, status: this.selectValue })
+        const data = res.data
+        this.tableData = this.formatTableData(res.data.list)
+        this.totalCount = Number(data.total)
+        this.totalPage = data.totalPage
+      }
     }
-  }
-};
+  };
 </script>
 
 <style scoped>
-.table {
-  height: calc(100% - 80px);
-}
+  .table {
+    height: calc(100% - 80px);
+  }
 </style>

+ 66 - 117
pages/main/index/orders.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="cloud-balance">
+  <div id="cloud-balance" v-if="hasAuth">
     <section class="top">
       <!-- <h3>交易订单中心</h3> -->
       <section>
@@ -22,18 +22,6 @@
             </el-select>
           </div>
         </div>
-        <!-- <div class="type-boxs">
-          <span class="vsub">交易类型:</span>
-          <div class="inlineb">
-            <el-checkbox-group v-model="tradeType" @change="changeTrade" size="mini">
-              <el-checkbox-button
-                v-for="itm in tradeList"
-                :label="itm.id"
-                :key="itm.id"
-              >{{itm.type}}</el-checkbox-button>
-            </el-checkbox-group>
-          </div>
-        </div>-->
         <div class="type-boxs">
           <span class="vsub">支付方式:</span>
           <div class="inlineb">
@@ -97,16 +85,6 @@
           </div>
           <div class="inlineb">
             <span class>项目:</span>
-            <!-- <div class="inlineb">
-              <el-select v-model="productTypes" placeholder>
-                <el-option
-                  v-for="item of productTypesOption"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                ></el-option>
-              </el-select>
-            </div>-->
             <div class="inlineb">
               <el-input style="width: 100px;" type="number" v-model="productId" placeholder="项目ID"></el-input>
             </div>
@@ -127,58 +105,38 @@
               支出金额:
               <span class="orange">{{PayCount}}元(成功{{paySuccess}}元)</span>
             </span>
+            ,
+            <span>
+              冻结金额:
+              <span class="">{{frozenSum}}元(成功{{frozenSuccessSum}}元)</span>
+            </span>
           </div>
         </div>
       </section>
     </section>
-    <!-- <section class="selector-box">
-      <section class="selector-box-left">
-        <el-select v-model="status" placeholder="项目状态">
-          <el-option
-            v-for="item of jobStatusList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-        <el-select v-model="period" placeholder="账单状态">
-          <el-option
-            v-for="item of periodStatusList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-        <el-input style="width: 200px;" v-model="checkUser" placeholder="负责人"></el-input>
-        <el-input style="width: 200px;" v-model="jobID" placeholder="项目ID"></el-input>
-        <el-button @click="clickSearchConfirm">确认</el-button>
-      </section>
-      <el-button @click="clickExport" type="primary">导出</el-button>
-    </section>-->
+
     <div class="trcenter changeheight" width="100%">
       <!-- height="250" -->
-      <el-table :data="finaceList" border height="100%" width="100%">
+      <el-table :data="financeList" border height="100%" width="100%">
         <el-table-column label="订单名称">
           <template slot-scope="scope">
-            <!-- @click="clickDev(scope.row.uid)"  -->
-
             <span class="lblue point">
-              <nuxt-link
-                :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
-              >{{scope.row.product_title}}</nuxt-link>
+              <nuxt-link target="_blank" :to="{path:'/main/orders_detail?id='+scope.row.order_no}">{{scope.row.product_title}}</nuxt-link>
             </span>
           </template>
         </el-table-column>
         <el-table-column label="用户">
-          <template slot-scope="scope">{{scope.row.user_info.nickname}}({{scope.row.uid }})</template>
+          <template slot-scope="scope"><a class="link-type" :href="scope.row.user_url" target="_blank">{{scope.row.user_info.nickname}}({{scope.row.uid }})</a> </template>
         </el-table-column>
         <el-table-column label="实际金额">
           <template slot-scope="scope">
-            <span
-              v-if="parseInt(scope.row.real_amount)>=0"
-              class="green"
-            >+{{(scope.row.real_amount/100).toFixed(2)}}</span>
-            <span v-else class="orange">{{(scope.row.real_amount/100).toFixed(2)}}</span>
+            <div v-if="scope.row.order_type!=6">
+              <span v-if="parseInt(scope.row.real_amount)>=0" class="green">+{{(scope.row.real_amount/100).toFixed(2)}}</span>
+              <span v-else class="orange">{{(scope.row.real_amount/100).toFixed(2)}}</span>
+            </div>
+            <div v-else>
+              <span>{{(scope.row.real_amount/100).toFixed(2)}}</span>
+            </div>
           </template>
         </el-table-column>
         <el-table-column prop="channel_name" label="支付方式"></el-table-column>
@@ -212,7 +170,7 @@
         </el-table-column>
         <el-table-column label="关联项目">
           <template slot-scope="scope">
-            <a :href="scope.row.related_project.url?scope.row.related_project.url:'#'">
+            <a :href="scope.row.related_project.url?scope.row.related_project.url:'#'" target="_blank">
               <span
                 class="lblue"
               >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
@@ -246,7 +204,10 @@
 export default {
   data() {
     return {
-      finaceList: [],
+      hasAuth:1,
+      frozenSuccessSum:0,
+      frozenSum:0,
+      financeList: [],
       successCount: 0,
       totalHave: 0,
       totalSuccess: 0,
@@ -338,6 +299,7 @@ export default {
           {
             text: "全部",
             onClick(picker) {
+              this.timeRange = [];
               picker.$emit("pick", []);
             }
           },
@@ -363,7 +325,6 @@ export default {
             text: "本周",
             onClick(picker) {
               var week = new Date().getDay() - 1;
-              console.log(week);
               if (week == -1) {
                 week = 6;
               }
@@ -378,9 +339,7 @@ export default {
             onClick(picker) {
               var month = new Date().getMonth + 1;
               var year = new Date().getFullYear();
-              // console.log(month, year);
               var day = new Date().getDate() - 1;
-              console.log(day);
 
               const end = new Date();
               const start = new Date();
@@ -393,14 +352,12 @@ export default {
             onClick(picker) {
               var month = new Date().getMonth + 1;
               var year = new Date().getFullYear();
-              // console.log(month, year);
               var day = new Date().getDate() - 1;
               var firstDay = new Date(year, 0, 1);
               var dateDiff = new Date() - firstDay;
               var msPerDay = 1000 * 60 * 60 * 24;
               //计算天数
               var diffDays = Math.ceil(dateDiff / msPerDay) - 1;
-              console.log(diffDays);
               const end = new Date();
               const start = new Date();
               start.setTime(start.getTime() - 3600 * 1000 * 24 * diffDays);
@@ -409,7 +366,7 @@ export default {
           }
         ]
       },
-      timeRange: "",
+      timeRange: [],
       arriveTime: "",
       searchId: "",
       tableData3: [
@@ -503,7 +460,7 @@ export default {
   },
   mounted() {
     this.getAllChice();
-    this.getTableData();
+    // this.getTableData();
     this.getFinanceList();
   },
   methods: {
@@ -511,6 +468,9 @@ export default {
       this.$router.push(`/main/bills/${id}`);
     },
     formatDate(time) {
+      if (time === '0') {
+        return '--'
+      }
       var now = new Date(time * 1000);
       var year = now.getFullYear();
       var month = now.getMonth() + 1;
@@ -572,7 +532,6 @@ export default {
         this.productType = [0];
       }
       if (this.productType.length == 0) {
-        console.log("sss:", this.productType);
         this.productType = [0];
       }
     },
@@ -608,7 +567,6 @@ export default {
         this.payType = [0];
       }
       if (this.payType.length == 0) {
-        console.log("sss:", this.orderType);
         this.payType = [0];
       }
     },
@@ -620,7 +578,6 @@ export default {
      */
     async getEnum() {
       let { data } = await this.$get("/api/admin/job/getEnum");
-      console.log(data);
       if (data) {
         let { jobStatusList, periodStatusList } = data;
         this.jobStatusList = jobStatusList;
@@ -672,14 +629,11 @@ export default {
     // 点击重试
     async clickRetry(id) {
       const res = await this.$post("/api/admin/payment/redoDraw", { id });
-      // console.log(res)
     },
     // 根据状态显示图表样式
     tableRowClassName({ row, rowIndex }) {
-      // console.log({row, rowIndex})
       let className = "";
       if (row.j_status_name === "结束合作") className = "end-row";
-      // console.log(className)
       return className;
     },
     // 格式化列表数据
@@ -703,29 +657,10 @@ export default {
       this.currentPageSize = pageSize;
       this.getFinanceList();
     },
-    // 获取列表数据
-    async getTableData() {
-      this.tableData = [];
-      let url = "/api/admin/job/get_all_periods";
-      let body = { page: this.currentPage, page_size: this.currentPageSize };
-      if (this.status) body.j_status = this.status;
-      if (this.period) body.p_status = this.period;
-      if (this.checkUser) body.chk_user = this.checkUser;
-      if (this.jobID) body.job_id = this.jobID;
-      const res = await this.$post(url, body);
-      const data = res.data;
-      this.tableData = this.formatTableData(data.list);
-      this.totalData = data;
-      // // console.log(this.tableData)
-      this.totalCount = Number(data.total);
-      this.totalPage = data.totalPage;
-      this.localData.env = data.current_env;
-    },
+
     async downFinanceList() {
       var checkedTF = 0;
-      // console.log(this.checked);
       if (this.checked) {
-        // console.log(333);
         checkedTF = 1;
       }
       var arr1 = [];
@@ -749,7 +684,7 @@ export default {
       }
       var starTime = "";
       var endTime = "";
-      if (this.timeRange.length) {
+      if (this.timeRange.length > 0) {
         starTime = this.formatDate(this.timeRange[0] / 1000);
         endTime = this.formatDate(this.timeRange[1] / 1000);
       } else {
@@ -775,8 +710,6 @@ export default {
         page: this.currentPage,
         page_size: this.currentPageSize
       };
-      // http://local-rooter.proginn.com:20201/api/admin/order/export?product_type=&order_type=&channel=&start_time=&end_time=&date_type=2&status=&artificial_mark=0&order=&user=&product_id=&page=1&page_size=20
-      // const res = await this.$get("/api/admin/order/export", body);
       var url =
         window.location.host +
         "/api/admin/order/export?product_type=" +
@@ -801,16 +734,14 @@ export default {
         this.checkUser +
         "&product_id=" +
         this.productId;
-      console.log(url);
       window.location.href = "http://" + url;
     },
     async getFinanceList() {
-      // console.log("timeRange:", this.timeRange);
-      // return false;
+      if (this.$router.currentRoute.query.user) {
+        this.checkUser = this.$router.currentRoute.query.user;
+      }
       var checkedTF = 0;
-      console.log(this.checked);
       if (this.checked) {
-        console.log(333);
         checkedTF = 1;
       }
       var arr1 = [];
@@ -834,16 +765,32 @@ export default {
       }
       var starTime = "";
       var endTime = "";
+
       if (this.timeRange) {
-        starTime = this.formatDate(this.timeRange[0] / 1000);
-        endTime = this.formatDate(this.timeRange[1] / 1000);
+        if (this.timeRange.length > 0) {
+          if (
+            (this.timeRange[0] / 1000) * 1000 ==
+            (this.timeRange[1] / 1000) * 1000
+          ) {
+            var changeEnd =
+              (this.timeRange[1] / 1000) * 1000 + 24 * 60 * 60 * 1000;
+            starTime = this.formatDate(this.timeRange[0] / 1000);
+            endTime = this.formatDate(changeEnd / 1000);
+          } else {
+            starTime = this.formatDate(this.timeRange[0] / 1000);
+            endTime = this.formatDate(this.timeRange[1] / 1000);
+          }
+        } else {
+          starTime = "";
+          endTime = "";
+        }
       } else {
         starTime = "";
         endTime = "";
       }
 
       let body = {
-        // 1111
+        view:'platform',
         product_type: arr1,
         order_type: this.orderTypes,
         channel: arr2,
@@ -862,19 +809,25 @@ export default {
       };
       const res = await this.$post("/api/admin/order/get_orders", body);
       var data = res.data;
-      this.finaceList = data.orders;
-      this.totalCount = Number(data.count);
-      this.successCount = data.successCount;
-      (this.totalHave = data.income_sum),
-        (this.totalSuccess = data.income_success_sum);
-      this.PayCount = data.expense_sum;
-      this.paySuccess = data.expense_success_sum;
+      if (res.status === 0)this.hasAuth=0;
+      if (res.status === 1){
+        this.financeList = data.orders;
+        this.totalCount = Number(data.count);
+        this.successCount = data.successCount;
+        this.totalHave = data.income_sum;
+        this.totalSuccess = data.income_success_sum;
+        this.PayCount = data.expense_sum;
+        // this.totalCount = data.count;
+        this.paySuccess = data.expense_success_sum;
+        this.frozenSum=data.frozen_sum;
+        this.frozenSuccessSum=data.frozen_success_sum;
+      }
+
     },
     async getAllChice() {
       let body = {};
       const res = await this.$post("/api/admin/order/get_all_choice");
       var data = res.data;
-      console.log(data);
       this.orderTypesOption = data.order_types;
       this.orderTypesOption.unshift({
         id: "",
@@ -891,13 +844,9 @@ export default {
         id: 0,
         name: "全部"
       });
-      // this.productTypesOption = data.product_types;
-      // this.finaceList = data;
-      // this.totalCount = Number(data.total);
     }
   },
   created() {
-    console.log(process.env.NODE_ENV);
   }
 };
 </script>

+ 3 - 0
pages/main/index/orders_detail.vue

@@ -172,6 +172,9 @@ export default {
       return null; //返回参数值
     },
     formatDate(time) {
+      if (time === '0') {
+        return '--'
+      }
       var now = new Date(time * 1000);
       var year = now.getFullYear();
       var month = now.getMonth() + 1;

+ 67 - 526
pages/main/index/orders_frozen.vue

@@ -1,13 +1,13 @@
 <template>
-  <div id="cloud-balance">
+  <div id="cloud-balance" v-if="tableData">
     <section class="top">
       <!-- <h3>交易订单中心</h3> -->
       <section>
         <div class="type-boxs">
           <div>
-            <span class="marginr30">待解冻金额:880.00</span>
-            <span class="marginr30">冻结订单数:888</span>
-            <span class="marginr30">待解冻订单数:10</span>
+            <span class="marginr30">待解冻金额:{{totalCoins}}</span>
+            <span class="marginr30">冻结订单数:{{totalCount}}</span>
+            <span class="marginr30">待解冻订单数:{{count}}</span>
           </div>
         </div>
         <div class="type-boxs">
@@ -21,7 +21,6 @@
               range-separator="到"
               start-placeholder="开始日期"
               end-placeholder="结束日期"
-              :picker-options="pickerOptions2"
             ></el-date-picker>
           </div>
         </div>
@@ -29,18 +28,18 @@
           <div class="inlineb">
             <span class>用户:</span>
             <div class="inlineb">
-              <el-input style="width: 180px;" v-model="checkUser" placeholder="uid/昵称/姓名"></el-input>
+              <el-input style="width: 180px;" v-model="user" placeholder="UID"></el-input>
             </div>
           </div>
           <div class="inlineb">
             <span class>订单ID:</span>
-            <el-input style="width: 180px;" v-model="checkUser" placeholder="输入订单ID"></el-input>
+            <el-input style="width: 180px;" v-model="order_no" placeholder="输入订单ID"></el-input>
           </div>
           <div class="inlineb">
             <span class>状态:</span>
-            <el-select v-model="status">
+            <el-select v-model="orderStatus">
               <el-option
-                v-for="item of jobStatusList"
+                v-for="item of statusList"
                 :key="item.id"
                 :label="item.name"
                 :value="item.id"
@@ -48,67 +47,62 @@
             </el-select>
           </div>
 
-          <el-button type="primary">筛选</el-button>
+          <el-button type="primary"  @click="clickSearchConfirm">筛选</el-button>
           <el-button>导出报表</el-button>
         </div>
       </section>
     </section>
-    <!-- <section class="selector-box">
-      <section class="selector-box-left">
-        <el-select v-model="status" placeholder="项目状态">
-          <el-option
-            v-for="item of jobStatusList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-        <el-select v-model="period" placeholder="账单状态">
-          <el-option
-            v-for="item of periodStatusList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-        <el-input style="width: 200px;" v-model="checkUser" placeholder="负责人"></el-input>
-        <el-input style="width: 200px;" v-model="jobID" placeholder="项目ID"></el-input>
-        <el-button @click="clickSearchConfirm">确认</el-button>
-      </section>
-      <el-button @click="clickExport" type="primary">导出</el-button>
-    </section>-->
     <div class>
       <!-- height="250" -->
-      <el-table :data="tableData3" border style="width: 100%">
+      <el-table :data="tableData" border style="width: 100%">
         <el-table-column label="项目名称">
           <template slot-scope="scope">
             <!-- @click="clickDev(scope.row.uid)"  -->
             <span class="lblue point">
-              <nuxt-link :to="{path:'/main/orders_detail?id='+111}">{{scope.row.name}}</nuxt-link>
+              <a :href="scope.row.url" target="_blank">{{scope.row.name}}</a>
             </span>
           </template>
         </el-table-column>
-        <el-table-column prop="name" label="用户"></el-table-column>
-        <!-- <el-table-column label="实际金额">
+        <el-table-column prop="name" label="用户">
+          <template slot-scope="scope">
+            <span class="lblue point"><a :href="scope.row.user_url" target="_blank">{{scope.row.nickname}}({{scope.row.uid}})</a></span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="关联订单ID">
           <template slot-scope="scope">
-            <span :class="parseInt(scope.row.money)>0?'green':'orange'">{{scope.row.money}}</span>
+            <span>{{scope.row.order_no}}</span>
           </template>
-        </el-table-column>-->
-        <el-table-column prop="name" label="关联订单ID"></el-table-column>
-        <el-table-column prop="name" label="类型"></el-table-column>
-        <el-table-column prop="name" label="冻结金额"></el-table-column>
-        <el-table-column prop="name" label="冻结方式"></el-table-column>
-        <el-table-column prop="name" label="创建日期"></el-table-column>
-        <el-table-column prop="name" label="解冻日期"></el-table-column>
-        <!-- <el-table-column prop="name" width="100" label="订单类型">
+        </el-table-column>
+        <el-table-column prop="name" label="类型">
+          <template slot-scope="scope">
+            <span>{{scope.row.target_type_name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="冻结金额">
           <template slot-scope="scope">
-            <span v-if="scope.row.state==1" class="state-success state-border">成功</span>
-            <span v-if="scope.row.state==2" class="state-wait state-border">待提交</span>
-            <span v-if="scope.row.state==3" class="state-load state-border">提交中</span>
-            <span v-if="scope.row.state==4" class="state-faile state-border">失败</span>
+            <span>{{scope.row.coins}}</span>
           </template>
-        </el-table-column>-->
-        <el-table-column prop="name" label="当前状态"></el-table-column>
+        </el-table-column>
+        <el-table-column prop="name" label="冻结方式">
+          <template slot-scope="scope">
+            <span>{{scope.row.end_time_type_name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="创建日期">
+          <template slot-scope="scope">
+            <span>{{scope.row.create_time}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="解冻日期">
+          <template slot-scope="scope">
+            <span>{{scope.row.end_time}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="当前状态">
+          <template slot-scope="scope">
+            <span>{{scope.row.status_name}}</span>
+          </template>
+        </el-table-column>
       </el-table>
     </div>
     <div class="order-footer">
@@ -120,484 +114,41 @@
         :page-sizes="[10, 20, 30, 40]"
         :page-size="20"
         layout="total, sizes, prev, pager, next, jumper"
-        :total="totalCount"
+        :total="count"
       ></el-pagination>
     </div>
   </div>
 </template>
 
 <script>
-const tableHeaders = [
-  "项目ID",
-  "核定价格",
-  "托管费用",
-  "押金",
-  "次月托管",
-  "结算周期",
-  "结算金额",
-  "退回金额",
-  "预计发薪",
-  "发薪日期",
-  "状态",
-  "负责人",
-  "操作",
-  "备注",
-  "项目状态",
-  "账单ID",
-  "企业方",
-  "开发者",
-  "试用天数"
-];
-const tableProps = [
-  "job_id",
-  "salary",
-  "company_pay",
-  "p_company_deposit",
-  "next_period_pay",
-  "payAround",
-  "pay_to_dev",
-  "return_money",
-  "pre_send_salary_timeShow", //
-  "send_salary_time",
-  "p_status_name",
-  "chk_user",
-  "operate",
-  "settle_msg",
-  "j_status_name",
-  "id",
-  "company",
-  "dev_realname",
-  "probation_days"
-];
-const tableWidths = [
-  "80",
-  "80",
-  "100",
-  "80",
-  "100",
-  "120",
-  "80",
-  "80",
-  "90",
-  "80",
-  "80",
-  "100",
-  "80",
-  "180",
-  "80",
-  "80",
-  "100",
-  "100",
-  "80"
-];
 
 export default {
   data() {
     return {
-      checked: false,
-      orderType: [0],
-      tradeType: [0],
-      payType: [0],
-      timeType: 1,
-      timeOptions: [
-        {
-          value: 1,
-          label: "到帐时间"
-        },
-        {
-          value: 2,
-          label: "创建时间"
-        }
-      ],
-      TypeList: [
-        {
-          id: 0,
-          type: "全部"
-        },
-        {
-          id: 1,
-          type: "整包项目"
-        },
-        {
-          id: 2,
-          type: "云端工作"
-        },
-        {
-          id: 3,
-          type: "雇佣工作"
-        }
-      ],
-      tradeList: [
-        {
-          id: 0,
-          type: "全部"
-        },
-        {
-          id: 1,
-          type: "充值"
-        },
-        {
-          id: 2,
-          type: "提现"
-        },
-        {
-          id: 3,
-          type: "购买"
-        },
-        {
-          id: 4,
-          type: "购买"
-        }
-      ],
-      payList: [
-        {
-          id: 0,
-          type: "全部"
-        },
-        {
-          id: 1,
-          type: "充值"
-        },
-        {
-          id: 2,
-          type: "提现"
-        },
-        {
-          id: 3,
-          type: "购买"
-        },
-        {
-          id: 4,
-          type: "购买"
-        }
-      ],
-      pickerOptions2: {
-        shortcuts: [
-          {
-            text: "全部",
-            onClick(picker) {
-              picker.$emit("pick", []);
-            }
-          },
-          {
-            text: "最近7天",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", [start, end]);
-            }
-          },
-          {
-            text: "最近30天",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit("pick", [start, end]);
-            }
-          },
-          {
-            text: "本周",
-            onClick(picker) {
-              var week = new Date().getDay() - 1;
-              console.log(week);
-              if (week == -1) {
-                week = 6;
-              }
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * week);
-              picker.$emit("pick", [start, end]);
-            }
-          },
-          {
-            text: "本月",
-            onClick(picker) {
-              var month = new Date().getMonth + 1;
-              var year = new Date().getFullYear();
-              // console.log(month, year);
-              var day = new Date().getDate() - 1;
-              console.log(day);
-
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * day);
-              picker.$emit("pick", [start, end]);
-            }
-          },
-          {
-            text: "本年",
-            onClick(picker) {
-              var month = new Date().getMonth + 1;
-              var year = new Date().getFullYear();
-              // console.log(month, year);
-              var day = new Date().getDate() - 1;
-              var firstDay = new Date(year, 0, 1);
-              var dateDiff = new Date() - firstDay;
-              var msPerDay = 1000 * 60 * 60 * 24;
-              //计算天数
-              var diffDays = Math.ceil(dateDiff / msPerDay) - 1;
-              console.log(diffDays);
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * diffDays);
-              picker.$emit("pick", [start, end]);
-            }
-          }
-        ]
-      },
+      count:1,
+      user:'',
+      statusList:[{id:0,name:'已解冻'},{id:1,name:'冻结中'}],
+      order_no:'',
       timeRange: "",
       arriveTime: "",
       searchId: "",
-      tableData3: [
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          money: "200",
-          state: 1
-        },
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          money: "-100",
-          state: 2
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          money: "-100",
-          state: 3
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          money: "-100",
-          state: 4
-        },
-        {
-          date: "2016-05-08",
-          name: "王小虎",
-          money: "2100",
-          state: 1
-        },
-        {
-          date: "2016-05-06",
-          name: "王小虎",
-          money: "-1200",
-          state: 4
-        },
-        {
-          date: "2016-05-07",
-          name: "王小虎",
-          money: "-100",
-          state: 1
-        }
-      ],
+      tableData: [],
 
       // 下发的总数据
       totalData: {},
-      // 项目ID
-      jobID: "",
-      // 审核人
-      period: "",
-      status: "",
-      // 状态列表数据
-      jobStatusList: [],
-      // 负责人
-      checkUser: "",
-      // 审核人列表
-      periodStatusList: [],
-      // 数据总条目
-      totalCount: 0,
+      orderStatus: "",
       currentPage: 1,
       currentPageSize: 20,
-      // 列表宽度
-      tableWidths,
-      // 列表头显示内容
-      tableHeaders,
-      // 列表头字段
-      tableProps,
-      // 列表数据
-      tableData: [],
-      localData: {
-        env: "test"
-      }
     };
   },
-  computed: {
-    isTest() {
-      return this.localData.env === "test";
-    },
-    whole() {
-      return this.totalData.whole || {};
-    },
-    totalDeposit() {
-      return this.whole.total_deposit;
-    },
-    totalFee() {
-      return this.whole.total_fee;
-    }
-  },
   mounted() {
     this.getTableData();
-    this.getEnum();
   },
   methods: {
     // 改变订单类型
-    changeOrder() {
-      var haveAll = false;
-      for (var i = 0; i < this.orderType.length; i++) {
-        if (this.orderType[i] == 0) {
-          haveAll = true;
-        }
-      }
-
-      // 选择其他的时候,去掉全部,全部在第一位
-      if (
-        this.orderType[0] == 0 &&
-        1 < this.orderType.length < this.TypeList.length
-      ) {
-        var arr = [];
-        for (var i = 0; i < this.orderType.length; i++) {
-          if (this.orderType[i] != 0) {
-            arr.push(this.orderType[i]);
-          }
-        }
-
-        this.orderType = arr;
-      }
-      // 选择全部的时候去掉其他,全部在最后一位
-      if (this.orderType[this.orderType.length - 1] == 0) {
-        this.orderType = [0];
-      }
-      if (!haveAll && this.orderType.length == this.TypeList.length - 1) {
-        this.orderType = [0];
-      }
-      if (this.orderType.length == 0) {
-        console.log("sss:", this.orderType);
-        this.orderType = [0];
-      }
-    },
-
-    // 改变支付方式
-    changePay() {
-      var haveAll = false;
-      for (var i = 0; i < this.payType.length; i++) {
-        if (this.payType[i] == 0) {
-          haveAll = true;
-        }
-      }
-
-      // 选择其他的时候,去掉全部,全部在第一位
-      if (
-        this.payType[0] == 0 &&
-        1 < this.payType.length < this.payList.length
-      ) {
-        var arr = [];
-        for (var i = 0; i < this.payType.length; i++) {
-          if (this.payType[i] != 0) {
-            arr.push(this.payType[i]);
-          }
-        }
-
-        this.payType = arr;
-      }
-      // 选择全部的时候去掉其他,全部在最后一位
-      if (this.payType[this.payType.length - 1] == 0) {
-        this.payType = [0];
-      }
-      if (!haveAll && this.payType.length == this.payList.length - 1) {
-        this.payType = [0];
-      }
-      if (this.payType.length == 0) {
-        console.log("sss:", this.orderType);
-        this.payType = [0];
-      }
-    },
     clickExport() {
       window.open("/api/admin/job/get_all_periods?action=export");
     },
-    /**
-     * 获取筛选值
-     */
-    async getEnum() {
-      let { data } = await this.$get("/api/admin/job/getEnum");
-      console.log(data);
-      if (data) {
-        let { jobStatusList, periodStatusList } = data;
-        this.jobStatusList = jobStatusList;
-        this.periodStatusList = periodStatusList;
-      }
-    },
-    // 点击操作
-    clickOperate({ job_id, id }) {
-      if (this.isTest)
-        window.open(
-          `https://dev.test-rooter.proginn.com/main/wage_settlement?job_id=${job_id}&period_id=${id}`
-        );
-      else
-        window.open(
-          `https://rooter.proginn.com/main/wage_settlement?job_id=${job_id}&period_id=${id}`
-        );
-    },
-    // 点击账单
-    clickOrder(i) {
-      if (this.isTest)
-        window.open(
-          `https://dev.test-rooter.proginn.com/main/wage_details?job_id=${i.job_id}&period_id=${i.id}`
-        );
-      else
-        window.open(
-          `https://rooter.proginn.com/main/wage_details?job_id=${i.job_id}&period_id=${i.id}`
-        );
-    },
-    // 点击开发者
-    clickDev(uid) {
-      if (this.isTest)
-        window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
-      else window.open(`https://www.proginn.com/rooter/user/${uid}`);
-    },
-    // 点击企业
-    clickCompany(uid) {
-      if (this.isTest)
-        window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
-      else window.open(`https://www.proginn.com/rooter/user/${uid}`);
-    },
-    // 点击账单id
-    clickJobID(jobID) {
-      if (this.isTest)
-        window.open(
-          `https://dev.test.proginn.com/rooter/cloudjobitem/${jobID}`
-        );
-      else window.open(`https://www.proginn.com/rooter/cloudjobitem/${jobID}`);
-    },
-    // 点击重试
-    async clickRetry(id) {
-      const res = await this.$post("/api/admin/payment/redoDraw", { id });
-      // console.log(res)
-    },
-    // 根据状态显示图表样式
-    tableRowClassName({ row, rowIndex }) {
-      // console.log({row, rowIndex})
-      let className = "";
-      if (row.j_status_name === "结束合作") className = "end-row";
-      // console.log(className)
-      return className;
-    },
-    // 格式化列表数据
-    formatTableData(data) {
-      return data.map(i => ({
-        ...i,
-        payAround: `${i.start_time}<br>${i.end_time}`,
-        pre_send_salary_timeShow: new Date(
-          i.pre_send_salary_time * 1000
-        ).toLocaleDateString()
-      }));
-    },
-    /**
-     * 点击筛选确认
-     */
     clickSearchConfirm() {
       this.currentPage = 1;
       this.getTableData();
@@ -609,31 +160,21 @@ export default {
     // 获取列表数据
     async getTableData() {
       this.tableData = [];
-      let url = "/api/admin/job/get_all_periods";
-      let body = { page: this.currentPage, page_size: this.currentPageSize };
-      if (this.status) body.j_status = this.status;
-      if (this.period) body.p_status = this.period;
-      if (this.checkUser) body.chk_user = this.checkUser;
-      if (this.jobID) body.job_id = this.jobID;
+      let url = "/api/admin/order/get_frozen_coins";
+      let body = { page: this.currentPage, size: this.currentPageSize };
+      if (this.user) body.user = this.user;
+      if (this.orderStatus!=='') body.status = this.orderStatus;
+      if (this.order_no) body.order_no = this.order_no;
+      if (this.timeRange){
+        body.start_time=this.timeRange[0]/1000;
+        body.end_time=this.timeRange[1]/1000;
+      }
       const res = await this.$post(url, body);
-      const data = res.data;
-      this.tableData = this.formatTableData(data.list);
-      this.totalData = data;
-      // // console.log(this.tableData)
-      this.totalCount = Number(data.total);
-      this.totalPage = data.totalPage;
-      this.localData.env = data.current_env;
+      this.tableData = res.data.list;
+      this.totalCoins=res.data.total_coins;
+      this.totalCount=res.data.total_count;
+      this.count=res.data.count;
     },
-    async getFinanceList() {
-      let body = {
-        page: this.currentPage,
-        page_size: this.currentPageSize,
-        artificial_mark: 1
-      };
-      const res = await this.$post("/api/admin/order/get_orders", body);
-      var data = res.data;
-      env = data.current_env;
-    }
   },
   created() {
     // console.log(process.env.NODE_ENV);

+ 101 - 0
pages/main/index/outsource_bill.vue

@@ -0,0 +1,101 @@
+<template>
+  <div v-if="bill">
+    <el-card class="box-card">
+      <div slot="header" class="header clearfix">
+        <span>整包账单明细</span>
+      </div>
+      <el-row :gutter="20">
+        <el-col class="" :span="12">
+          <div class="module-title">企业方:{{bill.company.nickname}}({{bill.company.uid}})</div>
+          <div class="module-content">
+            <div>平台报价:¥{{bill.order.amount}}</div>
+            <div>实际托管:¥{{Number(bill.order.real_amount/100)}}</div>
+            <div>代金券抵扣:¥0.00</div>
+            <div>税费:¥{{bill.project.tax}}({{bill.project.tax_rate}}%)</div>
+            <div>平台服务费:¥{{bill.project.service_fee-bill.project.company_fee_vip_reduce_amount}}
+              (费率{{Number(bill.project.service_fee_rate) + Number(bill.project.company_fee_rate_vip_reduce)}}%,企业版会员减免{{bill.project.company_fee_rate_vip_reduce}}%)</div>
+          </div>
+        </el-col>
+        <el-col :span="12">
+          <div class="module-title">开发者:{{bill.user.nickname}}({{bill.user.uid}})</div>
+          <div class="module-content">
+            <div>结算金额:¥{{bill.order.real_amount/100}}</div>
+            <div>开发款项:¥{{bill.order.amount}}</div>
+<!--            <div>冻结金额:¥88.96(冻结20%)</div>-->
+            <div>税费:¥{{bill.project.person_tax}}(税率{{bill.project.person_tax_rate}}%)</div>
+            <div>平台服务费:¥{{bill.project.person_platform_fee/100}}
+              (费率{{(Number(bill.project.person_platform_fee_rate)+Number(bill.project.person_fee_rate_vip_reduce)).toFixed(2)}}%,开发者会员减免{{bill.project.person_fee_rate_vip_reduce}}%)</div>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <div class="module-title">账单信息</div>
+          <div class="module-content">
+            <div>托管时间:{{bill.project.pro_time}}</div>
+            <div>结算时间:{{bill.project.pro_finishtime}}</div>
+            <div>关联订单:<a v-if="bill.order" href="1"></a> 结薪订单 冻结订单 退款订单</div>
+          </div>
+        </el-col>
+      </el-row>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  data(){
+    return {
+     bill:null
+    }
+  },
+  mounted() {
+    this.getOrderDetail();
+  },
+  methods:{
+    async getOrderDetail() {
+      const res = await this.$post("/api/admin/project/get_order_detail", { project_id:this.$route.query.id});
+      //console.log(res.data.order.amount);
+      this.bill=res.data;
+      //console.log(this.bill);
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.box-card {
+  margin-bottom: 10px;
+  width: 100%;
+}
+
+.header {
+  font-size: 24px;
+  color: #222222;
+  font-weight: 600;
+}
+
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+
+.clearfix:after {
+  clear: both;
+}
+
+.el-col {
+  padding-top: 20px;
+  padding-bottom: 20px;
+}
+
+.module-title {
+  font-weight: bold;
+}
+
+.module-content {
+  margin-top: 17px;
+  margin-left: 14px;
+}
+</style>

+ 215 - 0
pages/main/index/user_bills.vue

@@ -0,0 +1,215 @@
+<template>
+  <div id="mainBody">
+    <div v-if="user">
+    <div class="user-name">用户:{{user.nickname}}({{user.uid}})</div>
+    <div class="user-info">订单数量:{{totalCount}}(支付成功 {{successCount}}),收入金额:{{income_sum}}元(成功 {{income_success_sum}}元),支出金额:{{expense_sum}}元(成功 {{expense_success_sum}}元),当前余额 {{balance}}元</div>
+    <el-table
+      :data="finaceList" border
+      style="width: 100%">
+      <el-table-column
+        prop=""
+        label="订单名称">
+        <template slot-scope="scope">
+          <a href="" class="link-type product_title">{{scope.row.product_title}}</a>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="实际金额">
+        <template slot-scope="scope">
+          {{scope.row.real_amount}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="当前余额">
+        <template slot-scope="scope">
+          {{scope.row.total_balance?scope.row.total_balance:'--'}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="支付方式">
+        <template slot-scope="scope">
+          {{scope.row.channel_name}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="订单状态">
+        <template slot-scope="scope">
+          {{scope.row.order_state_name}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="创建时间">
+        <template slot-scope="scope">
+          {{scope.row.created_at_name}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="订单编号">
+        <template slot-scope="scope">
+          {{scope.row.order_no}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="人工">
+        <template slot-scope="scope">
+          {{scope.row.artificial_mark?'是':'否'}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop=""
+        label="备注说明">
+        <template slot-scope="scope">
+        {{scope.row.public_comment}}
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+    <div class="order-footer">
+      <el-pagination
+        background
+        @current-change="getFinanceList"
+        @size-change="changePageSize"
+        :current-page.sync="currentPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="20"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="totalCount"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        user:{},
+        tradeList: [
+          {
+            id: 0,
+            type: "全部"
+          },
+          {
+            id: 1,
+            type: "充值"
+          },
+          {
+            id: 2,
+            type: "提现"
+          },
+          {
+            id: 3,
+            type: "购买"
+          },
+          {
+            id: 4,
+            type: "购买"
+          }
+        ],
+
+        finaceList: [],
+
+        // 下发的总数据
+        totalData: {},
+        // 负责人
+        checkUser: "",
+        // 审核人列表
+        periodStatusList: [],
+        // 数据总条目
+        totalCount: 1,
+        currentPage: 1,
+        currentPageSize: 20,
+        // 列表数据
+        tableData: [],
+      };
+    },
+    computed: {
+      isTest() {
+        return this.localData.env === "test";
+      }
+    },
+    mounted() {
+      // this.getTableData();
+      this.getFinanceList();
+    },
+    methods: {
+      clickDev(uid) {
+        this.$router.push({ path: "/main/orders_detail", params: { id: uid } });
+      },
+      changePageSize(val) {
+        this.getFinanceList();
+      },
+      // 获取列表数据
+
+      async getFinanceList() {
+        let body = {
+          page: this.currentPage,
+          page_size: this.currentPageSize,
+          user:this.$route.query.user
+
+        };
+        const res = await this.$post("/api/admin/order/get_user_orders", body);
+        var data = res.data;
+        this.finaceList = data.orders;
+        this.totalCount = Number(data.count);
+        this.successCount=Number(data.successCount);
+        this.income_sum=Number(data.income_sum);
+        this.income_success_sum=Number(data.income_success_sum);
+        this.expense_sum=Number(data.expense_sum);
+        this.expense_success_sum=Number(data.expense_success_sum);
+        this.balance=data.total_balance.total_balance;
+        this.user=data.user;
+        //console.log(this.user.nickname);
+      },
+      async downFinanceList() {
+        let body = {
+          page: this.currentPage,
+          page_size: this.currentPageSize,
+          user:this.$route.query.user
+        };
+        // const res = await this.$get("/api/admin/order/get_orders", body);
+        // http://local-rooter.proginn.com:20201/api/admin/order/get_orders?page=1&page_size=20&artificial_mark=1
+        var url =
+          window.location.host + "/api/admin/order/export?" + "artificial_mark=1";
+        console.log(url);
+        window.location.href = "http://" + url;
+      },
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  .user-name {
+    margin-bottom: 10px;
+  }
+
+  .user-info {
+    margin-bottom: 10px;
+  }
+
+  .order-footer {
+    position: absolute;
+    bottom: 10px;
+    left: 10px;
+  }
+
+  .product_title{
+    overflow: hidden;
+    -webkit-line-clamp: 1;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+  }
+  #mainBody {
+    white-space: nowrap;
+    overflow-x: scroll;
+    height: calc(100% - 40px);
+  }
+</style>

+ 158 - 0
pages/main/index/withdraw.vue

@@ -0,0 +1,158 @@
+<template>
+  <div id="withdraw">
+    <el-select @change="changeSelect" v-model="selectValue" placeholder="请选择">
+      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
+    </el-select>
+    <div class="table">
+      <el-table
+        v-if="tableData.length"
+        height="100%"
+        border
+        style="width: 100%"
+        :data="tableData"
+        :row-class-name="tableRowClassName"
+      >
+        <el-table-column
+          v-for="(prop, index) of tableProps"
+          :key="index"
+          :prop="prop"
+          :label="tableHeaders[index]"
+        >
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              v-if="prop === 'uid'"
+              @click="clickUID(scope.row[prop])"
+            >{{scope.row[prop]}}</el-button>
+            <span v-else-if="prop === 'statusShow' && scope.row['status'] !== '1'">
+              {{scope.row[prop]}}
+              <el-button type="text" @click="clickRetry(scope.row['id'])">重试</el-button>
+            </span>
+            <span v-else>{{scope.row[prop]}}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <el-pagination
+      @current-change="getTableData"
+      :current-page.sync="currentPage"
+      :page-size="10"
+      layout="total, prev, pager, next"
+      :total="totalCount"
+    ></el-pagination>
+  </div>
+</template>
+
+<script>
+const tableHeaders = [
+  "用户ID",
+  "真实姓名",
+  "提现金额",
+  "到账金额",
+  "账户余额",
+  "到账账户",
+  "提现时间",
+  "到账时间",
+  "订单号",
+  "支付方式",
+  "状态"
+]
+const tableProps = [
+  "uid",
+  "real_name",
+  "amount",
+  "true_amount",
+  "after_amount",
+  "account",
+  "created_atShow",
+  "taken_atShow",
+  "order_no",
+  "channel",
+  "statusShow"
+]
+
+export default {
+  data() {
+    return {
+      options: [
+        {
+          value: -1,
+          label: '全部'
+        },
+        {
+          value: 0,
+          label: '提交'
+        },
+        {
+          value: 1,
+          label: '成功'
+        },
+        {
+          value: 2,
+          label: '失败'
+        },
+        {
+          value: 3,
+          label: '进行中'
+        },
+      ],
+      selectValue: -1,
+      // 数据总条目
+      totalCount: 0,
+      currentPage: 1,
+      // 列表头显示内容
+      tableHeaders,
+      // 列表头字段
+      tableProps,
+      // 列表数据
+      tableData: []
+    };
+  },
+  mounted() {
+    this.getTableData()
+  },
+  methods: {
+    changeSelect(status) {
+      this.getTableData()
+    },
+    // 点击重试
+    async clickRetry(id) {
+      const res = await this.$post("/api/admin/payment/redoDraw", { id })
+    },
+    // 点击用户的 uid
+    clickUID(uid) {
+      // console.log("click uid: " + uid)
+    },
+    // 根据状态显示图表样式
+    tableRowClassName({ row, rowIndex }) {
+      let className = ""
+      if(row.status === "1") className = "success-row"
+      return className
+    },
+    // 格式化列表数据
+    formatTableData(data) {
+      return data.map(i => ({
+        ...i,
+        statusShow: i.status === "1" ? "到账" : "失败",
+        created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
+        taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString()
+      }));
+    },
+    // 获取列表数据
+    async getTableData(page = this.currentPage) {
+      this.tableData = []
+      const res = await this.$post("/api/admin/payment/listDraw", { page, status: this.selectValue })
+      const data = res.data
+      this.tableData = this.formatTableData(res.data.list)
+      this.totalCount = Number(data.total)
+      this.totalPage = data.totalPage
+    }
+  }
+};
+</script>
+
+<style scoped>
+.table {
+  height: calc(100% - 80px);
+}
+</style>

+ 111 - 0
pages/main/index/work_bill.vue

@@ -0,0 +1,111 @@
+<template>
+  <div v-if="bill">
+    <el-card class="box-card">
+      <div slot="header" class="header clearfix">
+        <span>工资账单明细</span>
+      </div>
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <div class="module-title">企业方 {{bill.enterprise.nickname}}({{bill.enterprise.uid}})</div>
+          <div class="module-content">
+            <div>实际费用:¥{{(bill.order.real_amount/100).toFixed(2)}}</div>
+            <div>开发款项:¥{{bill.hire.price}}</div>
+            <div>平台服务费:¥{{bill.hire.service_fee}}</div>
+            <div>应缴税费:¥{{bill.hire.tax_fee}}</div>
+            <div>直通车抵扣:¥{{bill.hire.fast_hire_fee}}</div>
+            <div>托管金额:¥{{(bill.order.real_amount/100).toFixed(2)}}</div>
+<!--            <div>差价:¥1070.00(含税¥70.00)</div>-->
+<!--            <div>退款:¥0(含税¥70.00)</div>-->
+          </div>
+        </el-col>
+        <el-col :span="12">
+          <div class="module-title">{{bill.developer.nickname}}({{bill.developer.uid}})</div>
+          <div class="module-content">
+            <div>实际费用:{{bill.hire.price}}</div>
+            <div>开发款项:¥{{bill.hire.price}}</div>
+            <div>平台服务费:¥0</div>
+            <div>应交税费:¥0</div>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <div class="module-title">工资明细</div>
+          <div class="module-content">
+            <div>工作日薪:¥{{bill.hire.daily_price}}/天</div>
+            <div>工作周期:{{bill.hire.start_date}} 至 {{bill.hire.end_date}}(10小时)</div>
+            <div>正式工资:¥{{bill.hire.daily_price}}(10小时)</div>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <div class="module-title">账单信息</div>
+          <div class="module-content">
+            <div>创建时间:{{bill.hire.create_time}}</div>
+            <div>托管时间:{{bill.hire.pay_time}}</div>
+<!--            <div>结薪时间:2019/09/24  15:05:20</div>-->
+<!--            <div>关联订单:雇佣款_1231  雇佣补差价_1231</div>-->
+            <div>费率明细:企业方:实际服务费率{{Number(100*(bill.hire.service_fee/bill.hire.price))}}%;</div>
+          </div>
+        </el-col>
+      </el-row>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  data(){
+    return {
+      bill:null
+    }
+  },
+  mounted(){
+    this.getBill();
+  },
+  methods:{
+    async getBill(){
+      const data=await this.$post("/api/admin/hire/detail", { id: this.$route.query.id })
+      this.bill=data.data;
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.box-card {
+  margin-bottom: 10px;
+  width: 100%;
+}
+
+.header {
+  font-size: 24px;
+  color: #222222;
+  font-weight: 600;
+}
+
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+
+.clearfix:after {
+  clear: both;
+}
+
+.el-col {
+  padding-top: 20px;
+  padding-bottom: 20px;
+}
+
+.module-title {
+  font-weight: bold;
+}
+
+.module-content {
+  margin-top: 17px;
+  margin-left: 14px;
+}
+</style>