Przeglądaj źródła

Merge branch 'dev' of www.gitinn.com:proginn/boss into dev

 Conflicts:
	dist/200.html
	dist/_nuxt/01b1010ff74d696c6b98.js
	dist/_nuxt/0e25435c31be90b9827f.js
	dist/_nuxt/2920073e1b41b8e7ad12.js
	dist/_nuxt/2e1075783252fa05d185.js
	dist/_nuxt/2ec846eeab9293e79c15.js
	dist/_nuxt/35ba3e95de88cc34ae15.js
	dist/_nuxt/446b855964ca6802fe92.js
	dist/_nuxt/4713f06e436ab277ca64.js
	dist/_nuxt/4c24b4087995d8c0755d.js
	dist/_nuxt/55b36e32e273f4ffaa6a.js
	dist/_nuxt/57de590d12938a213e67.js
	dist/_nuxt/6570543b98398ad02152.js
	dist/_nuxt/7553779226e81ed2be4f.js
	dist/_nuxt/78418adbc7dafc5cc58c.js
	dist/_nuxt/817569694e343de836e0.js
	dist/_nuxt/b0cf013e81943a678ccb.js
	dist/_nuxt/bb76714c93eff6f335c7.js
	dist/_nuxt/bcc930fb2e3264f13996.js
	dist/_nuxt/c00d8cfb10cf334562c9.js
	dist/_nuxt/cffa10f0cde4a185fc2b.js
	dist/_nuxt/d711d0d742b4dae7ff38.js
	dist/_nuxt/dd182a7bfbb68b9a8c89.js
	dist/_nuxt/f46dcfe861dbf9df0717.js
	dist/_nuxt/fb440899181260c72c0e.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/job/index.html
	dist/main/jobs/index.html
	dist/main/orders/index.html
	dist/main/orders_detail/index.html
	dist/main/orders_frozen/index.html
	dist/main/outsource_bill/index.html
	dist/main/present_job_apply/index.html
	dist/main/publish_present/index.html
	dist/main/solution/index.html
	dist/main/solution_detail/index.html
	dist/main/user_bills/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
	dist/main/wait_expend/index.html
	dist/main/withdraw/index.html
	dist/main/work_bill/index.html
xiaozhen 6 lat temu
rodzic
commit
0185dca69b
89 zmienionych plików z 1837 dodań i 1627 usunięć
  1. 1 0
      dist/_nuxt/0293764a4da8a4b7c90c.js
  2. 1 0
      dist/_nuxt/128a248c271a3b0afea9.js
  3. 1 0
      dist/_nuxt/16f4293b12e5adb434f3.js
  4. 1 0
      dist/_nuxt/170dd1d85649b3f4518c.js
  5. 0 1
      dist/_nuxt/1ac8e402cf1c8dc73fe7.css
  6. 1 0
      dist/_nuxt/1b9b27219b5dc201548a.css
  7. 0 1
      dist/_nuxt/1fbb3af25b5c4130fa5a.css
  8. 0 1
      dist/_nuxt/1fcb1721f4f841f18f3a.css
  9. 1 0
      dist/_nuxt/2042b225448a855234e4.js
  10. 0 1
      dist/_nuxt/21a570ae8088c3446187.css
  11. 1 0
      dist/_nuxt/2a4d96403f4114e94acb.js
  12. 0 1
      dist/_nuxt/2db86c8743ffd972e668.css
  13. 1 0
      dist/_nuxt/2dc3e34b792beafd9ceb.js
  14. 1 0
      dist/_nuxt/3357156fe658fb5bc1b6.css
  15. 1 0
      dist/_nuxt/3e90dd422d2b26f7a772.js
  16. 1 0
      dist/_nuxt/3f0dead1e5ed75382256.css
  17. 1 0
      dist/_nuxt/41db78553fa996e65a0b.css
  18. 1 0
      dist/_nuxt/4753261abd6f27b8779c.js
  19. 0 1
      dist/_nuxt/4e9795c8c531379ee32f.css
  20. 0 1
      dist/_nuxt/4f2edf2ae45d3db19235.css
  21. 1 0
      dist/_nuxt/52e3de45816fc3d39d49.css
  22. 1 0
      dist/_nuxt/538feae0894a623b8208.css
  23. 1 0
      dist/_nuxt/593f727003a442a8b57f.css
  24. 1 0
      dist/_nuxt/59a452a8bcacd90df56b.css
  25. 1 0
      dist/_nuxt/5c93161f51ffaadf457f.js
  26. 1 0
      dist/_nuxt/5f73ad44b89fe615413e.js
  27. 1 0
      dist/_nuxt/66e0d8e8cbf9b3dfdd1f.js
  28. 0 1
      dist/_nuxt/6ce5c5e9ef294d26d1fa.css
  29. 1 0
      dist/_nuxt/758cd5b0a129574ddbf8.css
  30. 1 0
      dist/_nuxt/7644dc2476c6b8e2dcdc.js
  31. 1 0
      dist/_nuxt/771c4e6ada664c6ddcd2.css
  32. 1 0
      dist/_nuxt/7b72c0e94b9a67197e93.js
  33. 1 0
      dist/_nuxt/7b89b181ee399c075e09.css
  34. 0 1
      dist/_nuxt/86bed4727abbc3686338.css
  35. 0 1
      dist/_nuxt/87b054e84d10cbb6feda.css
  36. 0 1
      dist/_nuxt/89e41759e3f52593362b.css
  37. 1 0
      dist/_nuxt/8bb8476b02d90f41bbd8.css
  38. 1 0
      dist/_nuxt/9685306278844f3244d8.js
  39. 0 1
      dist/_nuxt/9904adba5289815d94a3.css
  40. 0 1
      dist/_nuxt/9bf0efd7d3d6cce8db6c.css
  41. 1 0
      dist/_nuxt/9db9b400123276d37e4e.css
  42. 1 0
      dist/_nuxt/a0f62fc45598f93fe863.css
  43. 1 0
      dist/_nuxt/a1ef0b17d167cca6f825.css
  44. 0 1
      dist/_nuxt/a79ab18d96b1681bc8db.css
  45. 1 0
      dist/_nuxt/ab3a8d98130204a05fc3.css
  46. 1 0
      dist/_nuxt/ad7cd8d6ada015a1ea9b.css
  47. 1 0
      dist/_nuxt/b85eca15cdba7df4430b.js
  48. 0 1
      dist/_nuxt/bb2873d59ddec593d8a6.css
  49. 1 0
      dist/_nuxt/bb74e67e616f7c6a4fb8.js
  50. 1 0
      dist/_nuxt/c52993167d48a80ec97e.css
  51. 0 1
      dist/_nuxt/c5b61c8138431135224e.css
  52. 0 1
      dist/_nuxt/cf7f1e7ceaf45733925c.css
  53. 0 1
      dist/_nuxt/d07f21ab398e241d057e.css
  54. 0 1
      dist/_nuxt/dcbbe70bdcf8655244bb.css
  55. 0 1
      dist/_nuxt/dda340c9c01c2bb48973.css
  56. 1 0
      dist/_nuxt/e096a617ce8ca0a4e1c1.css
  57. 1 1
      dist/_nuxt/05ef6d638109e1f30643.css
  58. 1 0
      dist/_nuxt/e6ec58fabea4e08613a8.js
  59. 1 0
      dist/_nuxt/f4beddb7abb7191eda4e.js
  60. 1 0
      dist/_nuxt/f5407359feff9867e805.css
  61. 0 1
      dist/_nuxt/f71a9eecb562d6005c75.css
  62. 1 0
      dist/_nuxt/f9c8c73c64a107b6804e.css
  63. 1 0
      dist/_nuxt/fa6264f3b0227819c18e.js
  64. 1 0
      dist/_nuxt/fc9f5b7be9b77cdc7d2f.js
  65. 102 0
      middleware/initialize.js
  66. 3 0
      nuxt.config.js
  67. 7 2
      pages/main/index/cats copy.vue
  68. 2 5
      pages/main/index/cats.vue
  69. 65 45
      pages/main/index/cert_check.vue
  70. 32 27
      pages/main/index/cert_pro.vue
  71. 149 129
      pages/main/index/cloud_balance.vue
  72. 172 165
      pages/main/index/cloud_job.vue
  73. 17 30
      pages/main/index/cloud_order copy.vue
  74. 47 45
      pages/main/index/dev_check.vue
  75. 1 3
      pages/main/index/dev_check_detail.vue
  76. 49 40
      pages/main/index/group_list.vue
  77. 7 18
      pages/main/index/job.vue
  78. 7 23
      pages/main/index/orders.vue
  79. 3 3
      pages/main/index/orders_detail.vue
  80. 224 232
      pages/main/index/present_job_apply.vue
  81. 271 255
      pages/main/index/publish_present.vue
  82. 9 26
      pages/main/index/solution_detail.vue
  83. 164 186
      pages/main/index/user_bills.vue
  84. 117 107
      pages/main/index/vip_manager.vue
  85. 127 122
      pages/main/index/vip_order.vue
  86. 1 1
      pages/main/index/wage_details.vue
  87. 174 116
      pages/main/index/wage_settlement.vue
  88. 11 11
      pages/main/index/wait_expend.vue
  89. 33 14
      store/index.js

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/0293764a4da8a4b7c90c.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/128a248c271a3b0afea9.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/16f4293b12e5adb434f3.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/170dd1d85649b3f4518c.js


+ 0 - 1
dist/_nuxt/1ac8e402cf1c8dc73fe7.css

@@ -1 +0,0 @@
-.header[data-v-5fa5b775]{margin-top:20px;margin-bottom:30px}.tab-header[data-v-5fa5b775]{margin-bottom:10px}.tab-content[data-v-5fa5b775]{white-space:nowrap;overflow-x:scroll;height:calc(100vh - 300px)}.order-footer[data-v-5fa5b775]{margin-top:10px}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/1b9b27219b5dc201548a.css


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/1fbb3af25b5c4130fa5a.css


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/1fcb1721f4f841f18f3a.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/2042b225448a855234e4.js


+ 0 - 1
dist/_nuxt/21a570ae8088c3446187.css

@@ -1 +0,0 @@
-.table[data-v-2b5afdbc]{height:calc(100% - 40px)}.img[data-v-2b5afdbc]{width:100%;height:auto}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/2a4d96403f4114e94acb.js


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/2db86c8743ffd972e668.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/2dc3e34b792beafd9ceb.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/3357156fe658fb5bc1b6.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/3e90dd422d2b26f7a772.js


+ 1 - 0
dist/_nuxt/3f0dead1e5ed75382256.css

@@ -0,0 +1 @@
+.table[data-v-b77c5580]{height:calc(100% - 40px)}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/41db78553fa996e65a0b.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/4753261abd6f27b8779c.js


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/4e9795c8c531379ee32f.css


+ 0 - 1
dist/_nuxt/4f2edf2ae45d3db19235.css

@@ -1 +0,0 @@
-.table[data-v-2ecade7c]{height:calc(100% - 40px)}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/52e3de45816fc3d39d49.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/538feae0894a623b8208.css


+ 1 - 0
dist/_nuxt/593f727003a442a8b57f.css

@@ -0,0 +1 @@
+.table[data-v-63a106ee]{height:100%;height:calc(100% - 80px)}

+ 1 - 0
dist/_nuxt/59a452a8bcacd90df56b.css

@@ -0,0 +1 @@
+.table[data-v-609e8e81]{height:100%;height:calc(100% - 80px)}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/5c93161f51ffaadf457f.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/5f73ad44b89fe615413e.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/66e0d8e8cbf9b3dfdd1f.js


+ 0 - 1
dist/_nuxt/6ce5c5e9ef294d26d1fa.css

@@ -1 +0,0 @@
-.user-info[data-v-f500349a],.user-name[data-v-f500349a]{margin-bottom:10px}.order-footer[data-v-f500349a]{position:absolute;bottom:10px;left:10px}.product_title[data-v-f500349a]{overflow:hidden;-webkit-line-clamp:1;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}#mainBody[data-v-f500349a]{white-space:nowrap;overflow-x:scroll;height:calc(100% - 40px)}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/758cd5b0a129574ddbf8.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/7644dc2476c6b8e2dcdc.js


+ 1 - 0
dist/_nuxt/771c4e6ada664c6ddcd2.css

@@ -0,0 +1 @@
+.header[data-v-20ac0479]{margin-top:20px;margin-bottom:30px}.tab-header[data-v-20ac0479]{margin-bottom:10px}.tab-content[data-v-20ac0479]{white-space:nowrap;overflow-x:scroll;height:calc(100vh - 300px)}.order-footer[data-v-20ac0479]{margin-top:10px}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/7b72c0e94b9a67197e93.js


+ 1 - 0
dist/_nuxt/7b89b181ee399c075e09.css

@@ -0,0 +1 @@
+.user-info[data-v-0535b2d3],.user-name[data-v-0535b2d3]{margin-bottom:10px}.order-footer[data-v-0535b2d3]{position:absolute;bottom:10px;left:10px}.product_title[data-v-0535b2d3]{overflow:hidden;-webkit-line-clamp:1;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}#mainBody[data-v-0535b2d3]{white-space:nowrap;overflow-x:scroll;height:calc(100% - 40px)}

Plik diff jest za duży
+ 0 - 1
dist/_nuxt/86bed4727abbc3686338.css


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/87b054e84d10cbb6feda.css


+ 0 - 1
dist/_nuxt/89e41759e3f52593362b.css

@@ -1 +0,0 @@
-.table[data-v-556c65be]{height:calc(100% - 40px)}

+ 1 - 0
dist/_nuxt/8bb8476b02d90f41bbd8.css

@@ -0,0 +1 @@
+.el-row[data-v-64b9ebd1]{margin-bottom:20px}.top[data-v-64b9ebd1]{margin-top:10px}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/9685306278844f3244d8.js


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/9904adba5289815d94a3.css


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/9bf0efd7d3d6cce8db6c.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/9db9b400123276d37e4e.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/a0f62fc45598f93fe863.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/a1ef0b17d167cca6f825.css


+ 0 - 1
dist/_nuxt/a79ab18d96b1681bc8db.css

@@ -1 +0,0 @@
-.el-row[data-v-28933b49]{margin-bottom:20px}.top[data-v-28933b49]{margin-top:10px}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/ab3a8d98130204a05fc3.css


+ 1 - 0
dist/_nuxt/ad7cd8d6ada015a1ea9b.css

@@ -0,0 +1 @@
+.table[data-v-7a400364]{height:calc(100% - 40px)}.img[data-v-7a400364]{width:100%;height:auto}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/b85eca15cdba7df4430b.js


Plik diff jest za duży
+ 0 - 1
dist/_nuxt/bb2873d59ddec593d8a6.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/bb74e67e616f7c6a4fb8.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/c52993167d48a80ec97e.css


+ 0 - 1
dist/_nuxt/c5b61c8138431135224e.css

@@ -1 +0,0 @@
-.table[data-v-666e0045]{height:100%;height:calc(100% - 80px)}

+ 0 - 1
dist/_nuxt/cf7f1e7ceaf45733925c.css

@@ -1 +0,0 @@
-.table[data-v-0a251d61]{height:100%;height:calc(100% - 80px)}

Plik diff jest za duży
+ 0 - 1
dist/_nuxt/d07f21ab398e241d057e.css


+ 0 - 1
dist/_nuxt/dcbbe70bdcf8655244bb.css

@@ -1 +0,0 @@
-.table[data-v-fc47a7f0]{height:calc(100% - 80px)}.img[data-v-fc47a7f0]{width:100%;height:auto}

+ 0 - 1
dist/_nuxt/dda340c9c01c2bb48973.css

@@ -1 +0,0 @@
-.form-inline[data-v-0e562451]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}

+ 1 - 0
dist/_nuxt/e096a617ce8ca0a4e1c1.css

@@ -0,0 +1 @@
+.form-inline[data-v-08fd03f7]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}

Plik diff jest za duży
+ 1 - 1
dist/_nuxt/05ef6d638109e1f30643.css


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/e6ec58fabea4e08613a8.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/f4beddb7abb7191eda4e.js


+ 1 - 0
dist/_nuxt/f5407359feff9867e805.css

@@ -0,0 +1 @@
+.table[data-v-48d0e42c]{height:calc(100% - 40px)}

Plik diff jest za duży
+ 0 - 1
dist/_nuxt/f71a9eecb562d6005c75.css


+ 1 - 0
dist/_nuxt/f9c8c73c64a107b6804e.css

@@ -0,0 +1 @@
+.table[data-v-775fb77f]{height:calc(100% - 80px)}.img[data-v-775fb77f]{width:100%;height:auto}

Plik diff jest za duży
+ 1 - 0
dist/_nuxt/fa6264f3b0227819c18e.js


Plik diff jest za duży
+ 1 - 0
dist/_nuxt/fc9f5b7be9b77cdc7d2f.js


+ 102 - 0
middleware/initialize.js

@@ -0,0 +1,102 @@
+export default function(context) {
+  console.log("initialize.........");
+  let proto = "https";
+  let url = "";
+  let cookies = "";
+  // Server-side
+  if (process.server) {
+    console.log("server side............");
+    const { req } = context;
+    let host = req.headers.host;
+    let proto = "https";
+    if (req.headers["x-forwarded-proto"]) {
+      proto = req.headers["x-forwarded-proto"];
+    } else if (req.headers["x-scheme"]) {
+      proto = req.headers["x-scheme"];
+    } else if (host.indexOf("local.") != -1) {
+      proto = "http";
+    }
+    url = proto + "://" + host;
+    cookies = req.headers.cookie;
+  }
+  // Client-side
+  if (process.client) {
+    console.log("client side............");
+    url = document.location.href;
+    let proto = "http";
+    if (url.indexOf("https://") != -1) {
+      proto = "https";
+    }
+    cookies = document.cookie;
+  }
+  let regx = new RegExp(
+    "((?<branch>[a-z0-9_\\-]+)\\.)?(?<env>(www|prod|test|local|test-jishuin|test-rooter|prod-jishuin|prod-rooter))\\.proginn\\.com(\\:(?<port>\\d+))?",
+    "gim"
+  );
+  console.log(regx);
+  console.log(url);
+  let groups = regx.exec(url).groups;
+  let api = "";
+  let jishuinUrl = "";
+  let rooterUrl = "";
+  let siteUrl = "";
+  if (groups) {
+    let { branch, env, port } = groups;
+    switch (env) {
+      case "www":
+        api = "https://www.proginn.com";
+        siteUrl = "https://www.proginn.com";
+        jishuinUrl = "https://jishuin.proginn.com";
+        rooterUrl = "https://rooter.proginn.com";
+        break;
+      case "test":
+      case "test-jishuin":
+      case "test-rooter":
+        api = "https://" + branch + ".test.proginn.com";
+        siteUrl = "https://" + branch + ".test.proginn.com";
+        jishuinUrl = "https://" + branch + ".test-jishuin.proginn.com";
+        rooterUrl = "https://" + branch + ".test-rooter.proginn.com";
+        break;
+      case "local":
+        if (port && port != "80") {
+          api = "http://local.proginn.com:" + port;
+          siteUrl = "http://local.proginn.com:" + port;
+          jishuinUrl = "http://local-jishuin.proginn.com";
+          rooterUrl = "http://local-rooter.proginn.com";
+        } else {
+          api = "http://local.proginn.com";
+          siteUrl = "http://local.proginn.com";
+          jishuinUrl = "http://local-jishuin.proginn.com";
+          rooterUrl = "http://local-rooter.proginn.com";
+        }
+        break;
+      case "prod":
+      case "prod-jishuin":
+      case "prod-rooter":
+        api = "https://" + branch + ".prod.proginn.com";
+        siteUrl = "https://" + branch + ".prod.proginn.com";
+        jishuinUrl = "https://" + branch + ".prod-jishuin.proginn.com";
+        rooterUrl = "https://" + branch + ".prod-rooter.proginn.com";
+        break;
+      default:
+        // 按生产处理
+        api = "https://www.proginn.com";
+        siteUrl = "https://www.proginn.com";
+        jishuinUrl = "https://jishuin.proginn.com";
+        rooterUrl = "https://rooter.proginn.com";
+        break;
+    }
+  } else {
+    // 按生产处理
+    api = "https://www.proginn.com";
+    siteUrl = "https://www.proginn.com";
+    jishuinUrl = "https://jishuin.proginn.com";
+    rooterUrl = "https://rooter.proginn.com";
+  }
+  context.store.commit("updateDomainConfig", {
+    api: api,
+    siteUrl: siteUrl,
+    jishuinUrl: jishuinUrl,
+    rooterUrl: rooterUrl
+  });
+}

+ 3 - 0
nuxt.config.js

@@ -85,5 +85,8 @@ module.exports = {
       automaticNameDelimiter: "."
     },
     extend(config, ctx) {}
+  },
+  router: {
+    middleware: "initialize"
   }
 };

+ 7 - 2
pages/main/index/cats copy.vue

@@ -1014,8 +1014,13 @@ export default {
      */
     clickUID({ uid }) {
       if (env === "test")
-        window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
-      else window.open(`https://www.proginn.com/rooter/user/${uid}`);
+        window.open(
+          this.$store.state.domainConfig.siteUrl + `/rooter/user/${uid}`
+        );
+      else
+        window.open(
+          this.$store.state.domainConfig.siteUrl + `/rooter/user/${uid}`
+        );
     },
     // 页码变动
     changePagination() {

+ 2 - 5
pages/main/index/cats.vue

@@ -339,14 +339,11 @@ export default {
     },
     clickUID(uid) {
       console.log(uid);
-      if (env === "test") window.open(`https://dev.test.proginn.com/wo/${uid}`);
-      else window.open(`https://www.proginn.com/wo/${uid}`);
+      window.open(this.$store.state.domainConfig.siteUrl +`/wo/${uid}`);
     },
     clickUserID(uid) {
       console.log(uid);
-      if (env === "test")
-        window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
-      else window.open(`https://www.proginn.com/rooter/user/${uid}`);
+        window.open(this.$store.state.domainConfig.siteUrl +`/rooter/user/${uid}`);
     },
     handleChange(value) {
       console.log(value);

+ 65 - 45
pages/main/index/cert_check.vue

@@ -2,10 +2,23 @@
   <section id="cert-check">
     <div class="table">
       <el-table v-if="tableData.length" height="100%" border style="width: 100%" :data="tableData">
-        <el-table-column v-for="(prop, index) of tableProps" :key="index" :prop="prop" :label="tableHeaders[index]">
+        <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 === 'ctrl'" @click="clickCheck(scope.row)">{{scope.row[prop]}}</el-button>
-            <el-button type="text" v-else-if="prop === 'nickname'" @click="clickDetail(scope.row['uid'])">{{scope.row[prop]}}</el-button>
+            <el-button
+              type="text"
+              v-if="prop === 'ctrl'"
+              @click="clickCheck(scope.row)"
+            >{{scope.row[prop]}}</el-button>
+            <el-button
+              type="text"
+              v-else-if="prop === 'nickname'"
+              @click="clickDetail(scope.row['uid'])"
+            >{{scope.row[prop]}}</el-button>
             <span v-else>{{scope.row[prop]}}</span>
           </template>
         </el-table-column>
@@ -19,13 +32,13 @@
       :page-sizes="[10, 20, 30, 40]"
       :page-size="20"
       layout="total, sizes, prev, pager, next, jumper"
-      :total="totalCount">
-    </el-pagination>
+      :total="totalCount"
+    ></el-pagination>
   </section>
 </template>
 
 <script>
-import dayjs from 'dayjs'
+import dayjs from "dayjs";
 const tableHeaders = [
   "ID",
   "昵称",
@@ -41,7 +54,7 @@ const tableHeaders = [
   "开始时间",
   "过期时间",
   "操作"
-]
+];
 
 const tableProps = [
   "uid",
@@ -58,26 +71,31 @@ const tableProps = [
   "startDate",
   "endDate",
   "ctrl"
-]
+];
 
 const apis = {
-  dataList: `/api/admin/cert/getUserList`,
-}
+  dataList: `/api/admin/cert/getUserList`
+};
 
-let env = 'test'
+let env = "test";
 
 // 获取当前状态
 const getOnProjectShow = i => {
-  let str = ''
-  if(i.on_project === 0 && i.on_hire === 0 & i.on_job === 0 && i.work_status === 1) str = '空闲'
+  let str = "";
+  if (
+    i.on_project === 0 &&
+    (i.on_hire === 0) & (i.on_job === 0) &&
+    i.work_status === 1
+  )
+    str = "空闲";
   else {
-    if(i.on_project) str = '项目'
-    else if(i.on_hire) str = '雇佣'
-    else if(i.on_job) str = '云端'
-    else if(!i.work_status) str = '不接单'
+    if (i.on_project) str = "项目";
+    else if (i.on_hire) str = "雇佣";
+    else if (i.on_job) str = "云端";
+    else if (!i.work_status) str = "不接单";
   }
-  return str
-}
+  return str;
+};
 
 export default {
   data() {
@@ -92,59 +110,61 @@ export default {
       tableProps,
       // 列表数据
       tableData: []
-    }
+    };
   },
   mounted() {
-    this.getTableData()
+    this.getTableData();
   },
   methods: {
     clickDetail(uid) {
-      window.open(`/rooter/user/${uid}`)
+      window.open(`/rooter/user/${uid}`);
     },
     clickCheck(item) {
-      if(env === 'test') window.open(`https://dev.test.proginn.com/rooter/developerVerifyAuditList?uid=${item.uid}&audit_type=1`)
-      else window.open(`https://www.proginn.com/rooter/developerVerifyAuditList?uid=${item.uid}&audit_type=1`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl +
+          `/rooter/developerVerifyAuditList?uid=${item.uid}&audit_type=1`
+      );
     },
     // 格式化列表数据
     formatTableData(data, resData) {
-      const userSkills = resData.userSkills
+      const userSkills = resData.userSkills;
       return data.map(i => {
-        const projectCountInfo = i.project_count_info
-          , countDevelopProject = projectCountInfo.project
-          , countHire = projectCountInfo.hire
-          , countJob = projectCountInfo.job
+        const projectCountInfo = i.project_count_info,
+          countDevelopProject = projectCountInfo.project,
+          countHire = projectCountInfo.hire,
+          countJob = projectCountInfo.job;
         return {
           ...i,
           projectCountInfoStr: `项目:${countDevelopProject},雇佣:${countHire},云端:${countJob}`,
           startDate: i.start_date, //dayjs(i.start_time * 1000).format('YYYY-MM-DD'),
           endDate: i.end_date, //dayjs(i.end_time * 1000).format('YYYY-MM-DD'),
           ctrl: "审核"
-        }
-      })
+        };
+      });
     },
     // 页码变动
     changePagination(page) {
-      this.currentPage = page
-      this.getTableData()
+      this.currentPage = page;
+      this.getTableData();
     },
     changePageSize(pageSize) {
-      this.currentPageSize = pageSize
-      this.getTableData()
+      this.currentPageSize = pageSize;
+      this.getTableData();
     },
     // 获取列表数据
     async getTableData(status = 0) {
-      this.tableData = []
-      let body = { page: this.currentPage,page_size:this.currentPageSize}
-      const res = await this.$post('/api/admin/cert/getUserList', body)
-        , data = res.data
-        , list = data.list
-      env = data.current_env
-      this.tableData = this.formatTableData(list, data)
-      this.totalCount = Number(data.total)
-      this.totalPage = data.totalPage
+      this.tableData = [];
+      let body = { page: this.currentPage, page_size: this.currentPageSize };
+      const res = await this.$post("/api/admin/cert/getUserList", body),
+        data = res.data,
+        list = data.list;
+      env = data.current_env;
+      this.tableData = this.formatTableData(list, data);
+      this.totalCount = Number(data.total);
+      this.totalPage = data.totalPage;
     }
   }
-}
+};
 </script>
 
 <style scoped>

+ 32 - 27
pages/main/index/cert_pro.vue

@@ -21,13 +21,17 @@
               v-if="prop === 'name'"
               @click="clickName(scope.row)"
             >{{scope.row[prop]}}</el-button>
-            <el-button type="text" v-else-if="prop === 'ctrl'" @click="clickCtrl(scope.row, index)">编辑</el-button>
+            <el-button
+              type="text"
+              v-else-if="prop === 'ctrl'"
+              @click="clickCtrl(scope.row, index)"
+            >编辑</el-button>
             <section v-else-if="prop === 'price'">
               <div>原价¥{{scope.row.origin_price}}</div>
               <div>现价¥{{scope.row.real_price}}</div>
               <div>会员价¥{{scope.row.vip_price}}</div>
             </section>
-            <img class="img" v-else-if="prop === 'img'" :src="scope.row.img" alt="img">
+            <img class="img" v-else-if="prop === 'img'" :src="scope.row.img" alt="img" />
             <span v-else>{{scope.row[prop]}}</span>
           </template>
         </el-table-column>
@@ -56,8 +60,8 @@ const tableHeaders = [
   "简介",
   "证书",
   "说明",
-  "操作",
-]
+  "操作"
+];
 const tableProps = [
   "name",
   "status_name",
@@ -67,10 +71,10 @@ const tableProps = [
   "introduction",
   "content",
   "description",
-  "ctrl",
-]
+  "ctrl"
+];
 
-let env = 'test'
+let env = "test";
 
 export default {
   data() {
@@ -85,30 +89,31 @@ export default {
       tableProps,
       // 列表数据
       tableData: []
-    }
+    };
   },
   mounted() {
-    this.getTableData()
+    this.getTableData();
   },
   methods: {
     clickCtrl(item, index) {
       this.$router.push({
-        path: '/main/cert_edit',
+        path: "/main/cert_edit",
         query: {
           id: item.id
         }
-      })
+      });
     },
     // 点击用户的 uid
     clickName(item) {
-      if(env === 'test')window.open(`https://dev.test.proginn.com/cert/type/${item.id}`)
-      else window.open(`https://www.proginn.com/cert/type/${item.id}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/cert/type/${item.id}`
+      );
     },
     // 根据状态显示图表样式
     tableRowClassName({ row, rowIndex }) {
-      let className = ""
-      if(row.status === "1") className = "success-row"
-      return className
+      let className = "";
+      if (row.status === "1") className = "success-row";
+      return className;
     },
     // 格式化列表数据
     formatTableData(data) {
@@ -118,23 +123,23 @@ export default {
         created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
         taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString(),
         ctrl: 1
-      }))
+      }));
     },
     changePageSize(pageSize) {
-      this.currentPageSize = pageSize
-      this.getTableData()
+      this.currentPageSize = pageSize;
+      this.getTableData();
     },
     // 获取列表数据
     async getTableData(page = 1) {
-      this.tableData = []
-      let body = { page: this.currentPage,page_size:this.currentPageSize}
-      const res = await this.$post("/api/admin/cert/getList", body)
+      this.tableData = [];
+      let body = { page: this.currentPage, page_size: this.currentPageSize };
+      const res = await this.$post("/api/admin/cert/getList", body);
       // console.log(res)
-      const data = res.data
-      env = data.current_env
-      this.tableData = this.formatTableData(res.data.list)
-      this.totalCount = Number(data.total)
-      this.totalPage = data.totalPage
+      const data = res.data;
+      env = data.current_env;
+      this.tableData = this.formatTableData(res.data.list);
+      this.totalCount = Number(data.total);
+      this.totalPage = data.totalPage;
     }
   }
 };

+ 149 - 129
pages/main/index/cloud_balance.vue

@@ -3,26 +3,37 @@
     <section class="top">
       <h3>云端财务列表</h3>
       <section>
-        <span>托管总金额: <b>{{totalFee}}</b></span>
-        <span>押金总金额: <b>{{totalDeposit}}</b></span>
+        <span>
+          托管总金额:
+          <b>{{totalFee}}</b>
+        </span>
+        <span>
+          押金总金额:
+          <b>{{totalDeposit}}</b>
+        </span>
       </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>
+          <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>
@@ -68,7 +79,7 @@
               v-else-if="prop === 'dev_realname'"
               @click="clickDev(scope.row['developer_uid'])"
             >{{scope.row[prop]}}</el-button>
-            <span v-else-if="prop === 'payAround'" v-html="scope.row[prop]"/>
+            <span v-else-if="prop === 'payAround'" v-html="scope.row[prop]" />
             <span v-else>{{scope.row[prop]}}</span>
           </template>
         </el-table-column>
@@ -89,68 +100,68 @@
 
 <script>
 const tableHeaders = [
-  '项目ID',
-  '核定价格',
-  '托管费用',
+  "项目ID",
+  "核定价格",
+  "托管费用",
   "押金",
   "次月托管",
-  '结算周期',
-  '结算金额',
-  '退回金额',
-  '预计发薪',
-  '发薪日期',
-  '状态',
-  '负责人',
-  '操作',
-  '备注',
-  '项目状态',
-  '账单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',
-]
+  "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',
-]
+  "80",
+  "80",
+  "100",
+  "80",
+  "100",
+  "120",
+  "80",
+  "80",
+  "90",
+  "80",
+  "80",
+  "100",
+  "80",
+  "180",
+  "80",
+  "80",
+  "100",
+  "100",
+  "80"
+];
 
 export default {
   data() {
@@ -158,14 +169,14 @@ export default {
       // 下发的总数据
       totalData: {},
       // 项目ID
-      jobID: '',
+      jobID: "",
       // 审核人
-      period: '',
-      status: '',
+      period: "",
+      status: "",
       // 状态列表数据
       jobStatusList: [],
       // 负责人
-      checkUser: '',
+      checkUser: "",
       // 审核人列表
       periodStatusList: [],
       // 数据总条目
@@ -181,121 +192,130 @@ export default {
       // 列表数据
       tableData: [],
       localData: {
-        env: 'test'
+        env: "test"
       }
-    }
+    };
   },
   computed: {
     isTest() {
-      return this.localData.env === 'test'
+      return this.localData.env === "test";
     },
     whole() {
-      return this.totalData.whole || {}
+      return this.totalData.whole || {};
     },
     totalDeposit() {
-      return this.whole.total_deposit
+      return this.whole.total_deposit;
     },
     totalFee() {
-      return this.whole.total_fee
-    },
+      return this.whole.total_fee;
+    }
   },
   mounted() {
-    this.getTableData()
-    this.getEnum()
+    this.getTableData();
+    this.getEnum();
   },
   methods: {
     clickExport() {
-      window.open('/api/admin/job/get_all_periods?action=export')
+      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
+      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}`)
+      window.open(
+        this.$store.state.domainConfig.rooterUrl +
+          `/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}`)
+      window.open(
+        this.$store.state.domainConfig.rooterUrl +
+          `/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}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/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}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/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}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/cloudjobitem/${jobID}`
+      );
     },
     // 点击重试
     async clickRetry(id) {
-      const res = await this.$post('/api/admin/payment/redoDraw', { 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'
+      let className = "";
+      if (row.j_status_name === "结束合作") className = "end-row";
       // console.log(className)
-      return 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(),
-      }))
+        pre_send_salary_timeShow: new Date(
+          i.pre_send_salary_time * 1000
+        ).toLocaleDateString()
+      }));
     },
     /**
      * 点击筛选确认
      */
     clickSearchConfirm() {
-      this.currentPage = 1
-      this.getTableData()
+      this.currentPage = 1;
+      this.getTableData();
     },
     changePageSize(pageSize) {
-      this.currentPageSize = pageSize
-      this.getTableData()
+      this.currentPageSize = pageSize;
+      this.getTableData();
     },
     // 获取列表数据
     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
+      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
+      this.totalCount = Number(data.total);
+      this.totalPage = data.totalPage;
+      this.localData.env = data.current_env;
     }
   }
-}
+};
 </script>
 
 <style scoped>

+ 172 - 165
pages/main/index/cloud_job.vue

@@ -57,7 +57,7 @@
         <el-input placeholder="企业方ID" v-model="comID"></el-input>
         <el-input placeholder="开发者ID" v-model="devID"></el-input>
         <el-input placeholder="客户经理" v-model="checkID"></el-input>
-        <el-checkbox v-model="presentHire" >驻场招聘</el-checkbox>
+        <el-checkbox v-model="presentHire">驻场招聘</el-checkbox>
         <el-checkbox v-model="unDeposit" @change="changeDeposit">本期未托管</el-checkbox>
         <el-button @click="getCloudJob">筛选</el-button>
       </div>
@@ -119,7 +119,7 @@ const tableHeaders = [
   "企业方",
   "开发者",
   "状态",
-    "驻场",
+  "驻场",
   "基本薪资",
   "每周工时",
   "用户来源",
@@ -139,15 +139,15 @@ const tableHeaders = [
   "开票",
   "纳税",
   "企业方费用",
-  "开发者薪资",
-]
+  "开发者薪资"
+];
 const tableProps = [
   "id",
   "matchDirections",
   "nickname",
   "devNickname",
   "status",
-    "publish_present_hire",
+  "publish_present_hire",
   "salary",
   "workHours",
   "remark_user_from",
@@ -162,32 +162,32 @@ const tableProps = [
   "isInvoice",
   "devIsInvoice",
   "companyTotalPrice",
-  "personTotalPrice",
-]
+  "personTotalPrice"
+];
 const STATUS_COLOR = {
-  '待审核': '#F56C6C',
-  '审核拒绝': '#909399',
-  '对接开发者': '#E6A23C',
-  '面试中': '#E6A23C',
-  '确认聘用': '#E6A23C',
-  '开发中': '#67C23A',
-  '结束合作': '#909399',
-  '取消': '#909399'
+  待审核: "#F56C6C",
+  审核拒绝: "#909399",
+  对接开发者: "#E6A23C",
+  面试中: "#E6A23C",
+  确认聘用: "#E6A23C",
+  开发中: "#67C23A",
+  结束合作: "#909399",
+  取消: "#909399"
 };
 export default {
   data() {
     return {
-      uid: '',
+      uid: "",
       // 开发者id
-      devID: '',
+      devID: "",
       // 企业id
-      comID: '',
+      comID: "",
       // 工作ID
-      jobID: '',
+      jobID: "",
       // 审核人员id
-      checkID: '',
+      checkID: "",
       unDeposit: false,
-        presentHire:false,
+      presentHire: false,
       totalFee: 11,
       // 工作状态
       statuses: [],
@@ -206,80 +206,78 @@ export default {
       STATUS_COLOR,
       // 列表数据
       tableData: [],
-      nums: {},
-    }
+      nums: {}
+    };
   },
   watch: {
-    comID: function (val) {
-      console.log(val)
+    comID: function(val) {
+      console.log(val);
     }
   },
   mounted() {
     // this.getNums()
-    this.getJobStatus()
-    this.getDirection()
-    this.getCloudJob()
+    this.getJobStatus();
+    this.getDirection();
+    this.getCloudJob();
   },
   methods: {
     /**
      * 获取用户客户经理基本信息
      */
-    getUserManager() {
-
-    },
+    getUserManager() {},
     /**
      * 获取顶部数据
      */
     async getNums() {
       let res = {
-        "data": {
-          "userinvite": 0,
-          "outsourcecoder": 1,
-          "project_progress": 7,
-          "suggestion": 3,
-          "projectmanage": 581,
-          "hiremanage": "116",
-          "coderverify": "9",
-          "companyverify": "0",
-          "realnameverify": "8",
-          "experience_audit": "4",
-          "take_big_coins_audit": 4,
-          "rooter_notify": 0,
-          "cloudjob": 523,
-          "cloudjobArr": {
-            "all": {
-              "num": 523
+        data: {
+          userinvite: 0,
+          outsourcecoder: 1,
+          project_progress: 7,
+          suggestion: 3,
+          projectmanage: 581,
+          hiremanage: "116",
+          coderverify: "9",
+          companyverify: "0",
+          realnameverify: "8",
+          experience_audit: "4",
+          take_big_coins_audit: 4,
+          rooter_notify: 0,
+          cloudjob: 523,
+          cloudjobArr: {
+            all: {
+              num: 523
             },
-            "waitCheckNum": {
-              "status": 2,
-              "num": 170
+            waitCheckNum: {
+              status: 2,
+              num: 170
             },
-            "selectDeveloperNum": {
-              "status": 4,
-              "num": 25
+            selectDeveloperNum: {
+              status: 4,
+              num: 25
             },
-            "waitInterviewNum": {
-              "status": 5,
-              "num": 13
+            waitInterviewNum: {
+              status: 5,
+              num: 13
             },
-            "waitSettNum": {
-              "status": 7,
-              "num": "315"
+            waitSettNum: {
+              status: 7,
+              num: "315"
             }
           }
         },
-        "info": "返回统计数据",
-        "status": "yes"
-      }// await this.$post('https://dev.test.proginn.com/rooter/ajaxrooternums')
+        info: "返回统计数据",
+        status: "yes"
+      };
       if (res) {
-        console.log(res.data)
+        console.log(res.data);
       }
     },
     /**
      * 获取主列表数据
      */
     async getCloudJob() {
-      let res = await this.$post('/api/admin/job/cloud_job', {
+      let res = await this.$post("/api/admin/job/cloud_job", {
         uid: this.uid,
         developer_id: this.devID,
         uid: this.comID,
@@ -287,110 +285,110 @@ export default {
         job_id: this.jobID,
         direction_id: this.selectedDirection,
         status: this.selectedStatus,
-        not_deposit: this.unDeposit ? '1' : '0',
-        present_hire:this.presentHire? '1' : '0',
-        page: this.currentPage,
-      })
+        not_deposit: this.unDeposit ? "1" : "0",
+        present_hire: this.presentHire ? "1" : "0",
+        page: this.currentPage
+      });
       if (res) {
-        this.tableData = []
-        const data = res.data.listData
-        const list = data.list
-        this.tableData = this.formatTableData(list)
-        this.totalCount = Number(data.total)
-        this.totalPage = data.totalPage
+        this.tableData = [];
+        const data = res.data.listData;
+        const list = data.list;
+        this.tableData = this.formatTableData(list);
+        this.totalCount = Number(data.total);
+        this.totalPage = data.totalPage;
       }
     },
     /**
      * 获取全部工作方向和ID
      */
     async getDirection() {
-      let res = await this.$post('/api/admin/job/get_direction')
+      let res = await this.$post("/api/admin/job/get_direction");
       if (res) {
-        this.directions = res.data
+        this.directions = res.data;
       }
     },
     /**
      * 获取云端工作的全部状态以及对应状态的个数
      */
     async getJobStatus() {
-      let res = await this.$post('/api/admin/job/getJobStatus')
+      let res = await this.$post("/api/admin/job/getJobStatus");
       if (res) {
-        let numObj = res.data.status_num
-        this.nums = numObj
+        let numObj = res.data.status_num;
+        this.nums = numObj;
         this.statuses = res.data.status_name.map(name => {
-          let item = { name }
+          let item = { name };
           switch (name) {
-            case '全部':
-              item.num = numObj.all.num
-              break
-            case '对接开发者':
-              item.num = numObj.selectDeveloperNum.num
-              item.color = '#F0F9EB'
-              break
-            case '待审核':
-              item.num = numObj.waitCheckNum.num
-              item.color = '#e1f3d8'
-              break
-            case '面试中':
-              item.num = numObj.waitInterviewNum.num
-              item.color = '#F0F9EB'
-              break
-            case '开发中':
-              item.num = numObj.waitSettNum.num
-              item.color = '#FAECD8'
-              break
-            case '待托管费用':
-              item.num = numObj.waitPayNum.num
-              item.color = '#F0F9EB'
-              break
-            case '确认聘用':
-              item.num = numObj.interviewOkNum.num
-              item.color = '#F0F9EB'
-              break
-            case '面试通过':
-              item.num = numObj.interviewOkNum.num
-              item.color = '#F0F9EB'
-              break
-            case '等待确定工资':
-              item.num = numObj.interviewOkNum.num
-              item.color = '#F0F9EB'
-              break
+            case "全部":
+              item.num = numObj.all.num;
+              break;
+            case "对接开发者":
+              item.num = numObj.selectDeveloperNum.num;
+              item.color = "#F0F9EB";
+              break;
+            case "待审核":
+              item.num = numObj.waitCheckNum.num;
+              item.color = "#e1f3d8";
+              break;
+            case "面试中":
+              item.num = numObj.waitInterviewNum.num;
+              item.color = "#F0F9EB";
+              break;
+            case "开发中":
+              item.num = numObj.waitSettNum.num;
+              item.color = "#FAECD8";
+              break;
+            case "待托管费用":
+              item.num = numObj.waitPayNum.num;
+              item.color = "#F0F9EB";
+              break;
+            case "确认聘用":
+              item.num = numObj.interviewOkNum.num;
+              item.color = "#F0F9EB";
+              break;
+            case "面试通过":
+              item.num = numObj.interviewOkNum.num;
+              item.color = "#F0F9EB";
+              break;
+            case "等待确定工资":
+              item.num = numObj.interviewOkNum.num;
+              item.color = "#F0F9EB";
+              break;
           }
-          return item
-        })
+          return item;
+        });
       }
     },
     // 筛选框变动
     changeSelect(index) {
-      this.currentPage = 1
-      this.getCloudJob(index)
+      this.currentPage = 1;
+      this.getCloudJob(index);
     },
     // 点击详情
     clickDetail(id) {
-      window.open(`/rooter/cloudjobitem/${id}`)
+      window.open(`/rooter/cloudjobitem/${id}`);
     },
     // 根据状态显示图表样式
     tableRowClassName({ row, rowIndex }) {
-      let className
+      let className;
       switch (row.statusName) {
-        case '待审核':
-          className = 'background: #E1F3D8;'
-          break
-        case '对接开发者':
-          className = 'background: #F0F9EB;'
-          break
-        case '面试中':
-          className = 'background: #F0F9EB;'
-          break
-        case '确认聘用':
-          className = 'background: #F0F9EB;'
-          break
-        case '开发中':
-          className = 'background: #FAECD8;'
-          break
-        case '结束合作':
-          className = 'background: #F4F4F5;'
-          break
+        case "待审核":
+          className = "background: #E1F3D8;";
+          break;
+        case "对接开发者":
+          className = "background: #F0F9EB;";
+          break;
+        case "面试中":
+          className = "background: #F0F9EB;";
+          break;
+        case "确认聘用":
+          className = "background: #F0F9EB;";
+          break;
+        case "开发中":
+          className = "background: #FAECD8;";
+          break;
+        case "结束合作":
+          className = "background: #F4F4F5;";
+          break;
         // case '待托管费用':
         //   className = 'background: #F0F9EB;'
         //   break
@@ -398,28 +396,36 @@ export default {
         //   className = 'background: #F0F9EB;'
         //   break
       }
-      return className
+      return className;
     },
     // 格式化列表数据
     formatTableData(data) {
       return data.map(i => ({
         ...i,
         nickname: i.companyUser.nickname,
-        devNickname: i.developerUser ? i.developerUser.nickname : '',
-        direction: i.developerUser ? i.developerUser.direction_name : '',
-        workHours: i.hours === '0' ? (i.workHours ? i.workHours.name.replace('小时', '') : '') : i.hours,
+        devNickname: i.developerUser ? i.developerUser.nickname : "",
+        direction: i.developerUser ? i.developerUser.direction_name : "",
+        workHours:
+          i.hours === "0"
+            ? i.workHours
+              ? i.workHours.name.replace("小时", "")
+              : ""
+            : i.hours,
         endTime: `每月${i.end_time}号`,
-        salary: i.salary !== '0' ? i.salary : `${i.match_salary_min}-${i.match_salary_max}`,
+        salary:
+          i.salary !== "0"
+            ? i.salary
+            : `${i.match_salary_min}-${i.match_salary_max}`,
         sendSalaryTime: `每月${i.send_salary_time}号`,
-        isNeedProbation: i.is_need_probation === '1' ? i.probation_days : '--',
-        isInvoice: i.is_invoice === '1' ? '是' : '否',
-        devIsInvoice: i.dev_is_invoice === '1' ? '是' : '否',
-        userManagerName: i.user_manager ? i.user_manager.nickname : ''
-      }))
+        isNeedProbation: i.is_need_probation === "1" ? i.probation_days : "--",
+        isInvoice: i.is_invoice === "1" ? "是" : "否",
+        devIsInvoice: i.dev_is_invoice === "1" ? "是" : "否",
+        userManagerName: i.user_manager ? i.user_manager.nickname : ""
+      }));
     },
     // 页码变动
     changePagination(page) {
-      this.getCloudJob()
+      this.getCloudJob();
     },
     /**
      * 修改未托管
@@ -432,46 +438,47 @@ export default {
      * 生成工作周期
      */
     async createPeriod() {
-      let res = await this.$post('/api/admin/job/create_period')
+      let res = await this.$post("/api/admin/job/create_period");
       if (res) {
         this.$message({
-          message: '生成成功',
-          type: 'success'
-        })
+          message: "生成成功",
+          type: "success"
+        });
       }
     },
     /**
      * 更新工作周期
      */
     async finishPeriod() {
-      let res = await this.$post('/api/admin/job/create_period')
+      let res = await this.$post("/api/admin/job/create_period");
       if (res) {
         this.$message({
-          message: '更新成功',
-          type: 'success'
-        })
+          message: "更新成功",
+          type: "success"
+        });
       }
     },
     /**
      * 结算管理
      */
     doManager() {
-      window.open('/main/cloud_balance')
+      window.open("/main/cloud_balance");
     },
     clickRow(row) {
-      let id = row.id
+      let id = row.id;
       // 前往老的后台
-      if (location.hostname == 'rooter.proginn.com') window.open(`https://www.proginn.com/rooter/cloudjobitem/${id}`)
-      else window.open(`https://dev.test.proginn.com/rooter/cloudjobitem/${id}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/cloudjobitem/${id}`
+      );
     },
     /**
      * 点击导出
      */
     doExport() {
-      window.open('/api/admin/job/exportJobData')
+      window.open("/api/admin/job/exportJobData");
     }
   }
-}
+};
 </script>
 
 <style scoped>

+ 17 - 30
pages/main/index/cloud_order copy.vue

@@ -544,45 +544,35 @@ export default {
     },
     // 点击操作
     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}`
-        );
+      window.open(
+        this.$store.state.domainConfig.rooterUrl +
+          `/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}`
-        );
+      window.open(
+        this.$store.state.domainConfig.rooterUrl +
+          `/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}`);
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/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}`);
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/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}`);
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/cloudjobitem/${jobID}`
+      );
     },
     // 点击重试
     async clickRetry(id) {
@@ -658,9 +648,6 @@ export default {
   height: 240px;
 }
 .selector-box {
-  /* margin-top: 10px; */
-}
-.selector-box {
   display: flex;
   justify-content: space-between;
 }

+ 47 - 45
pages/main/index/dev_check.vue

@@ -31,7 +31,7 @@
               v-else-if="prop === 'ctrl'"
               @click="clickCtrl(scope.row, index)"
             >查看详情</el-button>
-            <img class="img" v-else-if="prop === 'img'" :src="scope.row.img" alt="img">
+            <img class="img" v-else-if="prop === 'img'" :src="scope.row.img" alt="img" />
             <span v-else>{{scope.row[prop]}}</span>
           </template>
         </el-table-column>
@@ -60,8 +60,8 @@ const tableHeaders = [
   "申请时间",
   "审核时间",
   "申请状态",
-  "详情",
-]
+  "详情"
+];
 const tableProps = [
   "uid",
   "nickname",
@@ -70,10 +70,10 @@ const tableProps = [
   "create_date",
   "chk_date",
   "status_name",
-  "ctrl",
-]
+  "ctrl"
+];
 
-let env = 'test'
+let env = "test";
 
 export default {
   data() {
@@ -85,23 +85,23 @@ export default {
       totalCount: 0,
       currentPage: 1,
       currentPageSize: 20,
-      certID: '',
+      certID: "",
       // 列表头显示内容
       tableHeaders,
       // 列表头字段
       tableProps,
       // 列表数据
       tableData: []
-    }
+    };
   },
   watch: {
-    '$route'(to, from) {
-      this.handleRouteParams()
+    $route(to, from) {
+      this.handleRouteParams();
     }
   },
   mounted() {
     // console.log(this.currentPage)
-    this.getFilters()
+    this.getFilters();
   },
   methods: {
     // 页码变动
@@ -110,62 +110,64 @@ export default {
       this.$router.replace({
         // path: `/main/dev_check`,
         query: { page, cert_id: this.certID }
-      })
+      });
     },
     changePageSize(pageSize) {
-      this.currentPageSize = pageSize
+      this.currentPageSize = pageSize;
     },
     // 筛选框变动
     changeSelect(id) {
-      this.certID = id
+      this.certID = id;
       this.$router.replace({
         // path: `/main/dev_check`,
         query: { page: this.currentPage, cert_id: id }
-      })
+      });
     },
     // 获取筛选
     async getFilters() {
-      const res = await this.$post("/api/admin/cert/getEnum")
-      const data = res.data
+      const res = await this.$post("/api/admin/cert/getEnum");
+      const data = res.data;
       data.cert_type_list.unshift({
         id: 0,
-        name: '全部'
-      })
-      this.statuses = data.cert_type_list || []
-      this.selected = this.statuses[0].name
-      this.handleRouteParams()
+        name: "全部"
+      });
+      this.statuses = data.cert_type_list || [];
+      this.selected = this.statuses[0].name;
+      this.handleRouteParams();
     },
     /**
      * 路由钩子触发获取路由携带query, 首次进入也算一次
      */
     handleRouteParams() {
-      this.currentPage = Number(this.$route.query.page)
-      this.certID = this.$route.query.cert_id
-      for (var i=0; i< this.statuses.length; i++){
+      this.currentPage = Number(this.$route.query.page);
+      this.certID = this.$route.query.cert_id;
+      for (var i = 0; i < this.statuses.length; i++) {
         if (this.certID == this.statuses[i].id) {
-          this.selected = this.statuses[i].name
+          this.selected = this.statuses[i].name;
         }
       }
-      this.getTableData()
+      this.getTableData();
     },
     clickCtrl(item, index) {
       this.$router.push({
-        path: '/main/dev_check_detail',
+        path: "/main/dev_check_detail",
         query: {
           uid: item.uid,
           cert_id: item.cert_id
         }
-      })
+      });
     },
     // 点击用户的 uid
     clickUID(item) {
-      window.open(`https://www.proginn.com/rooter/user/${item.uid}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/user/${item.uid}`
+      );
     },
     // 根据状态显示图表样式
     tableRowClassName({ row, rowIndex }) {
-      let className = ""
-      if(row.status === "1") className = "success-row"
-      return className
+      let className = "";
+      if (row.status === "1") className = "success-row";
+      return className;
     },
     // 格式化列表数据
     formatTableData(data) {
@@ -175,21 +177,21 @@ export default {
         created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
         taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString(),
         ctrl: 1
-      }))
+      }));
     },
     // 获取列表数据
     async getTableData() {
-      this.tableData = []
-      let page = this.currentPage
-      let page_size = this.currentPageSize
-      let cert_id = Number(this.certID)
-      let body = { page, page_size, cert_id }
-      let res = await this.$post("/api/admin/audit/getList", body)
-      let data = res.data
-      env = data.current_env
-      this.tableData = this.formatTableData(res.data.list)
-      this.totalCount = Number(data.total)
-      this.totalPage = data.totalPage
+      this.tableData = [];
+      let page = this.currentPage;
+      let page_size = this.currentPageSize;
+      let cert_id = Number(this.certID);
+      let body = { page, page_size, cert_id };
+      let res = await this.$post("/api/admin/audit/getList", body);
+      let data = res.data;
+      env = data.current_env;
+      this.tableData = this.formatTableData(res.data.list);
+      this.totalCount = Number(data.total);
+      this.totalPage = data.totalPage;
     }
   }
 };

+ 1 - 3
pages/main/index/dev_check_detail.vue

@@ -88,9 +88,7 @@ export default {
       return status;
     },
     host() {
-      return `https://${
-        this.detail.current_env === "test" ? "dev.test" : "www"
-      }.proginn.com`;
+      return this.$store.state.domainConfig.siteUrl;
     },
     userinfo() {
       return (this.detail || {}).user_info;

+ 49 - 40
pages/main/index/group_list.vue

@@ -53,8 +53,8 @@ const tableHeaders = [
   "关联工作",
   "创建时间",
   "最近更新",
-  "操作",
-]
+  "操作"
+];
 const tableProps = [
   "nickname",
   "id",
@@ -63,8 +63,8 @@ const tableProps = [
   "jobs",
   "create_date",
   "update_date",
-  "ctrl",
-]
+  "ctrl"
+];
 
 export default {
   data() {
@@ -72,24 +72,24 @@ export default {
       options: [
         {
           value: -1,
-          label: '全部'
+          label: "全部"
         },
         {
           value: 0,
-          label: '提交'
+          label: "提交"
         },
         {
           value: 1,
-          label: '成功'
+          label: "成功"
         },
         {
           value: 2,
-          label: '失败'
+          label: "失败"
         },
         {
           value: 3,
-          label: '进行中'
-        },
+          label: "进行中"
+        }
       ],
       selectValue: -1,
       // 数据总条目
@@ -103,67 +103,76 @@ export default {
       tableData: [],
       env: `test`,
       isSuper: false,
-      pageSize: 20,
+      pageSize: 20
     };
   },
   computed: {
     isTest() {
-      return this.env === `test`
+      return this.env === `test`;
     }
   },
   mounted() {
-    this.getTableData()
+    this.getTableData();
   },
   methods: {
     changeSelect(status) {
-      this.getTableData()
+      this.getTableData();
     },
     // 点击超管
     async clickSuper(row) {
-      if(!this.isSuper) {
+      if (!this.isSuper) {
         this.$message({
           message: `不是超管, 没有权限`
-        })
-        return
+        });
+        return;
       }
-      if(this.isTest) window.open(`https://dev.test.proginn.com/rooter/loginmember?uid=${row.uid}&next=/group/${row.id}`)
-      else window.open(`https://www.proginn.com/rooter/loginmember?uid=${row.uid}&next=/group/${row.id}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl +
+          `/rooter/loginmember?uid=${row.uid}&next=/group/${row.id}`
+      );
     },
     // 点击用户的 uid
     clickUID(row) {
-      // todo...
-      if(this.isTest) window.open(`https://dev.test.proginn.com/rooter/user/${row.uid}`)
-      else window.open(`https://www.proginn.com/rooter/user/${row.uid}`)
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/user/${row.uid}`
+      );
     },
     // 根据状态显示图表样式
     tableRowClassName({ row, rowIndex }) {
-      let className = ""
-      if(row.status === "1") className = "success-row"
-      return className
+      let className = "";
+      if (row.status === "1") className = "success-row";
+      return className;
     },
     // 格式化列表数据
     formatTableData(data) {
       return data.map(i => ({
         ...i,
-        managers: (i.managers.map(m => {
-          return m ? m.nickname : ``
-        })).join(`;`),
-        jobs: (Object.keys(i.jobs).map(key => {
-          let j = i.jobs[key]
-          return j ? `${j.nickname}(${j.id})` : ``
-        })).join(`;`)
+        managers: i.managers
+          .map(m => {
+            return m ? m.nickname : ``;
+          })
+          .join(`;`),
+        jobs: Object.keys(i.jobs)
+          .map(key => {
+            let j = i.jobs[key];
+            return j ? `${j.nickname}(${j.id})` : ``;
+          })
+          .join(`;`)
       }));
     },
     // 获取列表数据
     async getTableData(page = this.currentPage) {
-      this.tableData = []
-      const res = await this.$post("/api/admin/group/list", { page, page_size: 20 })
-      const data = res.data
-      this.env = data.current_env
-      this.isSuper = data.is_super_admin
-      this.tableData = this.formatTableData(data.list)
-      this.totalCount = Number(data.total)
-      this.totalPage = data.totalPage
+      this.tableData = [];
+      const res = await this.$post("/api/admin/group/list", {
+        page,
+        page_size: 20
+      });
+      const data = res.data;
+      this.env = data.current_env;
+      this.isSuper = data.is_super_admin;
+      this.tableData = this.formatTableData(data.list);
+      this.totalCount = Number(data.total);
+      this.totalPage = data.totalPage;
     }
   }
 };

+ 7 - 18
pages/main/index/job.vue

@@ -68,8 +68,8 @@
     <div class="description-wrapper">
       <div class="description-title">
         招聘数据(已投递
-        <span>{{recruitData.countTalk || 0}}</span>人,沟通中
-        <span>{{recruitData.countApplied || 0}}</span>人)
+        <span>{{recruitData.countApplied|| 0}}</span>人,沟通中
+        <span>{{recruitData.countTalk || 0}}</span>人)
       </div>
       <div class="description-content">
         <el-table :data="recruitData.developers" style="width: 540px">
@@ -122,26 +122,15 @@ export default {
     handleOwnerClick() {
       const recruitData = this.recruitData;
       // 前往老的后台
-      if (location.hostname === "rooter.proginn.com") {
-        window.open(`https://www.proginn.com/rooter/user/${recruitData.uid}`);
-      } else {
-        window.open(
-          `https://dev.test.proginn.com/rooter/user/${recruitData.uid}`
-        );
-      }
+      window.open(
+        this.$store.state.domainConfig.siteUrl +
+          `/rooter/user/${recruitData.uid}`
+      );
     },
     openUser(uid) {
       let url = window.location.href;
       let jumpUrl = "";
-      if (
-        url.indexOf("dev.") != -1 ||
-        url.indexOf("local") !== -1 ||
-        url.indexOf("192.168.") !== -1
-      ) {
-        jumpUrl = `https://dev.test.proginn.com/wo/${uid}`;
-      } else {
-        jumpUrl = `https://www.proginn.com/wo/${uid}`;
-      }
+      jumpUrl = this.$store.state.domainConfig.siteUrl + `/wo/${uid}`;
       window.open(jumpUrl, "_black");
     }
   }

+ 7 - 23
pages/main/index/orders.vue

@@ -581,45 +581,29 @@ export default {
     },
     // 点击操作
     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}`
+          this.$store.state.domainConfig.rooterUrl +`/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}`
+          this.$store.state.domainConfig.rooterUrl +`/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}`);
+      window.open(this.$store.state.domainConfig.siteUrl +`/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}`);
+      window.open(this.$store.state.domainConfig.siteUrl +`/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}`);
+      window.open(this.$store.state.domainConfig.siteUrl +`/rooter/cloudjobitem/${jobID}`);
     },
     // 点击重试
     async clickRetry(id) {

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

@@ -162,7 +162,7 @@ export default {
   methods: {
     jumpUser() {
       window.location.href(
-        "https://dev.test.proginn.com/rooter/user/" + this.ids
+        this.$store.state.domainConfig.siteUrl + "/rooter/user/" + this.ids
       );
     },
     getUrlParam(name) {
@@ -172,8 +172,8 @@ export default {
       return null; //返回参数值
     },
     formatDate(time) {
-      if (time === '0') {
-        return '--'
+      if (time === "0") {
+        return "--";
       }
       var now = new Date(time * 1000);
       var year = now.getFullYear();

+ 224 - 232
pages/main/index/present_job_apply.vue

@@ -1,16 +1,14 @@
 <template>
   <div class="cats">
     <header>
-      <div class="apply-header">
-        当前申请人数:{{totalCount}}人
-      </div>
+      <div class="apply-header">当前申请人数:{{totalCount}}人</div>
     </header>
     <div class="heightset">
       <div class="developer-box">
         <div class="dev-main clear" v-for="item in appliers" :key="item.id">
           <div class="dev-left">
             <div class="grid-content point" @click="clickUID(item.uid)">
-              <img class="dev-head" :src="item.icon_url" alt/>
+              <img class="dev-head" :src="item.icon_url" alt />
               <p class="blackc">{{item.uid}}</p>
               <p class="blackc">{{item.nickname}}</p>
             </div>
@@ -32,239 +30,233 @@
 </template>
 
 <script>
-  const tableHeaders = [
-    "用户ID",
-    "昵称",
-  ];
-  const tableProps = [
-    "uid",
-    "nickname",
-  ];
-
-  // 现在环境是线上还是测试, 默认线上
-  let env = "";
-
-  export default {
-    data() {
-      return {
-        appliers: [],
-        currentPage:1,
-        size:10,
-        totalCount:10
-      };
+const tableHeaders = ["用户ID", "昵称"];
+const tableProps = ["uid", "nickname"];
+
+// 现在环境是线上还是测试, 默认线上
+let env = "";
+
+export default {
+  data() {
+    return {
+      appliers: [],
+      currentPage: 1,
+      size: 10,
+      totalCount: 10
+    };
+  },
+  mounted() {
+    this.getTableData();
+  },
+  methods: {
+    clickUID(uid) {
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/user/${uid}`
+      );
     },
-    mounted() {
+
+    changePagination() {
       this.getTableData();
     },
-    methods: {
-      clickUID(uid) {
-        if (env === "test")
-          window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
-        else window.open(`https://www.proginn.com/rooter/user/${uid}`);
-      },
-
-      changePagination() {
-        this.getTableData();
-      },
-
-      async getTableData() {
-        const id = this.$router.currentRoute.query.id;
-        const res = await this.$post("/api/admin/present_job/get_apply_users", {
-          page: this.currentPage,
-          size: 10,
-          id:id
-        });
-        this.appliers = res.data.appliers;
-        this.totalCount = res.data.count;
-      },
-
-      changeStatus(uid){
-        const id = this.$router.currentRoute.query.id;
-        this.$post("/api/admin/present_job/change_status", {
-          present_job_id:id,
-          uid:uid
-        }).then(res=>{
-          this.$message.success('修改成功');
-        });
-      }
-    }
-  };
-</script>
-
-<style scoped lang="scss">
-  .form-inline {
-    display: flex;
-    flex-wrap: wrap;
-  }
-
-  .inline {
-    display: inline;
-  }
-
-  .apply-header {
-    padding: 20px 0 20px 0;
-    font-size: 16px;
-  }
-
-  .lblue {
-    color: #419df7;
-  }
-
-  .lblack {
-    color: #aeaeae;
-  }
-
-  .cats-boxs {
-    height: calc(100% - 40px);
-    overflow-y: auto;
-  }
 
-  .point {
-    cursor: pointer;
-  }
-
-  .form-inline {
-    display: flex;
-    flex-wrap: wrap;
-  }
-
-  .developer-box {
-    padding-top: 10px;
-    background: #f7f7f7;
-    font-size: 14px;
-    padding-bottom: 20px;
-  }
-
-  .dev-main {
-    margin: 0 auto;
-    padding: 37px 9px 20px 23px;
-    background: white;
-    width: 1000px;
-    margin-bottom: 10px;
-    box-sizing: border-box;
-  }
-
-  .dev-main > div {
-    float: left;
-  }
-
-  .dev-left {
-    width: 112px;
-    text-align: center;
-  }
-
-  .state-of {
-    display: inline-block;
-    background: rgba(243, 243, 243, 1);
-    font-size: 12px;
-    color: #888888;
-    padding: 3px 11px;
-  }
-
-  .dev-left p {
-    padding: 3px 0;
-  }
-
-  .dev-center {
-    width: 594px;
-  }
-
-  .dev-right {
-    margin-top: 25px;
-    margin-left:20px ;
-  }
-
-  .dev-detail {
-    border-left: 1px solid #e0e0e0;
-    padding: 3px 0 3px 19px;
-  }
-
-  .dev-detail > p {
-    padding-top: 3px;
-    padding-right: 10px;
-    font-size: 13px;
-    color: #505050;
-    box-sizing: border-box;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  .dev-head {
-    width: 74px;
-    border-radius: 50%;
-    overflow: hidden;
-  }
-
-  .dev-mark {
-    margin-right: 22px;
-  }
-
-  .dev-mark > span {
-    float: left;
-    padding: 2px 9px;
-    color: #888888;
-    font-size: 12px;
-    border: 1px solid #c0c0c0;
-    border-radius: 2px;
-    margin-right: 7px;
-    height: 23px;
-    line-height: 18px;
-  }
-
-  .dev-mark .dev-dark {
-    float: left;
-    padding: 2px 9px;
-    color: white;
-    font-size: 12px;
-    background: #999999;
-    border: 1px solid #999999;
-    border-radius: 2px;
-    margin-right: 7px;
-  }
-
-  .dev-infor {
-    padding-top: 2px;
-  }
-
-  .dev-infor > p {
-    padding-top: 3px;
-    padding-right: 10px;
-    font-size: 13px;
-    color: #505050;
-    box-sizing: border-box;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  .heightset {
-    // height: calc(100% - 200px);
-    // overflow: auto;
-  }
-
-  .clear::after {
-    display: block;
-    clear: both;
-    content: "";
-  }
-
-  .inlineb {
-    display: inline-block;
-  }
-
-  .floatl {
-    float: left;
-  }
-
-  .floatr {
-    float: right;
-  }
+    async getTableData() {
+      const id = this.$router.currentRoute.query.id;
+      const res = await this.$post("/api/admin/present_job/get_apply_users", {
+        page: this.currentPage,
+        size: 10,
+        id: id
+      });
+      this.appliers = res.data.appliers;
+      this.totalCount = res.data.count;
+    },
 
-  .table {
-    height: calc(100% - 40px);
+    changeStatus(uid) {
+      const id = this.$router.currentRoute.query.id;
+      this.$post("/api/admin/present_job/change_status", {
+        present_job_id: id,
+        uid: uid
+      }).then(res => {
+        this.$message.success("修改成功");
+      });
+    }
   }
+};
+</script>
 
-  #main {
-  }
+<style scoped lang="scss">
+.form-inline {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.inline {
+  display: inline;
+}
+
+.apply-header {
+  padding: 20px 0 20px 0;
+  font-size: 16px;
+}
+
+.lblue {
+  color: #419df7;
+}
+
+.lblack {
+  color: #aeaeae;
+}
+
+.cats-boxs {
+  height: calc(100% - 40px);
+  overflow-y: auto;
+}
+
+.point {
+  cursor: pointer;
+}
+
+.form-inline {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.developer-box {
+  padding-top: 10px;
+  background: #f7f7f7;
+  font-size: 14px;
+  padding-bottom: 20px;
+}
+
+.dev-main {
+  margin: 0 auto;
+  padding: 37px 9px 20px 23px;
+  background: white;
+  width: 1000px;
+  margin-bottom: 10px;
+  box-sizing: border-box;
+}
+
+.dev-main > div {
+  float: left;
+}
+
+.dev-left {
+  width: 112px;
+  text-align: center;
+}
+
+.state-of {
+  display: inline-block;
+  background: rgba(243, 243, 243, 1);
+  font-size: 12px;
+  color: #888888;
+  padding: 3px 11px;
+}
+
+.dev-left p {
+  padding: 3px 0;
+}
+
+.dev-center {
+  width: 594px;
+}
+
+.dev-right {
+  margin-top: 25px;
+  margin-left: 20px;
+}
+
+.dev-detail {
+  border-left: 1px solid #e0e0e0;
+  padding: 3px 0 3px 19px;
+}
+
+.dev-detail > p {
+  padding-top: 3px;
+  padding-right: 10px;
+  font-size: 13px;
+  color: #505050;
+  box-sizing: border-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.dev-head {
+  width: 74px;
+  border-radius: 50%;
+  overflow: hidden;
+}
+
+.dev-mark {
+  margin-right: 22px;
+}
+
+.dev-mark > span {
+  float: left;
+  padding: 2px 9px;
+  color: #888888;
+  font-size: 12px;
+  border: 1px solid #c0c0c0;
+  border-radius: 2px;
+  margin-right: 7px;
+  height: 23px;
+  line-height: 18px;
+}
+
+.dev-mark .dev-dark {
+  float: left;
+  padding: 2px 9px;
+  color: white;
+  font-size: 12px;
+  background: #999999;
+  border: 1px solid #999999;
+  border-radius: 2px;
+  margin-right: 7px;
+}
+
+.dev-infor {
+  padding-top: 2px;
+}
+
+.dev-infor > p {
+  padding-top: 3px;
+  padding-right: 10px;
+  font-size: 13px;
+  color: #505050;
+  box-sizing: border-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.heightset {
+  // height: calc(100% - 200px);
+  // overflow: auto;
+}
+
+.clear::after {
+  display: block;
+  clear: both;
+  content: "";
+}
+
+.inlineb {
+  display: inline-block;
+}
+
+.floatl {
+  float: left;
+}
+
+.floatr {
+  float: right;
+}
+
+.table {
+  height: calc(100% - 40px);
+}
+
+#main {
+}
 </style>

+ 271 - 255
pages/main/index/publish_present.vue

@@ -1,28 +1,48 @@
 <template>
   <div id="publish-present">
     <el-row>
-      <el-col :span="24" align="center"><h2>驻场招聘信息表</h2></el-col>
+      <el-col :span="24" align="center">
+        <h2>驻场招聘信息表</h2>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="19"><h3>基本信息</h3></el-col>
+      <el-col :span="19">
+        <h3>基本信息</h3>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="12">项目ID:<span>{{related_id}}</span></el-col>
-      <el-col :span="12" >需求方:<span>{{uid}}</span></el-col>
+      <el-col :span="12">
+        项目ID:
+        <span>{{related_id}}</span>
+      </el-col>
+      <el-col :span="12">
+        需求方:
+        <span>{{uid}}</span>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24" >项目名称:<span>{{title}}</span></el-col>
+      <el-col :span="24">
+        项目名称:
+        <span>{{title}}</span>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24">项目类型:<span>{{related_type}}</span><span style="display: none">{{job_type}}</span></el-col>
+      <el-col :span="24">
+        项目类型:
+        <span>{{related_type}}</span>
+        <span style="display: none">{{job_type}}</span>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="12">客户经理:<span>{{manager}}</span></el-col>
-      <el-col :span="12" >
+      <el-col :span="12">
+        客户经理:
+        <span>{{manager}}</span>
+      </el-col>
+      <el-col :span="12">
         <div class="inlineb">
           <span class>开放状态:</span>
           <div class="inlineb">
-            <el-select v-model="statusValue" >
+            <el-select v-model="statusValue">
               <el-option
                 v-for="item of openStatus"
                 :key="item.id"
@@ -32,29 +52,26 @@
             </el-select>
           </div>
         </div>
-    </el-col>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24"><h3>驻场信息</h3></el-col>
+      <el-col :span="24">
+        <h3>驻场信息</h3>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24" >
+      <el-col :span="24">
         <div class="inlineb">
           <span class>薪酬范围:</span>
           <div class="inlineb">
-            ¥<el-input style="width: 230px;"  v-model="salary_from" ></el-input>至
+            ¥
+            <el-input style="width: 230px;" v-model="salary_from"></el-input>至
           </div>
           <div class="inlineb">
-            ¥<el-input style="width: 230px;" v-model="salary_to" ></el-input>
+            ¥
+            <el-input style="width: 230px;" v-model="salary_to"></el-input>
           </div>
-          <el-alert
-            title=""
-            class="top"
-            id="salaryAlert"
-            type="error"
-            style="display: none"
-            show-icon>
-          </el-alert>
+          <el-alert title class="top" id="salaryAlert" type="error" style="display: none" show-icon></el-alert>
         </div>
       </el-col>
     </el-row>
@@ -63,7 +80,7 @@
         <div class="inlineb">
           <span class>驻场地点:</span>
           <div class="inlineb">
-            <el-select v-model="city" >
+            <el-select v-model="city">
               <el-option
                 v-for="item of citys"
                 :key="item.city"
@@ -76,20 +93,13 @@
       </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24" >
+      <el-col :span="24">
         <div class="inlineb">
           <span class>驻场周期:</span>
           <div class="inlineb">
-            <el-input style="width: 230px;" v-model="month" ></el-input>个月
+            <el-input style="width: 230px;" v-model="month"></el-input>个月
           </div>
-          <el-alert
-            title=""
-            class="top"
-            id="monthAlert"
-            type="error"
-            style="display: none"
-            show-icon>
-          </el-alert>
+          <el-alert title class="top" id="monthAlert" type="error" style="display: none" show-icon></el-alert>
         </div>
       </el-col>
     </el-row>
@@ -98,16 +108,9 @@
         <div class="inlineb">
           <span class>工作年限:</span>
           <div class="inlineb">
-            <el-input style="width: 230px;" v-model="work_year" ></el-input>年
+            <el-input style="width: 230px;" v-model="work_year"></el-input>年
           </div>
-          <el-alert
-            title=""
-            class="top"
-            id="workYear"
-            type="error"
-            style="display: none"
-            show-icon>
-          </el-alert>
+          <el-alert title class="top" id="workYear" type="error" style="display: none" show-icon></el-alert>
         </div>
       </el-col>
     </el-row>
@@ -116,40 +119,37 @@
         <div class="inlineb">
           <span class>是否有文件:</span>
           <div class="inlineb">
-            <el-select v-model="file" >
-              <el-option
-                v-for="item of files"
-                :key="item.id"
-                :label="item.label"
-                :value="item.id"
-              ></el-option>
+            <el-select v-model="file">
+              <el-option v-for="item of files" :key="item.id" :label="item.label" :value="item.id"></el-option>
             </el-select>
           </div>
         </div>
       </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24">职位方向:<span>{{directions}}</span><span style="display: none">{{match_directions}}</span></el-col>
+      <el-col :span="24">
+        职位方向:
+        <span>{{directions}}</span>
+        <span style="display: none">{{match_directions}}</span>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="24">技能要求:<span>{{skill}}</span><span style="display: none">{{match_skills}}</span></el-col>
+      <el-col :span="24">
+        技能要求:
+        <span>{{skill}}</span>
+        <span style="display: none">{{match_skills}}</span>
+      </el-col>
     </el-row>
     <el-row>
-      <el-col :span="20">工作内容:
-        <el-alert
-          title=""
-          class="top"
-          id="jobInfoAlert"
-          type="error"
-          style="display: none"
-          show-icon>
-        </el-alert>
+      <el-col :span="20">
+        工作内容:
+        <el-alert title class="top" id="jobInfoAlert" type="error" style="display: none" show-icon></el-alert>
         <el-input
           type="textarea"
           :autosize="{ minRows: 5, maxRows: 4}"
           placeholder="请输入内容"
-          v-model="job_description">
-        </el-input>
+          v-model="job_description"
+        ></el-input>
       </el-col>
     </el-row>
     <el-row>
@@ -162,207 +162,223 @@
 </template>
 
 <script>
-    export default {
-        data () {
-            return {
-                related_id:'',
-                uid:'',
-                title:'',
-                related_type:'',
-                job_type:'',
-                manager:'',
-                salary_from:'',
-                salary_to:'',
-                month:'',
-                work_year:'',
-                directions:'',
-                match_skills:'',
-                skill:'',
-                job_description:'',
-                match_directions:'',
-                jump_url:'',
-                citys: [{
-                    city: '0',
-                    label: '不限'
-                }, {
-                    city: '1',
-                    label: '北京'
-                }, {
-                    city: '2',
-                    label: '上海'
-                }, {
-                    city: '3',
-                    label: '广州'
-                }, {
-                    city: '4',
-                    label: '深圳'
-                }, {
-                    city: '5',
-                    label: '成都'
-                }, {
-                    city: '6',
-                    label: '杭州'
-                }],
-                city: '0',
-
-                openStatus: [{
-                    id: 0,
-                    label: '下架隐藏'
-                }, {
-                    id: 1,
-                    label: '开放中'
-                }, {
-                    id: 2,
-                    label: '停止申请'
-                }, {
-                    id: 3,
-                    label: '开发中'
-                }, {
-                    id: 4,
-                    label: '已结束'
-                }],
-                statusValue: 0,
-
-                files: [{
-                    id: '1',
-                    label: '是'
-                }, {
-                    id: '0',
-                    label: '否'
-                }],
-                file: '0',
-            }
+export default {
+  data() {
+    return {
+      related_id: "",
+      uid: "",
+      title: "",
+      related_type: "",
+      job_type: "",
+      manager: "",
+      salary_from: "",
+      salary_to: "",
+      month: "",
+      work_year: "",
+      directions: "",
+      match_skills: "",
+      skill: "",
+      job_description: "",
+      match_directions: "",
+      jump_url: "",
+      citys: [
+        {
+          city: "0",
+          label: "不限"
         },
-        mounted() {
-            this.getPresentInfo();
+        {
+          city: "1",
+          label: "北京"
         },
-        methods: {
-            async getPresentInfo() {
-
-                let query = window.location.search.substring(1);
-                let vars = query.split("&");
-                let body = {
-                    'job_id' : vars[0].split("=")[1],
-                    'job_type' : vars[1].split("=")[1],
-                };
-                let url = window.location.href;
-                if(url.indexOf('dev')!=-1){
-                    this.jump_url = 'https://dev.test.proginn.com/rooter/cloudjobitem/';
-                } else if(url.indexOf('local')!=-1){
-                    this.jump_url = 'http://local.proginn.com/rooter/cloudjobitem/';
-                } else {
-                    this.jump_url = 'https://proginn.com/rooter/cloudjobitem/';
-                }
-
+        {
+          city: "2",
+          label: "上海"
+        },
+        {
+          city: "3",
+          label: "广州"
+        },
+        {
+          city: "4",
+          label: "深圳"
+        },
+        {
+          city: "5",
+          label: "成都"
+        },
+        {
+          city: "6",
+          label: "杭州"
+        }
+      ],
+      city: "0",
 
+      openStatus: [
+        {
+          id: 0,
+          label: "下架隐藏"
+        },
+        {
+          id: 1,
+          label: "开放中"
+        },
+        {
+          id: 2,
+          label: "停止申请"
+        },
+        {
+          id: 3,
+          label: "开发中"
+        },
+        {
+          id: 4,
+          label: "已结束"
+        }
+      ],
+      statusValue: 0,
 
-                const res = await this.$post("/api/admin/present_job/present_info",body);
-                this.related_id = res.data.job.id;
-                this.uid = res.data.job.uid;
-                this.title = res.data.job.title2;
-                this.related_type = res.data.job_type;
-                this.manager = res.data.manager;
-                this.salary_from = res.data.job.match_salary_min;
-                this.salary_to = res.data.job.match_salary_max;
-                this.month = res.data.job.month?res.data.job.month:'';
-                this.work_year = res.data.job.work_year?res.data.job.work_year:'';
-                this.directions = res.data.job.directions;
-                this.match_skills = res.data.job.match_skills;
-                this.skill = res.data.job.skill;
-                this.statusValue = res.data.job.status?res.data.job.status:0;
-                this.city = res.data.job.city?res.data.job.city:'0';
-                this.file = res.data.job.show_file?res.data.job.show_file:'0';
-                this.job_type = vars[1].split("=")[1];
-                this.job_description = res.data.job.description;
-                this.match_directions = res.data.job.match_directions;
+      files: [
+        {
+          id: "1",
+          label: "是"
+        },
+        {
+          id: "0",
+          label: "否"
+        }
+      ],
+      file: "0"
+    };
+  },
+  mounted() {
+    this.getPresentInfo();
+  },
+  methods: {
+    async getPresentInfo() {
+      let query = window.location.search.substring(1);
+      let vars = query.split("&");
+      let body = {
+        job_id: vars[0].split("=")[1],
+        job_type: vars[1].split("=")[1]
+      };
+      let url = window.location.href;
 
-            },
-            async cancelPresent() {
-                window.history.back();
-            },
-            async savePresent() {
-                let flag = false;
-                let salaryAlert = document.getElementById('salaryAlert');
-                let monthAlert = document.getElementById('monthAlert');
-                let jobInfoAlert = document.getElementById('jobInfoAlert');
-                let workYearAlert = document.getElementById('workYear');
-                if (this.work_year.length==0){
-                    workYearAlert.innerText = '请输入工作年限';
-                    workYearAlert.style.display = 'block';
-                    flag = true;
-                }
-                if (this.salary_from.length==0||this.salary_to.length==0){
-                    salaryAlert.innerText = '请正确输入薪酬范围';
-                    salaryAlert.style.display = 'block';
-                    flag = true;
-                }
-                if (this.month.length==0){
-                    monthAlert.innerText = '请输入驻场周期';
-                    monthAlert.style.display = 'block';
-                    flag = true;
-                }
-                if (this.job_description.length==0){
-                    jobInfoAlert.innerText = '请输入工作内容';
-                    jobInfoAlert.style.display = 'block';
-                    flag = true;
-                }
-                if ((this.work_year<0||this.work_year>99)&&this.work_year.length!=0){
-                    workYearAlert.innerText = '工作年限正确填写范围0-99';
-                    workYearAlert.style.display = 'block';
-                    flag = true;
-                }
-                this.salary_from = parseInt(this.salary_from);
-                this.salary_to = parseInt(this.salary_to);
-                if (this.salary_from<1||this.salary_from>1000000||this.salary_to<1||this.salary_to>1000000||this.salary_from>=this.salary_to){
-                    salaryAlert.innerText = '薪酬填写范围1-1000000且前一个值要小于后一个值';
-                    salaryAlert.style.display = 'block';
-                    flag = true;
-                }
-                if ((this.month<1||this.month>99)&&this.month.length!=0){
-                    monthAlert.innerText = '驻场周期正确填写范围1-99';
-                    monthAlert.style.display = 'block';
-                    flag = true;
-                }
-                if (this.job_description.length>10000){
-                    jobInfoAlert.innerText = '工作内容填写最多10000个字符且不能为空';
-                    jobInfoAlert.style.display = 'block';
-                    flag = true;
-                }
-                if (flag){
-                    return false;
-                }
-                let body = {
-                    'related_id' : this.related_id,
-                    'title' : this.title,
-                    'related_type' : this.job_type,
-                    'status' : this.statusValue,
-                    'salary_from' : this.salary_from,
-                    'salary_to' : this.salary_to,
-                    'city' : this.city,
-                    'show_file' : this.file,
-                    'month' : this.month,
-                    'work_year' : this.work_year,
-                    'job_direction' : this.match_directions,
-                    'job_skills' : this.match_skills,
-                    'job_description' :this.job_description
-                }
-                const res = await this.$post("/api/admin/present_job/present_edit",body);
-                if (res.status==1) {
-                    alert(res.info);
-                    location.href=this.jump_url+this.related_id;
+      this.jump_url =
+        this.$store.state.domainConfig.siteUrl + "/rooter/cloudjobitem/";
 
-                }
-            }
-        }
+      const res = await this.$post("/api/admin/present_job/present_info", body);
+      this.related_id = res.data.job.id;
+      this.uid = res.data.job.uid;
+      this.title = res.data.job.title2;
+      this.related_type = res.data.job_type;
+      this.manager = res.data.manager;
+      this.salary_from = res.data.job.match_salary_min;
+      this.salary_to = res.data.job.match_salary_max;
+      this.month = res.data.job.month ? res.data.job.month : "";
+      this.work_year = res.data.job.work_year ? res.data.job.work_year : "";
+      this.directions = res.data.job.directions;
+      this.match_skills = res.data.job.match_skills;
+      this.skill = res.data.job.skill;
+      this.statusValue = res.data.job.status ? res.data.job.status : 0;
+      this.city = res.data.job.city ? res.data.job.city : "0";
+      this.file = res.data.job.show_file ? res.data.job.show_file : "0";
+      this.job_type = vars[1].split("=")[1];
+      this.job_description = res.data.job.description;
+      this.match_directions = res.data.job.match_directions;
+    },
+    async cancelPresent() {
+      window.history.back();
+    },
+    async savePresent() {
+      let flag = false;
+      let salaryAlert = document.getElementById("salaryAlert");
+      let monthAlert = document.getElementById("monthAlert");
+      let jobInfoAlert = document.getElementById("jobInfoAlert");
+      let workYearAlert = document.getElementById("workYear");
+      if (this.work_year.length == 0) {
+        workYearAlert.innerText = "请输入工作年限";
+        workYearAlert.style.display = "block";
+        flag = true;
+      }
+      if (this.salary_from.length == 0 || this.salary_to.length == 0) {
+        salaryAlert.innerText = "请正确输入薪酬范围";
+        salaryAlert.style.display = "block";
+        flag = true;
+      }
+      if (this.month.length == 0) {
+        monthAlert.innerText = "请输入驻场周期";
+        monthAlert.style.display = "block";
+        flag = true;
+      }
+      if (this.job_description.length == 0) {
+        jobInfoAlert.innerText = "请输入工作内容";
+        jobInfoAlert.style.display = "block";
+        flag = true;
+      }
+      if (
+        (this.work_year < 0 || this.work_year > 99) &&
+        this.work_year.length != 0
+      ) {
+        workYearAlert.innerText = "工作年限正确填写范围0-99";
+        workYearAlert.style.display = "block";
+        flag = true;
+      }
+      this.salary_from = parseInt(this.salary_from);
+      this.salary_to = parseInt(this.salary_to);
+      if (
+        this.salary_from < 1 ||
+        this.salary_from > 1000000 ||
+        this.salary_to < 1 ||
+        this.salary_to > 1000000 ||
+        this.salary_from >= this.salary_to
+      ) {
+        salaryAlert.innerText = "薪酬填写范围1-1000000且前一个值要小于后一个值";
+        salaryAlert.style.display = "block";
+        flag = true;
+      }
+      if ((this.month < 1 || this.month > 99) && this.month.length != 0) {
+        monthAlert.innerText = "驻场周期正确填写范围1-99";
+        monthAlert.style.display = "block";
+        flag = true;
+      }
+      if (this.job_description.length > 10000) {
+        jobInfoAlert.innerText = "工作内容填写最多10000个字符且不能为空";
+        jobInfoAlert.style.display = "block";
+        flag = true;
+      }
+      if (flag) {
+        return false;
+      }
+      let body = {
+        related_id: this.related_id,
+        title: this.title,
+        related_type: this.job_type,
+        status: this.statusValue,
+        salary_from: this.salary_from,
+        salary_to: this.salary_to,
+        city: this.city,
+        show_file: this.file,
+        month: this.month,
+        work_year: this.work_year,
+        job_direction: this.match_directions,
+        job_skills: this.match_skills,
+        job_description: this.job_description
+      };
+      const res = await this.$post("/api/admin/present_job/present_edit", body);
+      if (res.status == 1) {
+        alert(res.info);
+        location.href = this.jump_url + this.related_id;
+      }
     }
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .el-row {
-    margin-bottom: 20px;
-  }
-  .top{
-    margin-top: 10px;
-  }
-
+.el-row {
+  margin-bottom: 20px;
+}
+.top {
+  margin-top: 10px;
+}
 </style>

+ 9 - 26
pages/main/index/solution_detail.vue

@@ -237,23 +237,14 @@
       },
       async userinfo(uid) {
         let url = window.location.href;
-        if (url.indexOf('dev') != -1) {
-          window.open(`https://dev.test.proginn.com/rooter/user/${uid}`)
-        } else if (url.indexOf('local') != -1) {
-          window.open(`http://local.proginn.com/rooter/user/${uid}`)
-        } else {
-          window.open(`https://proginn.com/rooter/user/${uid}`)
-        }
+        
+          window.open(this.$store.state.domainConfig.siteUrl +`/rooter/user/${uid}`)
       },
       async woinfo(uid) {
         let url = window.location.href;
-        if (url.indexOf('dev') != -1) {
-          window.open(`https://dev.test.proginn.com/wo/${uid}`)
-        } else if (url.indexOf('local') != -1) {
-          window.open(`http://local.proginn.com/wo/${uid}`)
-        } else {
-          window.open(`https://proginn.com/wo/${uid}`)
-        }
+        
+          window.open(this.$store.state.domainConfig.siteUrl +`/wo/${uid}`)
+        
       },
       async returnPage() {
         let url = window.location.href;
@@ -261,13 +252,9 @@
       },
       async companyVerifyStatus(uid) {
         let url = window.location.href;
-        if (url.indexOf('dev') != -1) {
-          window.open(`https://dev.test.proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
-        } else if (url.indexOf('local') != -1) {
-          window.open(`http://local.proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
-        } else {
-          window.open(`https://proginn.com/rooter/companyVerifyAuditItem?uid=${uid}`)
-        }
+        
+          window.open(this.$store.state.domainConfig.siteUrl +`/rooter/companyVerifyAuditItem?uid=${uid}`)
+        
       },
       async updateStatus(item) {
         const result = 3;
@@ -323,11 +310,7 @@
         console.log('item', item)
         const { id } = item
         let url = window.location.href;
-        let baseUrl = 'https://www.proginn.com'
-        if (url.indexOf('dev') !== -1 || url.indexOf('local') !== -1) {
-          baseUrl = `https://dev.test.proginn.com`
-        }
-        window.open(`${baseUrl}/kaifain/${id}`, '_black')
+        window.open(this.$store.state.domainConfig.siteUrl +`/kaifain/${id}`, '_black')
       }
     }
   }

+ 164 - 186
pages/main/index/user_bills.vue

@@ -1,80 +1,58 @@
 <template>
   <div id="mainBody">
     <div v-if="user">
-    <div class="user-name">用户:{{user.nickname}}({{user.uid}})</div>
-    <div class="user-info">订单数量:{{totalCount}},收入金额:{{income_success_sum}}元,支出金额:{{expense_success_sum}}元,当前余额 {{balance}}元</div>
-    <el-table
-      :data="finaceList" border
-      style="width: 100%">
-      <el-table-column
-        prop=""
-        label="订单名称">
-        <template slot-scope="scope">
-          <span class="lblue point">
-            <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
-        prop=""
-        label="实际金额">
-        <template slot-scope="scope">
-          <span v-if="scope.row.real_amount>0" style="color: green">+{{scope.row.real_amount}}</span>
-          <span v-if="scope.row.real_amount<0" style="color: orange">{{scope.row.real_amount}}</span>
-          <span v-if="scope.row.real_amount==0">{{scope.row.real_amount}}</span>
-        </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">
-          <nuxt-link target="_blank" :to="{path:'/main/orders_detail?id='+scope.row.order_no}">{{scope.row.order_no}}</nuxt-link>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop=""
-        label="人工">
-        <template slot-scope="scope">
-          {{(scope.row.artificial_mark === 1 || scope.row.artificial_mark === "1")?'是':'否'}}
-        </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="user-name">用户:{{user.nickname}}({{user.uid}})</div>
+      <div
+        class="user-info"
+      >订单数量:{{totalCount}},收入金额:{{income_success_sum}}元,支出金额:{{expense_success_sum}}元,当前余额 {{balance}}元</div>
+      <el-table :data="finaceList" border style="width: 100%">
+        <el-table-column prop label="订单名称">
+          <template slot-scope="scope">
+            <span class="lblue point">
+              <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 prop label="实际金额">
+          <template slot-scope="scope">
+            <span v-if="scope.row.real_amount>0" style="color: green">+{{scope.row.real_amount}}</span>
+            <span v-if="scope.row.real_amount<0" style="color: orange">{{scope.row.real_amount}}</span>
+            <span v-if="scope.row.real_amount==0">{{scope.row.real_amount}}</span>
+          </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">
+            <nuxt-link
+              target="_blank"
+              :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
+            >{{scope.row.order_no}}</nuxt-link>
+          </template>
+        </el-table-column>
+        <el-table-column prop label="人工">
+          <template
+            slot-scope="scope"
+          >{{(scope.row.artificial_mark === 1 || scope.row.artificial_mark === "1")?'是':'否'}}</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
@@ -91,129 +69,129 @@
 </template>
 
 <script>
-  export default {
-    data() {
-      return {
-        user:{},
-        tradeList: [
-          {
-            id: 0,
-            type: "全部"
-          },
-          {
-            id: 1,
-            type: "充值"
-          },
-          {
-            id: 2,
-            type: "提现"
-          },
-          {
-            id: 3,
-            type: "购买"
-          },
-          {
-            id: 4,
-            type: "购买"
-          }
-        ],
+export default {
+  data() {
+    return {
+      user: {},
+      tradeList: [
+        {
+          id: 0,
+          type: "全部"
+        },
+        {
+          id: 1,
+          type: "充值"
+        },
+        {
+          id: 2,
+          type: "提现"
+        },
+        {
+          id: 3,
+          type: "购买"
+        },
+        {
+          id: 4,
+          type: "购买"
+        }
+      ],
 
-        finaceList: [],
+      finaceList: [],
 
-        // 下发的总数据
-        totalData: {},
-        // 负责人
-        checkUser: "",
-        // 审核人列表
-        periodStatusList: [],
-        // 数据总条目
-        totalCount: 1,
-        currentPage: 1,
-        currentPageSize: 20,
-        // 列表数据
-        tableData: [],
-      };
-    },
-    computed: {
-      isTest() {
-        return this.localData.env === "test";
-      }
+      // 下发的总数据
+      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 } });
     },
-    mounted() {
-      // this.getTableData();
+    changePageSize(val) {
       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;
-      },
+    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);
+      var url =
+        this.$store.state.domainConfig.siteUrl +
+        "/api/admin/order/export?" +
+        "artificial_mark=1";
+      console.log(url);
+      window.location.href = url;
     }
-  };
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .user-name {
-    margin-bottom: 10px;
-  }
+.user-name {
+  margin-bottom: 10px;
+}
 
-  .user-info {
-    margin-bottom: 10px;
-  }
+.user-info {
+  margin-bottom: 10px;
+}
 
-  .order-footer {
-    position: absolute;
-    bottom: 10px;
-    left: 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);
-  }
+.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>

+ 117 - 107
pages/main/index/vip_manager.vue

@@ -34,117 +34,127 @@
 </template>
 
 <script>
-    const tableHeaders = [
-        "用户ID",
-        "昵称",
-        "会员类型",
-        "开始时间",
-        "到期时间",
-        "最新购买",
-        "累计月数",
-        "累计金额",
-        "当前状态",
-    ]
-    const tableProps = [
-        "uid",
-        "nickname",
-        "type_name",
-        "start_date",
-        "end_date",
-        "pay_date",
-        "total_month",
-        "total_price",
-        "status_name",
-    ]
+const tableHeaders = [
+  "用户ID",
+  "昵称",
+  "会员类型",
+  "开始时间",
+  "到期时间",
+  "最新购买",
+  "累计月数",
+  "累计金额",
+  "当前状态"
+];
+const tableProps = [
+  "uid",
+  "nickname",
+  "type_name",
+  "start_date",
+  "end_date",
+  "pay_date",
+  "total_month",
+  "total_price",
+  "status_name"
+];
 
-    // 现在环境是线上还是测试, 默认线上
-    let env = ''
+// 现在环境是线上还是测试, 默认线上
+let env = "";
 
-    export default {
-        data() {
-            return {
-                // 原始数据
-                listData: {},
-                // 头部信息
-                titleInfo: {},
-                // 数据总条目
-                totalCount: 0,
-                // 当前页面
-                currentPage: 1,
-                // 列表头显示内容
-                tableHeaders,
-                // 列表头字段
-                tableProps,
-                // 列表数据
-                tableData: [],
-            }
-        },
-        computed: {
-            whole() {
-                return this.listData.whole || {}
-            }
-        },
-        mounted() {
-            this.getTableData()
-        },
-        filters: {
-            toDate(val) {
-                return new Date(val * 1000).toLocaleDateString()
-            },
-            projectLink(i) {
-                const type = i.entity_type
-                let link = 'javascript:void(0)'
-                if(type === '1') link = `/rooter/outsourceitem/${i.entity_id}>`
-                else if(type === '3') link = `/rooter/wagedetails?job_id=${i.entity_id}`
-                return link
-            }
-        },
-        methods: {
-            /**
-             * 点击 uid
-             */
-            clickUID({uid}) {
-                if(env === 'test') window.open(`https://dev.test.proginn.com/rooter/user/${uid}`)
-                else window.open(`https://www.proginn.com/rooter/user/${uid}`)
-            },
-            // 页码变动
-            changePagination() {
-                this.getTableData()
-            },
-            // 格式化列表数据
-            formatTableData(data) {
-                return data.map(i => {
-                    let projectName = '--'
-                    let prePay = ''
-                    let servicePay = ''
-                    let getPay = ''
-                    let realGet = ''
-                    return {
-                        ...i,
-                    }
-                })
-            },
-            // 获取列表数据
-            async getTableData() {
-                this.tableData = []
-                const p = this.currentPage
-                const res = await this.$post("/api/admin/vip/getVips", { page: this.currentPage, page_size: 10 })
-                // console.log(res)
-                const data = res.data
-                env = data.current_env
-                const list = data.list
-                this.listData = data
-                this.tableData = list // this.formatTableData(list, data)
-                this.totalCount = Number(data.total)
-                this.totalPage = data.pages
-            }
-        }
+export default {
+  data() {
+    return {
+      // 原始数据
+      listData: {},
+      // 头部信息
+      titleInfo: {},
+      // 数据总条目
+      totalCount: 0,
+      // 当前页面
+      currentPage: 1,
+      // 列表头显示内容
+      tableHeaders,
+      // 列表头字段
+      tableProps,
+      // 列表数据
+      tableData: []
+    };
+  },
+  computed: {
+    whole() {
+      return this.listData.whole || {};
     }
+  },
+  mounted() {
+    this.getTableData();
+  },
+  filters: {
+    toDate(val) {
+      return new Date(val * 1000).toLocaleDateString();
+    },
+    projectLink(i) {
+      const type = i.entity_type;
+      let link = "javascript:void(0)";
+      if (type === "1")
+        link =
+          this.$store.state.domainConfig.siteUrl +
+          `/rooter/outsourceitem/${i.entity_id}>`;
+      else if (type === "3")
+        link =
+          this.$store.state.domainConfig.siteUrl +
+          `/rooter/wagedetails?job_id=${i.entity_id}`;
+      return link;
+    }
+  },
+  methods: {
+    /**
+     * 点击 uid
+     */
+    clickUID({ uid }) {
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/user/${uid}`
+      );
+    },
+    // 页码变动
+    changePagination() {
+      this.getTableData();
+    },
+    // 格式化列表数据
+    formatTableData(data) {
+      return data.map(i => {
+        let projectName = "--";
+        let prePay = "";
+        let servicePay = "";
+        let getPay = "";
+        let realGet = "";
+        return {
+          ...i
+        };
+      });
+    },
+    // 获取列表数据
+    async getTableData() {
+      this.tableData = [];
+      const p = this.currentPage;
+      const res = await this.$post("/api/admin/vip/getVips", {
+        page: this.currentPage,
+        page_size: 10
+      });
+      // console.log(res)
+      const data = res.data;
+      env = data.current_env;
+      const list = data.list;
+      this.listData = data;
+      this.tableData = list; // this.formatTableData(list, data)
+      this.totalCount = Number(data.total);
+      this.totalPage = data.pages;
+    }
+  }
+};
 </script>
 
 <style scoped>
-  .table {
-    height: 100%;
-    height: calc(100% - 80px);
-  }
+.table {
+  height: 100%;
+  height: calc(100% - 80px);
+}
 </style>

+ 127 - 122
pages/main/index/vip_order.vue

@@ -1,14 +1,10 @@
 <template>
   <div id="vip-order">
-    <div class="title">订单总量:初创版{{whole.company_order_num}},企业版{{whole.premius_order_num}}, 开发者{{whole.person_order_num}} 累计收入: 初创版 ¥{{whole.company_paid_money}},企业版¥{{whole.premius_paid_money}}, 开发者 ¥{{whole.person_paid_money}}</div>
+    <div
+      class="title"
+    >订单总量:初创版{{whole.company_order_num}},企业版{{whole.premius_order_num}}, 开发者{{whole.person_order_num}} 累计收入: 初创版 ¥{{whole.company_paid_money}},企业版¥{{whole.premius_paid_money}}, 开发者 ¥{{whole.person_paid_money}}</div>
     <div class="table">
-      <el-table
-        v-if="tableData.length"
-        height="100%"
-        border
-        style="width: 100%"
-        :data="tableData"
-      >
+      <el-table v-if="tableData.length" height="100%" border style="width: 100%" :data="tableData">
         <el-table-column
           v-for="(prop, index) of tableProps"
           :key="index"
@@ -16,7 +12,12 @@
           :label="tableHeaders[index]"
         >
           <template slot-scope="scope">
-            <el-button type="text" class="ctrls" v-if="prop === 'uid'" @click="clickUID(scope.row)">{{scope.row[prop]}}</el-button>
+            <el-button
+              type="text"
+              class="ctrls"
+              v-if="prop === 'uid'"
+              @click="clickUID(scope.row)"
+            >{{scope.row[prop]}}</el-button>
             <span v-else>{{scope.row[prop]}}</span>
           </template>
         </el-table-column>
@@ -33,122 +34,126 @@
 </template>
 
 <script>
-    const tableHeaders = [
-        "用户ID",
-        "昵称",
-        "会员类型",
-        "购买类型",
-        "购买月数",
-        "应付金额",
-        "实付金额",
-        "订单号",
-        "开始时间",
-        "生效时间",
-        "购前到期",
-        "购后到期",
-    ]
-    const tableProps = [
-        "uid",
-        "nickname",
-        "type_name",
-        "is_first_name",
-        "num",
-        "need_pay_money",
-        "paid_money",
-        "order_no",
-        "start_date",
-        "pay_date",
-        "origin_end_date",
-        "end_date",
-    ]
-    // 现在环境是线上还是测试, 默认线上
-    let env = ''
+const tableHeaders = [
+  "用户ID",
+  "昵称",
+  "会员类型",
+  "购买类型",
+  "购买月数",
+  "应付金额",
+  "实付金额",
+  "订单号",
+  "开始时间",
+  "生效时间",
+  "购前到期",
+  "购后到期"
+];
+const tableProps = [
+  "uid",
+  "nickname",
+  "type_name",
+  "is_first_name",
+  "num",
+  "need_pay_money",
+  "paid_money",
+  "order_no",
+  "start_date",
+  "pay_date",
+  "origin_end_date",
+  "end_date"
+];
+// 现在环境是线上还是测试, 默认线上
+let env = "";
 
-    export default {
-        data() {
-            return {
-                // 原始数据
-                listData: {},
-                // 头部信息
-                titleInfo: {},
-                // 数据总条目
-                totalCount: 0,
-                // 当前页面
-                currentPage: 1,
-                // 列表头显示内容
-                tableHeaders,
-                // 列表头字段
-                tableProps,
-                // 列表数据
-                tableData: [],
-            }
-        },
-        computed: {
-            whole() {
-                return this.listData.whole || {}
-            }
-        },
-        mounted() {
-            this.getTableData()
-        },
-        filters: {
-            toDate(val) {
-                return new Date(val * 1000).toLocaleDateString()
-            },
-            projectLink(i) {
-                const type = i.entity_type
-                let link = 'javascript:void(0)'
-                if(type === '1') link = `/rooter/outsourceitem/${i.entity_id}>`
-                else if(type === '3') link = `/rooter/wagedetails?job_id=${i.entity_id}`
-                return link
-            }
-        },
-        methods: {
-            /**
-             * 点击 uid
-             */
-            clickUID({uid}) {
-                if(env === 'test') window.open(`https://dev.test.proginn.com/rooter/user/${uid}`)
-                else window.open(`https://www.proginn.com/rooter/user/${uid}`)
-            },
-            // 页码变动
-            changePagination() {
-                this.getTableData()
-            },
-            // 格式化列表数据
-            formatTableData(data) {
-                return data.map(i => {
-                    let projectName = '--'
-                    let prePay = ''
-                    let servicePay = ''
-                    let getPay = ''
-                    let realGet = ''
-                    return {
-                        ...i,
-                    }
-                })
-            },
-            // 获取列表数据
-            async getTableData() {
-                this.tableData = []
-                const p = this.currentPage
-                const res = await this.$post("/api/admin/vip/getVipOrders", { page: this.currentPage, page_size: 10 })
-                // console.log(res)
-                const data = res.data
-                env = data.current_env
-                const list = data.list
-                this.listData = data
-                this.tableData = list // this.formatTableData(list, data)
-                this.totalCount = Number(data.total)
-                this.totalPage = data.pages
-            }
-        }
+export default {
+  data() {
+    return {
+      // 原始数据
+      listData: {},
+      // 头部信息
+      titleInfo: {},
+      // 数据总条目
+      totalCount: 0,
+      // 当前页面
+      currentPage: 1,
+      // 列表头显示内容
+      tableHeaders,
+      // 列表头字段
+      tableProps,
+      // 列表数据
+      tableData: []
+    };
+  },
+  computed: {
+    whole() {
+      return this.listData.whole || {};
     }
+  },
+  mounted() {
+    this.getTableData();
+  },
+  filters: {
+    toDate(val) {
+      return new Date(val * 1000).toLocaleDateString();
+    },
+    projectLink(i) {
+      const type = i.entity_type;
+      let link = "javascript:void(0)";
+      if (type === "1") link = `/rooter/outsourceitem/${i.entity_id}>`;
+      else if (type === "3") link = `/rooter/wagedetails?job_id=${i.entity_id}`;
+      return link;
+    }
+  },
+  methods: {
+    /**
+     * 点击 uid
+     */
+    clickUID({ uid }) {
+      window.open(
+        this.$store.state.domainConfig.siteUrl + `/rooter/user/${uid}`
+      );
+    },
+    // 页码变动
+    changePagination() {
+      this.getTableData();
+    },
+    // 格式化列表数据
+    formatTableData(data) {
+      return data.map(i => {
+        let projectName = "--";
+        let prePay = "";
+        let servicePay = "";
+        let getPay = "";
+        let realGet = "";
+        return {
+          ...i
+        };
+      });
+    },
+    // 获取列表数据
+    async getTableData() {
+      this.tableData = [];
+      const p = this.currentPage;
+      const res = await this.$post("/api/admin/vip/getVipOrders", {
+        page: this.currentPage,
+        page_size: 10
+      });
+      // console.log(res)
+      const data = res.data;
+      env = data.current_env;
+      const list = data.list;
+      this.listData = data;
+      this.tableData = list; // this.formatTableData(list, data)
+      this.totalCount = Number(data.total);
+      this.totalPage = data.pages;
+    }
+  }
+};
 </script>
 
 <style scoped>
-  .table {
-    height: 100%;
-    height: calc(100% - 80px);
-  }
+.table {
+  height: 100%;
+  height: calc(100% - 80px);
+}
 </style>

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

@@ -104,7 +104,7 @@
             <label class="label">平台服务费</label>
             <b
               class="font16 color0"
-            >¥{{item.developer.person_service_fee - item.developer.person_service_fee_reduce_amount}}</b>
+            >¥{{item.developer.person_service_fee}}</b>
           </p>
           <p class="font15 color2">
             <label class="label">应缴税费</label>

+ 174 - 116
pages/main/index/wage_settlement.vue

@@ -1,7 +1,7 @@
 <template>
   <section v-if="detail" id="wage-settlement">
     <section class="left">
-      <h3>工资结算</h3> 
+      <h3>工资结算</h3>
       <h4>
         <a :href="orderHref">{{detail.job.title_count}}</a>
@@ -149,9 +149,9 @@
 
 <script>
 // 现在环境是线上还是测试, 默认线上
-let env = ''
+let env = "";
 // 备注页码
-let currentPage = 1
+let currentPage = 1;
 
 export default {
   data() {
@@ -161,117 +161,164 @@ export default {
       // 历史备注
       reminds: [],
       // 备注信息
-      remind: '',
-      job_id: '',
-      period_id: '',
+      remind: "",
+      job_id: "",
+      period_id: "",
       is_invoice: false,
       dev_is_invoice: false,
       is_use_deposit: false,
       detail: null,
       clientChangeDialog: false,
       clients: [],
-      clientSelected: ''
-    }
+      clientSelected: ""
+    };
   },
   computed: {
     /**
      * 详情链接地址
      */
     orderHref() {
-      let detail = this.detail
-        , hrefFix = `/rooter/cloudjobitem/${detail.job_id}`
-      if (env === 'test') hrefFix = `https://dev.test.proginn.com${hrefFix}`
-      else hrefFix = `https://www.proginn.com${hrefFix}`
-      return hrefFix
+      let detail = this.detail,
+        hrefFix = `/rooter/cloudjobitem/${detail.job_id}`;
+      hrefFix = this.$store.state.domainConfig.siteUrl + `${hrefFix}`;
+      return hrefFix;
     },
     /**
      * 开发者服务费率
      */
     devServiceRate() {
-      let rate = this.rate
-      let result = +rate.origin_person_service_fee_rate - +rate.person_service_fee_rate_reduce
-      return result < 0 ? 0 : result
+      let rate = this.rate;
+      let result =
+        +rate.origin_person_service_fee_rate -
+        +rate.person_service_fee_rate_reduce;
+      return result < 0 ? 0 : result;
     },
     /**
      * 开发者税率
      */
     devRate() {
-      let rate = this.rate
-      return +rate.person_tax_rate + +rate.person_tax_service_fee_rate
+      let rate = this.rate;
+      return +rate.person_tax_rate + +rate.person_tax_service_fee_rate;
     },
     /**
      * 薪资
      */
     salary() {
-      return this.detail.salary
+      return this.detail.salary;
     },
     /**
      * 会员减免
      */
     vipMinus() {
-      let salary = this.salary
-      let rate = this.rate
-      return this.keepDecimal(((salary.normal_salary * 1 + salary.probation_salary * 1) * (this.detail.work_hour.work_rate / 100) - salary.deduction_fee * 1) * ((rate.origin_person_service_fee_rate - rate.person_service_fee_rate_reduce) / 100))
+      let salary = this.salary;
+      let rate = this.rate;
+      return this.keepDecimal(
+        ((salary.normal_salary * 1 + salary.probation_salary * 1) *
+          (this.detail.work_hour.work_rate / 100) -
+          salary.deduction_fee * 1) *
+          ((rate.origin_person_service_fee_rate -
+            rate.person_service_fee_rate_reduce) /
+            100)
+      );
     },
     /**
      * 税率
      */
     rate() {
-      return this.detail.rate
+      return this.detail.rate;
     },
     /**
      * 应缴税费
      */
     shouldRate() {
-      let rate = this.rate
-      return this.keepDecimal(+this.baseSalary * (1 - +rate.origin_person_service_fee_rate / 100 + +rate.person_service_fee_rate_reduce / 100) * this.devRate / 100)
+      let rate = this.rate;
+      return this.keepDecimal(
+        (+this.baseSalary *
+          (1 -
+            +rate.origin_person_service_fee_rate / 100 +
+            +rate.person_service_fee_rate_reduce / 100) *
+          this.devRate) /
+          100
+      );
     },
     /**
      * 本月工资
      */
     baseSalary() {
-      let salary = this.salary
-      return this.keepDecimal((+salary.normal_salary + +salary.probation_salary) * +this.detail.work_hour.work_rate / 100 - +salary.deduction_fee)
+      let salary = this.salary;
+      return this.keepDecimal(
+        ((+salary.normal_salary + +salary.probation_salary) *
+          +this.detail.work_hour.work_rate) /
+          100 -
+          +salary.deduction_fee
+      );
     },
     /**
      * 退还金额
      */
     returnMoney() {
-      if (this.is_use_deposit) return 0
+      if (this.is_use_deposit) return 0;
 
-      let salary = this.salary
-      let isPay = +this.detail.company.company_pay > 0 ? 1 : 0
-      let hasTax = this.detail.is_invoice == '1' ? (1 + +this.detail.rate.company_tax_rate / 100) : 1
-      return this.keepDecimal((+salary.normal_salary + +salary.probation_salary - +this.baseSalary) * (1 + +this.detail.rate.company_service_fee_rate / 100) * hasTax) * isPay
+      let salary = this.salary;
+      let isPay = +this.detail.company.company_pay > 0 ? 1 : 0;
+      let hasTax =
+        this.detail.is_invoice == "1"
+          ? 1 + +this.detail.rate.company_tax_rate / 100
+          : 1;
+      return (
+        this.keepDecimal(
+          (+salary.normal_salary +
+            +salary.probation_salary -
+            +this.baseSalary) *
+            (1 + +this.detail.rate.company_service_fee_rate / 100) *
+            hasTax
+        ) * isPay
+      );
     },
     /**
      * 实际工资
      */
     personPrice() {
-      let salary = this.salary
-      let rate = this.detail.rate
-      let work_hour = this.detail.work_hour
-      let isPayable = this.dev_is_invoice ? (1 - rate.person_tax_rate / 100 - rate.person_tax_service_fee_rate / 100) : 1
-      let personPrice = (((salary.normal_salary - 0) + (salary.probation_salary - 0)) * work_hour.work_rate / 100 - +salary.deduction_fee) * (1 - rate.person_service_fee_rate / 100) * isPayable
+      let salary = this.salary;
+      let rate = this.detail.rate;
+      let work_hour = this.detail.work_hour;
+      let isPayable = this.dev_is_invoice
+        ? 1 -
+          rate.person_tax_rate / 100 -
+          rate.person_tax_service_fee_rate / 100
+        : 1;
+      let personPrice =
+        (((salary.normal_salary - 0 + (salary.probation_salary - 0)) *
+          work_hour.work_rate) /
+          100 -
+          +salary.deduction_fee) *
+        (1 - rate.person_service_fee_rate / 100) *
+        isPayable;
 
-      return this.keepDecimal(personPrice)
+      return this.keepDecimal(personPrice);
     },
     /**
      * 企业方费用
      */
     companyPrice() {
-      let salary = this.salary
-      let rate = this.detail.rate
-      let work_hour = this.detail.work_hour
-      let isPayable = this.is_invoice ? (1 + rate.company_tax_rate / 100) : 1
-      let companyPrice = (((salary.normal_salary - 0) + (salary.probation_salary - 0)) * work_hour.work_rate / 100 - +salary.deduction_fee) * (1 + rate.company_service_fee_rate / 100) * isPayable
-      return this.keepDecimal(companyPrice)
+      let salary = this.salary;
+      let rate = this.detail.rate;
+      let work_hour = this.detail.work_hour;
+      let isPayable = this.is_invoice ? 1 + rate.company_tax_rate / 100 : 1;
+      let companyPrice =
+        (((salary.normal_salary - 0 + (salary.probation_salary - 0)) *
+          work_hour.work_rate) /
+          100 -
+          +salary.deduction_fee) *
+        (1 + rate.company_service_fee_rate / 100) *
+        isPayable;
+      return this.keepDecimal(companyPrice);
     },
     /**
      * is_invoice根据身份取值
      */
     isInvoice() {
-      return this.detail[this.isDev ? 'dev_is_invoice' : 'is_invoice']
+      return this.detail[this.isDev ? "dev_is_invoice" : "is_invoice"];
     }
   },
   filters: {
@@ -279,68 +326,75 @@ export default {
      * 格式化日期
      */
     dateFormat(val) {
-      return new Date(+val * 1000).toLocaleDateString()
+      return new Date(+val * 1000).toLocaleDateString();
     }
   },
   mounted() {
-    this.job_id = this.$route.query.job_id
-    this.period_id = this.$route.query.period_id
+    this.job_id = this.$route.query.job_id;
+    this.period_id = this.$route.query.period_id;
     this.getClients();
-    this.getData()
-    this.getReminds()
+    this.getData();
+    this.getReminds();
   },
   methods: {
     /**
      * 备注页码变化
      */
     changePagination(page) {
-      this.getReminds(page)
+      this.getReminds(page);
     },
     async getReminds(page = currentPage) {
-      this.reminds = []
-      let { status, data } = await this.$post('/api/admin/job/getPeriodNote', { period_id: this.period_id, page })
-      currentPage = page
-      console.log(data)
+      this.reminds = [];
+      let { status, data } = await this.$post("/api/admin/job/getPeriodNote", {
+        period_id: this.period_id,
+        page
+      });
+      currentPage = page;
+      console.log(data);
       if (status) {
-        this.total = data.total
-        this.reminds = data.list
+        this.total = data.total;
+        this.reminds = data.list;
       }
     },
     /**
      * 点击提交备注
      */
     async clickRemindSave() {
-      console.log(this.remind)
+      console.log(this.remind);
       if (!this.remind.length) {
         this.$message({
-          message: '请输入备注',
-          type: 'warning'
-        })
-        return
+          message: "请输入备注",
+          type: "warning"
+        });
+        return;
       }
-      let content = `${this.remind} -账单ID${this.period_id}`
-      let res = await this.$post('/api/admin/job/note', { id: this.job_id, period_id: this.period_id, content })
-      console.log(res)
+      let content = `${this.remind} -账单ID${this.period_id}`;
+      let res = await this.$post("/api/admin/job/note", {
+        id: this.job_id,
+        period_id: this.period_id,
+        content
+      });
+      console.log(res);
       if (res.status) {
         this.$message({
-          message: '保存成功',
-          type: 'success'
-        })
+          message: "保存成功",
+          type: "success"
+        });
         setTimeout(() => {
-          location.reload()
+          location.reload();
         }, 1500);
       } else {
         this.$message({
-          message: '保存失败',
-          type: 'error'
-        })
+          message: "保存失败",
+          type: "error"
+        });
       }
     },
     /**
      * 有效数字控制
      */
     keepDecimal(num) {
-      return num.toFixed(2)
+      return num.toFixed(2);
     },
     /**
      * 点击保存或支付
@@ -348,9 +402,9 @@ export default {
     async jobPeriodSettle(action) {
       if (this.returnMoney < 0 || this.detail.work_hour.work_rate > 100) {
         this.$message({
-          message: '退还金额不能小于0 且 结算比例不能大于100',
-          type: 'error'
-        })
+          message: "退还金额不能小于0 且 结算比例不能大于100",
+          type: "error"
+        });
         return;
       }
       let body = {
@@ -370,85 +424,89 @@ export default {
         remark: this.detail.remark,
         // 结算时是否使用押金
         is_use_deposit: this.is_use_deposit ? 1 : 0,
-        person_service_fee_rate: this.detail.rate.origin_person_service_fee_rate,
-      }
-      body.dev_is_invoice = this.dev_is_invoice ? 1 : 0
+        person_service_fee_rate: this.detail.rate.origin_person_service_fee_rate
+      };
+      body.dev_is_invoice = this.dev_is_invoice ? 1 : 0;
 
-      let res = await this.$post('/api/admin/job/job_period_settle', body)
-      if (!res) return
+      let res = await this.$post("/api/admin/job/job_period_settle", body);
+      if (!res) return;
       if (res.status > 0) {
         this.$message({
           message: res.info,
-          type: 'success'
+          type: "success"
         });
         setTimeout(() => {
-          location.reload()
-        }, 1000)
+          location.reload();
+        }, 1000);
       } else {
         if (!res.info) {
-          console.log(res)
+          console.log(res);
         }
         this.$message({
-          message: res.info ? res.info : '接口返回数据异常',
-          type: 'error'
-        })
+          message: res.info ? res.info : "接口返回数据异常",
+          type: "error"
+        });
       }
     },
     /**
      * 获取数据
      */
     async getData(i) {
-      let res = await this.$post('/api/admin/job/get_job_period_detail', {
+      let res = await this.$post("/api/admin/job/get_job_period_detail", {
         job_id: this.job_id,
         period_id: this.period_id,
         is_cal_workrate: 1
-      })
-      if (!res.data) return
-      let data = res.data
-      env = data.current_env
-      this.detail = data
-      this.isDev = data.is_dev
-      this.is_invoice = this.detail.is_invoice === '1'
-      this.dev_is_invoice = this.detail.dev_is_invoice == '1'
-      this.is_use_deposit = data.can_use_deposit === '1'
-      this.clientSelected = this.detail.user_manager ? this.detail.user_manager.uid : '';
+      });
+      if (!res.data) return;
+      let data = res.data;
+      env = data.current_env;
+      this.detail = data;
+      this.isDev = data.is_dev;
+      this.is_invoice = this.detail.is_invoice === "1";
+      this.dev_is_invoice = this.detail.dev_is_invoice == "1";
+      this.is_use_deposit = data.can_use_deposit === "1";
+      this.clientSelected = this.detail.user_manager
+        ? this.detail.user_manager.uid
+        : "";
     },
     /**
      * 获取客户经理
      */
     async getClients() {
-      let res = await this.$post('/api/admin/user_manager/get_manager', {
-      })
-      if (!res.data) return
-      let data = res.data
-      console.log(data)
-      this.clients = data.managers
+      let res = await this.$post("/api/admin/user_manager/get_manager", {});
+      if (!res.data) return;
+      let data = res.data;
+      console.log(data);
+      this.clients = data.managers;
     },
     /**
      * 更换客户经理
      */
     async handleClientChange() {
       if (!this.clientSelected) {
-        this.$message.error('请选择客户经理');
+        this.$message.error("请选择客户经理");
       }
-      let res = await this.$post('/api/admin/user_manager/change_manager_record', {
-        manager_id: this.clientSelected,
-        period_id: this.period_id,
-      })
+      let res = await this.$post(
+        "/api/admin/user_manager/change_manager_record",
+        {
+          manager_id: this.clientSelected,
+          period_id: this.period_id
+        }
+      );
       if (res.status === 1) {
         this.$message({
-          message: '修改成功',
-          type: 'success'
-        })
+          message: "修改成功",
+          type: "success"
+        });
         this.getData();
-        this.clientSelected = '';
+        this.clientSelected = "";
         this.clientChangeDialog = false;
       } else {
-        this.$message.error('修改失败!' + res.info)
+        this.$message.error("修改失败!" + res.info);
       }
     }
   }
-}
+};
 </script>
 
 <style scoped>

+ 11 - 11
pages/main/index/wait_expend.vue

@@ -1,17 +1,17 @@
 <template>
   <div v-if="jobData && packageData && hireData">
-    <div class="header">云端托管:{{jobData.sumJob.totalAmount}}元,整包托管:{{packageData.sumPackage.totalAmount}}元,雇佣托管:{{hireData.sumHire.totalAmount || 0}}元</div>
+    <div class="header">云端托管:{{jobData.sumJob.totalAmount/100}}元,整包托管:{{packageData.sumPackage.totalAmount/100}}元,雇佣托管:{{hireData.sumHire.totalAmount/100 || 0}}元</div>
     <el-tabs v-model="activeName" type="card">
       <el-tab-pane label="云端" name="job">
-        <div class="tab-header">云端项目待支出总额{{jobData.sumJob.totalAmount}}元,共{{jobData.sumJob.totalNum}}笔</div>
+        <div class="tab-header">云端项目待支出总额{{jobData.sumJob.totalAmount/100}}元,共{{jobData.sumJob.totalNum}}笔</div>
         <div class="tab-content">
           <el-table :data="jobData.orders" border style="width:100%;" height="100%">
             <el-table-column prop="product_title" label="订单名称" width="300"/>
             <el-table-column prop="user_info.nickname" label="用户" width="150"/>
-            <el-table-column prop="real_amount" label="实际金额" width="100"/>
+            <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
             <el-table-column prop="real_amount" label="收支类型" width="100">
               <template slot-scope="scope">
-                <span>{{parseInt(scope.row.real_amount)>=0?"收入":"支出"}}</span>
+                <span>{{parseInt(scope.row.real_amount_yuan)>=0?"收入":"支出"}}</span>
               </template>
             </el-table-column>
             <el-table-column prop="channel_name" label="支付方式" width="100"/>
@@ -52,15 +52,15 @@
         <el-pagination class="order-footer" background layout="prev, pager, next" :page-size="10" :total="Number(jobData.sumJob.totalNum)" @current-change="handleJobCurrentChange"/>
       </el-tab-pane>
       <el-tab-pane label="整包" name="package">
-        <div class="tab-header">整包项目待支出总额{{packageData.sumPackage.totalAmount}}元,共{{packageData.sumPackage.totalNum}}笔</div>
+        <div class="tab-header">整包项目待支出总额{{packageData.sumPackage.totalAmount/100}}元,共{{packageData.sumPackage.totalNum}}笔</div>
         <div class="tab-content">
           <el-table :data="packageData.orders" border style="width:100%;" height="100%">
             <el-table-column prop="product_title" label="订单名称" width="300"/>
             <el-table-column prop="user_info.nickname" label="用户" width="150"/>
-            <el-table-column prop="real_amount" label="实际金额" width="100"/>
+            <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
             <el-table-column prop="real_amount" label="收支类型" width="100">
               <template slot-scope="scope">
-                <span>{{parseInt(scope.row.real_amount)>=0?"收入":"支出"}}</span>
+                <span>{{parseInt(scope.row.real_amount_yuan)>=0?"收入":"支出"}}</span>
               </template>
             </el-table-column>
             <el-table-column prop="channel_name" label="支付方式" width="100"/>
@@ -101,12 +101,12 @@
         <el-pagination class="order-footer" background layout="prev, pager, next" :page-size="10" :total="Number(packageData.sumPackage.totalNum)" @current-change="handlePackageCurrentChange"/>
       </el-tab-pane>
       <el-tab-pane label="雇佣" name="hire">
-        <div class="tab-header">整包项目待支出总额{{hireData.sumHire.totalAmount}}元,共{{hireData.sumHire.totalNum}}笔</div>
+        <div class="tab-header">整包项目待支出总额{{hireData.sumHire.totalAmount/100}}元,共{{hireData.sumHire.totalNum}}笔</div>
         <div class="tab-content">
           <el-table :data="hireData.orders" border style="width:100%;" height="100%">
             <el-table-column prop="product_title" label="订单名称" width="300"/>
             <el-table-column prop="user_info.nickname" label="用户" width="150"/>
-            <el-table-column prop="real_amount" label="实际金额" width="100"/>
+            <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
             <el-table-column prop="real_amount" label="收支类型" width="100">
               <template slot-scope="scope">
                 <span>{{parseInt(scope.row.real_amount)>=0?"收入":"支出"}}</span>
@@ -252,7 +252,7 @@ export default {
         second
       );
     },
-    
+
   }
 }
 </script>
@@ -276,4 +276,4 @@ export default {
   .order-footer {
     margin-top: 10px;
   }
-</style>
+</style>

+ 33 - 14
store/index.js

@@ -1,25 +1,44 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-import getters from './getters'
+import Vue from "vue";
+import Vuex from "vuex";
+import getters from "./getters";
 
-Vue.use(Vuex)
+Vue.use(Vuex);
 
 // https://webpack.js.org/guides/dependency-management/#requirecontext
-const modulesFiles = require.context('./modules', true, /\.js$/)
+const modulesFiles = require.context("./modules", true, /\.js$/);
 
 // you do not need `import app from './modules/app'`
 // it will auto require all vuex module from modules file
 const modules = modulesFiles.keys().reduce((modules, modulePath) => {
   // set './app.js' => 'app'
-  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
-  const value = modulesFiles(modulePath)
-  modules[moduleName] = value.default
-  return modules
-}, {})
-
+  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
+  const value = modulesFiles(modulePath);
+  modules[moduleName] = value.default;
+  return modules;
+}, {});
+const state = () => ({
+  domainConfig: {
+    api: "",
+    siteUrl: "",
+    rooterUrl: "",
+    jishuinUrl: ""
+  }
+});
+const mutations = {
+  updateDomainConfig(state, config) {
+    state.domainConfig = {
+      api: config.api,
+      siteUrl: config.siteUrl,
+      jishuinUrl: config.jishuinUrl,
+      rooterUrl: config.rooterUrl
+    };
+  }
+};
 const store = new Vuex.Store({
+  state,
   modules,
-  getters
-})
+  getters,
+  mutations
+});
 
-export default () => store
+export default () => store;